diff --git a/Makefile b/Makefile index afcf02c..1fac075 100644 --- a/Makefile +++ b/Makefile @@ -36,6 +36,7 @@ update-protobufs: cp -a ./dota/tmp/Protobufs/*.proto ./dota/ && \ rm -rf ./dota/tmp rm -rf dota/gametoolevents.proto dota/dota_messages_mlbot.proto dota/dota_gcmessages_common_bot_script.proto dota/steammessages_base.proto dota/steammessages_clientserver_login.proto dota/tensorflow + $(SED) -i 's/\.CMsgFightingGame_GameData/CMsgFightingGame_GameData/g' dota/dota_fighting_game_p2p_messages.proto $(SED) -i 's/^\(\s*\)\(optional\|repeated\|required\|extend\)\s*\./\1\2 /' dota/*.proto $(SED) -i 's!^\s*rpc\s*\(\S*\)\s*(\.\([^)]*\))\s*returns\s*(\.\([^)]*\))\s*{!rpc \1 (\2) returns (\3) {!' dota/*.proto $(SED) -i '1isyntax = "proto2";\n\npackage dota;\noption go_package = "github.com/dotabuff/manta/dota;dota";\n' dota/*.proto diff --git a/callbacks.go b/callbacks.go index b9b88d2..7f7b1fb 100644 --- a/callbacks.go +++ b/callbacks.go @@ -26,7 +26,6 @@ type Callbacks struct { onCDemoAnimationData []func(*dota.CDemoAnimationData) error onCDemoAnimationHeader []func(*dota.CDemoAnimationHeader) error onCNETMsg_NOP []func(*dota.CNETMsg_NOP) error - onCNETMsg_Disconnect_Legacy []func(*dota.CNETMsg_Disconnect_Legacy) error onCNETMsg_SplitScreenUser []func(*dota.CNETMsg_SplitScreenUser) error onCNETMsg_Tick []func(*dota.CNETMsg_Tick) error onCNETMsg_StringCmd []func(*dota.CNETMsg_StringCmd) error @@ -65,7 +64,6 @@ type Callbacks struct { onCSVCMsg_FullFrameSplit []func(*dota.CSVCMsg_FullFrameSplit) error onCSVCMsg_RconServerDetails []func(*dota.CSVCMsg_RconServerDetails) error onCSVCMsg_UserMessage []func(*dota.CSVCMsg_UserMessage) error - onCSVCMsg_HltvReplay []func(*dota.CSVCMsg_HltvReplay) error onCSVCMsg_Broadcast_Command []func(*dota.CSVCMsg_Broadcast_Command) error onCSVCMsg_HltvFixupOperatorStatus []func(*dota.CSVCMsg_HltvFixupOperatorStatus) error onCUserMessageAchievementEvent []func(*dota.CUserMessageAchievementEvent) error @@ -199,7 +197,6 @@ type Callbacks struct { onCDOTAUserMsg_CustomHeaderMessage []func(*dota.CDOTAUserMsg_CustomHeaderMessage) error onCDOTAUserMsg_QuickBuyAlert []func(*dota.CDOTAUserMsg_QuickBuyAlert) error onCDOTAUserMsg_StatsHeroMinuteDetails []func(*dota.CDOTAUserMsg_StatsHeroMinuteDetails) error - onCDOTAUserMsg_PredictionResult []func(*dota.CDOTAUserMsg_PredictionResult) error onCDOTAUserMsg_ModifierAlert []func(*dota.CDOTAUserMsg_ModifierAlert) error onCDOTAUserMsg_HPManaAlert []func(*dota.CDOTAUserMsg_HPManaAlert) error onCDOTAUserMsg_GlyphAlert []func(*dota.CDOTAUserMsg_GlyphAlert) error @@ -383,11 +380,6 @@ func (c *Callbacks) OnCNETMsg_NOP(fn func(*dota.CNETMsg_NOP) error) { c.onCNETMsg_NOP = append(c.onCNETMsg_NOP, fn) } -// OnCNETMsg_Disconnect_Legacy registers a callback for NET_Messages_net_Disconnect_Legacy -func (c *Callbacks) OnCNETMsg_Disconnect_Legacy(fn func(*dota.CNETMsg_Disconnect_Legacy) error) { - c.onCNETMsg_Disconnect_Legacy = append(c.onCNETMsg_Disconnect_Legacy, fn) -} - // OnCNETMsg_SplitScreenUser registers a callback for NET_Messages_net_SplitScreenUser func (c *Callbacks) OnCNETMsg_SplitScreenUser(fn func(*dota.CNETMsg_SplitScreenUser) error) { c.onCNETMsg_SplitScreenUser = append(c.onCNETMsg_SplitScreenUser, fn) @@ -578,11 +570,6 @@ func (c *Callbacks) OnCSVCMsg_UserMessage(fn func(*dota.CSVCMsg_UserMessage) err c.onCSVCMsg_UserMessage = append(c.onCSVCMsg_UserMessage, fn) } -// OnCSVCMsg_HltvReplay registers a callback for SVC_Messages_svc_HltvReplay -func (c *Callbacks) OnCSVCMsg_HltvReplay(fn func(*dota.CSVCMsg_HltvReplay) error) { - c.onCSVCMsg_HltvReplay = append(c.onCSVCMsg_HltvReplay, fn) -} - // OnCSVCMsg_Broadcast_Command registers a callback for SVC_Messages_svc_Broadcast_Command func (c *Callbacks) OnCSVCMsg_Broadcast_Command(fn func(*dota.CSVCMsg_Broadcast_Command) error) { c.onCSVCMsg_Broadcast_Command = append(c.onCSVCMsg_Broadcast_Command, fn) @@ -1248,11 +1235,6 @@ func (c *Callbacks) OnCDOTAUserMsg_StatsHeroMinuteDetails(fn func(*dota.CDOTAUse c.onCDOTAUserMsg_StatsHeroMinuteDetails = append(c.onCDOTAUserMsg_StatsHeroMinuteDetails, fn) } -// OnCDOTAUserMsg_PredictionResult registers a callback for EDotaUserMessages_DOTA_UM_PredictionResult -func (c *Callbacks) OnCDOTAUserMsg_PredictionResult(fn func(*dota.CDOTAUserMsg_PredictionResult) error) { - c.onCDOTAUserMsg_PredictionResult = append(c.onCDOTAUserMsg_PredictionResult, fn) -} - // OnCDOTAUserMsg_ModifierAlert registers a callback for EDotaUserMessages_DOTA_UM_ModifierAlert func (c *Callbacks) OnCDOTAUserMsg_ModifierAlert(fn func(*dota.CDOTAUserMsg_ModifierAlert) error) { c.onCDOTAUserMsg_ModifierAlert = append(c.onCDOTAUserMsg_ModifierAlert, fn) @@ -2017,25 +1999,6 @@ func (c *Callbacks) callByPacketType(t int32, buf []byte) error { return nil - case 1: // dota.NET_Messages_net_Disconnect_Legacy - if c.onCNETMsg_Disconnect_Legacy == nil { - return nil - } - - msg := &dota.CNETMsg_Disconnect_Legacy{} - c.pb.SetBuf(buf) - if err := c.pb.Unmarshal(msg); err != nil { - return err - } - - for _, fn := range c.onCNETMsg_Disconnect_Legacy { - if err := fn(msg); err != nil { - return err - } - } - - return nil - case 3: // dota.NET_Messages_net_SplitScreenUser if c.onCNETMsg_SplitScreenUser == nil { return nil @@ -2758,25 +2721,6 @@ func (c *Callbacks) callByPacketType(t int32, buf []byte) error { return nil - case 73: // dota.SVC_Messages_svc_HltvReplay - if c.onCSVCMsg_HltvReplay == nil { - return nil - } - - msg := &dota.CSVCMsg_HltvReplay{} - c.pb.SetBuf(buf) - if err := c.pb.Unmarshal(msg); err != nil { - return err - } - - for _, fn := range c.onCSVCMsg_HltvReplay { - if err := fn(msg); err != nil { - return err - } - } - - return nil - case 74: // dota.SVC_Messages_svc_Broadcast_Command if c.onCSVCMsg_Broadcast_Command == nil { return nil @@ -5304,25 +5248,6 @@ func (c *Callbacks) callByPacketType(t int32, buf []byte) error { return nil - case 542: // dota.EDotaUserMessages_DOTA_UM_PredictionResult - if c.onCDOTAUserMsg_PredictionResult == nil { - return nil - } - - msg := &dota.CDOTAUserMsg_PredictionResult{} - c.pb.SetBuf(buf) - if err := c.pb.Unmarshal(msg); err != nil { - return err - } - - for _, fn := range c.onCDOTAUserMsg_PredictionResult { - if err := fn(msg); err != nil { - return err - } - } - - return nil - case 543: // dota.EDotaUserMessages_DOTA_UM_ModifierAlert if c.onCDOTAUserMsg_ModifierAlert == nil { return nil diff --git a/dota/c_peer2peer_netmessages.pb.go b/dota/c_peer2peer_netmessages.pb.go index 92f6583..d739184 100644 --- a/dota/c_peer2peer_netmessages.pb.go +++ b/dota/c_peer2peer_netmessages.pb.go @@ -23,11 +23,13 @@ const ( type P2P_Messages int32 const ( - P2P_Messages_p2p_TextMessage P2P_Messages = 256 - P2P_Messages_p2p_Voice P2P_Messages = 257 - P2P_Messages_p2p_Ping P2P_Messages = 258 - P2P_Messages_p2p_VRAvatarPosition P2P_Messages = 259 - P2P_Messages_p2p_WatchSynchronization P2P_Messages = 260 + P2P_Messages_p2p_TextMessage P2P_Messages = 256 + P2P_Messages_p2p_Voice P2P_Messages = 257 + P2P_Messages_p2p_Ping P2P_Messages = 258 + P2P_Messages_p2p_VRAvatarPosition P2P_Messages = 259 + P2P_Messages_p2p_WatchSynchronization P2P_Messages = 260 + P2P_Messages_p2p_FightingGame_GameData P2P_Messages = 261 + P2P_Messages_p2p_FightingGame_Connection P2P_Messages = 262 ) // Enum value maps for P2P_Messages. @@ -38,13 +40,17 @@ var ( 258: "p2p_Ping", 259: "p2p_VRAvatarPosition", 260: "p2p_WatchSynchronization", + 261: "p2p_FightingGame_GameData", + 262: "p2p_FightingGame_Connection", } P2P_Messages_value = map[string]int32{ - "p2p_TextMessage": 256, - "p2p_Voice": 257, - "p2p_Ping": 258, - "p2p_VRAvatarPosition": 259, - "p2p_WatchSynchronization": 260, + "p2p_TextMessage": 256, + "p2p_Voice": 257, + "p2p_Ping": 258, + "p2p_VRAvatarPosition": 259, + "p2p_WatchSynchronization": 260, + "p2p_FightingGame_GameData": 261, + "p2p_FightingGame_Connection": 262, } ) @@ -641,17 +647,21 @@ var file_c_peer2peer_netmessages_proto_rawDesc = []byte{ 0x75, 0x74, 0x6f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x64, 0x6f, 0x74, 0x61, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x64, 0x6f, 0x74, 0x61, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x53, - 0x70, 0x65, 0x65, 0x64, 0x2a, 0x7d, 0x0a, 0x0c, 0x50, 0x32, 0x50, 0x5f, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x0f, 0x70, 0x32, 0x70, 0x5f, 0x54, 0x65, 0x78, 0x74, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x10, 0x80, 0x02, 0x12, 0x0e, 0x0a, 0x09, 0x70, 0x32, - 0x70, 0x5f, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x10, 0x81, 0x02, 0x12, 0x0d, 0x0a, 0x08, 0x70, 0x32, - 0x70, 0x5f, 0x50, 0x69, 0x6e, 0x67, 0x10, 0x82, 0x02, 0x12, 0x19, 0x0a, 0x14, 0x70, 0x32, 0x70, - 0x5f, 0x56, 0x52, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x10, 0x83, 0x02, 0x12, 0x1d, 0x0a, 0x18, 0x70, 0x32, 0x70, 0x5f, 0x57, 0x61, 0x74, 0x63, - 0x68, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x10, 0x84, 0x02, 0x42, 0x25, 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x62, 0x75, 0x66, 0x66, 0x2f, 0x6d, 0x61, 0x6e, 0x74, 0x61, - 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x3b, 0x64, 0x6f, 0x74, 0x61, + 0x70, 0x65, 0x65, 0x64, 0x2a, 0xbf, 0x01, 0x0a, 0x0c, 0x50, 0x32, 0x50, 0x5f, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x0f, 0x70, 0x32, 0x70, 0x5f, 0x54, 0x65, 0x78, + 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x10, 0x80, 0x02, 0x12, 0x0e, 0x0a, 0x09, 0x70, + 0x32, 0x70, 0x5f, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x10, 0x81, 0x02, 0x12, 0x0d, 0x0a, 0x08, 0x70, + 0x32, 0x70, 0x5f, 0x50, 0x69, 0x6e, 0x67, 0x10, 0x82, 0x02, 0x12, 0x19, 0x0a, 0x14, 0x70, 0x32, + 0x70, 0x5f, 0x56, 0x52, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x10, 0x83, 0x02, 0x12, 0x1d, 0x0a, 0x18, 0x70, 0x32, 0x70, 0x5f, 0x57, 0x61, 0x74, + 0x63, 0x68, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x10, 0x84, 0x02, 0x12, 0x1e, 0x0a, 0x19, 0x70, 0x32, 0x70, 0x5f, 0x46, 0x69, 0x67, 0x68, + 0x74, 0x69, 0x6e, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x10, 0x85, 0x02, 0x12, 0x20, 0x0a, 0x1b, 0x70, 0x32, 0x70, 0x5f, 0x46, 0x69, 0x67, 0x68, + 0x74, 0x69, 0x6e, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x10, 0x86, 0x02, 0x42, 0x25, 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x62, 0x75, 0x66, 0x66, 0x2f, 0x6d, 0x61, + 0x6e, 0x74, 0x61, 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x3b, 0x64, 0x6f, 0x74, 0x61, } var ( diff --git a/dota/c_peer2peer_netmessages.proto b/dota/c_peer2peer_netmessages.proto index d489451..b327174 100644 --- a/dota/c_peer2peer_netmessages.proto +++ b/dota/c_peer2peer_netmessages.proto @@ -12,6 +12,8 @@ enum P2P_Messages { p2p_Ping = 258; p2p_VRAvatarPosition = 259; p2p_WatchSynchronization = 260; + p2p_FightingGame_GameData = 261; + p2p_FightingGame_Connection = 262; } message CP2P_TextMessage { diff --git a/dota/demo.pb.go b/dota/demo.pb.go index 868f0c3..d2389e2 100644 --- a/dota/demo.pb.go +++ b/dota/demo.pb.go @@ -1461,7 +1461,7 @@ type CGameInfo_CDotaGameInfo_CHeroSelectEvent struct { IsPick *bool `protobuf:"varint,1,opt,name=is_pick,json=isPick" json:"is_pick,omitempty"` Team *uint32 `protobuf:"varint,2,opt,name=team" json:"team,omitempty"` - HeroId *uint32 `protobuf:"varint,3,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,3,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` } func (x *CGameInfo_CDotaGameInfo_CHeroSelectEvent) Reset() { @@ -1510,7 +1510,7 @@ func (x *CGameInfo_CDotaGameInfo_CHeroSelectEvent) GetTeam() uint32 { return 0 } -func (x *CGameInfo_CDotaGameInfo_CHeroSelectEvent) GetHeroId() uint32 { +func (x *CGameInfo_CDotaGameInfo_CHeroSelectEvent) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -1800,7 +1800,7 @@ var file_demo_proto_rawDesc = []byte{ 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x50, 0x69, 0x63, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x1a, 0x39, 0x0a, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x1a, 0x39, 0x0a, 0x0b, 0x43, 0x43, 0x53, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x74, diff --git a/dota/demo.proto b/dota/demo.proto index 9cdabd8..5b82268 100644 --- a/dota/demo.proto +++ b/dota/demo.proto @@ -58,7 +58,7 @@ message CGameInfo { message CHeroSelectEvent { optional bool is_pick = 1; optional uint32 team = 2; - optional uint32 hero_id = 3; + optional int32 hero_id = 3; } optional uint64 match_id = 1; diff --git a/dota/dota_clientmessages.pb.go b/dota/dota_clientmessages.pb.go index 7f1899f..0039ede 100644 --- a/dota/dota_clientmessages.pb.go +++ b/dota/dota_clientmessages.pb.go @@ -128,6 +128,7 @@ const ( EDotaClientMessages_DOTA_CM_SelectOverworldTokenRewards EDotaClientMessages = 809 EDotaClientMessages_DOTA_CM_FacetAlert EDotaClientMessages = 810 EDotaClientMessages_DOTA_CM_InnateAlert EDotaClientMessages = 811 + EDotaClientMessages_DOTA_CM_SelectOverworldID EDotaClientMessages = 812 ) // Enum value maps for EDotaClientMessages. @@ -238,6 +239,7 @@ var ( 809: "DOTA_CM_SelectOverworldTokenRewards", 810: "DOTA_CM_FacetAlert", 811: "DOTA_CM_InnateAlert", + 812: "DOTA_CM_SelectOverworldID", } EDotaClientMessages_value = map[string]int32{ "DOTA_CM_MapLine": 301, @@ -345,6 +347,7 @@ var ( "DOTA_CM_SelectOverworldTokenRewards": 809, "DOTA_CM_FacetAlert": 810, "DOTA_CM_InnateAlert": 811, + "DOTA_CM_SelectOverworldID": 812, } ) @@ -1684,7 +1687,7 @@ type CDOTAClientMsg_ChatWheel struct { unknownFields protoimpl.UnknownFields ChatMessageId *uint32 `protobuf:"varint,1,opt,name=chat_message_id,json=chatMessageId" json:"chat_message_id,omitempty"` - ParamHeroId *uint32 `protobuf:"varint,2,opt,name=param_hero_id,json=paramHeroId" json:"param_hero_id,omitempty"` + ParamHeroId *int32 `protobuf:"varint,2,opt,name=param_hero_id,json=paramHeroId" json:"param_hero_id,omitempty"` EmoticonId *uint32 `protobuf:"varint,3,opt,name=emoticon_id,json=emoticonId" json:"emoticon_id,omitempty"` } @@ -1727,7 +1730,7 @@ func (x *CDOTAClientMsg_ChatWheel) GetChatMessageId() uint32 { return 0 } -func (x *CDOTAClientMsg_ChatWheel) GetParamHeroId() uint32 { +func (x *CDOTAClientMsg_ChatWheel) GetParamHeroId() int32 { if x != nil && x.ParamHeroId != nil { return *x.ParamHeroId } @@ -2714,7 +2717,7 @@ type CDOTAClientMsg_ChallengeReroll struct { EventId *EEvent `protobuf:"varint,1,opt,name=event_id,json=eventId,enum=dota.EEvent" json:"event_id,omitempty"` SlotId *uint32 `protobuf:"varint,2,opt,name=slot_id,json=slotId" json:"slot_id,omitempty"` SequenceId *uint32 `protobuf:"varint,3,opt,name=sequence_id,json=sequenceId" json:"sequence_id,omitempty"` - HeroId *uint32 `protobuf:"varint,4,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,4,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` } func (x *CDOTAClientMsg_ChallengeReroll) Reset() { @@ -2770,7 +2773,7 @@ func (x *CDOTAClientMsg_ChallengeReroll) GetSequenceId() uint32 { return 0 } -func (x *CDOTAClientMsg_ChallengeReroll) GetHeroId() uint32 { +func (x *CDOTAClientMsg_ChallengeReroll) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -4116,10 +4119,10 @@ type CDOTAClientMsg_DamageReport struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - TargetHeroId *uint32 `protobuf:"varint,1,opt,name=target_hero_id,json=targetHeroId" json:"target_hero_id,omitempty"` - SourceHeroId *uint32 `protobuf:"varint,2,opt,name=source_hero_id,json=sourceHeroId" json:"source_hero_id,omitempty"` - DamageAmount *int32 `protobuf:"varint,3,opt,name=damage_amount,json=damageAmount" json:"damage_amount,omitempty"` - Broadcast *bool `protobuf:"varint,4,opt,name=broadcast" json:"broadcast,omitempty"` + TargetHeroId *int32 `protobuf:"varint,1,opt,name=target_hero_id,json=targetHeroId" json:"target_hero_id,omitempty"` + SourceHeroId *int32 `protobuf:"varint,2,opt,name=source_hero_id,json=sourceHeroId" json:"source_hero_id,omitempty"` + DamageAmount *int32 `protobuf:"varint,3,opt,name=damage_amount,json=damageAmount" json:"damage_amount,omitempty"` + Broadcast *bool `protobuf:"varint,4,opt,name=broadcast" json:"broadcast,omitempty"` } func (x *CDOTAClientMsg_DamageReport) Reset() { @@ -4154,14 +4157,14 @@ func (*CDOTAClientMsg_DamageReport) Descriptor() ([]byte, []int) { return file_dota_clientmessages_proto_rawDescGZIP(), []int{67} } -func (x *CDOTAClientMsg_DamageReport) GetTargetHeroId() uint32 { +func (x *CDOTAClientMsg_DamageReport) GetTargetHeroId() int32 { if x != nil && x.TargetHeroId != nil { return *x.TargetHeroId } return 0 } -func (x *CDOTAClientMsg_DamageReport) GetSourceHeroId() uint32 { +func (x *CDOTAClientMsg_DamageReport) GetSourceHeroId() int32 { if x != nil && x.SourceHeroId != nil { return *x.SourceHeroId } @@ -5835,6 +5838,53 @@ func (x *CDOTAClientMsg_InnateAlert) GetCtrlHeld() bool { return false } +type CDOTAClientMsg_SelectOverworldID struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OverworldId *uint32 `protobuf:"varint,1,opt,name=overworld_id,json=overworldId" json:"overworld_id,omitempty"` +} + +func (x *CDOTAClientMsg_SelectOverworldID) Reset() { + *x = CDOTAClientMsg_SelectOverworldID{} + if protoimpl.UnsafeEnabled { + mi := &file_dota_clientmessages_proto_msgTypes[95] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CDOTAClientMsg_SelectOverworldID) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CDOTAClientMsg_SelectOverworldID) ProtoMessage() {} + +func (x *CDOTAClientMsg_SelectOverworldID) ProtoReflect() protoreflect.Message { + mi := &file_dota_clientmessages_proto_msgTypes[95] + 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 CDOTAClientMsg_SelectOverworldID.ProtoReflect.Descriptor instead. +func (*CDOTAClientMsg_SelectOverworldID) Descriptor() ([]byte, []int) { + return file_dota_clientmessages_proto_rawDescGZIP(), []int{95} +} + +func (x *CDOTAClientMsg_SelectOverworldID) GetOverworldId() uint32 { + if x != nil && x.OverworldId != nil { + return *x.OverworldId + } + return 0 +} + var File_dota_clientmessages_proto protoreflect.FileDescriptor var file_dota_clientmessages_proto_rawDesc = []byte{ @@ -5987,7 +6037,7 @@ var file_dota_clientmessages_proto_rawDesc = []byte{ 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1f, + 0x05, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6d, 0x6f, 0x74, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x6d, 0x6f, 0x74, 0x69, 0x63, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x5a, 0x0a, 0x1c, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, @@ -6118,7 +6168,7 @@ var file_dota_clientmessages_proto_rawDesc = []byte{ 0x0d, 0x52, 0x06, 0x73, 0x6c, 0x6f, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, - 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, + 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x22, 0x3d, 0x0a, 0x18, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6f, 0x69, 0x6e, 0x57, 0x61, 0x67, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x61, 0x67, 0x65, 0x72, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, @@ -6281,10 +6331,10 @@ var file_dota_clientmessages_proto_rawDesc = []byte{ 0x73, 0x47, 0x75, 0x69, 0x64, 0x65, 0x22, 0xac, 0x01, 0x0a, 0x1b, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x5f, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, + 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x65, 0x72, 0x6f, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x72, 0x6f, 0x61, 0x64, @@ -6551,210 +6601,217 @@ var file_dota_clientmessages_proto_rawDesc = []byte{ 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x74, 0x72, 0x6c, 0x5f, 0x68, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x63, - 0x74, 0x72, 0x6c, 0x48, 0x65, 0x6c, 0x64, 0x2a, 0x8d, 0x19, 0x0a, 0x13, 0x45, 0x44, 0x6f, 0x74, - 0x61, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, - 0x14, 0x0a, 0x0f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x4d, 0x61, 0x70, 0x4c, 0x69, - 0x6e, 0x65, 0x10, 0xad, 0x02, 0x12, 0x18, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, - 0x5f, 0x41, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x10, 0xae, 0x02, 0x12, - 0x14, 0x0a, 0x0f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x4d, 0x61, 0x70, 0x50, 0x69, - 0x6e, 0x67, 0x10, 0xaf, 0x02, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, - 0x5f, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, - 0x10, 0xb0, 0x02, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x10, 0xb3, 0x02, 0x12, 0x12, - 0x0a, 0x0d, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x50, 0x61, 0x75, 0x73, 0x65, 0x10, - 0xb4, 0x02, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x53, 0x68, - 0x6f, 0x70, 0x56, 0x69, 0x65, 0x77, 0x4d, 0x6f, 0x64, 0x65, 0x10, 0xb5, 0x02, 0x12, 0x1d, 0x0a, - 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x53, 0x65, 0x74, 0x55, 0x6e, 0x69, 0x74, - 0x53, 0x68, 0x61, 0x72, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x10, 0xb6, 0x02, 0x12, 0x18, 0x0a, 0x13, - 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x53, 0x77, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x10, 0xb7, 0x02, 0x12, 0x17, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, - 0x4d, 0x5f, 0x53, 0x77, 0x61, 0x70, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x10, 0xb8, 0x02, 0x12, - 0x16, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x57, 0x6f, 0x72, 0x6c, 0x64, - 0x4c, 0x69, 0x6e, 0x65, 0x10, 0xb9, 0x02, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, - 0x43, 0x4d, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x47, 0x72, 0x61, 0x70, 0x68, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x10, 0xba, 0x02, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, - 0x5f, 0x43, 0x4d, 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xbb, 0x02, - 0x12, 0x16, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x43, 0x68, 0x61, 0x74, - 0x57, 0x68, 0x65, 0x65, 0x6c, 0x10, 0xbc, 0x02, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, - 0x5f, 0x43, 0x4d, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x50, 0x6f, 0x70, 0x75, - 0x70, 0x10, 0xbd, 0x02, 0x12, 0x22, 0x0a, 0x1d, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, - 0x42, 0x65, 0x67, 0x69, 0x6e, 0x4c, 0x61, 0x73, 0x74, 0x48, 0x69, 0x74, 0x43, 0x68, 0x61, 0x6c, - 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x10, 0xbe, 0x02, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, - 0x5f, 0x43, 0x4d, 0x5f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x51, 0x75, 0x69, 0x63, 0x6b, 0x42, - 0x75, 0x79, 0x10, 0xbf, 0x02, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, - 0x5f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x61, 0x63, 0x68, 0x4c, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x10, 0xc0, 0x02, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, - 0x5f, 0x43, 0x6f, 0x61, 0x63, 0x68, 0x48, 0x55, 0x44, 0x50, 0x69, 0x6e, 0x67, 0x10, 0xc1, 0x02, - 0x12, 0x17, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x56, 0x6f, 0x74, 0x65, 0x10, 0xc2, 0x02, 0x12, 0x26, 0x0a, 0x21, 0x44, 0x4f, 0x54, - 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x41, 0x74, - 0x74, 0x61, 0x63, 0x6b, 0x41, 0x66, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x6c, 0x6c, 0x10, 0xc3, - 0x02, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x57, 0x69, 0x6c, - 0x6c, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xc4, - 0x02, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x61, 0x73, 0x65, 0x10, 0xc5, 0x02, 0x12, 0x21, - 0x0a, 0x1c, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x48, 0x61, 0x6c, 0x74, 0x10, 0xc6, - 0x02, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x43, 0x61, 0x6d, - 0x65, 0x72, 0x61, 0x5a, 0x6f, 0x6f, 0x6d, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xc7, 0x02, - 0x12, 0x25, 0x0a, 0x20, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x42, 0x72, 0x6f, 0x61, - 0x64, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x61, 0x6d, 0x65, - 0x72, 0x6d, 0x61, 0x6e, 0x10, 0xc8, 0x02, 0x12, 0x33, 0x0a, 0x2e, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x74, 0x72, 0x6c, 0x48, 0x65, 0x6c, 0x64, 0x22, 0x45, 0x0a, 0x20, 0x43, 0x44, 0x4f, 0x54, 0x41, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x49, 0x44, 0x12, 0x21, 0x0a, 0x0c, 0x6f, + 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0b, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x49, 0x64, 0x2a, 0xad, + 0x19, 0x0a, 0x13, 0x45, 0x44, 0x6f, 0x74, 0x61, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x0f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, + 0x4d, 0x5f, 0x4d, 0x61, 0x70, 0x4c, 0x69, 0x6e, 0x65, 0x10, 0xad, 0x02, 0x12, 0x18, 0x0a, 0x13, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x41, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x61, + 0x74, 0x69, 0x6f, 0x10, 0xae, 0x02, 0x12, 0x14, 0x0a, 0x0f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, + 0x4d, 0x5f, 0x4d, 0x61, 0x70, 0x50, 0x69, 0x6e, 0x67, 0x10, 0xaf, 0x02, 0x12, 0x1c, 0x0a, 0x17, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x41, 0x75, 0x74, + 0x6f, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x10, 0xb0, 0x02, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, + 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x10, 0xb3, 0x02, 0x12, 0x12, 0x0a, 0x0d, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, + 0x5f, 0x50, 0x61, 0x75, 0x73, 0x65, 0x10, 0xb4, 0x02, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, + 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x53, 0x68, 0x6f, 0x70, 0x56, 0x69, 0x65, 0x77, 0x4d, 0x6f, 0x64, + 0x65, 0x10, 0xb5, 0x02, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, + 0x53, 0x65, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x46, 0x6c, 0x61, 0x67, + 0x10, 0xb6, 0x02, 0x12, 0x18, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x53, + 0x77, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, 0xb7, 0x02, 0x12, 0x17, 0x0a, + 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x53, 0x77, 0x61, 0x70, 0x41, 0x63, 0x63, + 0x65, 0x70, 0x74, 0x10, 0xb8, 0x02, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, + 0x4d, 0x5f, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x4c, 0x69, 0x6e, 0x65, 0x10, 0xb9, 0x02, 0x12, 0x1f, + 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x47, 0x72, 0x61, 0x70, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x10, 0xba, 0x02, 0x12, + 0x16, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x41, + 0x6c, 0x65, 0x72, 0x74, 0x10, 0xbb, 0x02, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x43, 0x4d, 0x5f, 0x43, 0x68, 0x61, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x10, 0xbc, 0x02, 0x12, + 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x53, + 0x74, 0x61, 0x74, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x10, 0xbd, 0x02, 0x12, 0x22, 0x0a, 0x1d, 0x44, + 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x4c, 0x61, 0x73, 0x74, + 0x48, 0x69, 0x74, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x10, 0xbe, 0x02, 0x12, + 0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x51, 0x75, 0x69, 0x63, 0x6b, 0x42, 0x75, 0x79, 0x10, 0xbf, 0x02, 0x12, 0x1e, 0x0a, 0x19, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, + 0x61, 0x63, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x10, 0xc0, 0x02, 0x12, 0x19, 0x0a, 0x14, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x43, 0x6f, 0x61, 0x63, 0x68, 0x48, 0x55, 0x44, + 0x50, 0x69, 0x6e, 0x67, 0x10, 0xc1, 0x02, 0x12, 0x17, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x43, 0x4d, 0x5f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x56, 0x6f, 0x74, 0x65, 0x10, 0xc2, 0x02, + 0x12, 0x26, 0x0a, 0x21, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x55, 0x6e, 0x69, 0x74, + 0x73, 0x41, 0x75, 0x74, 0x6f, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x41, 0x66, 0x74, 0x65, 0x72, + 0x53, 0x70, 0x65, 0x6c, 0x6c, 0x10, 0xc3, 0x02, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, + 0x5f, 0x43, 0x4d, 0x5f, 0x57, 0x69, 0x6c, 0x6c, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, + 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xc4, 0x02, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, + 0x5f, 0x43, 0x4d, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x61, + 0x73, 0x65, 0x10, 0xc5, 0x02, 0x12, 0x21, 0x0a, 0x1c, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, + 0x5f, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, + 0x73, 0x48, 0x61, 0x6c, 0x74, 0x10, 0xc6, 0x02, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, + 0x5f, 0x43, 0x4d, 0x5f, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x5a, 0x6f, 0x6f, 0x6d, 0x41, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xc7, 0x02, 0x12, 0x25, 0x0a, 0x20, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, - 0x69, 0x6e, 0x67, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x43, 0x61, 0x6d, 0x65, 0x72, - 0x61, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0xc9, 0x02, 0x12, 0x1b, 0x0a, 0x16, - 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x45, 0x6e, 0x65, 0x6d, 0x79, 0x49, 0x74, 0x65, - 0x6d, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xca, 0x02, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, - 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x46, 0x72, 0x65, 0x65, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x10, 0xcb, 0x02, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, - 0x5f, 0x42, 0x75, 0x79, 0x42, 0x61, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x65, - 0x72, 0x74, 0x10, 0xcc, 0x02, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, - 0x5f, 0x51, 0x75, 0x69, 0x63, 0x6b, 0x42, 0x75, 0x79, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xcd, - 0x02, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x48, 0x65, 0x72, - 0x6f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x65, 0x4c, 0x69, 0x6b, 0x65, 0x10, 0xce, 0x02, 0x12, 0x1a, - 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xcf, 0x02, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, - 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x68, 0x6f, 0x77, 0x63, 0x61, - 0x73, 0x65, 0x45, 0x64, 0x69, 0x74, 0x6f, 0x72, 0x10, 0xd0, 0x02, 0x12, 0x18, 0x0a, 0x13, 0x44, - 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x48, 0x50, 0x4d, 0x61, 0x6e, 0x61, 0x41, 0x6c, 0x65, - 0x72, 0x74, 0x10, 0xd1, 0x02, 0x12, 0x17, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, - 0x5f, 0x47, 0x6c, 0x79, 0x70, 0x68, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xd2, 0x02, 0x12, 0x23, - 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x68, - 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, - 0x10, 0xd3, 0x02, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x50, - 0x6c, 0x61, 0x79, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x10, - 0xd4, 0x02, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x43, 0x4e, 0x59, 0x32, 0x30, 0x31, 0x35, 0x43, 0x6d, 0x64, 0x10, 0xd5, 0x02, - 0x12, 0x23, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x46, 0x69, 0x6c, 0x6c, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x53, 0x6c, 0x6f, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, 0x42, 0x6f, - 0x74, 0x73, 0x10, 0xd6, 0x02, 0x12, 0x15, 0x0a, 0x10, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, - 0x5f, 0x44, 0x65, 0x6d, 0x6f, 0x48, 0x65, 0x72, 0x6f, 0x10, 0xd7, 0x02, 0x12, 0x24, 0x0a, 0x1f, - 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4c, - 0x65, 0x61, 0x72, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x64, 0x10, - 0xd8, 0x02, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x41, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x55, 0x73, 0x65, 0x10, 0xd9, 0x02, - 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x43, 0x68, 0x61, 0x6c, - 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x10, 0xda, 0x02, 0x12, 0x1c, - 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, - 0x6e, 0x67, 0x65, 0x52, 0x65, 0x72, 0x6f, 0x6c, 0x6c, 0x10, 0xdb, 0x02, 0x12, 0x18, 0x0a, 0x13, - 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x42, - 0x75, 0x66, 0x66, 0x10, 0xdc, 0x02, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, - 0x4d, 0x5f, 0x43, 0x6f, 0x69, 0x6e, 0x57, 0x61, 0x67, 0x65, 0x72, 0x10, 0xdd, 0x02, 0x12, 0x1a, - 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x10, 0xde, 0x02, 0x12, 0x14, 0x0a, 0x0f, 0x44, 0x4f, - 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x58, 0x50, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xdf, 0x02, - 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x54, 0x69, 0x70, 0x10, 0xe1, 0x02, 0x12, 0x17, 0x0a, - 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x4b, 0x69, 0x6c, 0x6c, 0x4d, 0x79, 0x48, - 0x65, 0x72, 0x6f, 0x10, 0xe3, 0x02, 0x12, 0x18, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, - 0x4d, 0x5f, 0x51, 0x75, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0xe4, 0x02, - 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x54, 0x6f, 0x67, 0x67, - 0x6c, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x10, 0xe5, 0x02, 0x12, - 0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x53, 0x70, 0x65, 0x63, 0x69, - 0x61, 0x6c, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x10, 0xe6, 0x02, 0x12, 0x1f, 0x0a, 0x1a, - 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x4b, 0x69, 0x6c, 0x6c, 0x63, 0x61, 0x6d, 0x44, - 0x61, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x61, 0x6b, 0x65, 0x6e, 0x10, 0xe7, 0x02, 0x12, 0x25, 0x0a, - 0x20, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x65, 0x6d, - 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x10, 0xe8, 0x02, 0x12, 0x24, 0x0a, 0x1f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, - 0x53, 0x65, 0x74, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x57, 0x61, 0x72, 0x64, 0x50, 0x6c, - 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0xe9, 0x02, 0x12, 0x15, 0x0a, 0x10, 0x44, 0x4f, - 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x69, 0x63, 0x65, 0x10, 0xea, - 0x02, 0x12, 0x15, 0x0a, 0x10, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x46, 0x6c, 0x69, - 0x70, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0xeb, 0x02, 0x12, 0x23, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, - 0x5f, 0x43, 0x4d, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x53, - 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x10, 0xec, 0x02, 0x12, 0x1c, 0x0a, - 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x4d, 0x61, 0x6b, 0x65, 0x54, 0x65, 0x61, - 0x6d, 0x43, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x10, 0xed, 0x02, 0x12, 0x1b, 0x0a, 0x16, 0x44, - 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x43, 0x6f, 0x69, 0x6e, 0x57, 0x61, 0x67, 0x65, 0x72, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x10, 0xee, 0x02, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, - 0x5f, 0x43, 0x4d, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x57, 0x61, 0x67, 0x65, 0x72, 0x10, 0xef, 0x02, - 0x12, 0x21, 0x0a, 0x1c, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x44, 0x69, 0x73, 0x6d, - 0x69, 0x73, 0x73, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x73, - 0x10, 0xf0, 0x02, 0x12, 0x26, 0x0a, 0x21, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x48, - 0x65, 0x6c, 0x70, 0x54, 0x69, 0x70, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x10, 0xf1, 0x02, 0x12, 0x20, 0x0a, 0x1b, 0x44, - 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x48, 0x61, 0x6c, 0x74, 0x10, 0xf2, 0x02, 0x12, 0x21, 0x0a, - 0x1c, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x42, 0x75, 0x6c, 0x6b, 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x10, 0xf3, 0x02, - 0x12, 0x27, 0x0a, 0x22, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x41, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x44, 0x72, 0x61, 0x66, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x41, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x10, 0xf4, 0x02, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, - 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x47, 0x75, 0x69, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xf5, 0x02, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, - 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x47, 0x75, 0x69, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x10, 0xf6, 0x02, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, - 0x5f, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x10, 0xf7, 0x02, - 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x53, 0x61, 0x6c, 0x75, - 0x74, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x10, 0xf8, 0x02, 0x12, 0x17, 0x0a, 0x12, 0x44, - 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x53, 0x70, 0x72, 0x61, 0x79, 0x57, 0x68, 0x65, 0x65, - 0x6c, 0x10, 0xf9, 0x02, 0x12, 0x15, 0x0a, 0x10, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, - 0x54, 0x69, 0x70, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xfa, 0x02, 0x12, 0x1f, 0x0a, 0x1a, 0x44, - 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x54, 0x65, 0x6c, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xfb, 0x02, 0x12, 0x17, 0x0a, 0x12, - 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x52, 0x61, 0x64, 0x61, 0x72, 0x41, 0x6c, 0x65, - 0x72, 0x74, 0x10, 0xfc, 0x02, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, - 0x5f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x65, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, - 0x10, 0xfd, 0x02, 0x12, 0x20, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x53, - 0x65, 0x74, 0x43, 0x61, 0x76, 0x65, 0x72, 0x6e, 0x4d, 0x61, 0x70, 0x56, 0x61, 0x72, 0x69, 0x61, - 0x6e, 0x74, 0x10, 0xfe, 0x02, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, - 0x5f, 0x50, 0x61, 0x75, 0x73, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x10, - 0xff, 0x02, 0x12, 0x27, 0x0a, 0x22, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x56, 0x65, - 0x72, 0x73, 0x75, 0x73, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x10, 0x80, 0x03, 0x12, 0x19, 0x0a, 0x14, 0x44, - 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x6f, 0x75, - 0x6e, 0x74, 0x79, 0x10, 0x81, 0x03, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, - 0x4d, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x74, 0x79, 0x43, 0x61, - 0x6e, 0x63, 0x65, 0x6c, 0x10, 0x82, 0x03, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, - 0x43, 0x4d, 0x5f, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x6c, 0x6f, 0x74, - 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0x84, 0x03, 0x12, 0x25, 0x0a, 0x20, 0x44, 0x4f, 0x54, 0x41, - 0x5f, 0x43, 0x4d, 0x5f, 0x41, 0x64, 0x64, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x61, 0x74, 0x63, 0x68, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x10, 0x85, 0x03, 0x12, - 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x41, 0x67, 0x68, 0x73, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0x86, 0x03, 0x12, 0x17, 0x0a, - 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x50, 0x65, 0x72, 0x66, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x10, 0x87, 0x03, 0x12, 0x25, 0x0a, 0x20, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, - 0x4d, 0x5f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x54, 0x69, 0x70, 0x73, - 0x5f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x10, 0x89, 0x03, 0x12, 0x18, 0x0a, - 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x43, 0x68, 0x61, 0x74, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x10, 0x8a, 0x03, 0x12, 0x2a, 0x0a, 0x25, 0x44, 0x4f, 0x54, 0x41, 0x5f, - 0x43, 0x4d, 0x5f, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, - 0x10, 0x8b, 0x03, 0x12, 0x29, 0x0a, 0x24, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x41, - 0x64, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x10, 0x8c, 0x03, 0x12, 0x1d, - 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x4e, 0x65, 0x75, 0x74, 0x72, 0x61, - 0x6c, 0x43, 0x61, 0x6d, 0x70, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0x8d, 0x03, 0x12, 0x19, 0x0a, - 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x44, 0x75, 0x65, 0x6c, 0x41, 0x63, 0x63, - 0x65, 0x70, 0x74, 0x65, 0x64, 0x10, 0x8e, 0x03, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, - 0x5f, 0x43, 0x4d, 0x5f, 0x43, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x4e, 0x65, 0x75, 0x74, 0x72, 0x61, - 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x10, 0x8f, 0x03, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, - 0x5f, 0x43, 0x4d, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x72, 0x61, 0x66, 0x74, 0x50, - 0x69, 0x63, 0x6b, 0x10, 0xa0, 0x06, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, - 0x4d, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x72, 0x61, 0x66, 0x74, 0x53, 0x75, 0x67, - 0x67, 0x65, 0x73, 0x74, 0x10, 0xa1, 0x06, 0x12, 0x22, 0x0a, 0x1d, 0x44, 0x4f, 0x54, 0x41, 0x5f, - 0x43, 0x4d, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x72, 0x61, 0x66, 0x74, 0x50, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x10, 0xa2, 0x06, 0x12, 0x22, 0x0a, 0x1d, 0x44, - 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x72, 0x61, - 0x66, 0x74, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x54, 0x65, 0x61, 0x6d, 0x10, 0xa3, 0x06, 0x12, - 0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x43, 0x68, 0x61, 0x74, 0x57, - 0x68, 0x65, 0x65, 0x6c, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xa4, 0x06, 0x12, 0x19, 0x0a, 0x14, - 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x41, - 0x6c, 0x65, 0x72, 0x74, 0x10, 0xa5, 0x06, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, - 0x43, 0x4d, 0x5f, 0x41, 0x6c, 0x6c, 0x79, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x41, 0x6c, - 0x65, 0x72, 0x74, 0x10, 0xa6, 0x06, 0x12, 0x17, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, - 0x4d, 0x5f, 0x47, 0x69, 0x66, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x10, 0xa7, 0x06, 0x12, - 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x47, 0x69, 0x66, 0x74, 0x45, - 0x76, 0x65, 0x72, 0x79, 0x6f, 0x6e, 0x65, 0x10, 0xa8, 0x06, 0x12, 0x28, 0x0a, 0x23, 0x44, 0x4f, - 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x4f, 0x76, 0x65, 0x72, - 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x73, 0x10, 0xa9, 0x06, 0x12, 0x17, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, - 0x46, 0x61, 0x63, 0x65, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xaa, 0x06, 0x12, 0x18, 0x0a, - 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x49, 0x6e, 0x6e, 0x61, 0x74, 0x65, 0x41, - 0x6c, 0x65, 0x72, 0x74, 0x10, 0xab, 0x06, 0x42, 0x25, 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x62, 0x75, 0x66, 0x66, 0x2f, 0x6d, - 0x61, 0x6e, 0x74, 0x61, 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x3b, 0x64, 0x6f, 0x74, 0x61, + 0x69, 0x6e, 0x67, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x10, 0xc8, 0x02, 0x12, 0x33, + 0x0a, 0x2e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, + 0x61, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x69, 0x6e, 0x67, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x64, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x10, 0xc9, 0x02, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x45, + 0x6e, 0x65, 0x6d, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xca, 0x02, + 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x46, 0x72, 0x65, 0x65, + 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x10, 0xcb, 0x02, 0x12, 0x1e, 0x0a, 0x19, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x42, 0x75, 0x79, 0x42, 0x61, 0x63, 0x6b, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xcc, 0x02, 0x12, 0x1a, 0x0a, 0x15, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x51, 0x75, 0x69, 0x63, 0x6b, 0x42, 0x75, 0x79, + 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xcd, 0x02, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, + 0x5f, 0x43, 0x4d, 0x5f, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x65, 0x4c, 0x69, + 0x6b, 0x65, 0x10, 0xce, 0x02, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, + 0x5f, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xcf, + 0x02, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x54, 0x65, 0x61, + 0x6d, 0x53, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x45, 0x64, 0x69, 0x74, 0x6f, 0x72, 0x10, + 0xd0, 0x02, 0x12, 0x18, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x48, 0x50, + 0x4d, 0x61, 0x6e, 0x61, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xd1, 0x02, 0x12, 0x17, 0x0a, 0x12, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x47, 0x6c, 0x79, 0x70, 0x68, 0x41, 0x6c, 0x65, + 0x72, 0x74, 0x10, 0xd2, 0x02, 0x12, 0x23, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, + 0x5f, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x10, 0xd3, 0x02, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, + 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x68, + 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x10, 0xd4, 0x02, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, + 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x4e, 0x59, 0x32, 0x30, 0x31, + 0x35, 0x43, 0x6d, 0x64, 0x10, 0xd5, 0x02, 0x12, 0x23, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x43, 0x4d, 0x5f, 0x46, 0x69, 0x6c, 0x6c, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x53, 0x6c, 0x6f, 0x74, + 0x73, 0x57, 0x69, 0x74, 0x68, 0x42, 0x6f, 0x74, 0x73, 0x10, 0xd6, 0x02, 0x12, 0x15, 0x0a, 0x10, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x44, 0x65, 0x6d, 0x6f, 0x48, 0x65, 0x72, 0x6f, + 0x10, 0xd7, 0x02, 0x12, 0x24, 0x0a, 0x1f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x41, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x54, + 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x64, 0x10, 0xd8, 0x02, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, + 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x55, 0x73, 0x65, 0x10, 0xd9, 0x02, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x43, 0x4d, 0x5f, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x10, 0xda, 0x02, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, + 0x5f, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x72, 0x6f, 0x6c, 0x6c, + 0x10, 0xdb, 0x02, 0x12, 0x18, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x43, + 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x42, 0x75, 0x66, 0x66, 0x10, 0xdc, 0x02, 0x12, 0x16, 0x0a, + 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x43, 0x6f, 0x69, 0x6e, 0x57, 0x61, 0x67, + 0x65, 0x72, 0x10, 0xdd, 0x02, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, + 0x5f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x10, 0xde, + 0x02, 0x12, 0x14, 0x0a, 0x0f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x58, 0x50, 0x41, + 0x6c, 0x65, 0x72, 0x74, 0x10, 0xdf, 0x02, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x43, 0x4d, 0x5f, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x54, 0x69, + 0x70, 0x10, 0xe1, 0x02, 0x12, 0x17, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, + 0x4b, 0x69, 0x6c, 0x6c, 0x4d, 0x79, 0x48, 0x65, 0x72, 0x6f, 0x10, 0xe3, 0x02, 0x12, 0x18, 0x0a, + 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x51, 0x75, 0x65, 0x73, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x10, 0xe4, 0x02, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x43, 0x4d, 0x5f, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x61, 0x74, 0x74, + 0x61, 0x63, 0x6b, 0x10, 0xe5, 0x02, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, + 0x4d, 0x5f, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x10, 0xe6, 0x02, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x4b, + 0x69, 0x6c, 0x6c, 0x63, 0x61, 0x6d, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x61, 0x6b, 0x65, + 0x6e, 0x10, 0xe7, 0x02, 0x12, 0x25, 0x0a, 0x20, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, + 0x53, 0x65, 0x74, 0x45, 0x6e, 0x65, 0x6d, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, + 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xe8, 0x02, 0x12, 0x24, 0x0a, 0x1f, 0x44, + 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x53, 0x65, 0x74, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, + 0x64, 0x57, 0x61, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0xe9, + 0x02, 0x12, 0x15, 0x0a, 0x10, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x52, 0x6f, 0x6c, + 0x6c, 0x44, 0x69, 0x63, 0x65, 0x10, 0xea, 0x02, 0x12, 0x15, 0x0a, 0x10, 0x44, 0x4f, 0x54, 0x41, + 0x5f, 0x43, 0x4d, 0x5f, 0x46, 0x6c, 0x69, 0x70, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0xeb, 0x02, 0x12, + 0x23, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x10, 0xec, 0x02, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, + 0x4d, 0x61, 0x6b, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x43, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x10, + 0xed, 0x02, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x43, 0x6f, + 0x69, 0x6e, 0x57, 0x61, 0x67, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x10, 0xee, 0x02, 0x12, + 0x16, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x57, + 0x61, 0x67, 0x65, 0x72, 0x10, 0xef, 0x02, 0x12, 0x21, 0x0a, 0x1c, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x43, 0x4d, 0x5f, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, + 0x74, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x73, 0x10, 0xf0, 0x02, 0x12, 0x26, 0x0a, 0x21, 0x44, 0x4f, + 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x48, 0x65, 0x6c, 0x70, 0x54, 0x69, 0x70, 0x53, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x10, + 0xf1, 0x02, 0x12, 0x20, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x48, 0x61, 0x6c, + 0x74, 0x10, 0xf2, 0x02, 0x12, 0x21, 0x0a, 0x1c, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x75, 0x6c, 0x6b, 0x43, 0x6f, 0x6d, 0x62, 0x61, + 0x74, 0x4c, 0x6f, 0x67, 0x10, 0xf3, 0x02, 0x12, 0x27, 0x0a, 0x22, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x43, 0x4d, 0x5f, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x44, 0x72, 0x61, 0x66, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x10, 0xf4, 0x02, + 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x47, 0x75, 0x69, 0x64, + 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xf5, 0x02, + 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x47, 0x75, 0x69, 0x64, + 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x10, 0xf6, 0x02, 0x12, 0x19, 0x0a, 0x14, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x10, 0xf7, 0x02, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x43, 0x4d, 0x5f, 0x53, 0x61, 0x6c, 0x75, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x10, + 0xf8, 0x02, 0x12, 0x17, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x53, 0x70, + 0x72, 0x61, 0x79, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x10, 0xf9, 0x02, 0x12, 0x15, 0x0a, 0x10, 0x44, + 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x54, 0x69, 0x70, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, + 0xfa, 0x02, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, + 0x10, 0xfb, 0x02, 0x12, 0x17, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x52, + 0x61, 0x64, 0x61, 0x72, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xfc, 0x02, 0x12, 0x1c, 0x0a, 0x17, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x54, 0x72, + 0x65, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xfd, 0x02, 0x12, 0x20, 0x0a, 0x1b, 0x44, 0x4f, + 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x53, 0x65, 0x74, 0x43, 0x61, 0x76, 0x65, 0x72, 0x6e, 0x4d, + 0x61, 0x70, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x10, 0xfe, 0x02, 0x12, 0x1b, 0x0a, 0x16, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x50, 0x61, 0x75, 0x73, 0x65, 0x47, 0x61, 0x6d, + 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x10, 0xff, 0x02, 0x12, 0x27, 0x0a, 0x22, 0x44, 0x4f, 0x54, + 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x56, 0x65, 0x72, 0x73, 0x75, 0x73, 0x53, 0x63, 0x65, 0x6e, 0x65, + 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x10, + 0x80, 0x03, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x74, 0x79, 0x10, 0x81, 0x03, 0x12, 0x1f, 0x0a, + 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, + 0x6f, 0x75, 0x6e, 0x74, 0x79, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x10, 0x82, 0x03, 0x12, 0x1f, + 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x49, + 0x74, 0x65, 0x6d, 0x53, 0x6c, 0x6f, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0x84, 0x03, 0x12, + 0x25, 0x0a, 0x20, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x41, 0x64, 0x64, 0x4f, 0x76, + 0x65, 0x72, 0x77, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x72, + 0x6b, 0x65, 0x72, 0x10, 0x85, 0x03, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, + 0x4d, 0x5f, 0x41, 0x67, 0x68, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x41, 0x6c, 0x65, 0x72, + 0x74, 0x10, 0x86, 0x03, 0x12, 0x17, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, + 0x50, 0x65, 0x72, 0x66, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x87, 0x03, 0x12, 0x25, 0x0a, + 0x20, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, + 0x75, 0x61, 0x6c, 0x54, 0x69, 0x70, 0x73, 0x5f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, + 0x65, 0x10, 0x89, 0x03, 0x12, 0x18, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, + 0x43, 0x68, 0x61, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x10, 0x8a, 0x03, 0x12, 0x2a, + 0x0a, 0x25, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x10, 0x8b, 0x03, 0x12, 0x29, 0x0a, 0x24, 0x44, 0x4f, + 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x61, 0x72, 0x6b, + 0x65, 0x72, 0x10, 0x8c, 0x03, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, + 0x5f, 0x4e, 0x65, 0x75, 0x74, 0x72, 0x61, 0x6c, 0x43, 0x61, 0x6d, 0x70, 0x41, 0x6c, 0x65, 0x72, + 0x74, 0x10, 0x8d, 0x03, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, + 0x44, 0x75, 0x65, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x10, 0x8e, 0x03, 0x12, + 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x43, 0x68, 0x6f, 0x6f, 0x73, + 0x65, 0x4e, 0x65, 0x75, 0x74, 0x72, 0x61, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x10, 0x8f, 0x03, 0x12, + 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x44, 0x72, 0x61, 0x66, 0x74, 0x50, 0x69, 0x63, 0x6b, 0x10, 0xa0, 0x06, 0x12, 0x1f, 0x0a, + 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, + 0x72, 0x61, 0x66, 0x74, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x10, 0xa1, 0x06, 0x12, 0x22, + 0x0a, 0x1d, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x44, 0x72, 0x61, 0x66, 0x74, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x10, + 0xa2, 0x06, 0x12, 0x22, 0x0a, 0x1d, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x44, 0x72, 0x61, 0x66, 0x74, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x54, + 0x65, 0x61, 0x6d, 0x10, 0xa3, 0x06, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, + 0x4d, 0x5f, 0x43, 0x68, 0x61, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x41, 0x6c, 0x65, 0x72, 0x74, + 0x10, 0xa4, 0x06, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x41, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xa5, 0x06, 0x12, 0x1d, + 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x41, 0x6c, 0x6c, 0x79, 0x41, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xa6, 0x06, 0x12, 0x17, 0x0a, + 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x47, 0x69, 0x66, 0x74, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x10, 0xa7, 0x06, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, + 0x4d, 0x5f, 0x47, 0x69, 0x66, 0x74, 0x45, 0x76, 0x65, 0x72, 0x79, 0x6f, 0x6e, 0x65, 0x10, 0xa8, + 0x06, 0x12, 0x28, 0x0a, 0x23, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x53, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x10, 0xa9, 0x06, 0x12, 0x17, 0x0a, 0x12, 0x44, + 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x46, 0x61, 0x63, 0x65, 0x74, 0x41, 0x6c, 0x65, 0x72, + 0x74, 0x10, 0xaa, 0x06, 0x12, 0x18, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, + 0x49, 0x6e, 0x6e, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xab, 0x06, 0x12, 0x1e, + 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x49, 0x44, 0x10, 0xac, 0x06, 0x42, 0x25, + 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x6f, 0x74, + 0x61, 0x62, 0x75, 0x66, 0x66, 0x2f, 0x6d, 0x61, 0x6e, 0x74, 0x61, 0x2f, 0x64, 0x6f, 0x74, 0x61, + 0x3b, 0x64, 0x6f, 0x74, 0x61, } var ( @@ -6770,7 +6827,7 @@ func file_dota_clientmessages_proto_rawDescGZIP() []byte { } var file_dota_clientmessages_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_dota_clientmessages_proto_msgTypes = make([]protoimpl.MessageInfo, 95) +var file_dota_clientmessages_proto_msgTypes = make([]protoimpl.MessageInfo, 96) var file_dota_clientmessages_proto_goTypes = []interface{}{ (EDotaClientMessages)(0), // 0: dota.EDotaClientMessages (CDOTAClientMsg_UnitsAutoAttackMode_EMode)(0), // 1: dota.CDOTAClientMsg_UnitsAutoAttackMode.EMode @@ -6870,39 +6927,40 @@ var file_dota_clientmessages_proto_goTypes = []interface{}{ (*CDOTAClientMsg_SelectOverworldTokenRewards)(nil), // 95: dota.CDOTAClientMsg_SelectOverworldTokenRewards (*CDOTAClientMsg_FacetAlert)(nil), // 96: dota.CDOTAClientMsg_FacetAlert (*CDOTAClientMsg_InnateAlert)(nil), // 97: dota.CDOTAClientMsg_InnateAlert - (*CDOTAMsg_LocationPing)(nil), // 98: dota.CDOTAMsg_LocationPing - (*CDOTAMsg_ItemAlert)(nil), // 99: dota.CDOTAMsg_ItemAlert - (*CDOTAMsg_MapLine)(nil), // 100: dota.CDOTAMsg_MapLine - (*CDOTAMsg_WorldLine)(nil), // 101: dota.CDOTAMsg_WorldLine - (*CDOTAMsg_SendStatPopup)(nil), // 102: dota.CDOTAMsg_SendStatPopup - (*CDOTAMsg_DismissAllStatPopups)(nil), // 103: dota.CDOTAMsg_DismissAllStatPopups - (*CSOEconItem)(nil), // 104: dota.CSOEconItem - (EEvent)(0), // 105: dota.EEvent - (*CDOTAMsg_UnitOrder)(nil), // 106: dota.CDOTAMsg_UnitOrder - (EDOTAVersusScenePlayerBehavior)(0), // 107: dota.EDOTAVersusScenePlayerBehavior - (*VersusScene_PlayActivity)(nil), // 108: dota.VersusScene_PlayActivity - (*VersusScene_ChatWheel)(nil), // 109: dota.VersusScene_ChatWheel - (*VersusScene_PlaybackRate)(nil), // 110: dota.VersusScene_PlaybackRate - (EOverwatchReportReason)(0), // 111: dota.EOverwatchReportReason + (*CDOTAClientMsg_SelectOverworldID)(nil), // 98: dota.CDOTAClientMsg_SelectOverworldID + (*CDOTAMsg_LocationPing)(nil), // 99: dota.CDOTAMsg_LocationPing + (*CDOTAMsg_ItemAlert)(nil), // 100: dota.CDOTAMsg_ItemAlert + (*CDOTAMsg_MapLine)(nil), // 101: dota.CDOTAMsg_MapLine + (*CDOTAMsg_WorldLine)(nil), // 102: dota.CDOTAMsg_WorldLine + (*CDOTAMsg_SendStatPopup)(nil), // 103: dota.CDOTAMsg_SendStatPopup + (*CDOTAMsg_DismissAllStatPopups)(nil), // 104: dota.CDOTAMsg_DismissAllStatPopups + (*CSOEconItem)(nil), // 105: dota.CSOEconItem + (EEvent)(0), // 106: dota.EEvent + (*CDOTAMsg_UnitOrder)(nil), // 107: dota.CDOTAMsg_UnitOrder + (EDOTAVersusScenePlayerBehavior)(0), // 108: dota.EDOTAVersusScenePlayerBehavior + (*VersusScene_PlayActivity)(nil), // 109: dota.VersusScene_PlayActivity + (*VersusScene_ChatWheel)(nil), // 110: dota.VersusScene_ChatWheel + (*VersusScene_PlaybackRate)(nil), // 111: dota.VersusScene_PlaybackRate + (EOverwatchReportReason)(0), // 112: dota.EOverwatchReportReason } var file_dota_clientmessages_proto_depIdxs = []int32{ - 98, // 0: dota.CDOTAClientMsg_MapPing.location_ping:type_name -> dota.CDOTAMsg_LocationPing - 99, // 1: dota.CDOTAClientMsg_ItemAlert.item_alert:type_name -> dota.CDOTAMsg_ItemAlert - 100, // 2: dota.CDOTAClientMsg_MapLine.mapline:type_name -> dota.CDOTAMsg_MapLine + 99, // 0: dota.CDOTAClientMsg_MapPing.location_ping:type_name -> dota.CDOTAMsg_LocationPing + 100, // 1: dota.CDOTAClientMsg_ItemAlert.item_alert:type_name -> dota.CDOTAMsg_ItemAlert + 101, // 2: dota.CDOTAClientMsg_MapLine.mapline:type_name -> dota.CDOTAMsg_MapLine 1, // 3: dota.CDOTAClientMsg_UnitsAutoAttackMode.mode:type_name -> dota.CDOTAClientMsg_UnitsAutoAttackMode.EMode 2, // 4: dota.CDOTAClientMsg_UnitsAutoAttackMode.unit_type:type_name -> dota.CDOTAClientMsg_UnitsAutoAttackMode.EUnitType - 101, // 5: dota.CDOTAClientMsg_WorldLine.worldline:type_name -> dota.CDOTAMsg_WorldLine - 102, // 6: dota.CDOTAClientMsg_SendStatPopup.statpopup:type_name -> dota.CDOTAMsg_SendStatPopup - 103, // 7: dota.CDOTAClientMsg_DismissAllStatPopups.dismissallmsg:type_name -> dota.CDOTAMsg_DismissAllStatPopups + 102, // 5: dota.CDOTAClientMsg_WorldLine.worldline:type_name -> dota.CDOTAMsg_WorldLine + 103, // 6: dota.CDOTAClientMsg_SendStatPopup.statpopup:type_name -> dota.CDOTAMsg_SendStatPopup + 104, // 7: dota.CDOTAClientMsg_DismissAllStatPopups.dismissallmsg:type_name -> dota.CDOTAMsg_DismissAllStatPopups 30, // 8: dota.CDOTAClientMsg_UpdateQuickBuy.items:type_name -> dota.CDOTAClientMsg_UpdateQuickBuyItem - 104, // 9: dota.CDOTAClientMsg_DemoHero.item_data:type_name -> dota.CSOEconItem - 105, // 10: dota.CDOTAClientMsg_ChallengeReroll.event_id:type_name -> dota.EEvent - 106, // 11: dota.CDOTAClientMsg_ExecuteOrders.orders:type_name -> dota.CDOTAMsg_UnitOrder - 107, // 12: dota.CDOTAClientMsg_VersusScene_PlayerBehavior.behavior:type_name -> dota.EDOTAVersusScenePlayerBehavior - 108, // 13: dota.CDOTAClientMsg_VersusScene_PlayerBehavior.play_activity:type_name -> dota.VersusScene_PlayActivity - 109, // 14: dota.CDOTAClientMsg_VersusScene_PlayerBehavior.chat_wheel:type_name -> dota.VersusScene_ChatWheel - 110, // 15: dota.CDOTAClientMsg_VersusScene_PlayerBehavior.playback_rate:type_name -> dota.VersusScene_PlaybackRate - 111, // 16: dota.CDOTAClientMsg_AddOverwatchReportMarker.reason:type_name -> dota.EOverwatchReportReason + 105, // 9: dota.CDOTAClientMsg_DemoHero.item_data:type_name -> dota.CSOEconItem + 106, // 10: dota.CDOTAClientMsg_ChallengeReroll.event_id:type_name -> dota.EEvent + 107, // 11: dota.CDOTAClientMsg_ExecuteOrders.orders:type_name -> dota.CDOTAMsg_UnitOrder + 108, // 12: dota.CDOTAClientMsg_VersusScene_PlayerBehavior.behavior:type_name -> dota.EDOTAVersusScenePlayerBehavior + 109, // 13: dota.CDOTAClientMsg_VersusScene_PlayerBehavior.play_activity:type_name -> dota.VersusScene_PlayActivity + 110, // 14: dota.CDOTAClientMsg_VersusScene_PlayerBehavior.chat_wheel:type_name -> dota.VersusScene_ChatWheel + 111, // 15: dota.CDOTAClientMsg_VersusScene_PlayerBehavior.playback_rate:type_name -> dota.VersusScene_PlaybackRate + 112, // 16: dota.CDOTAClientMsg_AddOverwatchReportMarker.reason:type_name -> dota.EOverwatchReportReason 85, // 17: dota.CDOTAClientMsg_ContextualTips_Subscribe.tips:type_name -> dota.CDOTAClientMsg_ContextualTips_Subscribe_Entry 18, // [18:18] is the sub-list for method output_type 18, // [18:18] is the sub-list for method input_type @@ -8060,6 +8118,18 @@ func file_dota_clientmessages_proto_init() { return nil } } + file_dota_clientmessages_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CDOTAClientMsg_SelectOverworldID); 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{ @@ -8067,7 +8137,7 @@ func file_dota_clientmessages_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_dota_clientmessages_proto_rawDesc, NumEnums: 3, - NumMessages: 95, + NumMessages: 96, NumExtensions: 0, NumServices: 0, }, diff --git a/dota/dota_clientmessages.proto b/dota/dota_clientmessages.proto index e310f04..cfabeb8 100644 --- a/dota/dota_clientmessages.proto +++ b/dota/dota_clientmessages.proto @@ -113,6 +113,7 @@ enum EDotaClientMessages { DOTA_CM_SelectOverworldTokenRewards = 809; DOTA_CM_FacetAlert = 810; DOTA_CM_InnateAlert = 811; + DOTA_CM_SelectOverworldID = 812; } message CDOTAClientMsg_MapPing { @@ -233,7 +234,7 @@ message CDOTAClientMsg_RequestGraphUpdate { message CDOTAClientMsg_ChatWheel { optional uint32 chat_message_id = 1; - optional uint32 param_hero_id = 2; + optional int32 param_hero_id = 2; optional uint32 emoticon_id = 3; } @@ -328,7 +329,7 @@ message CDOTAClientMsg_ChallengeReroll { optional EEvent event_id = 1; optional uint32 slot_id = 2; optional uint32 sequence_id = 3; - optional uint32 hero_id = 4; + optional int32 hero_id = 4; } message CDOTAClientMsg_CoinWager { @@ -454,8 +455,8 @@ message CDOTAClientMsg_GuideSelected { } message CDOTAClientMsg_DamageReport { - optional uint32 target_hero_id = 1; - optional uint32 source_hero_id = 2; + optional int32 target_hero_id = 1; + optional int32 source_hero_id = 2; optional int32 damage_amount = 3; optional bool broadcast = 4; } @@ -615,3 +616,7 @@ message CDOTAClientMsg_InnateAlert { optional uint32 ability_entindex = 1; optional bool ctrl_held = 2; } + +message CDOTAClientMsg_SelectOverworldID { + optional uint32 overworld_id = 1; +} diff --git a/dota/dota_fighting_game_p2p_messages.pb.go b/dota/dota_fighting_game_p2p_messages.pb.go new file mode 100644 index 0000000..316537c --- /dev/null +++ b/dota/dota_fighting_game_p2p_messages.pb.go @@ -0,0 +1,791 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc v3.21.5 +// source: dota_fighting_game_p2p_messages.proto + +package dota + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type CP2P_FightingGame_GameData_EState int32 + +const ( + CP2P_FightingGame_GameData_k_ChoosingCharacter CP2P_FightingGame_GameData_EState = 1 + CP2P_FightingGame_GameData_k_Loaded CP2P_FightingGame_GameData_EState = 2 + CP2P_FightingGame_GameData_k_Fighting CP2P_FightingGame_GameData_EState = 3 +) + +// Enum value maps for CP2P_FightingGame_GameData_EState. +var ( + CP2P_FightingGame_GameData_EState_name = map[int32]string{ + 1: "k_ChoosingCharacter", + 2: "k_Loaded", + 3: "k_Fighting", + } + CP2P_FightingGame_GameData_EState_value = map[string]int32{ + "k_ChoosingCharacter": 1, + "k_Loaded": 2, + "k_Fighting": 3, + } +) + +func (x CP2P_FightingGame_GameData_EState) Enum() *CP2P_FightingGame_GameData_EState { + p := new(CP2P_FightingGame_GameData_EState) + *p = x + return p +} + +func (x CP2P_FightingGame_GameData_EState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CP2P_FightingGame_GameData_EState) Descriptor() protoreflect.EnumDescriptor { + return file_dota_fighting_game_p2p_messages_proto_enumTypes[0].Descriptor() +} + +func (CP2P_FightingGame_GameData_EState) Type() protoreflect.EnumType { + return &file_dota_fighting_game_p2p_messages_proto_enumTypes[0] +} + +func (x CP2P_FightingGame_GameData_EState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *CP2P_FightingGame_GameData_EState) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = CP2P_FightingGame_GameData_EState(num) + return nil +} + +// Deprecated: Use CP2P_FightingGame_GameData_EState.Descriptor instead. +func (CP2P_FightingGame_GameData_EState) EnumDescriptor() ([]byte, []int) { + return file_dota_fighting_game_p2p_messages_proto_rawDescGZIP(), []int{3, 0} +} + +type CMsgFightingGame_GameData_Fighting struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + LastAckedFrame *int32 `protobuf:"varint,1,opt,name=last_acked_frame,json=lastAckedFrame" json:"last_acked_frame,omitempty"` + PlayerId *uint32 `protobuf:"varint,2,opt,name=player_id,json=playerId" json:"player_id,omitempty"` + LastCrcFrame *int32 `protobuf:"varint,3,opt,name=last_crc_frame,json=lastCrcFrame" json:"last_crc_frame,omitempty"` + LastCrcValue *uint32 `protobuf:"varint,4,opt,name=last_crc_value,json=lastCrcValue" json:"last_crc_value,omitempty"` + Now *float32 `protobuf:"fixed32,5,opt,name=now" json:"now,omitempty"` + PeerAckTime *float32 `protobuf:"fixed32,6,opt,name=peer_ack_time,json=peerAckTime" json:"peer_ack_time,omitempty"` + InputStartFrame *int32 `protobuf:"varint,7,opt,name=input_start_frame,json=inputStartFrame" json:"input_start_frame,omitempty"` + InputSample []*CMsgFightingGame_GameData_Fighting_InputSample `protobuf:"bytes,8,rep,name=input_sample,json=inputSample" json:"input_sample,omitempty"` +} + +func (x *CMsgFightingGame_GameData_Fighting) Reset() { + *x = CMsgFightingGame_GameData_Fighting{} + if protoimpl.UnsafeEnabled { + mi := &file_dota_fighting_game_p2p_messages_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgFightingGame_GameData_Fighting) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgFightingGame_GameData_Fighting) ProtoMessage() {} + +func (x *CMsgFightingGame_GameData_Fighting) ProtoReflect() protoreflect.Message { + mi := &file_dota_fighting_game_p2p_messages_proto_msgTypes[0] + 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 CMsgFightingGame_GameData_Fighting.ProtoReflect.Descriptor instead. +func (*CMsgFightingGame_GameData_Fighting) Descriptor() ([]byte, []int) { + return file_dota_fighting_game_p2p_messages_proto_rawDescGZIP(), []int{0} +} + +func (x *CMsgFightingGame_GameData_Fighting) GetLastAckedFrame() int32 { + if x != nil && x.LastAckedFrame != nil { + return *x.LastAckedFrame + } + return 0 +} + +func (x *CMsgFightingGame_GameData_Fighting) GetPlayerId() uint32 { + if x != nil && x.PlayerId != nil { + return *x.PlayerId + } + return 0 +} + +func (x *CMsgFightingGame_GameData_Fighting) GetLastCrcFrame() int32 { + if x != nil && x.LastCrcFrame != nil { + return *x.LastCrcFrame + } + return 0 +} + +func (x *CMsgFightingGame_GameData_Fighting) GetLastCrcValue() uint32 { + if x != nil && x.LastCrcValue != nil { + return *x.LastCrcValue + } + return 0 +} + +func (x *CMsgFightingGame_GameData_Fighting) GetNow() float32 { + if x != nil && x.Now != nil { + return *x.Now + } + return 0 +} + +func (x *CMsgFightingGame_GameData_Fighting) GetPeerAckTime() float32 { + if x != nil && x.PeerAckTime != nil { + return *x.PeerAckTime + } + return 0 +} + +func (x *CMsgFightingGame_GameData_Fighting) GetInputStartFrame() int32 { + if x != nil && x.InputStartFrame != nil { + return *x.InputStartFrame + } + return 0 +} + +func (x *CMsgFightingGame_GameData_Fighting) GetInputSample() []*CMsgFightingGame_GameData_Fighting_InputSample { + if x != nil { + return x.InputSample + } + return nil +} + +type CMsgFightingGame_GameData_CharacterSelect struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CursorIndex *uint32 `protobuf:"varint,1,opt,name=cursor_index,json=cursorIndex" json:"cursor_index,omitempty"` + SelectedHeroId *int32 `protobuf:"varint,2,opt,name=selected_hero_id,json=selectedHeroId" json:"selected_hero_id,omitempty"` + SelectedStyle *uint32 `protobuf:"varint,3,opt,name=selected_style,json=selectedStyle" json:"selected_style,omitempty"` + EconItemRefs []*CMsgFightingGame_GameData_CharacterSelect_Item `protobuf:"bytes,4,rep,name=econ_item_refs,json=econItemRefs" json:"econ_item_refs,omitempty"` + MessageAck *int64 `protobuf:"varint,5,opt,name=message_ack,json=messageAck" json:"message_ack,omitempty"` + ConfirmedStyle *bool `protobuf:"varint,6,opt,name=confirmed_style,json=confirmedStyle" json:"confirmed_style,omitempty"` +} + +func (x *CMsgFightingGame_GameData_CharacterSelect) Reset() { + *x = CMsgFightingGame_GameData_CharacterSelect{} + if protoimpl.UnsafeEnabled { + mi := &file_dota_fighting_game_p2p_messages_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgFightingGame_GameData_CharacterSelect) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgFightingGame_GameData_CharacterSelect) ProtoMessage() {} + +func (x *CMsgFightingGame_GameData_CharacterSelect) ProtoReflect() protoreflect.Message { + mi := &file_dota_fighting_game_p2p_messages_proto_msgTypes[1] + 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 CMsgFightingGame_GameData_CharacterSelect.ProtoReflect.Descriptor instead. +func (*CMsgFightingGame_GameData_CharacterSelect) Descriptor() ([]byte, []int) { + return file_dota_fighting_game_p2p_messages_proto_rawDescGZIP(), []int{1} +} + +func (x *CMsgFightingGame_GameData_CharacterSelect) GetCursorIndex() uint32 { + if x != nil && x.CursorIndex != nil { + return *x.CursorIndex + } + return 0 +} + +func (x *CMsgFightingGame_GameData_CharacterSelect) GetSelectedHeroId() int32 { + if x != nil && x.SelectedHeroId != nil { + return *x.SelectedHeroId + } + return 0 +} + +func (x *CMsgFightingGame_GameData_CharacterSelect) GetSelectedStyle() uint32 { + if x != nil && x.SelectedStyle != nil { + return *x.SelectedStyle + } + return 0 +} + +func (x *CMsgFightingGame_GameData_CharacterSelect) GetEconItemRefs() []*CMsgFightingGame_GameData_CharacterSelect_Item { + if x != nil { + return x.EconItemRefs + } + return nil +} + +func (x *CMsgFightingGame_GameData_CharacterSelect) GetMessageAck() int64 { + if x != nil && x.MessageAck != nil { + return *x.MessageAck + } + return 0 +} + +func (x *CMsgFightingGame_GameData_CharacterSelect) GetConfirmedStyle() bool { + if x != nil && x.ConfirmedStyle != nil { + return *x.ConfirmedStyle + } + return false +} + +type CMsgFightingGame_GameData_Loaded struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Now *float32 `protobuf:"fixed32,1,opt,name=now" json:"now,omitempty"` + PeerAckTime *float32 `protobuf:"fixed32,2,opt,name=peer_ack_time,json=peerAckTime" json:"peer_ack_time,omitempty"` + ProposedStartTime *float32 `protobuf:"fixed32,3,opt,name=proposed_start_time,json=proposedStartTime" json:"proposed_start_time,omitempty"` + AcceptedStartTime *float32 `protobuf:"fixed32,4,opt,name=accepted_start_time,json=acceptedStartTime" json:"accepted_start_time,omitempty"` +} + +func (x *CMsgFightingGame_GameData_Loaded) Reset() { + *x = CMsgFightingGame_GameData_Loaded{} + if protoimpl.UnsafeEnabled { + mi := &file_dota_fighting_game_p2p_messages_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgFightingGame_GameData_Loaded) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgFightingGame_GameData_Loaded) ProtoMessage() {} + +func (x *CMsgFightingGame_GameData_Loaded) ProtoReflect() protoreflect.Message { + mi := &file_dota_fighting_game_p2p_messages_proto_msgTypes[2] + 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 CMsgFightingGame_GameData_Loaded.ProtoReflect.Descriptor instead. +func (*CMsgFightingGame_GameData_Loaded) Descriptor() ([]byte, []int) { + return file_dota_fighting_game_p2p_messages_proto_rawDescGZIP(), []int{2} +} + +func (x *CMsgFightingGame_GameData_Loaded) GetNow() float32 { + if x != nil && x.Now != nil { + return *x.Now + } + return 0 +} + +func (x *CMsgFightingGame_GameData_Loaded) GetPeerAckTime() float32 { + if x != nil && x.PeerAckTime != nil { + return *x.PeerAckTime + } + return 0 +} + +func (x *CMsgFightingGame_GameData_Loaded) GetProposedStartTime() float32 { + if x != nil && x.ProposedStartTime != nil { + return *x.ProposedStartTime + } + return 0 +} + +func (x *CMsgFightingGame_GameData_Loaded) GetAcceptedStartTime() float32 { + if x != nil && x.AcceptedStartTime != nil { + return *x.AcceptedStartTime + } + return 0 +} + +type CP2P_FightingGame_GameData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + State *CP2P_FightingGame_GameData_EState `protobuf:"varint,1,opt,name=state,enum=dota.CP2P_FightingGame_GameData_EState" json:"state,omitempty"` + // Types that are assignable to StateData: + // + // *CP2P_FightingGame_GameData_Fight + // *CP2P_FightingGame_GameData_CharacterSelect + // *CP2P_FightingGame_GameData_Loaded + StateData isCP2P_FightingGame_GameData_StateData `protobuf_oneof:"state_data"` +} + +func (x *CP2P_FightingGame_GameData) Reset() { + *x = CP2P_FightingGame_GameData{} + if protoimpl.UnsafeEnabled { + mi := &file_dota_fighting_game_p2p_messages_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CP2P_FightingGame_GameData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CP2P_FightingGame_GameData) ProtoMessage() {} + +func (x *CP2P_FightingGame_GameData) ProtoReflect() protoreflect.Message { + mi := &file_dota_fighting_game_p2p_messages_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 CP2P_FightingGame_GameData.ProtoReflect.Descriptor instead. +func (*CP2P_FightingGame_GameData) Descriptor() ([]byte, []int) { + return file_dota_fighting_game_p2p_messages_proto_rawDescGZIP(), []int{3} +} + +func (x *CP2P_FightingGame_GameData) GetState() CP2P_FightingGame_GameData_EState { + if x != nil && x.State != nil { + return *x.State + } + return CP2P_FightingGame_GameData_k_ChoosingCharacter +} + +func (m *CP2P_FightingGame_GameData) GetStateData() isCP2P_FightingGame_GameData_StateData { + if m != nil { + return m.StateData + } + return nil +} + +func (x *CP2P_FightingGame_GameData) GetFight() *CMsgFightingGame_GameData_Fighting { + if x, ok := x.GetStateData().(*CP2P_FightingGame_GameData_Fight); ok { + return x.Fight + } + return nil +} + +func (x *CP2P_FightingGame_GameData) GetCharacterSelect() *CMsgFightingGame_GameData_CharacterSelect { + if x, ok := x.GetStateData().(*CP2P_FightingGame_GameData_CharacterSelect); ok { + return x.CharacterSelect + } + return nil +} + +func (x *CP2P_FightingGame_GameData) GetLoaded() *CMsgFightingGame_GameData_Loaded { + if x, ok := x.GetStateData().(*CP2P_FightingGame_GameData_Loaded); ok { + return x.Loaded + } + return nil +} + +type isCP2P_FightingGame_GameData_StateData interface { + isCP2P_FightingGame_GameData_StateData() +} + +type CP2P_FightingGame_GameData_Fight struct { + Fight *CMsgFightingGame_GameData_Fighting `protobuf:"bytes,2,opt,name=fight,oneof"` +} + +type CP2P_FightingGame_GameData_CharacterSelect struct { + CharacterSelect *CMsgFightingGame_GameData_CharacterSelect `protobuf:"bytes,3,opt,name=character_select,json=characterSelect,oneof"` +} + +type CP2P_FightingGame_GameData_Loaded struct { + Loaded *CMsgFightingGame_GameData_Loaded `protobuf:"bytes,4,opt,name=loaded,oneof"` +} + +func (*CP2P_FightingGame_GameData_Fight) isCP2P_FightingGame_GameData_StateData() {} + +func (*CP2P_FightingGame_GameData_CharacterSelect) isCP2P_FightingGame_GameData_StateData() {} + +func (*CP2P_FightingGame_GameData_Loaded) isCP2P_FightingGame_GameData_StateData() {} + +type CMsgFightingGame_GameData_Fighting_InputSample struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ButtonMask *uint32 `protobuf:"varint,1,opt,name=button_mask,json=buttonMask" json:"button_mask,omitempty"` +} + +func (x *CMsgFightingGame_GameData_Fighting_InputSample) Reset() { + *x = CMsgFightingGame_GameData_Fighting_InputSample{} + if protoimpl.UnsafeEnabled { + mi := &file_dota_fighting_game_p2p_messages_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgFightingGame_GameData_Fighting_InputSample) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgFightingGame_GameData_Fighting_InputSample) ProtoMessage() {} + +func (x *CMsgFightingGame_GameData_Fighting_InputSample) ProtoReflect() protoreflect.Message { + mi := &file_dota_fighting_game_p2p_messages_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 CMsgFightingGame_GameData_Fighting_InputSample.ProtoReflect.Descriptor instead. +func (*CMsgFightingGame_GameData_Fighting_InputSample) Descriptor() ([]byte, []int) { + return file_dota_fighting_game_p2p_messages_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *CMsgFightingGame_GameData_Fighting_InputSample) GetButtonMask() uint32 { + if x != nil && x.ButtonMask != nil { + return *x.ButtonMask + } + return 0 +} + +type CMsgFightingGame_GameData_CharacterSelect_Item struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ItemDef *uint32 `protobuf:"varint,1,opt,name=item_def,json=itemDef" json:"item_def,omitempty"` + StyleIndex *uint32 `protobuf:"varint,2,opt,name=style_index,json=styleIndex" json:"style_index,omitempty"` +} + +func (x *CMsgFightingGame_GameData_CharacterSelect_Item) Reset() { + *x = CMsgFightingGame_GameData_CharacterSelect_Item{} + if protoimpl.UnsafeEnabled { + mi := &file_dota_fighting_game_p2p_messages_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgFightingGame_GameData_CharacterSelect_Item) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgFightingGame_GameData_CharacterSelect_Item) ProtoMessage() {} + +func (x *CMsgFightingGame_GameData_CharacterSelect_Item) ProtoReflect() protoreflect.Message { + mi := &file_dota_fighting_game_p2p_messages_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 CMsgFightingGame_GameData_CharacterSelect_Item.ProtoReflect.Descriptor instead. +func (*CMsgFightingGame_GameData_CharacterSelect_Item) Descriptor() ([]byte, []int) { + return file_dota_fighting_game_p2p_messages_proto_rawDescGZIP(), []int{1, 0} +} + +func (x *CMsgFightingGame_GameData_CharacterSelect_Item) GetItemDef() uint32 { + if x != nil && x.ItemDef != nil { + return *x.ItemDef + } + return 0 +} + +func (x *CMsgFightingGame_GameData_CharacterSelect_Item) GetStyleIndex() uint32 { + if x != nil && x.StyleIndex != nil { + return *x.StyleIndex + } + return 0 +} + +var File_dota_fighting_game_p2p_messages_proto protoreflect.FileDescriptor + +var file_dota_fighting_game_p2p_messages_proto_rawDesc = []byte{ + 0x0a, 0x25, 0x64, 0x6f, 0x74, 0x61, 0x5f, 0x66, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, 0x5f, + 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x64, 0x6f, 0x74, 0x61, 0x1a, 0x11, 0x6e, + 0x65, 0x74, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x16, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x62, 0x61, 0x73, 0x65, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa2, 0x03, 0x0a, 0x22, 0x43, 0x4d, 0x73, + 0x67, 0x46, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x47, 0x61, + 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x5f, 0x46, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, 0x12, + 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x72, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x41, + 0x63, 0x6b, 0x65, 0x64, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, + 0x72, 0x63, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, + 0x6c, 0x61, 0x73, 0x74, 0x43, 0x72, 0x63, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, + 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x72, 0x63, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x72, 0x63, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x6f, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x03, 0x6e, 0x6f, 0x77, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x6b, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x70, 0x65, 0x65, + 0x72, 0x41, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x46, + 0x72, 0x61, 0x6d, 0x65, 0x12, 0x57, 0x0a, 0x0c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x73, 0x61, + 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x64, 0x6f, 0x74, + 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x46, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, 0x47, 0x61, + 0x6d, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x5f, 0x46, 0x69, 0x67, 0x68, + 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, + 0x52, 0x0b, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x1a, 0x2e, 0x0a, + 0x0b, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0b, + 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0a, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x89, 0x03, + 0x0a, 0x29, 0x43, 0x4d, 0x73, 0x67, 0x46, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, 0x47, 0x61, + 0x6d, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x5f, 0x43, 0x68, 0x61, 0x72, + 0x61, 0x63, 0x74, 0x65, 0x72, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, + 0x75, 0x72, 0x73, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0b, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x28, + 0x0a, 0x10, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x12, + 0x5a, 0x0a, 0x0e, 0x65, 0x63, 0x6f, 0x6e, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x72, 0x65, 0x66, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, + 0x4d, 0x73, 0x67, 0x46, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x5f, + 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x5f, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, + 0x65, 0x72, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0c, 0x65, + 0x63, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x66, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x63, 0x6b, 0x12, 0x27, 0x0a, 0x0f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, + 0x53, 0x74, 0x79, 0x6c, 0x65, 0x1a, 0x42, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x19, 0x0a, + 0x08, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x69, 0x74, 0x65, 0x6d, 0x44, 0x65, 0x66, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x79, 0x6c, + 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, + 0x74, 0x79, 0x6c, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xb8, 0x01, 0x0a, 0x20, 0x43, 0x4d, + 0x73, 0x67, 0x46, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x47, + 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x5f, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x12, 0x10, + 0x0a, 0x03, 0x6e, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x6e, 0x6f, 0x77, + 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x70, 0x65, 0x65, 0x72, 0x41, 0x63, 0x6b, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x11, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x22, 0x8c, 0x03, 0x0a, 0x1a, 0x43, 0x50, 0x32, 0x50, 0x5f, 0x46, 0x69, + 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x3d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x50, 0x32, 0x50, 0x5f, 0x46, + 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x2e, 0x45, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x40, 0x0a, 0x05, 0x66, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x28, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x46, 0x69, 0x67, + 0x68, 0x74, 0x69, 0x6e, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x5f, 0x46, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x05, 0x66, + 0x69, 0x67, 0x68, 0x74, 0x12, 0x5c, 0x0a, 0x10, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, + 0x72, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, + 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x46, 0x69, 0x67, 0x68, 0x74, 0x69, + 0x6e, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x5f, + 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x48, + 0x00, 0x52, 0x0f, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x12, 0x40, 0x0a, 0x06, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x46, 0x69, + 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x5f, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x48, 0x00, 0x52, 0x06, 0x6c, 0x6f, + 0x61, 0x64, 0x65, 0x64, 0x22, 0x3f, 0x0a, 0x06, 0x45, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x17, + 0x0a, 0x13, 0x6b, 0x5f, 0x43, 0x68, 0x6f, 0x6f, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x72, + 0x61, 0x63, 0x74, 0x65, 0x72, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6b, 0x5f, 0x4c, 0x6f, 0x61, + 0x64, 0x65, 0x64, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x46, 0x69, 0x67, 0x68, 0x74, + 0x69, 0x6e, 0x67, 0x10, 0x03, 0x42, 0x0c, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x42, 0x25, 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x62, 0x75, 0x66, 0x66, 0x2f, 0x6d, 0x61, 0x6e, 0x74, 0x61, + 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x3b, 0x64, 0x6f, 0x74, 0x61, +} + +var ( + file_dota_fighting_game_p2p_messages_proto_rawDescOnce sync.Once + file_dota_fighting_game_p2p_messages_proto_rawDescData = file_dota_fighting_game_p2p_messages_proto_rawDesc +) + +func file_dota_fighting_game_p2p_messages_proto_rawDescGZIP() []byte { + file_dota_fighting_game_p2p_messages_proto_rawDescOnce.Do(func() { + file_dota_fighting_game_p2p_messages_proto_rawDescData = protoimpl.X.CompressGZIP(file_dota_fighting_game_p2p_messages_proto_rawDescData) + }) + return file_dota_fighting_game_p2p_messages_proto_rawDescData +} + +var file_dota_fighting_game_p2p_messages_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_dota_fighting_game_p2p_messages_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_dota_fighting_game_p2p_messages_proto_goTypes = []interface{}{ + (CP2P_FightingGame_GameData_EState)(0), // 0: dota.CP2P_FightingGame_GameData.EState + (*CMsgFightingGame_GameData_Fighting)(nil), // 1: dota.CMsgFightingGame_GameData_Fighting + (*CMsgFightingGame_GameData_CharacterSelect)(nil), // 2: dota.CMsgFightingGame_GameData_CharacterSelect + (*CMsgFightingGame_GameData_Loaded)(nil), // 3: dota.CMsgFightingGame_GameData_Loaded + (*CP2P_FightingGame_GameData)(nil), // 4: dota.CP2P_FightingGame_GameData + (*CMsgFightingGame_GameData_Fighting_InputSample)(nil), // 5: dota.CMsgFightingGame_GameData_Fighting.InputSample + (*CMsgFightingGame_GameData_CharacterSelect_Item)(nil), // 6: dota.CMsgFightingGame_GameData_CharacterSelect.Item +} +var file_dota_fighting_game_p2p_messages_proto_depIdxs = []int32{ + 5, // 0: dota.CMsgFightingGame_GameData_Fighting.input_sample:type_name -> dota.CMsgFightingGame_GameData_Fighting.InputSample + 6, // 1: dota.CMsgFightingGame_GameData_CharacterSelect.econ_item_refs:type_name -> dota.CMsgFightingGame_GameData_CharacterSelect.Item + 0, // 2: dota.CP2P_FightingGame_GameData.state:type_name -> dota.CP2P_FightingGame_GameData.EState + 1, // 3: dota.CP2P_FightingGame_GameData.fight:type_name -> dota.CMsgFightingGame_GameData_Fighting + 2, // 4: dota.CP2P_FightingGame_GameData.character_select:type_name -> dota.CMsgFightingGame_GameData_CharacterSelect + 3, // 5: dota.CP2P_FightingGame_GameData.loaded:type_name -> dota.CMsgFightingGame_GameData_Loaded + 6, // [6:6] is the sub-list for method output_type + 6, // [6:6] 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 +} + +func init() { file_dota_fighting_game_p2p_messages_proto_init() } +func file_dota_fighting_game_p2p_messages_proto_init() { + if File_dota_fighting_game_p2p_messages_proto != nil { + return + } + file_netmessages_proto_init() + file_networkbasetypes_proto_init() + if !protoimpl.UnsafeEnabled { + file_dota_fighting_game_p2p_messages_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgFightingGame_GameData_Fighting); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_dota_fighting_game_p2p_messages_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgFightingGame_GameData_CharacterSelect); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_dota_fighting_game_p2p_messages_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgFightingGame_GameData_Loaded); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_dota_fighting_game_p2p_messages_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CP2P_FightingGame_GameData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_dota_fighting_game_p2p_messages_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgFightingGame_GameData_Fighting_InputSample); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_dota_fighting_game_p2p_messages_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgFightingGame_GameData_CharacterSelect_Item); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_dota_fighting_game_p2p_messages_proto_msgTypes[3].OneofWrappers = []interface{}{ + (*CP2P_FightingGame_GameData_Fight)(nil), + (*CP2P_FightingGame_GameData_CharacterSelect)(nil), + (*CP2P_FightingGame_GameData_Loaded)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_dota_fighting_game_p2p_messages_proto_rawDesc, + NumEnums: 1, + NumMessages: 6, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_dota_fighting_game_p2p_messages_proto_goTypes, + DependencyIndexes: file_dota_fighting_game_p2p_messages_proto_depIdxs, + EnumInfos: file_dota_fighting_game_p2p_messages_proto_enumTypes, + MessageInfos: file_dota_fighting_game_p2p_messages_proto_msgTypes, + }.Build() + File_dota_fighting_game_p2p_messages_proto = out.File + file_dota_fighting_game_p2p_messages_proto_rawDesc = nil + file_dota_fighting_game_p2p_messages_proto_goTypes = nil + file_dota_fighting_game_p2p_messages_proto_depIdxs = nil +} diff --git a/dota/dota_fighting_game_p2p_messages.proto b/dota/dota_fighting_game_p2p_messages.proto new file mode 100644 index 0000000..d09cf00 --- /dev/null +++ b/dota/dota_fighting_game_p2p_messages.proto @@ -0,0 +1,59 @@ +syntax = "proto2"; + +package dota; +option go_package = "github.com/dotabuff/manta/dota;dota"; + +import "netmessages.proto"; +import "networkbasetypes.proto"; + +message CMsgFightingGame_GameData_Fighting { + message InputSample { + optional uint32 button_mask = 1; + } + + optional int32 last_acked_frame = 1; + optional uint32 player_id = 2; + optional int32 last_crc_frame = 3; + optional uint32 last_crc_value = 4; + optional float now = 5; + optional float peer_ack_time = 6; + optional int32 input_start_frame = 7; + repeated CMsgFightingGame_GameData_Fighting.InputSample input_sample = 8; +} + +message CMsgFightingGame_GameData_CharacterSelect { + message Item { + optional uint32 item_def = 1; + optional uint32 style_index = 2; + } + + optional uint32 cursor_index = 1; + optional int32 selected_hero_id = 2; + optional uint32 selected_style = 3; + repeated CMsgFightingGame_GameData_CharacterSelect.Item econ_item_refs = 4; + optional int64 message_ack = 5; + optional bool confirmed_style = 6; +} + +message CMsgFightingGame_GameData_Loaded { + optional float now = 1; + optional float peer_ack_time = 2; + optional float proposed_start_time = 3; + optional float accepted_start_time = 4; +} + +message CP2P_FightingGame_GameData { + enum EState { + k_ChoosingCharacter = 1; + k_Loaded = 2; + k_Fighting = 3; + } + + optional CP2P_FightingGame_GameData.EState state = 1; + + oneof state_data { + CMsgFightingGame_GameData_Fighting fight = 2; + CMsgFightingGame_GameData_CharacterSelect character_select = 3; + CMsgFightingGame_GameData_Loaded loaded = 4; + } +} diff --git a/dota/dota_gcmessages_client.pb.go b/dota/dota_gcmessages_client.pb.go index 86d799f..660081d 100644 --- a/dota/dota_gcmessages_client.pb.go +++ b/dota/dota_gcmessages_client.pb.go @@ -7073,7 +7073,7 @@ type CSODOTAGameHeroFavorites struct { unknownFields protoimpl.UnknownFields AccountId *uint32 `protobuf:"varint,1,opt,name=account_id,json=accountId" json:"account_id,omitempty"` - HeroId *uint32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` } func (x *CSODOTAGameHeroFavorites) Reset() { @@ -7115,7 +7115,7 @@ func (x *CSODOTAGameHeroFavorites) GetAccountId() uint32 { return 0 } -func (x *CSODOTAGameHeroFavorites) GetHeroId() uint32 { +func (x *CSODOTAGameHeroFavorites) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -8248,7 +8248,7 @@ type CMsgGCGetHeroTimedStatsResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroId *uint32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` RankChunkedStats []*CMsgGCGetHeroTimedStatsResponse_RankChunkedStats `protobuf:"bytes,2,rep,name=rank_chunked_stats,json=rankChunkedStats" json:"rank_chunked_stats,omitempty"` } @@ -8284,7 +8284,7 @@ func (*CMsgGCGetHeroTimedStatsResponse) Descriptor() ([]byte, []int) { return file_dota_gcmessages_client_proto_rawDescGZIP(), []int{43} } -func (x *CMsgGCGetHeroTimedStatsResponse) GetHeroId() uint32 { +func (x *CMsgGCGetHeroTimedStatsResponse) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -9704,7 +9704,7 @@ type CMsgDOTAGetPlayerMatchHistory struct { AccountId *uint32 `protobuf:"varint,1,opt,name=account_id,json=accountId" json:"account_id,omitempty"` StartAtMatchId *uint64 `protobuf:"varint,2,opt,name=start_at_match_id,json=startAtMatchId" json:"start_at_match_id,omitempty"` MatchesRequested *uint32 `protobuf:"varint,3,opt,name=matches_requested,json=matchesRequested" json:"matches_requested,omitempty"` - HeroId *uint32 `protobuf:"varint,4,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,4,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` RequestId *uint32 `protobuf:"varint,5,opt,name=request_id,json=requestId" json:"request_id,omitempty"` IncludePracticeMatches *bool `protobuf:"varint,7,opt,name=include_practice_matches,json=includePracticeMatches" json:"include_practice_matches,omitempty"` IncludeCustomGames *bool `protobuf:"varint,8,opt,name=include_custom_games,json=includeCustomGames" json:"include_custom_games,omitempty"` @@ -9764,7 +9764,7 @@ func (x *CMsgDOTAGetPlayerMatchHistory) GetMatchesRequested() uint32 { return 0 } -func (x *CMsgDOTAGetPlayerMatchHistory) GetHeroId() uint32 { +func (x *CMsgDOTAGetPlayerMatchHistory) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -10499,7 +10499,7 @@ type CMsgClientToGCGetAllHeroOrderResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroIds []uint32 `protobuf:"varint,1,rep,name=hero_ids,json=heroIds" json:"hero_ids,omitempty"` + HeroIds []int32 `protobuf:"varint,1,rep,name=hero_ids,json=heroIds" json:"hero_ids,omitempty"` } func (x *CMsgClientToGCGetAllHeroOrderResponse) Reset() { @@ -10534,7 +10534,7 @@ func (*CMsgClientToGCGetAllHeroOrderResponse) Descriptor() ([]byte, []int) { return file_dota_gcmessages_client_proto_rawDescGZIP(), []int{82} } -func (x *CMsgClientToGCGetAllHeroOrderResponse) GetHeroIds() []uint32 { +func (x *CMsgClientToGCGetAllHeroOrderResponse) GetHeroIds() []int32 { if x != nil { return x.HeroIds } @@ -10594,7 +10594,7 @@ type CMsgClientToGCGetAllHeroProgressResponse struct { unknownFields protoimpl.UnknownFields AccountId *uint32 `protobuf:"varint,1,opt,name=account_id,json=accountId" json:"account_id,omitempty"` - CurrHeroId *uint32 `protobuf:"varint,2,opt,name=curr_hero_id,json=currHeroId" json:"curr_hero_id,omitempty"` + CurrHeroId *int32 `protobuf:"varint,2,opt,name=curr_hero_id,json=currHeroId" json:"curr_hero_id,omitempty"` LapsCompleted *uint32 `protobuf:"varint,3,opt,name=laps_completed,json=lapsCompleted" json:"laps_completed,omitempty"` CurrHeroGames *uint32 `protobuf:"varint,4,opt,name=curr_hero_games,json=currHeroGames" json:"curr_hero_games,omitempty"` CurrLapTimeStarted *uint32 `protobuf:"varint,5,opt,name=curr_lap_time_started,json=currLapTimeStarted" json:"curr_lap_time_started,omitempty"` @@ -10603,8 +10603,8 @@ type CMsgClientToGCGetAllHeroProgressResponse struct { BestLapTime *uint32 `protobuf:"varint,8,opt,name=best_lap_time,json=bestLapTime" json:"best_lap_time,omitempty"` LapHeroesCompleted *uint32 `protobuf:"varint,9,opt,name=lap_heroes_completed,json=lapHeroesCompleted" json:"lap_heroes_completed,omitempty"` LapHeroesRemaining *uint32 `protobuf:"varint,10,opt,name=lap_heroes_remaining,json=lapHeroesRemaining" json:"lap_heroes_remaining,omitempty"` - NextHeroId *uint32 `protobuf:"varint,11,opt,name=next_hero_id,json=nextHeroId" json:"next_hero_id,omitempty"` - PrevHeroId *uint32 `protobuf:"varint,12,opt,name=prev_hero_id,json=prevHeroId" json:"prev_hero_id,omitempty"` + NextHeroId *int32 `protobuf:"varint,11,opt,name=next_hero_id,json=nextHeroId" json:"next_hero_id,omitempty"` + PrevHeroId *int32 `protobuf:"varint,12,opt,name=prev_hero_id,json=prevHeroId" json:"prev_hero_id,omitempty"` PrevHeroGames *uint32 `protobuf:"varint,13,opt,name=prev_hero_games,json=prevHeroGames" json:"prev_hero_games,omitempty"` PrevAvgTries *float32 `protobuf:"fixed32,14,opt,name=prev_avg_tries,json=prevAvgTries" json:"prev_avg_tries,omitempty"` CurrAvgTries *float32 `protobuf:"fixed32,15,opt,name=curr_avg_tries,json=currAvgTries" json:"curr_avg_tries,omitempty"` @@ -10612,7 +10612,7 @@ type CMsgClientToGCGetAllHeroProgressResponse struct { FullLapAvgTries *float32 `protobuf:"fixed32,17,opt,name=full_lap_avg_tries,json=fullLapAvgTries" json:"full_lap_avg_tries,omitempty"` CurrLapAvgTries *float32 `protobuf:"fixed32,18,opt,name=curr_lap_avg_tries,json=currLapAvgTries" json:"curr_lap_avg_tries,omitempty"` ProfileName *string `protobuf:"bytes,19,opt,name=profile_name,json=profileName" json:"profile_name,omitempty"` - StartHeroId *uint32 `protobuf:"varint,20,opt,name=start_hero_id,json=startHeroId" json:"start_hero_id,omitempty"` + StartHeroId *int32 `protobuf:"varint,20,opt,name=start_hero_id,json=startHeroId" json:"start_hero_id,omitempty"` } func (x *CMsgClientToGCGetAllHeroProgressResponse) Reset() { @@ -10654,7 +10654,7 @@ func (x *CMsgClientToGCGetAllHeroProgressResponse) GetAccountId() uint32 { return 0 } -func (x *CMsgClientToGCGetAllHeroProgressResponse) GetCurrHeroId() uint32 { +func (x *CMsgClientToGCGetAllHeroProgressResponse) GetCurrHeroId() int32 { if x != nil && x.CurrHeroId != nil { return *x.CurrHeroId } @@ -10717,14 +10717,14 @@ func (x *CMsgClientToGCGetAllHeroProgressResponse) GetLapHeroesRemaining() uint3 return 0 } -func (x *CMsgClientToGCGetAllHeroProgressResponse) GetNextHeroId() uint32 { +func (x *CMsgClientToGCGetAllHeroProgressResponse) GetNextHeroId() int32 { if x != nil && x.NextHeroId != nil { return *x.NextHeroId } return 0 } -func (x *CMsgClientToGCGetAllHeroProgressResponse) GetPrevHeroId() uint32 { +func (x *CMsgClientToGCGetAllHeroProgressResponse) GetPrevHeroId() int32 { if x != nil && x.PrevHeroId != nil { return *x.PrevHeroId } @@ -10780,7 +10780,7 @@ func (x *CMsgClientToGCGetAllHeroProgressResponse) GetProfileName() string { return "" } -func (x *CMsgClientToGCGetAllHeroProgressResponse) GetStartHeroId() uint32 { +func (x *CMsgClientToGCGetAllHeroProgressResponse) GetStartHeroId() int32 { if x != nil && x.StartHeroId != nil { return *x.StartHeroId } @@ -11271,7 +11271,7 @@ type CMsgClientToGCCreateHeroStatue struct { unknownFields protoimpl.UnknownFields SourceItemId *uint64 `protobuf:"varint,1,opt,name=source_item_id,json=sourceItemId" json:"source_item_id,omitempty"` - HeroId *uint32 `protobuf:"varint,3,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,3,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` SequenceName *string `protobuf:"bytes,4,opt,name=sequence_name,json=sequenceName" json:"sequence_name,omitempty"` Cycle *float32 `protobuf:"fixed32,5,opt,name=cycle" json:"cycle,omitempty"` Wearables []uint32 `protobuf:"varint,6,rep,name=wearables" json:"wearables,omitempty"` @@ -11320,7 +11320,7 @@ func (x *CMsgClientToGCCreateHeroStatue) GetSourceItemId() uint64 { return 0 } -func (x *CMsgClientToGCCreateHeroStatue) GetHeroId() uint32 { +func (x *CMsgClientToGCCreateHeroStatue) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -12727,7 +12727,7 @@ type CMsgGCGetHeroStatsHistory struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroId *uint32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` } func (x *CMsgGCGetHeroStatsHistory) Reset() { @@ -12762,7 +12762,7 @@ func (*CMsgGCGetHeroStatsHistory) Descriptor() ([]byte, []int) { return file_dota_gcmessages_client_proto_rawDescGZIP(), []int{115} } -func (x *CMsgGCGetHeroStatsHistory) GetHeroId() uint32 { +func (x *CMsgGCGetHeroStatsHistory) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -12774,7 +12774,7 @@ type CMsgGCGetHeroStatsHistoryResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroId *uint32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` Records []*CMsgDOTASDOHeroStatsHistory `protobuf:"bytes,2,rep,name=records" json:"records,omitempty"` } @@ -12810,7 +12810,7 @@ func (*CMsgGCGetHeroStatsHistoryResponse) Descriptor() ([]byte, []int) { return file_dota_gcmessages_client_proto_rawDescGZIP(), []int{116} } -func (x *CMsgGCGetHeroStatsHistoryResponse) GetHeroId() uint32 { +func (x *CMsgGCGetHeroStatsHistoryResponse) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -16775,7 +16775,7 @@ type CMsgGCToClientCommendNotification struct { CommenderAccountId *uint32 `protobuf:"varint,1,opt,name=commender_account_id,json=commenderAccountId" json:"commender_account_id,omitempty"` CommenderName *string `protobuf:"bytes,2,opt,name=commender_name,json=commenderName" json:"commender_name,omitempty"` Flags *uint32 `protobuf:"varint,3,opt,name=flags" json:"flags,omitempty"` - CommenderHeroId *uint32 `protobuf:"varint,4,opt,name=commender_hero_id,json=commenderHeroId" json:"commender_hero_id,omitempty"` + CommenderHeroId *int32 `protobuf:"varint,4,opt,name=commender_hero_id,json=commenderHeroId" json:"commender_hero_id,omitempty"` } func (x *CMsgGCToClientCommendNotification) Reset() { @@ -16831,7 +16831,7 @@ func (x *CMsgGCToClientCommendNotification) GetFlags() uint32 { return 0 } -func (x *CMsgGCToClientCommendNotification) GetCommenderHeroId() uint32 { +func (x *CMsgGCToClientCommendNotification) GetCommenderHeroId() int32 { if x != nil && x.CommenderHeroId != nil { return *x.CommenderHeroId } @@ -16844,7 +16844,7 @@ type CMsgDOTAClientToGCQuickStatsRequest struct { unknownFields protoimpl.UnknownFields PlayerAccountId *uint32 `protobuf:"varint,1,opt,name=player_account_id,json=playerAccountId" json:"player_account_id,omitempty"` - HeroId *uint32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` ItemId *int32 `protobuf:"varint,3,opt,name=item_id,json=itemId" json:"item_id,omitempty"` LeagueId *uint32 `protobuf:"varint,4,opt,name=league_id,json=leagueId" json:"league_id,omitempty"` } @@ -16888,7 +16888,7 @@ func (x *CMsgDOTAClientToGCQuickStatsRequest) GetPlayerAccountId() uint32 { return 0 } -func (x *CMsgDOTAClientToGCQuickStatsRequest) GetHeroId() uint32 { +func (x *CMsgDOTAClientToGCQuickStatsRequest) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -17485,7 +17485,7 @@ type CMsgPurchaseHeroRandomRelic struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroId *uint32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` RelicRarity *EHeroRelicRarity `protobuf:"varint,2,opt,name=relic_rarity,json=relicRarity,enum=dota.EHeroRelicRarity" json:"relic_rarity,omitempty"` } @@ -17521,7 +17521,7 @@ func (*CMsgPurchaseHeroRandomRelic) Descriptor() ([]byte, []int) { return file_dota_gcmessages_client_proto_rawDescGZIP(), []int{197} } -func (x *CMsgPurchaseHeroRandomRelic) GetHeroId() uint32 { +func (x *CMsgPurchaseHeroRandomRelic) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -17830,8 +17830,8 @@ type CMsgProfileUpdate struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - BackgroundItemId *uint64 `protobuf:"varint,1,opt,name=background_item_id,json=backgroundItemId" json:"background_item_id,omitempty"` - FeaturedHeroIds []uint32 `protobuf:"varint,2,rep,name=featured_hero_ids,json=featuredHeroIds" json:"featured_hero_ids,omitempty"` + BackgroundItemId *uint64 `protobuf:"varint,1,opt,name=background_item_id,json=backgroundItemId" json:"background_item_id,omitempty"` + FeaturedHeroIds []int32 `protobuf:"varint,2,rep,name=featured_hero_ids,json=featuredHeroIds" json:"featured_hero_ids,omitempty"` } func (x *CMsgProfileUpdate) Reset() { @@ -17873,7 +17873,7 @@ func (x *CMsgProfileUpdate) GetBackgroundItemId() uint64 { return 0 } -func (x *CMsgProfileUpdate) GetFeaturedHeroIds() []uint32 { +func (x *CMsgProfileUpdate) GetFeaturedHeroIds() []int32 { if x != nil { return x.FeaturedHeroIds } @@ -18114,7 +18114,7 @@ type CMsgHeroGlobalDataRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroId *uint32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` } func (x *CMsgHeroGlobalDataRequest) Reset() { @@ -18149,7 +18149,7 @@ func (*CMsgHeroGlobalDataRequest) Descriptor() ([]byte, []int) { return file_dota_gcmessages_client_proto_rawDescGZIP(), []int{207} } -func (x *CMsgHeroGlobalDataRequest) GetHeroId() uint32 { +func (x *CMsgHeroGlobalDataRequest) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -18161,7 +18161,7 @@ type CMsgHeroGlobalDataResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroId *uint32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` HeroDataPerChunk []*CMsgHeroGlobalDataResponse_HeroDataPerRankChunk `protobuf:"bytes,2,rep,name=hero_data_per_chunk,json=heroDataPerChunk" json:"hero_data_per_chunk,omitempty"` } @@ -18197,7 +18197,7 @@ func (*CMsgHeroGlobalDataResponse) Descriptor() ([]byte, []int) { return file_dota_gcmessages_client_proto_rawDescGZIP(), []int{208} } -func (x *CMsgHeroGlobalDataResponse) GetHeroId() uint32 { +func (x *CMsgHeroGlobalDataResponse) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -18452,7 +18452,7 @@ type CMsgGCToClientCavernCrawlMapPathCompleted struct { unknownFields protoimpl.UnknownFields EventId *uint32 `protobuf:"varint,1,opt,name=event_id,json=eventId" json:"event_id,omitempty"` - HeroIdCompleted *uint32 `protobuf:"varint,2,opt,name=hero_id_completed,json=heroIdCompleted" json:"hero_id_completed,omitempty"` + HeroIdCompleted *int32 `protobuf:"varint,2,opt,name=hero_id_completed,json=heroIdCompleted" json:"hero_id_completed,omitempty"` CompletedPaths []*CMsgGCToClientCavernCrawlMapPathCompleted_CompletedPathInfo `protobuf:"bytes,3,rep,name=completed_paths,json=completedPaths" json:"completed_paths,omitempty"` MapVariant *uint32 `protobuf:"varint,4,opt,name=map_variant,json=mapVariant" json:"map_variant,omitempty"` } @@ -18496,7 +18496,7 @@ func (x *CMsgGCToClientCavernCrawlMapPathCompleted) GetEventId() uint32 { return 0 } -func (x *CMsgGCToClientCavernCrawlMapPathCompleted) GetHeroIdCompleted() uint32 { +func (x *CMsgGCToClientCavernCrawlMapPathCompleted) GetHeroIdCompleted() int32 { if x != nil && x.HeroIdCompleted != nil { return *x.HeroIdCompleted } @@ -21734,7 +21734,7 @@ type CMsgClientToGCRequestPlayerHeroRecentAccomplishments struct { unknownFields protoimpl.UnknownFields AccountId *uint32 `protobuf:"varint,1,opt,name=account_id,json=accountId" json:"account_id,omitempty"` - HeroId *uint32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` } func (x *CMsgClientToGCRequestPlayerHeroRecentAccomplishments) Reset() { @@ -21776,7 +21776,7 @@ func (x *CMsgClientToGCRequestPlayerHeroRecentAccomplishments) GetAccountId() ui return 0 } -func (x *CMsgClientToGCRequestPlayerHeroRecentAccomplishments) GetHeroId() uint32 { +func (x *CMsgClientToGCRequestPlayerHeroRecentAccomplishments) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -23269,7 +23269,7 @@ type CMsgClientToGCGetOWMatchDetailsResponse struct { TargetPlayerSlot *uint32 `protobuf:"varint,6,opt,name=target_player_slot,json=targetPlayerSlot" json:"target_player_slot,omitempty"` Markers []*CMsgClientToGCGetOWMatchDetailsResponse_Marker `protobuf:"bytes,7,rep,name=markers" json:"markers,omitempty"` ReportReason *EOverwatchReportReason `protobuf:"varint,8,opt,name=report_reason,json=reportReason,enum=dota.EOverwatchReportReason" json:"report_reason,omitempty"` - TargetHeroId *uint32 `protobuf:"varint,9,opt,name=target_hero_id,json=targetHeroId" json:"target_hero_id,omitempty"` + TargetHeroId *int32 `protobuf:"varint,9,opt,name=target_hero_id,json=targetHeroId" json:"target_hero_id,omitempty"` RankTier *uint32 `protobuf:"varint,10,opt,name=rank_tier,json=rankTier" json:"rank_tier,omitempty"` LaneSelectionFlags *uint32 `protobuf:"varint,11,opt,name=lane_selection_flags,json=laneSelectionFlags" json:"lane_selection_flags,omitempty"` } @@ -23362,7 +23362,7 @@ func (x *CMsgClientToGCGetOWMatchDetailsResponse) GetReportReason() EOverwatchRe return EOverwatchReportReason_k_EOverwatchReportReason_Unknown } -func (x *CMsgClientToGCGetOWMatchDetailsResponse) GetTargetHeroId() uint32 { +func (x *CMsgClientToGCGetOWMatchDetailsResponse) GetTargetHeroId() int32 { if x != nil && x.TargetHeroId != nil { return *x.TargetHeroId } @@ -24923,7 +24923,7 @@ type CMsgClientToGCSetHeroSticker struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroId *uint32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` NewItemId *uint64 `protobuf:"varint,2,opt,name=new_item_id,json=newItemId" json:"new_item_id,omitempty"` OldItemId *uint64 `protobuf:"varint,3,opt,name=old_item_id,json=oldItemId" json:"old_item_id,omitempty"` } @@ -24960,7 +24960,7 @@ func (*CMsgClientToGCSetHeroSticker) Descriptor() ([]byte, []int) { return file_dota_gcmessages_client_proto_rawDescGZIP(), []int{333} } -func (x *CMsgClientToGCSetHeroSticker) GetHeroId() uint32 { +func (x *CMsgClientToGCSetHeroSticker) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -26366,7 +26366,7 @@ type CMsgClientToGCSetBannedHeroes struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - BannedHeroIds []uint32 `protobuf:"varint,1,rep,name=banned_hero_ids,json=bannedHeroIds" json:"banned_hero_ids,omitempty"` + BannedHeroIds []int32 `protobuf:"varint,1,rep,name=banned_hero_ids,json=bannedHeroIds" json:"banned_hero_ids,omitempty"` } func (x *CMsgClientToGCSetBannedHeroes) Reset() { @@ -26401,7 +26401,7 @@ func (*CMsgClientToGCSetBannedHeroes) Descriptor() ([]byte, []int) { return file_dota_gcmessages_client_proto_rawDescGZIP(), []int{360} } -func (x *CMsgClientToGCSetBannedHeroes) GetBannedHeroIds() []uint32 { +func (x *CMsgClientToGCSetBannedHeroes) GetBannedHeroIds() []int32 { if x != nil { return x.BannedHeroIds } @@ -26704,7 +26704,7 @@ type CMsgGCGetHeroStandingsResponse_Hero struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroId *uint32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` Wins *uint32 `protobuf:"varint,2,opt,name=wins" json:"wins,omitempty"` Losses *uint32 `protobuf:"varint,3,opt,name=losses" json:"losses,omitempty"` WinStreak *uint32 `protobuf:"varint,4,opt,name=win_streak,json=winStreak" json:"win_streak,omitempty"` @@ -26765,7 +26765,7 @@ func (*CMsgGCGetHeroStandingsResponse_Hero) Descriptor() ([]byte, []int) { return file_dota_gcmessages_client_proto_rawDescGZIP(), []int{40, 0} } -func (x *CMsgGCGetHeroStandingsResponse_Hero) GetHeroId() uint32 { +func (x *CMsgGCGetHeroStandingsResponse_Hero) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -27213,7 +27213,7 @@ type CMsgDOTAGetPlayerMatchHistoryResponse_Match struct { MatchId *uint64 `protobuf:"varint,1,opt,name=match_id,json=matchId" json:"match_id,omitempty"` StartTime *uint32 `protobuf:"varint,2,opt,name=start_time,json=startTime" json:"start_time,omitempty"` - HeroId *uint32 `protobuf:"varint,3,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,3,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` Winner *bool `protobuf:"varint,4,opt,name=winner" json:"winner,omitempty"` GameMode *uint32 `protobuf:"varint,5,opt,name=game_mode,json=gameMode" json:"game_mode,omitempty"` RankChange *int32 `protobuf:"varint,6,opt,name=rank_change,json=rankChange" json:"rank_change,omitempty"` @@ -27281,7 +27281,7 @@ func (x *CMsgDOTAGetPlayerMatchHistoryResponse_Match) GetStartTime() uint32 { return 0 } -func (x *CMsgDOTAGetPlayerMatchHistoryResponse_Match) GetHeroId() uint32 { +func (x *CMsgDOTAGetPlayerMatchHistoryResponse_Match) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -27760,7 +27760,7 @@ type CMsgClientToGCGetQuestProgressResponse_Challenge struct { ChallengeId *uint32 `protobuf:"varint,1,opt,name=challenge_id,json=challengeId" json:"challenge_id,omitempty"` TimeCompleted *uint32 `protobuf:"varint,2,opt,name=time_completed,json=timeCompleted" json:"time_completed,omitempty"` Attempts *uint32 `protobuf:"varint,3,opt,name=attempts" json:"attempts,omitempty"` - HeroId *uint32 `protobuf:"varint,4,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,4,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` TemplateId *uint32 `protobuf:"varint,5,opt,name=template_id,json=templateId" json:"template_id,omitempty"` QuestRank *uint32 `protobuf:"varint,6,opt,name=quest_rank,json=questRank" json:"quest_rank,omitempty"` } @@ -27818,7 +27818,7 @@ func (x *CMsgClientToGCGetQuestProgressResponse_Challenge) GetAttempts() uint32 return 0 } -func (x *CMsgClientToGCGetQuestProgressResponse_Challenge) GetHeroId() uint32 { +func (x *CMsgClientToGCGetQuestProgressResponse_Challenge) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -28359,7 +28359,7 @@ type CMsgGCToClientQuestProgressUpdated_Challenge struct { ChallengeId *uint32 `protobuf:"varint,1,opt,name=challenge_id,json=challengeId" json:"challenge_id,omitempty"` TimeCompleted *uint32 `protobuf:"varint,2,opt,name=time_completed,json=timeCompleted" json:"time_completed,omitempty"` Attempts *uint32 `protobuf:"varint,3,opt,name=attempts" json:"attempts,omitempty"` - HeroId *uint32 `protobuf:"varint,4,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,4,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` TemplateId *uint32 `protobuf:"varint,5,opt,name=template_id,json=templateId" json:"template_id,omitempty"` QuestRank *uint32 `protobuf:"varint,6,opt,name=quest_rank,json=questRank" json:"quest_rank,omitempty"` MaxQuestRank *uint32 `protobuf:"varint,7,opt,name=max_quest_rank,json=maxQuestRank" json:"max_quest_rank,omitempty"` @@ -28418,7 +28418,7 @@ func (x *CMsgGCToClientQuestProgressUpdated_Challenge) GetAttempts() uint32 { return 0 } -func (x *CMsgGCToClientQuestProgressUpdated_Challenge) GetHeroId() uint32 { +func (x *CMsgGCToClientQuestProgressUpdated_Challenge) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -31089,7 +31089,7 @@ type CMsgProfileResponse_FeaturedHero struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroId *uint32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` EquippedEconItems []*CSOEconItem `protobuf:"bytes,2,rep,name=equipped_econ_items,json=equippedEconItems" json:"equipped_econ_items,omitempty"` ManuallySet *bool `protobuf:"varint,3,opt,name=manually_set,json=manuallySet" json:"manually_set,omitempty"` PlusHeroXp *uint32 `protobuf:"varint,4,opt,name=plus_hero_xp,json=plusHeroXp" json:"plus_hero_xp,omitempty"` @@ -31128,7 +31128,7 @@ func (*CMsgProfileResponse_FeaturedHero) Descriptor() ([]byte, []int) { return file_dota_gcmessages_client_proto_rawDescGZIP(), []int{202, 0} } -func (x *CMsgProfileResponse_FeaturedHero) GetHeroId() uint32 { +func (x *CMsgProfileResponse_FeaturedHero) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -31171,7 +31171,7 @@ type CMsgProfileResponse_MatchInfo struct { MatchId *uint64 `protobuf:"varint,1,opt,name=match_id,json=matchId" json:"match_id,omitempty"` MatchTimestamp *uint32 `protobuf:"varint,2,opt,name=match_timestamp,json=matchTimestamp" json:"match_timestamp,omitempty"` PerformanceRating *int32 `protobuf:"zigzag32,3,opt,name=performance_rating,json=performanceRating" json:"performance_rating,omitempty"` - HeroId *uint32 `protobuf:"varint,4,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,4,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` WonMatch *bool `protobuf:"varint,5,opt,name=won_match,json=wonMatch" json:"won_match,omitempty"` } @@ -31228,7 +31228,7 @@ func (x *CMsgProfileResponse_MatchInfo) GetPerformanceRating() int32 { return 0 } -func (x *CMsgProfileResponse_MatchInfo) GetHeroId() uint32 { +func (x *CMsgProfileResponse_MatchInfo) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -31468,9 +31468,9 @@ type CMsgHeroGlobalDataHeroesAlliesAndEnemies_HeroData struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroId *uint32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` WinRate *uint32 `protobuf:"varint,2,opt,name=win_rate,json=winRate" json:"win_rate,omitempty"` - FirstOtherHeroId *uint32 `protobuf:"varint,3,opt,name=first_other_hero_id,json=firstOtherHeroId" json:"first_other_hero_id,omitempty"` + FirstOtherHeroId *int32 `protobuf:"varint,3,opt,name=first_other_hero_id,json=firstOtherHeroId" json:"first_other_hero_id,omitempty"` AllyWinRate []uint32 `protobuf:"varint,5,rep,name=ally_win_rate,json=allyWinRate" json:"ally_win_rate,omitempty"` EnemyWinRate []uint32 `protobuf:"varint,6,rep,name=enemy_win_rate,json=enemyWinRate" json:"enemy_win_rate,omitempty"` } @@ -31507,7 +31507,7 @@ func (*CMsgHeroGlobalDataHeroesAlliesAndEnemies_HeroData) Descriptor() ([]byte, return file_dota_gcmessages_client_proto_rawDescGZIP(), []int{210, 0} } -func (x *CMsgHeroGlobalDataHeroesAlliesAndEnemies_HeroData) GetHeroId() uint32 { +func (x *CMsgHeroGlobalDataHeroesAlliesAndEnemies_HeroData) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -31521,7 +31521,7 @@ func (x *CMsgHeroGlobalDataHeroesAlliesAndEnemies_HeroData) GetWinRate() uint32 return 0 } -func (x *CMsgHeroGlobalDataHeroesAlliesAndEnemies_HeroData) GetFirstOtherHeroId() uint32 { +func (x *CMsgHeroGlobalDataHeroesAlliesAndEnemies_HeroData) GetFirstOtherHeroId() int32 { if x != nil && x.FirstOtherHeroId != nil { return *x.FirstOtherHeroId } @@ -32542,7 +32542,7 @@ type CMsgClientToGCRequestReporterUpdatesResponse_ReporterUpdate struct { unknownFields protoimpl.UnknownFields MatchId *uint64 `protobuf:"varint,1,opt,name=match_id,json=matchId" json:"match_id,omitempty"` - HeroId *uint32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` ReportReason *uint32 `protobuf:"varint,3,opt,name=report_reason,json=reportReason" json:"report_reason,omitempty"` Timestamp *uint32 `protobuf:"varint,4,opt,name=timestamp" json:"timestamp,omitempty"` } @@ -32586,7 +32586,7 @@ func (x *CMsgClientToGCRequestReporterUpdatesResponse_ReporterUpdate) GetMatchId return 0 } -func (x *CMsgClientToGCRequestReporterUpdatesResponse_ReporterUpdate) GetHeroId() uint32 { +func (x *CMsgClientToGCRequestReporterUpdatesResponse_ReporterUpdate) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -33491,7 +33491,7 @@ var file_dota_gcmessages_client_proto_rawDesc = []byte{ 0x6f, 0x72, 0x69, 0x74, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x22, 0xab, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x22, 0xab, 0x01, 0x0a, 0x12, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, 0x41, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, @@ -33602,7 +33602,7 @@ var file_dota_gcmessages_client_proto_rawDesc = []byte{ 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x09, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x1a, 0x82, 0x07, 0x0a, 0x04, 0x48, 0x65, 0x72, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x77, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x69, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x77, 0x69, 0x6e, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6c, 0x6f, 0x73, 0x73, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x5f, 0x73, @@ -33713,7 +33713,7 @@ var file_dota_gcmessages_client_proto_rawDesc = []byte{ 0x61, 0x6d, 0x70, 0x61, 0x67, 0x65, 0x73, 0x22, 0xd4, 0x05, 0x0a, 0x1f, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x47, 0x65, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x69, 0x6d, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x68, - 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, + 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x64, 0x0a, 0x12, 0x72, 0x61, 0x6e, 0x6b, 0x5f, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x47, 0x65, @@ -33976,7 +33976,7 @@ var file_dota_gcmessages_client_proto_rawDesc = []byte{ 0x2b, 0x0a, 0x11, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, - 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, + 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x18, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, @@ -34003,7 +34003,7 @@ var file_dota_gcmessages_client_proto_rawDesc = []byte{ 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, - 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, + 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, @@ -34133,7 +34133,7 @@ var file_dota_gcmessages_client_proto_rawDesc = []byte{ 0x42, 0x0a, 0x25, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x48, 0x65, 0x72, 0x6f, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x65, 0x72, 0x6f, - 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x68, 0x65, 0x72, 0x6f, + 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x22, 0x41, 0x0a, 0x20, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x48, 0x65, 0x72, 0x6f, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, @@ -34144,7 +34144,7 @@ var file_dota_gcmessages_client_proto_rawDesc = []byte{ 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x75, 0x72, 0x72, 0x48, 0x65, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x75, 0x72, 0x72, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x61, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6c, 0x61, 0x70, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x63, @@ -34167,10 +34167,10 @@ var file_dota_gcmessages_client_proto_rawDesc = []byte{ 0x68, 0x65, 0x72, 0x6f, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x6c, 0x61, 0x70, 0x48, 0x65, 0x72, 0x6f, 0x65, 0x73, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x20, 0x0a, 0x0c, 0x6e, 0x65, - 0x78, 0x74, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, + 0x78, 0x74, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x76, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x26, + 0x28, 0x05, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x76, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x76, 0x48, 0x65, 0x72, 0x6f, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x61, @@ -34189,7 +34189,7 @@ var file_dota_gcmessages_client_proto_rawDesc = []byte{ 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x68, - 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x74, + 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x22, 0x3c, 0x0a, 0x1b, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x47, 0x65, 0x74, 0x54, 0x72, 0x6f, 0x70, 0x68, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, @@ -34277,7 +34277,7 @@ var file_dota_gcmessages_client_proto_rawDesc = []byte{ 0x61, 0x74, 0x75, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, - 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, + 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x79, 0x63, 0x6c, @@ -34537,7 +34537,7 @@ var file_dota_gcmessages_client_proto_rawDesc = []byte{ 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1f, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x06, 0x20, @@ -34557,11 +34557,11 @@ var file_dota_gcmessages_client_proto_rawDesc = []byte{ 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x22, 0x34, 0x0a, 0x19, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x47, 0x65, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x22, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x22, 0x79, 0x0a, 0x21, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x47, 0x65, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x3b, 0x0a, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, 0x41, 0x53, 0x44, 0x4f, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, @@ -34898,7 +34898,7 @@ var file_dota_gcmessages_client_proto_rawDesc = []byte{ 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1f, 0x0a, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x06, 0x20, 0x01, @@ -35739,14 +35739,14 @@ var file_dota_gcmessages_client_proto_rawDesc = []byte{ 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 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, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x65, 0x72, - 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x22, 0xa0, 0x01, 0x0a, 0x23, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x51, 0x75, 0x69, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, @@ -35890,7 +35890,7 @@ var file_dota_gcmessages_client_proto_rawDesc = []byte{ 0x45, 0x44, 0x10, 0x0d, 0x22, 0x71, 0x0a, 0x1b, 0x43, 0x4d, 0x73, 0x67, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x52, 0x65, 0x6c, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x0c, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x0c, 0x72, 0x65, 0x6c, 0x69, 0x63, 0x5f, 0x72, 0x61, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x6c, 0x69, 0x63, 0x52, 0x61, 0x72, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x69, @@ -35951,7 +35951,7 @@ var file_dota_gcmessages_client_proto_rawDesc = []byte{ 0x50, 0x61, 0x67, 0x65, 0x52, 0x0f, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x50, 0x61, 0x67, 0x65, 0x1a, 0xf5, 0x01, 0x0a, 0x0c, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x64, 0x48, 0x65, 0x72, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x41, 0x0a, 0x13, 0x65, 0x71, 0x75, 0x69, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x65, 0x63, 0x6f, 0x6e, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x53, 0x4f, 0x45, 0x63, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x52, @@ -35973,7 +35973,7 @@ var file_dota_gcmessages_client_proto_rawDesc = []byte{ 0x2d, 0x0a, 0x12, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x11, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x17, - 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x77, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x77, 0x6f, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x22, 0x52, 0x0a, 0x09, 0x45, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, @@ -35987,7 +35987,7 @@ var file_dota_gcmessages_client_proto_rawDesc = []byte{ 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x64, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x64, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x22, 0xc4, 0x01, 0x0a, 0x19, 0x43, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, @@ -36033,10 +36033,10 @@ var file_dota_gcmessages_client_proto_rawDesc = []byte{ 0x72, 0x74, 0x68, 0x22, 0x34, 0x0a, 0x19, 0x43, 0x4d, 0x73, 0x67, 0x48, 0x65, 0x72, 0x6f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x22, 0xf8, 0x05, 0x0a, 0x1a, 0x43, 0x4d, + 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x22, 0xf8, 0x05, 0x0a, 0x1a, 0x43, 0x4d, 0x73, 0x67, 0x48, 0x65, 0x72, 0x6f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x64, 0x0a, 0x13, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x48, 0x65, 0x72, 0x6f, 0x47, 0x6c, @@ -36098,11 +36098,11 @@ var file_dota_gcmessages_client_proto_rawDesc = []byte{ 0x61, 0x74, 0x61, 0x52, 0x0e, 0x72, 0x61, 0x6e, 0x6b, 0x65, 0x64, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x1a, 0xb7, 0x01, 0x0a, 0x08, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x77, 0x69, 0x6e, + 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x77, 0x69, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x77, 0x69, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x13, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x10, 0x66, 0x69, 0x72, 0x73, 0x74, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x48, 0x65, 0x72, + 0x05, 0x52, 0x10, 0x66, 0x69, 0x72, 0x73, 0x74, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x79, 0x5f, 0x77, 0x69, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x6c, 0x6c, 0x79, 0x57, 0x69, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x65, 0x6e, 0x65, 0x6d, 0x79, @@ -36145,7 +36145,7 @@ var file_dota_gcmessages_client_proto_rawDesc = []byte{ 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x43, 0x6f, 0x6d, 0x70, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x6a, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x54, 0x6f, 0x43, 0x6c, @@ -36917,7 +36917,7 @@ var file_dota_gcmessages_client_proto_rawDesc = []byte{ 0x70, 0x6c, 0x69, 0x73, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, - 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, + 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x22, 0xd6, 0x02, 0x0a, 0x3c, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x63, 0x6f, @@ -37120,7 +37120,7 @@ var file_dota_gcmessages_client_proto_rawDesc = []byte{ 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, @@ -37199,7 +37199,7 @@ var file_dota_gcmessages_client_proto_rawDesc = []byte{ 0x74, 0x63, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x65, 0x72, + 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x61, 0x6e, 0x6b, 0x5f, 0x74, 0x69, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x61, 0x6e, 0x6b, 0x54, 0x69, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x14, 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, @@ -37596,7 +37596,7 @@ var file_dota_gcmessages_client_proto_rawDesc = []byte{ 0x61, 0x67, 0x65, 0x10, 0x05, 0x22, 0x77, 0x0a, 0x1c, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x53, 0x65, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x6e, 0x65, 0x77, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x6f, 0x6c, 0x64, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, @@ -37884,7 +37884,7 @@ var file_dota_gcmessages_client_proto_rawDesc = []byte{ 0x6e, 0x74, 0x49, 0x64, 0x73, 0x22, 0x47, 0x0a, 0x1d, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x53, 0x65, 0x74, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x48, 0x65, 0x72, 0x6f, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, - 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x22, 0xeb, 0x03, 0x0a, 0x22, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x69, 0x63, 0x42, 0x6f, 0x6f, 0x6b, diff --git a/dota/dota_gcmessages_client.proto b/dota/dota_gcmessages_client.proto index 9962976..e0cd961 100644 --- a/dota/dota_gcmessages_client.proto +++ b/dota/dota_gcmessages_client.proto @@ -384,7 +384,7 @@ message CMsgDOTAWelcome { message CSODOTAGameHeroFavorites { optional uint32 account_id = 1; - optional uint32 hero_id = 2; + optional int32 hero_id = 2; } message CMsgDOTAMatchVotes { @@ -463,7 +463,7 @@ message CMsgGCGetHeroStandings { message CMsgGCGetHeroStandingsResponse { message Hero { - optional uint32 hero_id = 1; + optional int32 hero_id = 1; optional uint32 wins = 2; optional uint32 losses = 3; optional uint32 win_streak = 4; @@ -542,7 +542,7 @@ message CMsgGCGetHeroTimedStatsResponse { repeated CMsgGCGetHeroTimedStatsResponse.TimedStatsContainer timed_stats = 2; } - optional uint32 hero_id = 1; + optional int32 hero_id = 1; repeated CMsgGCGetHeroTimedStatsResponse.RankChunkedStats rank_chunked_stats = 2; } @@ -690,7 +690,7 @@ message CMsgDOTAGetPlayerMatchHistory { optional uint32 account_id = 1; optional uint64 start_at_match_id = 2; optional uint32 matches_requested = 3; - optional uint32 hero_id = 4; + optional int32 hero_id = 4; optional uint32 request_id = 5; optional bool include_practice_matches = 7; optional bool include_custom_games = 8; @@ -701,7 +701,7 @@ message CMsgDOTAGetPlayerMatchHistoryResponse { message Match { optional uint64 match_id = 1; optional uint32 start_time = 2; - optional uint32 hero_id = 3; + optional int32 hero_id = 3; optional bool winner = 4; optional uint32 game_mode = 5; optional int32 rank_change = 6; @@ -798,7 +798,7 @@ message CMsgClientToGCGetAllHeroOrder { } message CMsgClientToGCGetAllHeroOrderResponse { - repeated uint32 hero_ids = 1; + repeated int32 hero_ids = 1; } message CMsgClientToGCGetAllHeroProgress { @@ -807,7 +807,7 @@ message CMsgClientToGCGetAllHeroProgress { message CMsgClientToGCGetAllHeroProgressResponse { optional uint32 account_id = 1; - optional uint32 curr_hero_id = 2; + optional int32 curr_hero_id = 2; optional uint32 laps_completed = 3; optional uint32 curr_hero_games = 4; optional uint32 curr_lap_time_started = 5; @@ -816,8 +816,8 @@ message CMsgClientToGCGetAllHeroProgressResponse { optional uint32 best_lap_time = 8; optional uint32 lap_heroes_completed = 9; optional uint32 lap_heroes_remaining = 10; - optional uint32 next_hero_id = 11; - optional uint32 prev_hero_id = 12; + optional int32 next_hero_id = 11; + optional int32 prev_hero_id = 12; optional uint32 prev_hero_games = 13; optional float prev_avg_tries = 14; optional float curr_avg_tries = 15; @@ -825,7 +825,7 @@ message CMsgClientToGCGetAllHeroProgressResponse { optional float full_lap_avg_tries = 17; optional float curr_lap_avg_tries = 18; optional string profile_name = 19; - optional uint32 start_hero_id = 20; + optional int32 start_hero_id = 20; } message CMsgClientToGCGetTrophyList { @@ -891,7 +891,7 @@ message CMsgClientToGCGetProfileCardStats { message CMsgClientToGCCreateHeroStatue { optional uint64 source_item_id = 1; - optional uint32 hero_id = 3; + optional int32 hero_id = 3; optional string sequence_name = 4; optional float cycle = 5; repeated uint32 wearables = 6; @@ -1048,7 +1048,7 @@ message CMsgClientToGCGetQuestProgressResponse { optional uint32 challenge_id = 1; optional uint32 time_completed = 2; optional uint32 attempts = 3; - optional uint32 hero_id = 4; + optional int32 hero_id = 4; optional uint32 template_id = 5; optional uint32 quest_rank = 6; } @@ -1067,11 +1067,11 @@ message CMsgGCToClientMatchSignedOut { } message CMsgGCGetHeroStatsHistory { - optional uint32 hero_id = 1; + optional int32 hero_id = 1; } message CMsgGCGetHeroStatsHistoryResponse { - optional uint32 hero_id = 1; + optional int32 hero_id = 1; repeated CMsgDOTASDOHeroStatsHistory records = 2; } @@ -1286,7 +1286,7 @@ message CMsgGCToClientQuestProgressUpdated { optional uint32 challenge_id = 1; optional uint32 time_completed = 2; optional uint32 attempts = 3; - optional uint32 hero_id = 4; + optional int32 hero_id = 4; optional uint32 template_id = 5; optional uint32 quest_rank = 6; optional uint32 max_quest_rank = 7; @@ -1823,12 +1823,12 @@ message CMsgGCToClientCommendNotification { optional uint32 commender_account_id = 1; optional string commender_name = 2; optional uint32 flags = 3; - optional uint32 commender_hero_id = 4; + optional int32 commender_hero_id = 4; } message CMsgDOTAClientToGCQuickStatsRequest { optional uint32 player_account_id = 1; - optional uint32 hero_id = 2; + optional int32 hero_id = 2; optional int32 item_id = 3; optional uint32 league_id = 4; } @@ -1924,7 +1924,7 @@ message CMsgPurchaseItemWithEventPointsResponse { } message CMsgPurchaseHeroRandomRelic { - optional uint32 hero_id = 1; + optional int32 hero_id = 1; optional EHeroRelicRarity relic_rarity = 2; } @@ -1947,7 +1947,7 @@ message CMsgProfileRequest { message CMsgProfileResponse { message FeaturedHero { - optional uint32 hero_id = 1; + optional int32 hero_id = 1; repeated CSOEconItem equipped_econ_items = 2; optional bool manually_set = 3; optional uint32 plus_hero_xp = 4; @@ -1958,7 +1958,7 @@ message CMsgProfileResponse { optional uint64 match_id = 1; optional uint32 match_timestamp = 2; optional sint32 performance_rating = 3; - optional uint32 hero_id = 4; + optional int32 hero_id = 4; optional bool won_match = 5; } @@ -1980,7 +1980,7 @@ message CMsgProfileResponse { message CMsgProfileUpdate { optional uint64 background_item_id = 1; - repeated uint32 featured_hero_ids = 2; + repeated int32 featured_hero_ids = 2; } message CMsgProfileUpdateResponse { @@ -2015,7 +2015,7 @@ message CMsgGlobalHeroAverages { } message CMsgHeroGlobalDataRequest { - optional uint32 hero_id = 1; + optional int32 hero_id = 1; } message CMsgHeroGlobalDataResponse { @@ -2041,7 +2041,7 @@ message CMsgHeroGlobalDataResponse { repeated CMsgHeroGlobalDataResponse.WeekData week_data = 5; } - optional uint32 hero_id = 1; + optional int32 hero_id = 1; repeated CMsgHeroGlobalDataResponse.HeroDataPerRankChunk hero_data_per_chunk = 2; } @@ -2051,9 +2051,9 @@ message CMsgHeroGlobalDataAllHeroes { message CMsgHeroGlobalDataHeroesAlliesAndEnemies { message HeroData { - optional uint32 hero_id = 1; + optional int32 hero_id = 1; optional uint32 win_rate = 2; - optional uint32 first_other_hero_id = 3; + optional int32 first_other_hero_id = 3; repeated uint32 ally_win_rate = 5; repeated uint32 enemy_win_rate = 6; } @@ -2094,7 +2094,7 @@ message CMsgGCToClientCavernCrawlMapPathCompleted { } optional uint32 event_id = 1; - optional uint32 hero_id_completed = 2; + optional int32 hero_id_completed = 2; repeated CMsgGCToClientCavernCrawlMapPathCompleted.CompletedPathInfo completed_paths = 3; optional uint32 map_variant = 4; } @@ -2616,7 +2616,7 @@ message CMsgClientToGCRequestPlayerRecentAccomplishmentsResponse { message CMsgClientToGCRequestPlayerHeroRecentAccomplishments { optional uint32 account_id = 1; - optional uint32 hero_id = 2; + optional int32 hero_id = 2; } message CMsgClientToGCRequestPlayerHeroRecentAccomplishmentsResponse { @@ -2745,7 +2745,7 @@ message CMsgClientToGCRequestReporterUpdates { message CMsgClientToGCRequestReporterUpdatesResponse { message ReporterUpdate { optional uint64 match_id = 1; - optional uint32 hero_id = 2; + optional int32 hero_id = 2; optional uint32 report_reason = 3; optional uint32 timestamp = 4; } @@ -2819,7 +2819,7 @@ message CMsgClientToGCGetOWMatchDetailsResponse { optional uint32 target_player_slot = 6; repeated CMsgClientToGCGetOWMatchDetailsResponse.Marker markers = 7; optional EOverwatchReportReason report_reason = 8; - optional uint32 target_hero_id = 9; + optional int32 target_hero_id = 9; optional uint32 rank_tier = 10; optional uint32 lane_selection_flags = 11; } @@ -3091,7 +3091,7 @@ message CMsgClientToGCOrderStickerbookTeamPageResponse { } message CMsgClientToGCSetHeroSticker { - optional uint32 hero_id = 1; + optional int32 hero_id = 1; optional uint64 new_item_id = 2; optional uint64 old_item_id = 3; } @@ -3310,7 +3310,7 @@ message CMsgClientToGCNewBloomGiftResponse { } message CMsgClientToGCSetBannedHeroes { - repeated uint32 banned_hero_ids = 1; + repeated int32 banned_hero_ids = 1; } message CMsgClientToGCUpdateComicBookStats { diff --git a/dota/dota_gcmessages_client_battle_report.pb.go b/dota/dota_gcmessages_client_battle_report.pb.go index 1f520fb..fe204c1 100644 --- a/dota/dota_gcmessages_client_battle_report.pb.go +++ b/dota/dota_gcmessages_client_battle_report.pb.go @@ -1155,7 +1155,7 @@ type CMsgBattleReport_Game struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroId *uint32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` Kills *uint32 `protobuf:"varint,2,opt,name=kills" json:"kills,omitempty"` Deaths *uint32 `protobuf:"varint,3,opt,name=deaths" json:"deaths,omitempty"` Assists *uint32 `protobuf:"varint,4,opt,name=assists" json:"assists,omitempty"` @@ -1239,7 +1239,7 @@ func (*CMsgBattleReport_Game) Descriptor() ([]byte, []int) { return file_dota_gcmessages_client_battle_report_proto_rawDescGZIP(), []int{1} } -func (x *CMsgBattleReport_Game) GetHeroId() uint32 { +func (x *CMsgBattleReport_Game) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -1699,7 +1699,7 @@ type CMsgBattleReportInfo struct { Timestamp *uint32 `protobuf:"varint,1,opt,name=timestamp" json:"timestamp,omitempty"` Duration *uint32 `protobuf:"varint,2,opt,name=duration" json:"duration,omitempty"` Acknowledged *bool `protobuf:"varint,3,opt,name=acknowledged" json:"acknowledged,omitempty"` - FeaturedHeroId *uint32 `protobuf:"varint,4,opt,name=featured_hero_id,json=featuredHeroId" json:"featured_hero_id,omitempty"` + FeaturedHeroId *int32 `protobuf:"varint,4,opt,name=featured_hero_id,json=featuredHeroId" json:"featured_hero_id,omitempty"` FeaturedPosition *uint32 `protobuf:"varint,5,opt,name=featured_position,json=featuredPosition" json:"featured_position,omitempty"` GamesPlayed *uint32 `protobuf:"varint,6,opt,name=games_played,json=gamesPlayed" json:"games_played,omitempty"` MedalCounts []uint32 `protobuf:"varint,7,rep,name=medal_counts,json=medalCounts" json:"medal_counts,omitempty"` @@ -1758,7 +1758,7 @@ func (x *CMsgBattleReportInfo) GetAcknowledged() bool { return false } -func (x *CMsgBattleReportInfo) GetFeaturedHeroId() uint32 { +func (x *CMsgBattleReportInfo) GetFeaturedHeroId() int32 { if x != nil && x.FeaturedHeroId != nil { return *x.FeaturedHeroId } @@ -2582,7 +2582,7 @@ type CMsgBattleReport_Highlight struct { Rarity *CMsgBattleReport_HighlightRarity `protobuf:"varint,4,opt,name=rarity,enum=dota.CMsgBattleReport_HighlightRarity" json:"rarity,omitempty"` Score *float32 `protobuf:"fixed32,5,opt,name=score" json:"score,omitempty"` Confidence *float32 `protobuf:"fixed32,6,opt,name=confidence" json:"confidence,omitempty"` - HeroId *uint32 `protobuf:"varint,7,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,7,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` Role *CMsgBattleReport_Role `protobuf:"varint,8,opt,name=role,enum=dota.CMsgBattleReport_Role" json:"role,omitempty"` ComparisonDeltaValue *float32 `protobuf:"fixed32,9,opt,name=comparison_delta_value,json=comparisonDeltaValue" json:"comparison_delta_value,omitempty"` Context *CMsgBattleReport_CompareContext `protobuf:"varint,10,opt,name=context,enum=dota.CMsgBattleReport_CompareContext" json:"context,omitempty"` @@ -2662,7 +2662,7 @@ func (x *CMsgBattleReport_Highlight) GetConfidence() float32 { return 0 } -func (x *CMsgBattleReport_Highlight) GetHeroId() uint32 { +func (x *CMsgBattleReport_Highlight) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -2750,7 +2750,7 @@ type CMsgBattleReportAggregateStats_CMsgBattleReportAggregate struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroId *uint32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` PredictedPosition *uint32 `protobuf:"varint,2,opt,name=predicted_position,json=predictedPosition" json:"predicted_position,omitempty"` GameCount *uint32 `protobuf:"varint,3,opt,name=game_count,json=gameCount" json:"game_count,omitempty"` WinCount *uint32 `protobuf:"varint,4,opt,name=win_count,json=winCount" json:"win_count,omitempty"` @@ -2815,7 +2815,7 @@ func (*CMsgBattleReportAggregateStats_CMsgBattleReportAggregate) Descriptor() ([ return file_dota_gcmessages_client_battle_report_proto_rawDescGZIP(), []int{7, 1} } -func (x *CMsgBattleReportAggregateStats_CMsgBattleReportAggregate) GetHeroId() uint32 { +func (x *CMsgBattleReportAggregateStats_CMsgBattleReportAggregate) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -3037,7 +3037,7 @@ type CMsgClientToGCGetBattleReportAggregateStats_CMsgBattleReportAggregateKey st sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroId *uint32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` PredictedPosition *uint32 `protobuf:"varint,2,opt,name=predicted_position,json=predictedPosition" json:"predicted_position,omitempty"` } @@ -3073,7 +3073,7 @@ func (*CMsgClientToGCGetBattleReportAggregateStats_CMsgBattleReportAggregateKey) return file_dota_gcmessages_client_battle_report_proto_rawDescGZIP(), []int{10, 0} } -func (x *CMsgClientToGCGetBattleReportAggregateStats_CMsgBattleReportAggregateKey) GetHeroId() uint32 { +func (x *CMsgClientToGCGetBattleReportAggregateStats_CMsgBattleReportAggregateKey) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -3117,7 +3117,7 @@ var file_dota_gcmessages_client_battle_report_proto_rawDesc = []byte{ 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x82, 0x0e, 0x0a, 0x15, 0x43, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x68, - 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, + 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x64, 0x65, 0x61, 0x74, @@ -3270,7 +3270,7 @@ var file_dota_gcmessages_client_battle_report_proto_rawDesc = []byte{ 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x68, - 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, + 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x52, 0x6f, 0x6c, 0x65, 0x52, @@ -3290,7 +3290,7 @@ var file_dota_gcmessages_client_battle_report_proto_rawDesc = []byte{ 0x22, 0x0a, 0x0c, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x64, 0x5f, - 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x66, + 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x64, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, @@ -3326,7 +3326,7 @@ var file_dota_gcmessages_client_battle_report_proto_rawDesc = []byte{ 0x64, 0x65, 0x76, 0x1a, 0xd8, 0x14, 0x0a, 0x19, 0x43, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, + 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x6d, @@ -3548,7 +3548,7 @@ var file_dota_gcmessages_client_battle_report_proto_rawDesc = []byte{ 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x1a, 0x66, 0x0a, 0x1c, 0x43, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x17, 0x0a, - 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, + 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, 0x64, 0x50, 0x6f, 0x73, diff --git a/dota/dota_gcmessages_client_battle_report.proto b/dota/dota_gcmessages_client_battle_report.proto index 9dfdd22..0b11172 100644 --- a/dota/dota_gcmessages_client_battle_report.proto +++ b/dota/dota_gcmessages_client_battle_report.proto @@ -140,7 +140,7 @@ message CMsgClientToGCGetBattleReport { } message CMsgBattleReport_Game { - optional uint32 hero_id = 1; + optional int32 hero_id = 1; optional uint32 kills = 2; optional uint32 deaths = 3; optional uint32 assists = 4; @@ -211,7 +211,7 @@ message CMsgBattleReport { optional CMsgBattleReport_HighlightRarity rarity = 4; optional float score = 5; optional float confidence = 6; - optional uint32 hero_id = 7; + optional int32 hero_id = 7; optional CMsgBattleReport_Role role = 8; optional float comparison_delta_value = 9; optional CMsgBattleReport_CompareContext context = 10; @@ -225,7 +225,7 @@ message CMsgBattleReportInfo { optional uint32 timestamp = 1; optional uint32 duration = 2; optional bool acknowledged = 3; - optional uint32 featured_hero_id = 4; + optional int32 featured_hero_id = 4; optional uint32 featured_position = 5; optional uint32 games_played = 6; repeated uint32 medal_counts = 7; @@ -246,7 +246,7 @@ message CMsgBattleReportAggregateStats { } message CMsgBattleReportAggregate { - optional uint32 hero_id = 1; + optional int32 hero_id = 1; optional uint32 predicted_position = 2; optional uint32 game_count = 3; optional uint32 win_count = 4; @@ -309,7 +309,7 @@ message CMsgClientToGCGetBattleReportResponse { message CMsgClientToGCGetBattleReportAggregateStats { message CMsgBattleReportAggregateKey { - optional uint32 hero_id = 1; + optional int32 hero_id = 1; optional uint32 predicted_position = 2; } diff --git a/dota/dota_gcmessages_client_chat.pb.go b/dota/dota_gcmessages_client_chat.pb.go index e2bf483..4696c38 100644 --- a/dota/dota_gcmessages_client_chat.pb.go +++ b/dota/dota_gcmessages_client_chat.pb.go @@ -763,9 +763,9 @@ type CMsgDOTAChatMessage struct { LegacyBattleCupVictory *bool `protobuf:"varint,24,opt,name=legacy_battle_cup_victory,json=legacyBattleCupVictory" json:"legacy_battle_cup_victory,omitempty"` BattleCupStreak *uint32 `protobuf:"varint,29,opt,name=battle_cup_streak,json=battleCupStreak" json:"battle_cup_streak,omitempty"` BadgeLevel *uint32 `protobuf:"varint,25,opt,name=badge_level,json=badgeLevel" json:"badge_level,omitempty"` - SuggestPickHeroId *uint32 `protobuf:"varint,26,opt,name=suggest_pick_hero_id,json=suggestPickHeroId" json:"suggest_pick_hero_id,omitempty"` + SuggestPickHeroId *int32 `protobuf:"varint,26,opt,name=suggest_pick_hero_id,json=suggestPickHeroId" json:"suggest_pick_hero_id,omitempty"` SuggestPickHeroRole *string `protobuf:"bytes,27,opt,name=suggest_pick_hero_role,json=suggestPickHeroRole" json:"suggest_pick_hero_role,omitempty"` - SuggestBanHeroId *uint32 `protobuf:"varint,30,opt,name=suggest_ban_hero_id,json=suggestBanHeroId" json:"suggest_ban_hero_id,omitempty"` + SuggestBanHeroId *int32 `protobuf:"varint,30,opt,name=suggest_ban_hero_id,json=suggestBanHeroId" json:"suggest_ban_hero_id,omitempty"` TriviaAnswer *CMsgDOTAChatMessage_TriviaAnswered `protobuf:"bytes,32,opt,name=trivia_answer,json=triviaAnswer" json:"trivia_answer,omitempty"` RequestedAbilityId *int32 `protobuf:"varint,33,opt,name=requested_ability_id,json=requestedAbilityId" json:"requested_ability_id,omitempty"` ChatFlags *uint32 `protobuf:"varint,34,opt,name=chat_flags,json=chatFlags" json:"chat_flags,omitempty"` @@ -987,7 +987,7 @@ func (x *CMsgDOTAChatMessage) GetBadgeLevel() uint32 { return 0 } -func (x *CMsgDOTAChatMessage) GetSuggestPickHeroId() uint32 { +func (x *CMsgDOTAChatMessage) GetSuggestPickHeroId() int32 { if x != nil && x.SuggestPickHeroId != nil { return *x.SuggestPickHeroId } @@ -1001,7 +1001,7 @@ func (x *CMsgDOTAChatMessage) GetSuggestPickHeroRole() string { return "" } -func (x *CMsgDOTAChatMessage) GetSuggestBanHeroId() uint32 { +func (x *CMsgDOTAChatMessage) GetSuggestBanHeroId() int32 { if x != nil && x.SuggestBanHeroId != nil { return *x.SuggestBanHeroId } @@ -2397,14 +2397,14 @@ var file_dota_gcmessages_client_chat_proto_rawDesc = []byte{ 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x64, 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x62, 0x61, 0x64, 0x67, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x2f, 0x0a, 0x14, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x69, 0x63, 0x6b, - 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, + 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x50, 0x69, 0x63, 0x6b, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x16, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x69, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x50, 0x69, 0x63, 0x6b, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x2d, 0x0a, 0x13, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x61, 0x6e, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x1e, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x10, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x42, 0x61, 0x6e, 0x48, + 0x01, 0x28, 0x05, 0x52, 0x10, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x42, 0x61, 0x6e, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x4d, 0x0a, 0x0d, 0x74, 0x72, 0x69, 0x76, 0x69, 0x61, 0x5f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, 0x74, diff --git a/dota/dota_gcmessages_client_chat.proto b/dota/dota_gcmessages_client_chat.proto index db79ada..4c5a0ea 100644 --- a/dota/dota_gcmessages_client_chat.proto +++ b/dota/dota_gcmessages_client_chat.proto @@ -122,9 +122,9 @@ message CMsgDOTAChatMessage { optional bool legacy_battle_cup_victory = 24; optional uint32 battle_cup_streak = 29; optional uint32 badge_level = 25; - optional uint32 suggest_pick_hero_id = 26; + optional int32 suggest_pick_hero_id = 26; optional string suggest_pick_hero_role = 27; - optional uint32 suggest_ban_hero_id = 30; + optional int32 suggest_ban_hero_id = 30; optional CMsgDOTAChatMessage.TriviaAnswered trivia_answer = 32; optional int32 requested_ability_id = 33; optional uint32 chat_flags = 34; diff --git a/dota/dota_gcmessages_client_match_management.pb.go b/dota/dota_gcmessages_client_match_management.pb.go index d322266..53e851a 100644 --- a/dota/dota_gcmessages_client_match_management.pb.go +++ b/dota/dota_gcmessages_client_match_management.pb.go @@ -887,7 +887,7 @@ type CMsgPracticeLobbySetDetails struct { CustomGamePenalties *bool `protobuf:"varint,47,opt,name=custom_game_penalties,json=customGamePenalties" json:"custom_game_penalties,omitempty"` LanHostPingLocation *string `protobuf:"bytes,48,opt,name=lan_host_ping_location,json=lanHostPingLocation" json:"lan_host_ping_location,omitempty"` LeagueNodeId *uint32 `protobuf:"varint,49,opt,name=league_node_id,json=leagueNodeId" json:"league_node_id,omitempty"` - RequestedHeroIds []uint32 `protobuf:"varint,50,rep,name=requested_hero_ids,json=requestedHeroIds" json:"requested_hero_ids,omitempty"` + RequestedHeroIds []int32 `protobuf:"varint,50,rep,name=requested_hero_ids,json=requestedHeroIds" json:"requested_hero_ids,omitempty"` ScenarioSave *CMsgLobbyScenarioSave `protobuf:"bytes,51,opt,name=scenario_save,json=scenarioSave" json:"scenario_save,omitempty"` AbilityDraftSpecificDetails *CMsgPracticeLobbySetDetails_AbilityDraftSpecificDetails `protobuf:"bytes,52,opt,name=ability_draft_specific_details,json=abilityDraftSpecificDetails" json:"ability_draft_specific_details,omitempty"` DoPlayerDraft *bool `protobuf:"varint,53,opt,name=do_player_draft,json=doPlayerDraft" json:"do_player_draft,omitempty"` @@ -1205,7 +1205,7 @@ func (x *CMsgPracticeLobbySetDetails) GetLeagueNodeId() uint32 { return 0 } -func (x *CMsgPracticeLobbySetDetails) GetRequestedHeroIds() []uint32 { +func (x *CMsgPracticeLobbySetDetails) GetRequestedHeroIds() []int32 { if x != nil { return x.RequestedHeroIds } @@ -4777,7 +4777,7 @@ var file_dota_gcmessages_client_match_management_proto_rawDesc = []byte{ 0x0e, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, - 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x32, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x32, 0x20, 0x03, 0x28, 0x05, 0x52, 0x10, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x12, 0x40, 0x0a, 0x0d, 0x73, 0x63, 0x65, 0x6e, 0x61, 0x72, 0x69, 0x6f, 0x5f, 0x73, 0x61, 0x76, 0x65, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, diff --git a/dota/dota_gcmessages_client_match_management.proto b/dota/dota_gcmessages_client_match_management.proto index e9f7407..c7f7009 100644 --- a/dota/dota_gcmessages_client_match_management.proto +++ b/dota/dota_gcmessages_client_match_management.proto @@ -163,7 +163,7 @@ message CMsgPracticeLobbySetDetails { optional bool custom_game_penalties = 47; optional string lan_host_ping_location = 48; optional uint32 league_node_id = 49; - repeated uint32 requested_hero_ids = 50; + repeated int32 requested_hero_ids = 50; optional CMsgLobbyScenarioSave scenario_save = 51; optional CMsgPracticeLobbySetDetails.AbilityDraftSpecificDetails ability_draft_specific_details = 52; optional bool do_player_draft = 53; diff --git a/dota/dota_gcmessages_client_showcase.pb.go b/dota/dota_gcmessages_client_showcase.pb.go index a04f6e8..6346880 100644 --- a/dota/dota_gcmessages_client_showcase.pb.go +++ b/dota/dota_gcmessages_client_showcase.pb.go @@ -1608,7 +1608,7 @@ type CMsgShowcaseItem_Hero struct { unknownFields protoimpl.UnknownFields Data *CMsgShowcaseItem_Hero_Data `protobuf:"bytes,1,opt,name=data" json:"data,omitempty"` - HeroId *uint32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` EconItemRefs []*CMsgShowcaseEconItemReference `protobuf:"bytes,3,rep,name=econ_item_refs,json=econItemRefs" json:"econ_item_refs,omitempty"` Rotation *uint32 `protobuf:"varint,4,opt,name=rotation" json:"rotation,omitempty"` Flags *uint32 `protobuf:"varint,5,opt,name=flags" json:"flags,omitempty"` @@ -1660,7 +1660,7 @@ func (x *CMsgShowcaseItem_Hero) GetData() *CMsgShowcaseItem_Hero_Data { return nil } -func (x *CMsgShowcaseItem_Hero) GetHeroId() uint32 { +func (x *CMsgShowcaseItem_Hero) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -1743,7 +1743,7 @@ type CMsgShowcaseItem_HeroIcon struct { unknownFields protoimpl.UnknownFields Data *CMsgShowcaseItem_HeroIcon_Data `protobuf:"bytes,1,opt,name=data" json:"data,omitempty"` - HeroId *uint32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` EconItemRef *CMsgShowcaseEconItemReference `protobuf:"bytes,3,opt,name=econ_item_ref,json=econItemRef" json:"econ_item_ref,omitempty"` } @@ -1786,7 +1786,7 @@ func (x *CMsgShowcaseItem_HeroIcon) GetData() *CMsgShowcaseItem_HeroIcon_Data { return nil } -func (x *CMsgShowcaseItem_HeroIcon) GetHeroId() uint32 { +func (x *CMsgShowcaseItem_HeroIcon) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -4670,7 +4670,7 @@ type CMsgShowcaseItem_Hero_Data struct { unknownFields protoimpl.UnknownFields EconItems []*CSOEconItem `protobuf:"bytes,1,rep,name=econ_items,json=econItems" json:"econ_items,omitempty"` - ActualHeroId *uint32 `protobuf:"varint,2,opt,name=actual_hero_id,json=actualHeroId" json:"actual_hero_id,omitempty"` + ActualHeroId *int32 `protobuf:"varint,2,opt,name=actual_hero_id,json=actualHeroId" json:"actual_hero_id,omitempty"` PlusHeroXp *uint32 `protobuf:"varint,3,opt,name=plus_hero_xp,json=plusHeroXp" json:"plus_hero_xp,omitempty"` } @@ -4713,7 +4713,7 @@ func (x *CMsgShowcaseItem_Hero_Data) GetEconItems() []*CSOEconItem { return nil } -func (x *CMsgShowcaseItem_Hero_Data) GetActualHeroId() uint32 { +func (x *CMsgShowcaseItem_Hero_Data) GetActualHeroId() int32 { if x != nil && x.ActualHeroId != nil { return *x.ActualHeroId } @@ -4779,7 +4779,7 @@ type CMsgShowcaseItem_PlayerMatch_Data struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroId *uint32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` Timestamp *uint32 `protobuf:"varint,2,opt,name=timestamp" json:"timestamp,omitempty"` Duration *uint32 `protobuf:"varint,3,opt,name=duration" json:"duration,omitempty"` GameMode *DOTA_GameMode `protobuf:"varint,4,opt,name=game_mode,json=gameMode,enum=dota.DOTA_GameMode" json:"game_mode,omitempty"` @@ -4821,7 +4821,7 @@ func (*CMsgShowcaseItem_PlayerMatch_Data) Descriptor() ([]byte, []int) { return file_dota_gcmessages_client_showcase_proto_rawDescGZIP(), []int{6, 0} } -func (x *CMsgShowcaseItem_PlayerMatch_Data) GetHeroId() uint32 { +func (x *CMsgShowcaseItem_PlayerMatch_Data) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -5184,7 +5184,7 @@ var file_dota_gcmessages_client_showcase_proto_rawDesc = []byte{ 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x5f, 0x48, 0x65, 0x72, 0x6f, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x0e, 0x65, 0x63, 0x6f, 0x6e, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x72, 0x65, 0x66, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x68, 0x6f, 0x77, @@ -5215,7 +5215,7 @@ var file_dota_gcmessages_client_showcase_proto_rawDesc = []byte{ 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x53, 0x4f, 0x45, 0x63, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x09, 0x65, 0x63, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x5f, - 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x61, + 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x70, 0x6c, 0x75, 0x73, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x78, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6c, 0x75, 0x73, 0x48, 0x65, 0x72, 0x6f, 0x58, 0x70, 0x22, 0xef, 0x01, @@ -5225,7 +5225,7 @@ var file_dota_gcmessages_client_showcase_proto_rawDesc = []byte{ 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x5f, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x63, 0x6f, 0x6e, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x47, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x47, 0x0a, 0x0d, 0x65, 0x63, 0x6f, 0x6e, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x45, 0x63, 0x6f, 0x6e, 0x49, 0x74, 0x65, @@ -5245,7 +5245,7 @@ var file_dota_gcmessages_client_showcase_proto_rawDesc = []byte{ 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x6c, 0x6f, 0x74, 0x1a, 0xa0, 0x02, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x75, 0x72, diff --git a/dota/dota_gcmessages_client_showcase.proto b/dota/dota_gcmessages_client_showcase.proto index 7af95eb..d8fe942 100644 --- a/dota/dota_gcmessages_client_showcase.proto +++ b/dota/dota_gcmessages_client_showcase.proto @@ -96,12 +96,12 @@ message CMsgShowcaseItem_EconItem { message CMsgShowcaseItem_Hero { message Data { repeated CSOEconItem econ_items = 1; - optional uint32 actual_hero_id = 2; + optional int32 actual_hero_id = 2; optional uint32 plus_hero_xp = 3; } optional CMsgShowcaseItem_Hero.Data data = 1; - optional uint32 hero_id = 2; + optional int32 hero_id = 2; repeated CMsgShowcaseEconItemReference econ_item_refs = 3; optional uint32 rotation = 4; optional uint32 flags = 5; @@ -120,13 +120,13 @@ message CMsgShowcaseItem_HeroIcon { } optional CMsgShowcaseItem_HeroIcon.Data data = 1; - optional uint32 hero_id = 2; + optional int32 hero_id = 2; optional CMsgShowcaseEconItemReference econ_item_ref = 3; } message CMsgShowcaseItem_PlayerMatch { message Data { - optional uint32 hero_id = 1; + optional int32 hero_id = 1; optional uint32 timestamp = 2; optional uint32 duration = 3; optional DOTA_GameMode game_mode = 4; diff --git a/dota/dota_gcmessages_client_team.pb.go b/dota/dota_gcmessages_client_team.pb.go index 6510b57..402c813 100644 --- a/dota/dota_gcmessages_client_team.pb.go +++ b/dota/dota_gcmessages_client_team.pb.go @@ -1992,7 +1992,7 @@ type CMsgDOTATeamInfo_HeroStats struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroId *uint32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` Picks *uint32 `protobuf:"varint,2,opt,name=picks" json:"picks,omitempty"` Wins *uint32 `protobuf:"varint,3,opt,name=wins" json:"wins,omitempty"` Bans *uint32 `protobuf:"varint,4,opt,name=bans" json:"bans,omitempty"` @@ -2035,7 +2035,7 @@ func (*CMsgDOTATeamInfo_HeroStats) Descriptor() ([]byte, []int) { return file_dota_gcmessages_client_team_proto_rawDescGZIP(), []int{0, 0} } -func (x *CMsgDOTATeamInfo_HeroStats) GetHeroId() uint32 { +func (x *CMsgDOTATeamInfo_HeroStats) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -2599,7 +2599,7 @@ var file_dota_gcmessages_client_team_proto_rawDesc = []byte{ 0x6d, 0x5f, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x6d, 0x43, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x1a, 0xf1, 0x01, 0x0a, 0x09, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, - 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, + 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x69, 0x63, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x70, 0x69, 0x63, 0x6b, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x69, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x77, 0x69, 0x6e, 0x73, 0x12, 0x12, 0x0a, diff --git a/dota/dota_gcmessages_client_team.proto b/dota/dota_gcmessages_client_team.proto index d8d23db..256a096 100644 --- a/dota/dota_gcmessages_client_team.proto +++ b/dota/dota_gcmessages_client_team.proto @@ -24,7 +24,7 @@ enum ETeamInviteResult { message CMsgDOTATeamInfo { message HeroStats { - optional uint32 hero_id = 1; + optional int32 hero_id = 1; optional uint32 picks = 2; optional uint32 wins = 3; optional uint32 bans = 4; diff --git a/dota/dota_gcmessages_client_watch.pb.go b/dota/dota_gcmessages_client_watch.pb.go index c311126..f60cfa0 100644 --- a/dota/dota_gcmessages_client_watch.pb.go +++ b/dota/dota_gcmessages_client_watch.pb.go @@ -483,7 +483,7 @@ type CMsgClientToGCFindTopSourceTVGames struct { SearchKey *string `protobuf:"bytes,1,opt,name=search_key,json=searchKey" json:"search_key,omitempty"` LeagueId *uint32 `protobuf:"varint,2,opt,name=league_id,json=leagueId" json:"league_id,omitempty"` - HeroId *uint32 `protobuf:"varint,3,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,3,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` StartGame *uint32 `protobuf:"varint,4,opt,name=start_game,json=startGame" json:"start_game,omitempty"` GameListIndex *uint32 `protobuf:"varint,5,opt,name=game_list_index,json=gameListIndex" json:"game_list_index,omitempty"` LobbyIds []uint64 `protobuf:"varint,6,rep,name=lobby_ids,json=lobbyIds" json:"lobby_ids,omitempty"` @@ -535,7 +535,7 @@ func (x *CMsgClientToGCFindTopSourceTVGames) GetLeagueId() uint32 { return 0 } -func (x *CMsgClientToGCFindTopSourceTVGames) GetHeroId() uint32 { +func (x *CMsgClientToGCFindTopSourceTVGames) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -570,7 +570,7 @@ type CMsgGCToClientFindTopSourceTVGamesResponse struct { SearchKey *string `protobuf:"bytes,1,opt,name=search_key,json=searchKey" json:"search_key,omitempty"` LeagueId *uint32 `protobuf:"varint,2,opt,name=league_id,json=leagueId" json:"league_id,omitempty"` - HeroId *uint32 `protobuf:"varint,3,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,3,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` StartGame *uint32 `protobuf:"varint,4,opt,name=start_game,json=startGame" json:"start_game,omitempty"` NumGames *uint32 `protobuf:"varint,5,opt,name=num_games,json=numGames" json:"num_games,omitempty"` GameListIndex *uint32 `protobuf:"varint,6,opt,name=game_list_index,json=gameListIndex" json:"game_list_index,omitempty"` @@ -625,7 +625,7 @@ func (x *CMsgGCToClientFindTopSourceTVGamesResponse) GetLeagueId() uint32 { return 0 } -func (x *CMsgGCToClientFindTopSourceTVGamesResponse) GetHeroId() uint32 { +func (x *CMsgGCToClientFindTopSourceTVGamesResponse) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -1661,7 +1661,7 @@ type CSourceTVGameSmall_Player struct { unknownFields protoimpl.UnknownFields AccountId *uint32 `protobuf:"varint,1,opt,name=account_id,json=accountId" json:"account_id,omitempty"` - HeroId *uint32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` TeamSlot *uint32 `protobuf:"varint,3,opt,name=team_slot,json=teamSlot" json:"team_slot,omitempty"` Team *uint32 `protobuf:"varint,4,opt,name=team" json:"team,omitempty"` } @@ -1705,7 +1705,7 @@ func (x *CSourceTVGameSmall_Player) GetAccountId() uint32 { return 0 } -func (x *CSourceTVGameSmall_Player) GetHeroId() uint32 { +func (x *CSourceTVGameSmall_Player) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -2020,7 +2020,7 @@ var file_dota_gcmessages_client_watch_proto_rawDesc = []byte{ 0x61, 0x79, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x74, 0x65, 0x61, 0x6d, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x22, 0xdd, 0x01, @@ -2031,7 +2031,7 @@ var file_dota_gcmessages_client_watch_proto_rawDesc = []byte{ 0x4b, 0x65, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, + 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x67, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, @@ -2045,7 +2045,7 @@ var file_dota_gcmessages_client_watch_proto_rawDesc = []byte{ 0x52, 0x09, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, - 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x67, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x75, 0x6d, 0x5f, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, diff --git a/dota/dota_gcmessages_client_watch.proto b/dota/dota_gcmessages_client_watch.proto index f92d233..d5143d3 100644 --- a/dota/dota_gcmessages_client_watch.proto +++ b/dota/dota_gcmessages_client_watch.proto @@ -8,7 +8,7 @@ import "dota_gcmessages_common.proto"; message CSourceTVGameSmall { message Player { optional uint32 account_id = 1; - optional uint32 hero_id = 2; + optional int32 hero_id = 2; optional uint32 team_slot = 3; optional uint32 team = 4; } @@ -49,7 +49,7 @@ message CSourceTVGameSmall { message CMsgClientToGCFindTopSourceTVGames { optional string search_key = 1; optional uint32 league_id = 2; - optional uint32 hero_id = 3; + optional int32 hero_id = 3; optional uint32 start_game = 4; optional uint32 game_list_index = 5; repeated uint64 lobby_ids = 6; @@ -58,7 +58,7 @@ message CMsgClientToGCFindTopSourceTVGames { message CMsgGCToClientFindTopSourceTVGamesResponse { optional string search_key = 1; optional uint32 league_id = 2; - optional uint32 hero_id = 3; + optional int32 hero_id = 3; optional uint32 start_game = 4; optional uint32 num_games = 5; optional uint32 game_list_index = 6; diff --git a/dota/dota_gcmessages_common.pb.go b/dota/dota_gcmessages_common.pb.go index 087aba6..1d0b412 100644 --- a/dota/dota_gcmessages_common.pb.go +++ b/dota/dota_gcmessages_common.pb.go @@ -1910,6 +1910,62 @@ func (CMsgClientToGCDotaLabsFeedbackResponse_EResponse) EnumDescriptor() ([]byte return file_dota_gcmessages_common_proto_rawDescGZIP(), []int{98, 0} } +type CDotaMsg_PredictionResult_Prediction_EResult int32 + +const ( + CDotaMsg_PredictionResult_Prediction_k_eResult_ItemGranted CDotaMsg_PredictionResult_Prediction_EResult = 1 + CDotaMsg_PredictionResult_Prediction_k_eResult_Destroyed CDotaMsg_PredictionResult_Prediction_EResult = 2 +) + +// Enum value maps for CDotaMsg_PredictionResult_Prediction_EResult. +var ( + CDotaMsg_PredictionResult_Prediction_EResult_name = map[int32]string{ + 1: "k_eResult_ItemGranted", + 2: "k_eResult_Destroyed", + } + CDotaMsg_PredictionResult_Prediction_EResult_value = map[string]int32{ + "k_eResult_ItemGranted": 1, + "k_eResult_Destroyed": 2, + } +) + +func (x CDotaMsg_PredictionResult_Prediction_EResult) Enum() *CDotaMsg_PredictionResult_Prediction_EResult { + p := new(CDotaMsg_PredictionResult_Prediction_EResult) + *p = x + return p +} + +func (x CDotaMsg_PredictionResult_Prediction_EResult) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CDotaMsg_PredictionResult_Prediction_EResult) Descriptor() protoreflect.EnumDescriptor { + return file_dota_gcmessages_common_proto_enumTypes[27].Descriptor() +} + +func (CDotaMsg_PredictionResult_Prediction_EResult) Type() protoreflect.EnumType { + return &file_dota_gcmessages_common_proto_enumTypes[27] +} + +func (x CDotaMsg_PredictionResult_Prediction_EResult) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *CDotaMsg_PredictionResult_Prediction_EResult) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = CDotaMsg_PredictionResult_Prediction_EResult(num) + return nil +} + +// Deprecated: Use CDotaMsg_PredictionResult_Prediction_EResult.Descriptor instead. +func (CDotaMsg_PredictionResult_Prediction_EResult) EnumDescriptor() ([]byte, []int) { + return file_dota_gcmessages_common_proto_rawDescGZIP(), []int{99, 0, 0} +} + type CSODOTAGameAccountClient struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1945,7 +2001,7 @@ type CSODOTAGameAccountClient struct { SoloCompetitiveGamesPlayed *uint32 `protobuf:"varint,61,opt,name=solo_competitive_games_played,json=soloCompetitiveGamesPlayed" json:"solo_competitive_games_played,omitempty"` PartyCompetitiveGamesPlayed *uint32 `protobuf:"varint,62,opt,name=party_competitive_games_played,json=partyCompetitiveGamesPlayed" json:"party_competitive_games_played,omitempty"` Casual_1V1GamesPlayed *uint32 `protobuf:"varint,65,opt,name=casual_1v1_games_played,json=casual1v1GamesPlayed" json:"casual_1v1_games_played,omitempty"` - CurrAllHeroChallengeId *uint32 `protobuf:"varint,67,opt,name=curr_all_hero_challenge_id,json=currAllHeroChallengeId" json:"curr_all_hero_challenge_id,omitempty"` + CurrAllHeroChallengeId *int32 `protobuf:"varint,67,opt,name=curr_all_hero_challenge_id,json=currAllHeroChallengeId" json:"curr_all_hero_challenge_id,omitempty"` PlayTimePoints *uint32 `protobuf:"varint,68,opt,name=play_time_points,json=playTimePoints" json:"play_time_points,omitempty"` AccountFlags *uint32 `protobuf:"varint,69,opt,name=account_flags,json=accountFlags" json:"account_flags,omitempty"` PlayTimeLevel *uint32 `protobuf:"varint,70,opt,name=play_time_level,json=playTimeLevel" json:"play_time_level,omitempty"` @@ -1970,7 +2026,7 @@ type CSODOTAGameAccountClient struct { RoleHandicaps []*CSODOTAGameAccountClient_RoleHandicap `protobuf:"bytes,115,rep,name=role_handicaps,json=roleHandicaps" json:"role_handicaps,omitempty"` EventModeRecentTime *uint32 `protobuf:"varint,120,opt,name=event_mode_recent_time,json=eventModeRecentTime" json:"event_mode_recent_time,omitempty"` MmrRecalibrationTime *uint32 `protobuf:"varint,121,opt,name=mmr_recalibration_time,json=mmrRecalibrationTime" json:"mmr_recalibration_time,omitempty"` - BannedHeroIds []uint32 `protobuf:"varint,123,rep,name=banned_hero_ids,json=bannedHeroIds" json:"banned_hero_ids,omitempty"` + BannedHeroIds []int32 `protobuf:"varint,123,rep,name=banned_hero_ids,json=bannedHeroIds" json:"banned_hero_ids,omitempty"` } func (x *CSODOTAGameAccountClient) Reset() { @@ -2215,7 +2271,7 @@ func (x *CSODOTAGameAccountClient) GetCasual_1V1GamesPlayed() uint32 { return 0 } -func (x *CSODOTAGameAccountClient) GetCurrAllHeroChallengeId() uint32 { +func (x *CSODOTAGameAccountClient) GetCurrAllHeroChallengeId() int32 { if x != nil && x.CurrAllHeroChallengeId != nil { return *x.CurrAllHeroChallengeId } @@ -2390,7 +2446,7 @@ func (x *CSODOTAGameAccountClient) GetMmrRecalibrationTime() uint32 { return 0 } -func (x *CSODOTAGameAccountClient) GetBannedHeroIds() []uint32 { +func (x *CSODOTAGameAccountClient) GetBannedHeroIds() []int32 { if x != nil { return x.BannedHeroIds } @@ -2804,7 +2860,7 @@ type CProtoItemHeroStatue struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroId *uint32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` StatusEffectIndex *uint32 `protobuf:"varint,2,opt,name=status_effect_index,json=statusEffectIndex" json:"status_effect_index,omitempty"` SequenceName *string `protobuf:"bytes,3,opt,name=sequence_name,json=sequenceName" json:"sequence_name,omitempty"` Cycle *float32 `protobuf:"fixed32,4,opt,name=cycle" json:"cycle,omitempty"` @@ -2846,7 +2902,7 @@ func (*CProtoItemHeroStatue) Descriptor() ([]byte, []int) { return file_dota_gcmessages_common_proto_rawDescGZIP(), []int{7} } -func (x *CProtoItemHeroStatue) GetHeroId() uint32 { +func (x *CProtoItemHeroStatue) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -3551,7 +3607,7 @@ type CMatchHeroSelectEvent struct { IsPick *bool `protobuf:"varint,1,opt,name=is_pick,json=isPick" json:"is_pick,omitempty"` Team *uint32 `protobuf:"varint,2,opt,name=team" json:"team,omitempty"` - HeroId *uint32 `protobuf:"varint,3,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,3,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` } func (x *CMatchHeroSelectEvent) Reset() { @@ -3600,7 +3656,7 @@ func (x *CMatchHeroSelectEvent) GetTeam() uint32 { return 0 } -func (x *CMatchHeroSelectEvent) GetHeroId() uint32 { +func (x *CMatchHeroSelectEvent) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -3617,7 +3673,7 @@ type CMatchClip struct { GameTimeSeconds *uint32 `protobuf:"varint,3,opt,name=game_time_seconds,json=gameTimeSeconds" json:"game_time_seconds,omitempty"` DurationSeconds *uint32 `protobuf:"varint,4,opt,name=duration_seconds,json=durationSeconds" json:"duration_seconds,omitempty"` PlayerId *uint32 `protobuf:"varint,5,opt,name=player_id,json=playerId" json:"player_id,omitempty"` - HeroId *uint32 `protobuf:"varint,6,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,6,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` AbilityId *int32 `protobuf:"varint,7,opt,name=ability_id,json=abilityId" json:"ability_id,omitempty"` CameraMode *uint32 `protobuf:"varint,8,opt,name=camera_mode,json=cameraMode" json:"camera_mode,omitempty"` Comment *string `protobuf:"bytes,9,opt,name=comment" json:"comment,omitempty"` @@ -3690,7 +3746,7 @@ func (x *CMatchClip) GetPlayerId() uint32 { return 0 } -func (x *CMatchClip) GetHeroId() uint32 { +func (x *CMatchClip) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -4282,7 +4338,7 @@ type CSODOTAPlayerChallenge struct { QuestRank *uint32 `protobuf:"varint,14,opt,name=quest_rank,json=questRank" json:"quest_rank,omitempty"` MaxQuestRank *uint32 `protobuf:"varint,15,opt,name=max_quest_rank,json=maxQuestRank" json:"max_quest_rank,omitempty"` InstanceId *uint32 `protobuf:"varint,16,opt,name=instance_id,json=instanceId" json:"instance_id,omitempty"` - HeroId *uint32 `protobuf:"varint,17,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,17,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` TemplateId *uint32 `protobuf:"varint,18,opt,name=template_id,json=templateId" json:"template_id,omitempty"` } @@ -4423,7 +4479,7 @@ func (x *CSODOTAPlayerChallenge) GetInstanceId() uint32 { return 0 } -func (x *CSODOTAPlayerChallenge) GetHeroId() uint32 { +func (x *CSODOTAPlayerChallenge) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -4444,7 +4500,7 @@ type CMsgClientToGCRerollPlayerChallenge struct { EventId *EEvent `protobuf:"varint,1,opt,name=event_id,json=eventId,enum=dota.EEvent" json:"event_id,omitempty"` SequenceId *uint32 `protobuf:"varint,3,opt,name=sequence_id,json=sequenceId" json:"sequence_id,omitempty"` - HeroId *uint32 `protobuf:"varint,4,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,4,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` } func (x *CMsgClientToGCRerollPlayerChallenge) Reset() { @@ -4493,7 +4549,7 @@ func (x *CMsgClientToGCRerollPlayerChallenge) GetSequenceId() uint32 { return 0 } -func (x *CMsgClientToGCRerollPlayerChallenge) GetHeroId() uint32 { +func (x *CMsgClientToGCRerollPlayerChallenge) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -6312,7 +6368,7 @@ type CMsgSuccessfulHero struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroId *uint32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` WinPercent *float32 `protobuf:"fixed32,2,opt,name=win_percent,json=winPercent" json:"win_percent,omitempty"` LongestStreak *uint32 `protobuf:"varint,3,opt,name=longest_streak,json=longestStreak" json:"longest_streak,omitempty"` } @@ -6349,7 +6405,7 @@ func (*CMsgSuccessfulHero) Descriptor() ([]byte, []int) { return file_dota_gcmessages_common_proto_rawDescGZIP(), []int{43} } -func (x *CMsgSuccessfulHero) GetHeroId() uint32 { +func (x *CMsgSuccessfulHero) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -6931,7 +6987,7 @@ type CMsgPlayerRecentMatchInfo struct { Timestamp *uint32 `protobuf:"varint,2,opt,name=timestamp" json:"timestamp,omitempty"` Duration *uint32 `protobuf:"varint,3,opt,name=duration" json:"duration,omitempty"` Win *bool `protobuf:"varint,4,opt,name=win" json:"win,omitempty"` - HeroId *uint32 `protobuf:"varint,5,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,5,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` Kills *uint32 `protobuf:"varint,6,opt,name=kills" json:"kills,omitempty"` Deaths *uint32 `protobuf:"varint,7,opt,name=deaths" json:"deaths,omitempty"` Assists *uint32 `protobuf:"varint,8,opt,name=assists" json:"assists,omitempty"` @@ -6997,7 +7053,7 @@ func (x *CMsgPlayerRecentMatchInfo) GetWin() bool { return false } -func (x *CMsgPlayerRecentMatchInfo) GetHeroId() uint32 { +func (x *CMsgPlayerRecentMatchInfo) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -7417,7 +7473,7 @@ type CMsgServerToGCRequestPlayerRecentAccomplishments struct { unknownFields protoimpl.UnknownFields AccountId *uint32 `protobuf:"varint,1,opt,name=account_id,json=accountId" json:"account_id,omitempty"` - HeroId *uint32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` } func (x *CMsgServerToGCRequestPlayerRecentAccomplishments) Reset() { @@ -7459,7 +7515,7 @@ func (x *CMsgServerToGCRequestPlayerRecentAccomplishments) GetAccountId() uint32 return 0 } -func (x *CMsgServerToGCRequestPlayerRecentAccomplishments) GetHeroId() uint32 { +func (x *CMsgServerToGCRequestPlayerRecentAccomplishments) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -7527,7 +7583,7 @@ type CMsgArcanaVoteMatchVotes struct { unknownFields protoimpl.UnknownFields MatchId *uint32 `protobuf:"varint,1,opt,name=match_id,json=matchId" json:"match_id,omitempty"` - HeroId *uint32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` VoteCount *uint32 `protobuf:"varint,3,opt,name=vote_count,json=voteCount" json:"vote_count,omitempty"` } @@ -7570,7 +7626,7 @@ func (x *CMsgArcanaVoteMatchVotes) GetMatchId() uint32 { return 0 } -func (x *CMsgArcanaVoteMatchVotes) GetHeroId() uint32 { +func (x *CMsgArcanaVoteMatchVotes) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -8697,7 +8753,7 @@ type CMsgGameDataHero struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id *uint32 `protobuf:"varint,1,opt,name=id" json:"id,omitempty"` + Id *int32 `protobuf:"varint,1,opt,name=id" json:"id,omitempty"` Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` OrderId *uint32 `protobuf:"varint,3,opt,name=order_id,json=orderId" json:"order_id,omitempty"` NameLoc *string `protobuf:"bytes,5,opt,name=name_loc,json=nameLoc" json:"name_loc,omitempty"` @@ -8767,7 +8823,7 @@ func (*CMsgGameDataHero) Descriptor() ([]byte, []int) { return file_dota_gcmessages_common_proto_rawDescGZIP(), []int{74} } -func (x *CMsgGameDataHero) GetId() uint32 { +func (x *CMsgGameDataHero) GetId() int32 { if x != nil && x.Id != nil { return *x.Id } @@ -9820,7 +9876,7 @@ type CMsgStickerHero struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroId *uint32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` ItemDefId *uint32 `protobuf:"varint,2,opt,name=item_def_id,json=itemDefId" json:"item_def_id,omitempty"` Quality *uint32 `protobuf:"varint,3,opt,name=quality" json:"quality,omitempty"` SourceItemId *uint64 `protobuf:"varint,4,opt,name=source_item_id,json=sourceItemId" json:"source_item_id,omitempty"` @@ -9858,7 +9914,7 @@ func (*CMsgStickerHero) Descriptor() ([]byte, []int) { return file_dota_gcmessages_common_proto_rawDescGZIP(), []int{87} } -func (x *CMsgStickerHero) GetHeroId() uint32 { +func (x *CMsgStickerHero) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -10001,7 +10057,7 @@ type CMsgHeroRoleHeroStats struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroId *uint32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` RoleStats []*CMsgHeroRoleStats `protobuf:"bytes,2,rep,name=role_stats,json=roleStats" json:"role_stats,omitempty"` } @@ -10037,7 +10093,7 @@ func (*CMsgHeroRoleHeroStats) Descriptor() ([]byte, []int) { return file_dota_gcmessages_common_proto_rawDescGZIP(), []int{90} } -func (x *CMsgHeroRoleHeroStats) GetHeroId() uint32 { +func (x *CMsgHeroRoleHeroStats) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -10579,6 +10635,77 @@ func (x *CMsgClientToGCDotaLabsFeedbackResponse) GetResponse() CMsgClientToGCDot return CMsgClientToGCDotaLabsFeedbackResponse_k_eInternalError } +type CDotaMsg_PredictionResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AccountId *uint32 `protobuf:"varint,1,opt,name=account_id,json=accountId" json:"account_id,omitempty"` + MatchId *uint64 `protobuf:"varint,2,opt,name=match_id,json=matchId" json:"match_id,omitempty"` + Correct *bool `protobuf:"varint,3,opt,name=correct" json:"correct,omitempty"` + Predictions []*CDotaMsg_PredictionResult_Prediction `protobuf:"bytes,4,rep,name=predictions" json:"predictions,omitempty"` +} + +func (x *CDotaMsg_PredictionResult) Reset() { + *x = CDotaMsg_PredictionResult{} + if protoimpl.UnsafeEnabled { + mi := &file_dota_gcmessages_common_proto_msgTypes[99] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CDotaMsg_PredictionResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CDotaMsg_PredictionResult) ProtoMessage() {} + +func (x *CDotaMsg_PredictionResult) ProtoReflect() protoreflect.Message { + mi := &file_dota_gcmessages_common_proto_msgTypes[99] + 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 CDotaMsg_PredictionResult.ProtoReflect.Descriptor instead. +func (*CDotaMsg_PredictionResult) Descriptor() ([]byte, []int) { + return file_dota_gcmessages_common_proto_rawDescGZIP(), []int{99} +} + +func (x *CDotaMsg_PredictionResult) GetAccountId() uint32 { + if x != nil && x.AccountId != nil { + return *x.AccountId + } + return 0 +} + +func (x *CDotaMsg_PredictionResult) GetMatchId() uint64 { + if x != nil && x.MatchId != nil { + return *x.MatchId + } + return 0 +} + +func (x *CDotaMsg_PredictionResult) GetCorrect() bool { + if x != nil && x.Correct != nil { + return *x.Correct + } + return false +} + +func (x *CDotaMsg_PredictionResult) GetPredictions() []*CDotaMsg_PredictionResult_Prediction { + if x != nil { + return x.Predictions + } + return nil +} + type CSODOTAGameAccountClient_RoleHandicap struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -10591,7 +10718,7 @@ type CSODOTAGameAccountClient_RoleHandicap struct { func (x *CSODOTAGameAccountClient_RoleHandicap) Reset() { *x = CSODOTAGameAccountClient_RoleHandicap{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[99] + mi := &file_dota_gcmessages_common_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10604,7 +10731,7 @@ func (x *CSODOTAGameAccountClient_RoleHandicap) String() string { func (*CSODOTAGameAccountClient_RoleHandicap) ProtoMessage() {} func (x *CSODOTAGameAccountClient_RoleHandicap) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[99] + mi := &file_dota_gcmessages_common_proto_msgTypes[100] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10647,7 +10774,7 @@ type CMsgLobbyFeaturedGamemodeProgress_AccountProgress struct { func (x *CMsgLobbyFeaturedGamemodeProgress_AccountProgress) Reset() { *x = CMsgLobbyFeaturedGamemodeProgress_AccountProgress{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[100] + mi := &file_dota_gcmessages_common_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10660,7 +10787,7 @@ func (x *CMsgLobbyFeaturedGamemodeProgress_AccountProgress) String() string { func (*CMsgLobbyFeaturedGamemodeProgress_AccountProgress) ProtoMessage() {} func (x *CMsgLobbyFeaturedGamemodeProgress_AccountProgress) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[100] + mi := &file_dota_gcmessages_common_proto_msgTypes[101] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10710,7 +10837,7 @@ type CMsgGCGetPlayerCardItemInfoResponse_PlayerCardInfo struct { func (x *CMsgGCGetPlayerCardItemInfoResponse_PlayerCardInfo) Reset() { *x = CMsgGCGetPlayerCardItemInfoResponse_PlayerCardInfo{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[101] + mi := &file_dota_gcmessages_common_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10723,7 +10850,7 @@ func (x *CMsgGCGetPlayerCardItemInfoResponse_PlayerCardInfo) String() string { func (*CMsgGCGetPlayerCardItemInfoResponse_PlayerCardInfo) ProtoMessage() {} func (x *CMsgGCGetPlayerCardItemInfoResponse_PlayerCardInfo) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[101] + mi := &file_dota_gcmessages_common_proto_msgTypes[102] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10777,7 +10904,7 @@ type CMsgDOTAProfileCard_Slot struct { func (x *CMsgDOTAProfileCard_Slot) Reset() { *x = CMsgDOTAProfileCard_Slot{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[102] + mi := &file_dota_gcmessages_common_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10790,7 +10917,7 @@ func (x *CMsgDOTAProfileCard_Slot) String() string { func (*CMsgDOTAProfileCard_Slot) ProtoMessage() {} func (x *CMsgDOTAProfileCard_Slot) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[102] + mi := &file_dota_gcmessages_common_proto_msgTypes[103] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10867,7 +10994,7 @@ type CMsgDOTAProfileCard_Slot_Trophy struct { func (x *CMsgDOTAProfileCard_Slot_Trophy) Reset() { *x = CMsgDOTAProfileCard_Slot_Trophy{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[103] + mi := &file_dota_gcmessages_common_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10880,7 +11007,7 @@ func (x *CMsgDOTAProfileCard_Slot_Trophy) String() string { func (*CMsgDOTAProfileCard_Slot_Trophy) ProtoMessage() {} func (x *CMsgDOTAProfileCard_Slot_Trophy) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[103] + mi := &file_dota_gcmessages_common_proto_msgTypes[104] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10922,7 +11049,7 @@ type CMsgDOTAProfileCard_Slot_Stat struct { func (x *CMsgDOTAProfileCard_Slot_Stat) Reset() { *x = CMsgDOTAProfileCard_Slot_Stat{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[104] + mi := &file_dota_gcmessages_common_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10935,7 +11062,7 @@ func (x *CMsgDOTAProfileCard_Slot_Stat) String() string { func (*CMsgDOTAProfileCard_Slot_Stat) ProtoMessage() {} func (x *CMsgDOTAProfileCard_Slot_Stat) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[104] + mi := &file_dota_gcmessages_common_proto_msgTypes[105] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10977,7 +11104,7 @@ type CMsgDOTAProfileCard_Slot_Item struct { func (x *CMsgDOTAProfileCard_Slot_Item) Reset() { *x = CMsgDOTAProfileCard_Slot_Item{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[105] + mi := &file_dota_gcmessages_common_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10990,7 +11117,7 @@ func (x *CMsgDOTAProfileCard_Slot_Item) String() string { func (*CMsgDOTAProfileCard_Slot_Item) ProtoMessage() {} func (x *CMsgDOTAProfileCard_Slot_Item) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[105] + mi := &file_dota_gcmessages_common_proto_msgTypes[106] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11025,7 +11152,7 @@ type CMsgDOTAProfileCard_Slot_Hero struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroId *uint32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` HeroWins *uint32 `protobuf:"varint,2,opt,name=hero_wins,json=heroWins" json:"hero_wins,omitempty"` HeroLosses *uint32 `protobuf:"varint,3,opt,name=hero_losses,json=heroLosses" json:"hero_losses,omitempty"` } @@ -11033,7 +11160,7 @@ type CMsgDOTAProfileCard_Slot_Hero struct { func (x *CMsgDOTAProfileCard_Slot_Hero) Reset() { *x = CMsgDOTAProfileCard_Slot_Hero{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[106] + mi := &file_dota_gcmessages_common_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11046,7 +11173,7 @@ func (x *CMsgDOTAProfileCard_Slot_Hero) String() string { func (*CMsgDOTAProfileCard_Slot_Hero) ProtoMessage() {} func (x *CMsgDOTAProfileCard_Slot_Hero) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[106] + mi := &file_dota_gcmessages_common_proto_msgTypes[107] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11062,7 +11189,7 @@ func (*CMsgDOTAProfileCard_Slot_Hero) Descriptor() ([]byte, []int) { return file_dota_gcmessages_common_proto_rawDescGZIP(), []int{23, 0, 3} } -func (x *CMsgDOTAProfileCard_Slot_Hero) GetHeroId() uint32 { +func (x *CMsgDOTAProfileCard_Slot_Hero) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -11094,7 +11221,7 @@ type CMsgDOTAProfileCard_Slot_Emoticon struct { func (x *CMsgDOTAProfileCard_Slot_Emoticon) Reset() { *x = CMsgDOTAProfileCard_Slot_Emoticon{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[107] + mi := &file_dota_gcmessages_common_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11107,7 +11234,7 @@ func (x *CMsgDOTAProfileCard_Slot_Emoticon) String() string { func (*CMsgDOTAProfileCard_Slot_Emoticon) ProtoMessage() {} func (x *CMsgDOTAProfileCard_Slot_Emoticon) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[107] + mi := &file_dota_gcmessages_common_proto_msgTypes[108] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11141,7 +11268,7 @@ type CMsgDOTAProfileCard_Slot_Team struct { func (x *CMsgDOTAProfileCard_Slot_Team) Reset() { *x = CMsgDOTAProfileCard_Slot_Team{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[108] + mi := &file_dota_gcmessages_common_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11154,7 +11281,7 @@ func (x *CMsgDOTAProfileCard_Slot_Team) String() string { func (*CMsgDOTAProfileCard_Slot_Team) ProtoMessage() {} func (x *CMsgDOTAProfileCard_Slot_Team) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[108] + mi := &file_dota_gcmessages_common_proto_msgTypes[109] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11198,7 +11325,7 @@ type CMsgDOTARealtimeGameStats_TeamDetails struct { func (x *CMsgDOTARealtimeGameStats_TeamDetails) Reset() { *x = CMsgDOTARealtimeGameStats_TeamDetails{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[109] + mi := &file_dota_gcmessages_common_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11211,7 +11338,7 @@ func (x *CMsgDOTARealtimeGameStats_TeamDetails) String() string { func (*CMsgDOTARealtimeGameStats_TeamDetails) ProtoMessage() {} func (x *CMsgDOTARealtimeGameStats_TeamDetails) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[109] + mi := &file_dota_gcmessages_common_proto_msgTypes[110] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11319,7 +11446,7 @@ type CMsgDOTARealtimeGameStats_ItemDetails struct { func (x *CMsgDOTARealtimeGameStats_ItemDetails) Reset() { *x = CMsgDOTARealtimeGameStats_ItemDetails{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[110] + mi := &file_dota_gcmessages_common_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11332,7 +11459,7 @@ func (x *CMsgDOTARealtimeGameStats_ItemDetails) String() string { func (*CMsgDOTARealtimeGameStats_ItemDetails) ProtoMessage() {} func (x *CMsgDOTARealtimeGameStats_ItemDetails) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[110] + mi := &file_dota_gcmessages_common_proto_msgTypes[111] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11398,7 +11525,7 @@ type CMsgDOTARealtimeGameStats_AbilityDetails struct { func (x *CMsgDOTARealtimeGameStats_AbilityDetails) Reset() { *x = CMsgDOTARealtimeGameStats_AbilityDetails{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[111] + mi := &file_dota_gcmessages_common_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11411,7 +11538,7 @@ func (x *CMsgDOTARealtimeGameStats_AbilityDetails) String() string { func (*CMsgDOTARealtimeGameStats_AbilityDetails) ProtoMessage() {} func (x *CMsgDOTARealtimeGameStats_AbilityDetails) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[111] + mi := &file_dota_gcmessages_common_proto_msgTypes[112] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11475,7 +11602,7 @@ type CMsgDOTARealtimeGameStats_HeroToHeroStats struct { func (x *CMsgDOTARealtimeGameStats_HeroToHeroStats) Reset() { *x = CMsgDOTARealtimeGameStats_HeroToHeroStats{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[112] + mi := &file_dota_gcmessages_common_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11488,7 +11615,7 @@ func (x *CMsgDOTARealtimeGameStats_HeroToHeroStats) String() string { func (*CMsgDOTARealtimeGameStats_HeroToHeroStats) ProtoMessage() {} func (x *CMsgDOTARealtimeGameStats_HeroToHeroStats) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[112] + mi := &file_dota_gcmessages_common_proto_msgTypes[113] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11536,7 +11663,7 @@ type CMsgDOTARealtimeGameStats_AbilityList struct { func (x *CMsgDOTARealtimeGameStats_AbilityList) Reset() { *x = CMsgDOTARealtimeGameStats_AbilityList{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[113] + mi := &file_dota_gcmessages_common_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11549,7 +11676,7 @@ func (x *CMsgDOTARealtimeGameStats_AbilityList) String() string { func (*CMsgDOTARealtimeGameStats_AbilityList) ProtoMessage() {} func (x *CMsgDOTARealtimeGameStats_AbilityList) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[113] + mi := &file_dota_gcmessages_common_proto_msgTypes[114] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11581,7 +11708,7 @@ type CMsgDOTARealtimeGameStats_PlayerDetails struct { Playerid *int32 `protobuf:"varint,2,opt,name=playerid" json:"playerid,omitempty"` Name *string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` Team *uint32 `protobuf:"varint,4,opt,name=team" json:"team,omitempty"` - Heroid *uint32 `protobuf:"varint,5,opt,name=heroid" json:"heroid,omitempty"` + Heroid *int32 `protobuf:"varint,5,opt,name=heroid" json:"heroid,omitempty"` Healthpoints *uint32 `protobuf:"varint,6,opt,name=healthpoints" json:"healthpoints,omitempty"` Maxhealthpoints *uint32 `protobuf:"varint,7,opt,name=maxhealthpoints" json:"maxhealthpoints,omitempty"` Healthregenrate *float32 `protobuf:"fixed32,8,opt,name=healthregenrate" json:"healthregenrate,omitempty"` @@ -11632,7 +11759,7 @@ type CMsgDOTARealtimeGameStats_PlayerDetails struct { func (x *CMsgDOTARealtimeGameStats_PlayerDetails) Reset() { *x = CMsgDOTARealtimeGameStats_PlayerDetails{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[114] + mi := &file_dota_gcmessages_common_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11645,7 +11772,7 @@ func (x *CMsgDOTARealtimeGameStats_PlayerDetails) String() string { func (*CMsgDOTARealtimeGameStats_PlayerDetails) ProtoMessage() {} func (x *CMsgDOTARealtimeGameStats_PlayerDetails) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[114] + mi := &file_dota_gcmessages_common_proto_msgTypes[115] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11689,7 +11816,7 @@ func (x *CMsgDOTARealtimeGameStats_PlayerDetails) GetTeam() uint32 { return 0 } -func (x *CMsgDOTARealtimeGameStats_PlayerDetails) GetHeroid() uint32 { +func (x *CMsgDOTARealtimeGameStats_PlayerDetails) GetHeroid() int32 { if x != nil && x.Heroid != nil { return *x.Heroid } @@ -12029,7 +12156,7 @@ type CMsgDOTARealtimeGameStats_BuildingDetails struct { func (x *CMsgDOTARealtimeGameStats_BuildingDetails) Reset() { *x = CMsgDOTARealtimeGameStats_BuildingDetails{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[115] + mi := &file_dota_gcmessages_common_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12042,7 +12169,7 @@ func (x *CMsgDOTARealtimeGameStats_BuildingDetails) String() string { func (*CMsgDOTARealtimeGameStats_BuildingDetails) ProtoMessage() {} func (x *CMsgDOTARealtimeGameStats_BuildingDetails) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[115] + mi := &file_dota_gcmessages_common_proto_msgTypes[116] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12127,7 +12254,7 @@ type CMsgDOTARealtimeGameStats_KillDetails struct { func (x *CMsgDOTARealtimeGameStats_KillDetails) Reset() { *x = CMsgDOTARealtimeGameStats_KillDetails{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[116] + mi := &file_dota_gcmessages_common_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12140,7 +12267,7 @@ func (x *CMsgDOTARealtimeGameStats_KillDetails) String() string { func (*CMsgDOTARealtimeGameStats_KillDetails) ProtoMessage() {} func (x *CMsgDOTARealtimeGameStats_KillDetails) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[116] + mi := &file_dota_gcmessages_common_proto_msgTypes[117] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12188,7 +12315,7 @@ type CMsgDOTARealtimeGameStats_BroadcasterDetails struct { func (x *CMsgDOTARealtimeGameStats_BroadcasterDetails) Reset() { *x = CMsgDOTARealtimeGameStats_BroadcasterDetails{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[117] + mi := &file_dota_gcmessages_common_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12201,7 +12328,7 @@ func (x *CMsgDOTARealtimeGameStats_BroadcasterDetails) String() string { func (*CMsgDOTARealtimeGameStats_BroadcasterDetails) ProtoMessage() {} func (x *CMsgDOTARealtimeGameStats_BroadcasterDetails) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[117] + mi := &file_dota_gcmessages_common_proto_msgTypes[118] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12229,14 +12356,14 @@ type CMsgDOTARealtimeGameStats_PickBanDetails struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Hero *uint32 `protobuf:"varint,1,opt,name=hero" json:"hero,omitempty"` + Hero *int32 `protobuf:"varint,1,opt,name=hero" json:"hero,omitempty"` Team *uint32 `protobuf:"varint,2,opt,name=team" json:"team,omitempty"` } func (x *CMsgDOTARealtimeGameStats_PickBanDetails) Reset() { *x = CMsgDOTARealtimeGameStats_PickBanDetails{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[118] + mi := &file_dota_gcmessages_common_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12249,7 +12376,7 @@ func (x *CMsgDOTARealtimeGameStats_PickBanDetails) String() string { func (*CMsgDOTARealtimeGameStats_PickBanDetails) ProtoMessage() {} func (x *CMsgDOTARealtimeGameStats_PickBanDetails) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[118] + mi := &file_dota_gcmessages_common_proto_msgTypes[119] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12265,7 +12392,7 @@ func (*CMsgDOTARealtimeGameStats_PickBanDetails) Descriptor() ([]byte, []int) { return file_dota_gcmessages_common_proto_rawDescGZIP(), []int{28, 9} } -func (x *CMsgDOTARealtimeGameStats_PickBanDetails) GetHero() uint32 { +func (x *CMsgDOTARealtimeGameStats_PickBanDetails) GetHero() int32 { if x != nil && x.Hero != nil { return *x.Hero } @@ -12309,7 +12436,7 @@ type CMsgDOTARealtimeGameStats_MatchDetails struct { func (x *CMsgDOTARealtimeGameStats_MatchDetails) Reset() { *x = CMsgDOTARealtimeGameStats_MatchDetails{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[119] + mi := &file_dota_gcmessages_common_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12322,7 +12449,7 @@ func (x *CMsgDOTARealtimeGameStats_MatchDetails) String() string { func (*CMsgDOTARealtimeGameStats_MatchDetails) ProtoMessage() {} func (x *CMsgDOTARealtimeGameStats_MatchDetails) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[119] + mi := &file_dota_gcmessages_common_proto_msgTypes[120] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12494,7 +12621,7 @@ type CMsgDOTARealtimeGameStats_GraphData struct { func (x *CMsgDOTARealtimeGameStats_GraphData) Reset() { *x = CMsgDOTARealtimeGameStats_GraphData{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[120] + mi := &file_dota_gcmessages_common_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12507,7 +12634,7 @@ func (x *CMsgDOTARealtimeGameStats_GraphData) String() string { func (*CMsgDOTARealtimeGameStats_GraphData) ProtoMessage() {} func (x *CMsgDOTARealtimeGameStats_GraphData) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[120] + mi := &file_dota_gcmessages_common_proto_msgTypes[121] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12576,7 +12703,7 @@ type CMsgDOTARealtimeGameStats_GraphData_LocationStats struct { func (x *CMsgDOTARealtimeGameStats_GraphData_LocationStats) Reset() { *x = CMsgDOTARealtimeGameStats_GraphData_LocationStats{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[121] + mi := &file_dota_gcmessages_common_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12589,7 +12716,7 @@ func (x *CMsgDOTARealtimeGameStats_GraphData_LocationStats) String() string { func (*CMsgDOTARealtimeGameStats_GraphData_LocationStats) ProtoMessage() {} func (x *CMsgDOTARealtimeGameStats_GraphData_LocationStats) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[121] + mi := &file_dota_gcmessages_common_proto_msgTypes[122] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12623,7 +12750,7 @@ type CMsgDOTARealtimeGameStats_GraphData_TeamLocationStats struct { func (x *CMsgDOTARealtimeGameStats_GraphData_TeamLocationStats) Reset() { *x = CMsgDOTARealtimeGameStats_GraphData_TeamLocationStats{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[122] + mi := &file_dota_gcmessages_common_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12636,7 +12763,7 @@ func (x *CMsgDOTARealtimeGameStats_GraphData_TeamLocationStats) String() string func (*CMsgDOTARealtimeGameStats_GraphData_TeamLocationStats) ProtoMessage() {} func (x *CMsgDOTARealtimeGameStats_GraphData_TeamLocationStats) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[122] + mi := &file_dota_gcmessages_common_proto_msgTypes[123] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12678,7 +12805,7 @@ type CMsgDOTARealtimeGameStatsTerse_TeamDetails struct { func (x *CMsgDOTARealtimeGameStatsTerse_TeamDetails) Reset() { *x = CMsgDOTARealtimeGameStatsTerse_TeamDetails{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[123] + mi := &file_dota_gcmessages_common_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12691,7 +12818,7 @@ func (x *CMsgDOTARealtimeGameStatsTerse_TeamDetails) String() string { func (*CMsgDOTARealtimeGameStatsTerse_TeamDetails) ProtoMessage() {} func (x *CMsgDOTARealtimeGameStatsTerse_TeamDetails) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[123] + mi := &file_dota_gcmessages_common_proto_msgTypes[124] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12779,7 +12906,7 @@ type CMsgDOTARealtimeGameStatsTerse_PlayerDetails struct { Playerid *int32 `protobuf:"varint,2,opt,name=playerid" json:"playerid,omitempty"` Name *string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` Team *uint32 `protobuf:"varint,4,opt,name=team" json:"team,omitempty"` - Heroid *uint32 `protobuf:"varint,5,opt,name=heroid" json:"heroid,omitempty"` + Heroid *int32 `protobuf:"varint,5,opt,name=heroid" json:"heroid,omitempty"` Level *uint32 `protobuf:"varint,6,opt,name=level" json:"level,omitempty"` KillCount *uint32 `protobuf:"varint,7,opt,name=kill_count,json=killCount" json:"kill_count,omitempty"` DeathCount *uint32 `protobuf:"varint,8,opt,name=death_count,json=deathCount" json:"death_count,omitempty"` @@ -12798,7 +12925,7 @@ type CMsgDOTARealtimeGameStatsTerse_PlayerDetails struct { func (x *CMsgDOTARealtimeGameStatsTerse_PlayerDetails) Reset() { *x = CMsgDOTARealtimeGameStatsTerse_PlayerDetails{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[124] + mi := &file_dota_gcmessages_common_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12811,7 +12938,7 @@ func (x *CMsgDOTARealtimeGameStatsTerse_PlayerDetails) String() string { func (*CMsgDOTARealtimeGameStatsTerse_PlayerDetails) ProtoMessage() {} func (x *CMsgDOTARealtimeGameStatsTerse_PlayerDetails) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[124] + mi := &file_dota_gcmessages_common_proto_msgTypes[125] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12855,7 +12982,7 @@ func (x *CMsgDOTARealtimeGameStatsTerse_PlayerDetails) GetTeam() uint32 { return 0 } -func (x *CMsgDOTARealtimeGameStatsTerse_PlayerDetails) GetHeroid() uint32 { +func (x *CMsgDOTARealtimeGameStatsTerse_PlayerDetails) GetHeroid() int32 { if x != nil && x.Heroid != nil { return *x.Heroid } @@ -12971,7 +13098,7 @@ type CMsgDOTARealtimeGameStatsTerse_BuildingDetails struct { func (x *CMsgDOTARealtimeGameStatsTerse_BuildingDetails) Reset() { *x = CMsgDOTARealtimeGameStatsTerse_BuildingDetails{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[125] + mi := &file_dota_gcmessages_common_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12984,7 +13111,7 @@ func (x *CMsgDOTARealtimeGameStatsTerse_BuildingDetails) String() string { func (*CMsgDOTARealtimeGameStatsTerse_BuildingDetails) ProtoMessage() {} func (x *CMsgDOTARealtimeGameStatsTerse_BuildingDetails) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[125] + mi := &file_dota_gcmessages_common_proto_msgTypes[126] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13061,14 +13188,14 @@ type CMsgDOTARealtimeGameStatsTerse_PickBanDetails struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Hero *uint32 `protobuf:"varint,1,opt,name=hero" json:"hero,omitempty"` + Hero *int32 `protobuf:"varint,1,opt,name=hero" json:"hero,omitempty"` Team *uint32 `protobuf:"varint,2,opt,name=team" json:"team,omitempty"` } func (x *CMsgDOTARealtimeGameStatsTerse_PickBanDetails) Reset() { *x = CMsgDOTARealtimeGameStatsTerse_PickBanDetails{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[126] + mi := &file_dota_gcmessages_common_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13081,7 +13208,7 @@ func (x *CMsgDOTARealtimeGameStatsTerse_PickBanDetails) String() string { func (*CMsgDOTARealtimeGameStatsTerse_PickBanDetails) ProtoMessage() {} func (x *CMsgDOTARealtimeGameStatsTerse_PickBanDetails) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[126] + mi := &file_dota_gcmessages_common_proto_msgTypes[127] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13097,7 +13224,7 @@ func (*CMsgDOTARealtimeGameStatsTerse_PickBanDetails) Descriptor() ([]byte, []in return file_dota_gcmessages_common_proto_rawDescGZIP(), []int{29, 3} } -func (x *CMsgDOTARealtimeGameStatsTerse_PickBanDetails) GetHero() uint32 { +func (x *CMsgDOTARealtimeGameStatsTerse_PickBanDetails) GetHero() int32 { if x != nil && x.Hero != nil { return *x.Hero } @@ -13134,7 +13261,7 @@ type CMsgDOTARealtimeGameStatsTerse_MatchDetails struct { func (x *CMsgDOTARealtimeGameStatsTerse_MatchDetails) Reset() { *x = CMsgDOTARealtimeGameStatsTerse_MatchDetails{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[127] + mi := &file_dota_gcmessages_common_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13147,7 +13274,7 @@ func (x *CMsgDOTARealtimeGameStatsTerse_MatchDetails) String() string { func (*CMsgDOTARealtimeGameStatsTerse_MatchDetails) ProtoMessage() {} func (x *CMsgDOTARealtimeGameStatsTerse_MatchDetails) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[127] + mi := &file_dota_gcmessages_common_proto_msgTypes[128] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13265,7 +13392,7 @@ type CMsgDOTARealtimeGameStatsTerse_GraphData struct { func (x *CMsgDOTARealtimeGameStatsTerse_GraphData) Reset() { *x = CMsgDOTARealtimeGameStatsTerse_GraphData{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[128] + mi := &file_dota_gcmessages_common_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13278,7 +13405,7 @@ func (x *CMsgDOTARealtimeGameStatsTerse_GraphData) String() string { func (*CMsgDOTARealtimeGameStatsTerse_GraphData) ProtoMessage() {} func (x *CMsgDOTARealtimeGameStatsTerse_GraphData) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[128] + mi := &file_dota_gcmessages_common_proto_msgTypes[129] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13313,7 +13440,7 @@ type CMsgInGamePrediction_QueryKeyValues struct { func (x *CMsgInGamePrediction_QueryKeyValues) Reset() { *x = CMsgInGamePrediction_QueryKeyValues{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[129] + mi := &file_dota_gcmessages_common_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13326,7 +13453,7 @@ func (x *CMsgInGamePrediction_QueryKeyValues) String() string { func (*CMsgInGamePrediction_QueryKeyValues) ProtoMessage() {} func (x *CMsgInGamePrediction_QueryKeyValues) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[129] + mi := &file_dota_gcmessages_common_proto_msgTypes[130] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13384,7 +13511,7 @@ type CMsgDOTASeasonPredictions_Prediction struct { func (x *CMsgDOTASeasonPredictions_Prediction) Reset() { *x = CMsgDOTASeasonPredictions_Prediction{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[130] + mi := &file_dota_gcmessages_common_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13397,7 +13524,7 @@ func (x *CMsgDOTASeasonPredictions_Prediction) String() string { func (*CMsgDOTASeasonPredictions_Prediction) ProtoMessage() {} func (x *CMsgDOTASeasonPredictions_Prediction) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[130] + mi := &file_dota_gcmessages_common_proto_msgTypes[131] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13550,7 +13677,7 @@ type CMsgDOTASeasonPredictions_Prediction_Answers struct { func (x *CMsgDOTASeasonPredictions_Prediction_Answers) Reset() { *x = CMsgDOTASeasonPredictions_Prediction_Answers{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[131] + mi := &file_dota_gcmessages_common_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13563,7 +13690,7 @@ func (x *CMsgDOTASeasonPredictions_Prediction_Answers) String() string { func (*CMsgDOTASeasonPredictions_Prediction_Answers) ProtoMessage() {} func (x *CMsgDOTASeasonPredictions_Prediction_Answers) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[131] + mi := &file_dota_gcmessages_common_proto_msgTypes[132] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13598,7 +13725,7 @@ type CMsgAvailablePredictions_MatchPrediction struct { func (x *CMsgAvailablePredictions_MatchPrediction) Reset() { *x = CMsgAvailablePredictions_MatchPrediction{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[132] + mi := &file_dota_gcmessages_common_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13611,7 +13738,7 @@ func (x *CMsgAvailablePredictions_MatchPrediction) String() string { func (*CMsgAvailablePredictions_MatchPrediction) ProtoMessage() {} func (x *CMsgAvailablePredictions_MatchPrediction) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[132] + mi := &file_dota_gcmessages_common_proto_msgTypes[133] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13653,7 +13780,7 @@ type CMsgLeagueWatchedGames_Series struct { func (x *CMsgLeagueWatchedGames_Series) Reset() { *x = CMsgLeagueWatchedGames_Series{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[133] + mi := &file_dota_gcmessages_common_proto_msgTypes[134] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13666,7 +13793,7 @@ func (x *CMsgLeagueWatchedGames_Series) String() string { func (*CMsgLeagueWatchedGames_Series) ProtoMessage() {} func (x *CMsgLeagueWatchedGames_Series) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[133] + mi := &file_dota_gcmessages_common_proto_msgTypes[134] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13708,7 +13835,7 @@ type CMsgLeagueWatchedGames_League struct { func (x *CMsgLeagueWatchedGames_League) Reset() { *x = CMsgLeagueWatchedGames_League{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[134] + mi := &file_dota_gcmessages_common_proto_msgTypes[135] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13721,7 +13848,7 @@ func (x *CMsgLeagueWatchedGames_League) String() string { func (*CMsgLeagueWatchedGames_League) ProtoMessage() {} func (x *CMsgLeagueWatchedGames_League) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[134] + mi := &file_dota_gcmessages_common_proto_msgTypes[135] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13758,7 +13885,7 @@ type CMsgDOTAMatch_Player struct { AccountId *uint32 `protobuf:"varint,1,opt,name=account_id,json=accountId" json:"account_id,omitempty"` PlayerSlot *uint32 `protobuf:"varint,2,opt,name=player_slot,json=playerSlot" json:"player_slot,omitempty"` - HeroId *uint32 `protobuf:"varint,3,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,3,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` Item_0 *int32 `protobuf:"varint,4,opt,name=item_0,json=item0" json:"item_0,omitempty"` Item_1 *int32 `protobuf:"varint,5,opt,name=item_1,json=item1" json:"item_1,omitempty"` Item_2 *int32 `protobuf:"varint,6,opt,name=item_2,json=item2" json:"item_2,omitempty"` @@ -13835,7 +13962,7 @@ type CMsgDOTAMatch_Player struct { func (x *CMsgDOTAMatch_Player) Reset() { *x = CMsgDOTAMatch_Player{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[135] + mi := &file_dota_gcmessages_common_proto_msgTypes[136] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13848,7 +13975,7 @@ func (x *CMsgDOTAMatch_Player) String() string { func (*CMsgDOTAMatch_Player) ProtoMessage() {} func (x *CMsgDOTAMatch_Player) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[135] + mi := &file_dota_gcmessages_common_proto_msgTypes[136] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13878,7 +14005,7 @@ func (x *CMsgDOTAMatch_Player) GetPlayerSlot() uint32 { return 0 } -func (x *CMsgDOTAMatch_Player) GetHeroId() uint32 { +func (x *CMsgDOTAMatch_Player) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -14394,7 +14521,7 @@ type CMsgDOTAMatch_BroadcasterInfo struct { func (x *CMsgDOTAMatch_BroadcasterInfo) Reset() { *x = CMsgDOTAMatch_BroadcasterInfo{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[136] + mi := &file_dota_gcmessages_common_proto_msgTypes[137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14407,7 +14534,7 @@ func (x *CMsgDOTAMatch_BroadcasterInfo) String() string { func (*CMsgDOTAMatch_BroadcasterInfo) ProtoMessage() {} func (x *CMsgDOTAMatch_BroadcasterInfo) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[136] + mi := &file_dota_gcmessages_common_proto_msgTypes[137] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14451,7 +14578,7 @@ type CMsgDOTAMatch_BroadcasterChannel struct { func (x *CMsgDOTAMatch_BroadcasterChannel) Reset() { *x = CMsgDOTAMatch_BroadcasterChannel{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[137] + mi := &file_dota_gcmessages_common_proto_msgTypes[138] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14464,7 +14591,7 @@ func (x *CMsgDOTAMatch_BroadcasterChannel) String() string { func (*CMsgDOTAMatch_BroadcasterChannel) ProtoMessage() {} func (x *CMsgDOTAMatch_BroadcasterChannel) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[137] + mi := &file_dota_gcmessages_common_proto_msgTypes[138] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14524,7 +14651,7 @@ type CMsgDOTAMatch_Coach struct { func (x *CMsgDOTAMatch_Coach) Reset() { *x = CMsgDOTAMatch_Coach{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[138] + mi := &file_dota_gcmessages_common_proto_msgTypes[139] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14537,7 +14664,7 @@ func (x *CMsgDOTAMatch_Coach) String() string { func (*CMsgDOTAMatch_Coach) ProtoMessage() {} func (x *CMsgDOTAMatch_Coach) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[138] + mi := &file_dota_gcmessages_common_proto_msgTypes[139] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14607,7 +14734,7 @@ type CMsgDOTAMatch_CustomGameData struct { func (x *CMsgDOTAMatch_CustomGameData) Reset() { *x = CMsgDOTAMatch_CustomGameData{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[139] + mi := &file_dota_gcmessages_common_proto_msgTypes[140] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14620,7 +14747,7 @@ func (x *CMsgDOTAMatch_CustomGameData) String() string { func (*CMsgDOTAMatch_CustomGameData) ProtoMessage() {} func (x *CMsgDOTAMatch_CustomGameData) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[139] + mi := &file_dota_gcmessages_common_proto_msgTypes[140] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14662,7 +14789,7 @@ type CMsgDOTAMatch_Player_CustomGameData struct { func (x *CMsgDOTAMatch_Player_CustomGameData) Reset() { *x = CMsgDOTAMatch_Player_CustomGameData{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[140] + mi := &file_dota_gcmessages_common_proto_msgTypes[141] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14675,7 +14802,7 @@ func (x *CMsgDOTAMatch_Player_CustomGameData) String() string { func (*CMsgDOTAMatch_Player_CustomGameData) ProtoMessage() {} func (x *CMsgDOTAMatch_Player_CustomGameData) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[140] + mi := &file_dota_gcmessages_common_proto_msgTypes[141] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14718,7 +14845,7 @@ type CMsgDOTAMatch_Player_HeroDamageReceived struct { func (x *CMsgDOTAMatch_Player_HeroDamageReceived) Reset() { *x = CMsgDOTAMatch_Player_HeroDamageReceived{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[141] + mi := &file_dota_gcmessages_common_proto_msgTypes[142] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14731,7 +14858,7 @@ func (x *CMsgDOTAMatch_Player_HeroDamageReceived) String() string { func (*CMsgDOTAMatch_Player_HeroDamageReceived) ProtoMessage() {} func (x *CMsgDOTAMatch_Player_HeroDamageReceived) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[141] + mi := &file_dota_gcmessages_common_proto_msgTypes[142] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14780,7 +14907,7 @@ type CMsgPlayerCard_StatModifier struct { func (x *CMsgPlayerCard_StatModifier) Reset() { *x = CMsgPlayerCard_StatModifier{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[142] + mi := &file_dota_gcmessages_common_proto_msgTypes[143] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14793,7 +14920,7 @@ func (x *CMsgPlayerCard_StatModifier) String() string { func (*CMsgPlayerCard_StatModifier) ProtoMessage() {} func (x *CMsgPlayerCard_StatModifier) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[142] + mi := &file_dota_gcmessages_common_proto_msgTypes[143] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14829,7 +14956,7 @@ type CMsgDOTABotDebugInfo_Bot struct { unknownFields protoimpl.UnknownFields PlayerOwnerId *int32 `protobuf:"varint,1,opt,name=player_owner_id,json=playerOwnerId" json:"player_owner_id,omitempty"` - HeroId *uint32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` Difficulty *uint32 `protobuf:"varint,3,opt,name=difficulty" json:"difficulty,omitempty"` PowerCurrent *uint32 `protobuf:"varint,4,opt,name=power_current,json=powerCurrent" json:"power_current,omitempty"` PowerMax *uint32 `protobuf:"varint,5,opt,name=power_max,json=powerMax" json:"power_max,omitempty"` @@ -14845,7 +14972,7 @@ type CMsgDOTABotDebugInfo_Bot struct { func (x *CMsgDOTABotDebugInfo_Bot) Reset() { *x = CMsgDOTABotDebugInfo_Bot{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[143] + mi := &file_dota_gcmessages_common_proto_msgTypes[144] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14858,7 +14985,7 @@ func (x *CMsgDOTABotDebugInfo_Bot) String() string { func (*CMsgDOTABotDebugInfo_Bot) ProtoMessage() {} func (x *CMsgDOTABotDebugInfo_Bot) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[143] + mi := &file_dota_gcmessages_common_proto_msgTypes[144] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14881,7 +15008,7 @@ func (x *CMsgDOTABotDebugInfo_Bot) GetPlayerOwnerId() int32 { return 0 } -func (x *CMsgDOTABotDebugInfo_Bot) GetHeroId() uint32 { +func (x *CMsgDOTABotDebugInfo_Bot) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -14974,7 +15101,7 @@ type CMsgDOTABotDebugInfo_Bot_Mode struct { func (x *CMsgDOTABotDebugInfo_Bot_Mode) Reset() { *x = CMsgDOTABotDebugInfo_Bot_Mode{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[144] + mi := &file_dota_gcmessages_common_proto_msgTypes[145] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14987,7 +15114,7 @@ func (x *CMsgDOTABotDebugInfo_Bot_Mode) String() string { func (*CMsgDOTABotDebugInfo_Bot_Mode) ProtoMessage() {} func (x *CMsgDOTABotDebugInfo_Bot_Mode) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[144] + mi := &file_dota_gcmessages_common_proto_msgTypes[145] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15057,7 +15184,7 @@ type CMsgDOTABotDebugInfo_Bot_Action struct { func (x *CMsgDOTABotDebugInfo_Bot_Action) Reset() { *x = CMsgDOTABotDebugInfo_Bot_Action{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[145] + mi := &file_dota_gcmessages_common_proto_msgTypes[146] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15070,7 +15197,7 @@ func (x *CMsgDOTABotDebugInfo_Bot_Action) String() string { func (*CMsgDOTABotDebugInfo_Bot_Action) ProtoMessage() {} func (x *CMsgDOTABotDebugInfo_Bot_Action) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[145] + mi := &file_dota_gcmessages_common_proto_msgTypes[146] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15114,7 +15241,7 @@ type CMsgMatchTips_SingleTip struct { func (x *CMsgMatchTips_SingleTip) Reset() { *x = CMsgMatchTips_SingleTip{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[146] + mi := &file_dota_gcmessages_common_proto_msgTypes[147] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15127,7 +15254,7 @@ func (x *CMsgMatchTips_SingleTip) String() string { func (*CMsgMatchTips_SingleTip) ProtoMessage() {} func (x *CMsgMatchTips_SingleTip) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[146] + mi := &file_dota_gcmessages_common_proto_msgTypes[147] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15177,7 +15304,7 @@ type CMsgDOTAMatchMinimal_Player struct { unknownFields protoimpl.UnknownFields AccountId *uint32 `protobuf:"varint,1,opt,name=account_id,json=accountId" json:"account_id,omitempty"` - HeroId *uint32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` Kills *uint32 `protobuf:"varint,3,opt,name=kills" json:"kills,omitempty"` Deaths *uint32 `protobuf:"varint,4,opt,name=deaths" json:"deaths,omitempty"` Assists *uint32 `protobuf:"varint,5,opt,name=assists" json:"assists,omitempty"` @@ -15191,7 +15318,7 @@ type CMsgDOTAMatchMinimal_Player struct { func (x *CMsgDOTAMatchMinimal_Player) Reset() { *x = CMsgDOTAMatchMinimal_Player{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[147] + mi := &file_dota_gcmessages_common_proto_msgTypes[148] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15204,7 +15331,7 @@ func (x *CMsgDOTAMatchMinimal_Player) String() string { func (*CMsgDOTAMatchMinimal_Player) ProtoMessage() {} func (x *CMsgDOTAMatchMinimal_Player) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[147] + mi := &file_dota_gcmessages_common_proto_msgTypes[148] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15227,7 +15354,7 @@ func (x *CMsgDOTAMatchMinimal_Player) GetAccountId() uint32 { return 0 } -func (x *CMsgDOTAMatchMinimal_Player) GetHeroId() uint32 { +func (x *CMsgDOTAMatchMinimal_Player) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -15315,7 +15442,7 @@ type CMsgDOTAMatchMinimal_Tourney struct { func (x *CMsgDOTAMatchMinimal_Tourney) Reset() { *x = CMsgDOTAMatchMinimal_Tourney{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[148] + mi := &file_dota_gcmessages_common_proto_msgTypes[149] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15328,7 +15455,7 @@ func (x *CMsgDOTAMatchMinimal_Tourney) String() string { func (*CMsgDOTAMatchMinimal_Tourney) ProtoMessage() {} func (x *CMsgDOTAMatchMinimal_Tourney) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[148] + mi := &file_dota_gcmessages_common_proto_msgTypes[149] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15461,7 +15588,7 @@ type CMsgMatchConsumableUsage_PlayerUsage struct { func (x *CMsgMatchConsumableUsage_PlayerUsage) Reset() { *x = CMsgMatchConsumableUsage_PlayerUsage{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[149] + mi := &file_dota_gcmessages_common_proto_msgTypes[150] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15474,7 +15601,7 @@ func (x *CMsgMatchConsumableUsage_PlayerUsage) String() string { func (*CMsgMatchConsumableUsage_PlayerUsage) ProtoMessage() {} func (x *CMsgMatchConsumableUsage_PlayerUsage) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[149] + mi := &file_dota_gcmessages_common_proto_msgTypes[150] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15516,7 +15643,7 @@ type CMsgMatchEventActionGrants_PlayerGrants struct { func (x *CMsgMatchEventActionGrants_PlayerGrants) Reset() { *x = CMsgMatchEventActionGrants_PlayerGrants{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[150] + mi := &file_dota_gcmessages_common_proto_msgTypes[151] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15529,7 +15656,7 @@ func (x *CMsgMatchEventActionGrants_PlayerGrants) String() string { func (*CMsgMatchEventActionGrants_PlayerGrants) ProtoMessage() {} func (x *CMsgMatchEventActionGrants_PlayerGrants) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[150] + mi := &file_dota_gcmessages_common_proto_msgTypes[151] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15571,7 +15698,7 @@ type CMsgCustomGameWhitelistForEdit_WhitelistEntry struct { func (x *CMsgCustomGameWhitelistForEdit_WhitelistEntry) Reset() { *x = CMsgCustomGameWhitelistForEdit_WhitelistEntry{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[151] + mi := &file_dota_gcmessages_common_proto_msgTypes[152] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15584,7 +15711,7 @@ func (x *CMsgCustomGameWhitelistForEdit_WhitelistEntry) String() string { func (*CMsgCustomGameWhitelistForEdit_WhitelistEntry) ProtoMessage() {} func (x *CMsgCustomGameWhitelistForEdit_WhitelistEntry) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[151] + mi := &file_dota_gcmessages_common_proto_msgTypes[152] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15631,7 +15758,7 @@ type CMsgGCtoGCAssociatedExploiterAccountInfoResponse_Account struct { func (x *CMsgGCtoGCAssociatedExploiterAccountInfoResponse_Account) Reset() { *x = CMsgGCtoGCAssociatedExploiterAccountInfoResponse_Account{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[152] + mi := &file_dota_gcmessages_common_proto_msgTypes[153] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15644,7 +15771,7 @@ func (x *CMsgGCtoGCAssociatedExploiterAccountInfoResponse_Account) String() stri func (*CMsgGCtoGCAssociatedExploiterAccountInfoResponse_Account) ProtoMessage() {} func (x *CMsgGCtoGCAssociatedExploiterAccountInfoResponse_Account) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[152] + mi := &file_dota_gcmessages_common_proto_msgTypes[153] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15716,7 +15843,7 @@ type CMsgPullTabsData_Slot struct { EventId *uint32 `protobuf:"varint,1,opt,name=event_id,json=eventId" json:"event_id,omitempty"` BoardId *uint32 `protobuf:"varint,2,opt,name=board_id,json=boardId" json:"board_id,omitempty"` - HeroId *uint32 `protobuf:"varint,3,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,3,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` ActionId *uint32 `protobuf:"varint,4,opt,name=action_id,json=actionId" json:"action_id,omitempty"` Redeemed *bool `protobuf:"varint,5,opt,name=redeemed" json:"redeemed,omitempty"` } @@ -15724,7 +15851,7 @@ type CMsgPullTabsData_Slot struct { func (x *CMsgPullTabsData_Slot) Reset() { *x = CMsgPullTabsData_Slot{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[153] + mi := &file_dota_gcmessages_common_proto_msgTypes[154] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15737,7 +15864,7 @@ func (x *CMsgPullTabsData_Slot) String() string { func (*CMsgPullTabsData_Slot) ProtoMessage() {} func (x *CMsgPullTabsData_Slot) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[153] + mi := &file_dota_gcmessages_common_proto_msgTypes[154] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15767,7 +15894,7 @@ func (x *CMsgPullTabsData_Slot) GetBoardId() uint32 { return 0 } -func (x *CMsgPullTabsData_Slot) GetHeroId() uint32 { +func (x *CMsgPullTabsData_Slot) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -15795,13 +15922,13 @@ type CMsgPullTabsData_Jackpot struct { BoardId *uint32 `protobuf:"varint,1,opt,name=board_id,json=boardId" json:"board_id,omitempty"` ActionId *uint32 `protobuf:"varint,2,opt,name=action_id,json=actionId" json:"action_id,omitempty"` - HeroId *uint32 `protobuf:"varint,3,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,3,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` } func (x *CMsgPullTabsData_Jackpot) Reset() { *x = CMsgPullTabsData_Jackpot{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[154] + mi := &file_dota_gcmessages_common_proto_msgTypes[155] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15814,7 +15941,7 @@ func (x *CMsgPullTabsData_Jackpot) String() string { func (*CMsgPullTabsData_Jackpot) ProtoMessage() {} func (x *CMsgPullTabsData_Jackpot) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[154] + mi := &file_dota_gcmessages_common_proto_msgTypes[155] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15844,7 +15971,7 @@ func (x *CMsgPullTabsData_Jackpot) GetActionId() uint32 { return 0 } -func (x *CMsgPullTabsData_Jackpot) GetHeroId() uint32 { +func (x *CMsgPullTabsData_Jackpot) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -15857,14 +15984,14 @@ type CMsgUnderDraftData_BenchSlot struct { unknownFields protoimpl.UnknownFields SlotId *uint32 `protobuf:"varint,1,opt,name=slot_id,json=slotId" json:"slot_id,omitempty"` - HeroId *uint32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` Stars *uint32 `protobuf:"varint,3,opt,name=stars" json:"stars,omitempty"` } func (x *CMsgUnderDraftData_BenchSlot) Reset() { *x = CMsgUnderDraftData_BenchSlot{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[155] + mi := &file_dota_gcmessages_common_proto_msgTypes[156] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15877,7 +16004,7 @@ func (x *CMsgUnderDraftData_BenchSlot) String() string { func (*CMsgUnderDraftData_BenchSlot) ProtoMessage() {} func (x *CMsgUnderDraftData_BenchSlot) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[155] + mi := &file_dota_gcmessages_common_proto_msgTypes[156] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15900,7 +16027,7 @@ func (x *CMsgUnderDraftData_BenchSlot) GetSlotId() uint32 { return 0 } -func (x *CMsgUnderDraftData_BenchSlot) GetHeroId() uint32 { +func (x *CMsgUnderDraftData_BenchSlot) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -15920,14 +16047,14 @@ type CMsgUnderDraftData_ShopSlot struct { unknownFields protoimpl.UnknownFields SlotId *uint32 `protobuf:"varint,1,opt,name=slot_id,json=slotId" json:"slot_id,omitempty"` - HeroId *uint32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` IsSpecialReward *bool `protobuf:"varint,3,opt,name=is_special_reward,json=isSpecialReward" json:"is_special_reward,omitempty"` } func (x *CMsgUnderDraftData_ShopSlot) Reset() { *x = CMsgUnderDraftData_ShopSlot{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[156] + mi := &file_dota_gcmessages_common_proto_msgTypes[157] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15940,7 +16067,7 @@ func (x *CMsgUnderDraftData_ShopSlot) String() string { func (*CMsgUnderDraftData_ShopSlot) ProtoMessage() {} func (x *CMsgUnderDraftData_ShopSlot) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[156] + mi := &file_dota_gcmessages_common_proto_msgTypes[157] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15963,7 +16090,7 @@ func (x *CMsgUnderDraftData_ShopSlot) GetSlotId() uint32 { return 0 } -func (x *CMsgUnderDraftData_ShopSlot) GetHeroId() uint32 { +func (x *CMsgUnderDraftData_ShopSlot) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -15993,7 +16120,7 @@ type CMsgGameDataHero_Facet struct { func (x *CMsgGameDataHero_Facet) Reset() { *x = CMsgGameDataHero_Facet{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[157] + mi := &file_dota_gcmessages_common_proto_msgTypes[158] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16006,7 +16133,7 @@ func (x *CMsgGameDataHero_Facet) String() string { func (*CMsgGameDataHero_Facet) ProtoMessage() {} func (x *CMsgGameDataHero_Facet) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[157] + mi := &file_dota_gcmessages_common_proto_msgTypes[158] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16069,7 +16196,7 @@ type CMsgGameDataHeroList_HeroInfo struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id *uint32 `protobuf:"varint,1,opt,name=id" json:"id,omitempty"` + Id *int32 `protobuf:"varint,1,opt,name=id" json:"id,omitempty"` Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` NameLoc *string `protobuf:"bytes,3,opt,name=name_loc,json=nameLoc" json:"name_loc,omitempty"` NameEnglishLoc *string `protobuf:"bytes,4,opt,name=name_english_loc,json=nameEnglishLoc" json:"name_english_loc,omitempty"` @@ -16080,7 +16207,7 @@ type CMsgGameDataHeroList_HeroInfo struct { func (x *CMsgGameDataHeroList_HeroInfo) Reset() { *x = CMsgGameDataHeroList_HeroInfo{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[158] + mi := &file_dota_gcmessages_common_proto_msgTypes[159] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16093,7 +16220,7 @@ func (x *CMsgGameDataHeroList_HeroInfo) String() string { func (*CMsgGameDataHeroList_HeroInfo) ProtoMessage() {} func (x *CMsgGameDataHeroList_HeroInfo) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[158] + mi := &file_dota_gcmessages_common_proto_msgTypes[159] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16109,7 +16236,7 @@ func (*CMsgGameDataHeroList_HeroInfo) Descriptor() ([]byte, []int) { return file_dota_gcmessages_common_proto_rawDescGZIP(), []int{78, 0} } -func (x *CMsgGameDataHeroList_HeroInfo) GetId() uint32 { +func (x *CMsgGameDataHeroList_HeroInfo) GetId() int32 { if x != nil && x.Id != nil { return *x.Id } @@ -16166,7 +16293,7 @@ type CMsgGameDataItemAbilityList_ItemAbilityInfo struct { func (x *CMsgGameDataItemAbilityList_ItemAbilityInfo) Reset() { *x = CMsgGameDataItemAbilityList_ItemAbilityInfo{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[159] + mi := &file_dota_gcmessages_common_proto_msgTypes[160] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16179,7 +16306,7 @@ func (x *CMsgGameDataItemAbilityList_ItemAbilityInfo) String() string { func (*CMsgGameDataItemAbilityList_ItemAbilityInfo) ProtoMessage() {} func (x *CMsgGameDataItemAbilityList_ItemAbilityInfo) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[159] + mi := &file_dota_gcmessages_common_proto_msgTypes[160] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16242,7 +16369,7 @@ type CMsgDOTAClaimEventActionResponse_MysteryItemRewardData struct { func (x *CMsgDOTAClaimEventActionResponse_MysteryItemRewardData) Reset() { *x = CMsgDOTAClaimEventActionResponse_MysteryItemRewardData{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[160] + mi := &file_dota_gcmessages_common_proto_msgTypes[161] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16255,7 +16382,7 @@ func (x *CMsgDOTAClaimEventActionResponse_MysteryItemRewardData) String() string func (*CMsgDOTAClaimEventActionResponse_MysteryItemRewardData) ProtoMessage() {} func (x *CMsgDOTAClaimEventActionResponse_MysteryItemRewardData) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[160] + mi := &file_dota_gcmessages_common_proto_msgTypes[161] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16296,7 +16423,7 @@ type CMsgDOTAClaimEventActionResponse_LootListRewardData struct { func (x *CMsgDOTAClaimEventActionResponse_LootListRewardData) Reset() { *x = CMsgDOTAClaimEventActionResponse_LootListRewardData{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[161] + mi := &file_dota_gcmessages_common_proto_msgTypes[162] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16309,7 +16436,7 @@ func (x *CMsgDOTAClaimEventActionResponse_LootListRewardData) String() string { func (*CMsgDOTAClaimEventActionResponse_LootListRewardData) ProtoMessage() {} func (x *CMsgDOTAClaimEventActionResponse_LootListRewardData) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[161] + mi := &file_dota_gcmessages_common_proto_msgTypes[162] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16344,7 +16471,7 @@ type CMsgDOTAClaimEventActionResponse_ActionListRewardData struct { func (x *CMsgDOTAClaimEventActionResponse_ActionListRewardData) Reset() { *x = CMsgDOTAClaimEventActionResponse_ActionListRewardData{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[162] + mi := &file_dota_gcmessages_common_proto_msgTypes[163] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16357,7 +16484,7 @@ func (x *CMsgDOTAClaimEventActionResponse_ActionListRewardData) String() string func (*CMsgDOTAClaimEventActionResponse_ActionListRewardData) ProtoMessage() {} func (x *CMsgDOTAClaimEventActionResponse_ActionListRewardData) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[162] + mi := &file_dota_gcmessages_common_proto_msgTypes[163] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16398,7 +16525,7 @@ type CMsgDOTAClaimEventActionResponse_OverworldTokenRewardData struct { func (x *CMsgDOTAClaimEventActionResponse_OverworldTokenRewardData) Reset() { *x = CMsgDOTAClaimEventActionResponse_OverworldTokenRewardData{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[163] + mi := &file_dota_gcmessages_common_proto_msgTypes[164] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16411,7 +16538,7 @@ func (x *CMsgDOTAClaimEventActionResponse_OverworldTokenRewardData) String() str func (*CMsgDOTAClaimEventActionResponse_OverworldTokenRewardData) ProtoMessage() {} func (x *CMsgDOTAClaimEventActionResponse_OverworldTokenRewardData) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[163] + mi := &file_dota_gcmessages_common_proto_msgTypes[164] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16449,7 +16576,7 @@ type CMsgDOTAClaimEventActionResponse_GrantedRewardData struct { func (x *CMsgDOTAClaimEventActionResponse_GrantedRewardData) Reset() { *x = CMsgDOTAClaimEventActionResponse_GrantedRewardData{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[164] + mi := &file_dota_gcmessages_common_proto_msgTypes[165] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16462,7 +16589,7 @@ func (x *CMsgDOTAClaimEventActionResponse_GrantedRewardData) String() string { func (*CMsgDOTAClaimEventActionResponse_GrantedRewardData) ProtoMessage() {} func (x *CMsgDOTAClaimEventActionResponse_GrantedRewardData) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[164] + mi := &file_dota_gcmessages_common_proto_msgTypes[165] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16525,7 +16652,7 @@ type CMsgDOTAClaimEventActionResponse_OverworldTokenRewardData_TokenQuantity str func (x *CMsgDOTAClaimEventActionResponse_OverworldTokenRewardData_TokenQuantity) Reset() { *x = CMsgDOTAClaimEventActionResponse_OverworldTokenRewardData_TokenQuantity{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_common_proto_msgTypes[165] + mi := &file_dota_gcmessages_common_proto_msgTypes[166] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16538,7 +16665,7 @@ func (x *CMsgDOTAClaimEventActionResponse_OverworldTokenRewardData_TokenQuantity func (*CMsgDOTAClaimEventActionResponse_OverworldTokenRewardData_TokenQuantity) ProtoMessage() {} func (x *CMsgDOTAClaimEventActionResponse_OverworldTokenRewardData_TokenQuantity) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_common_proto_msgTypes[165] + mi := &file_dota_gcmessages_common_proto_msgTypes[166] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16568,6 +16695,85 @@ func (x *CMsgDOTAClaimEventActionResponse_OverworldTokenRewardData_TokenQuantity return 0 } +type CDotaMsg_PredictionResult_Prediction struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ItemDef *uint32 `protobuf:"varint,1,opt,name=item_def,json=itemDef" json:"item_def,omitempty"` + NumCorrect *uint32 `protobuf:"varint,2,opt,name=num_correct,json=numCorrect" json:"num_correct,omitempty"` + NumFails *uint32 `protobuf:"varint,3,opt,name=num_fails,json=numFails" json:"num_fails,omitempty"` + Result *CDotaMsg_PredictionResult_Prediction_EResult `protobuf:"varint,4,opt,name=result,enum=dota.CDotaMsg_PredictionResult_Prediction_EResult" json:"result,omitempty"` + GrantedItemDefs []uint32 `protobuf:"varint,6,rep,name=granted_item_defs,json=grantedItemDefs" json:"granted_item_defs,omitempty"` +} + +func (x *CDotaMsg_PredictionResult_Prediction) Reset() { + *x = CDotaMsg_PredictionResult_Prediction{} + if protoimpl.UnsafeEnabled { + mi := &file_dota_gcmessages_common_proto_msgTypes[167] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CDotaMsg_PredictionResult_Prediction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CDotaMsg_PredictionResult_Prediction) ProtoMessage() {} + +func (x *CDotaMsg_PredictionResult_Prediction) ProtoReflect() protoreflect.Message { + mi := &file_dota_gcmessages_common_proto_msgTypes[167] + 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 CDotaMsg_PredictionResult_Prediction.ProtoReflect.Descriptor instead. +func (*CDotaMsg_PredictionResult_Prediction) Descriptor() ([]byte, []int) { + return file_dota_gcmessages_common_proto_rawDescGZIP(), []int{99, 0} +} + +func (x *CDotaMsg_PredictionResult_Prediction) GetItemDef() uint32 { + if x != nil && x.ItemDef != nil { + return *x.ItemDef + } + return 0 +} + +func (x *CDotaMsg_PredictionResult_Prediction) GetNumCorrect() uint32 { + if x != nil && x.NumCorrect != nil { + return *x.NumCorrect + } + return 0 +} + +func (x *CDotaMsg_PredictionResult_Prediction) GetNumFails() uint32 { + if x != nil && x.NumFails != nil { + return *x.NumFails + } + return 0 +} + +func (x *CDotaMsg_PredictionResult_Prediction) GetResult() CDotaMsg_PredictionResult_Prediction_EResult { + if x != nil && x.Result != nil { + return *x.Result + } + return CDotaMsg_PredictionResult_Prediction_k_eResult_ItemGranted +} + +func (x *CDotaMsg_PredictionResult_Prediction) GetGrantedItemDefs() []uint32 { + if x != nil { + return x.GrantedItemDefs + } + return nil +} + var File_dota_gcmessages_common_proto protoreflect.FileDescriptor var file_dota_gcmessages_common_proto_rawDesc = []byte{ @@ -16677,7 +16883,7 @@ var file_dota_gcmessages_common_proto_rawDesc = []byte{ 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x63, 0x61, 0x73, 0x75, 0x61, 0x6c, 0x31, 0x76, 0x31, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x1a, 0x63, 0x75, 0x72, 0x72, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x63, 0x68, 0x61, 0x6c, - 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x43, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, + 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x43, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x63, 0x75, 0x72, 0x72, 0x41, 0x6c, 0x6c, 0x48, 0x65, 0x72, 0x6f, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x44, 0x20, 0x01, 0x28, 0x0d, @@ -16761,7 +16967,7 @@ var file_dota_gcmessages_common_proto_rawDesc = []byte{ 0x79, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x6d, 0x6d, 0x72, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x7b, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0d, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x48, 0x65, 0x72, 0x6f, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x1a, 0x3e, 0x0a, 0x0c, 0x52, 0x6f, 0x6c, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x61, 0x6e, 0x64, 0x69, @@ -16836,7 +17042,7 @@ var file_dota_gcmessages_common_proto_rawDesc = []byte{ 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x97, 0x02, 0x0a, 0x14, 0x43, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x65, 0x12, 0x17, 0x0a, - 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, + 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x66, 0x66, 0x65, 0x63, @@ -16989,7 +17195,7 @@ var file_dota_gcmessages_common_proto_rawDesc = []byte{ 0x69, 0x73, 0x5f, 0x70, 0x69, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x50, 0x69, 0x63, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, - 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, + 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x22, 0xba, 0x02, 0x0a, 0x0a, 0x43, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6c, 0x69, 0x70, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, @@ -17003,7 +17209,7 @@ var file_dota_gcmessages_common_proto_rawDesc = []byte{ 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, - 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, + 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x5f, 0x6d, @@ -17147,7 +17353,7 @@ var file_dota_gcmessages_common_proto_rawDesc = []byte{ 0x6d, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x1a, 0x5d, 0x0a, 0x04, 0x48, 0x65, 0x72, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x68, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x77, 0x69, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x68, 0x65, 0x72, 0x6f, 0x57, 0x69, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x68, @@ -17198,7 +17404,7 @@ var file_dota_gcmessages_common_proto_rawDesc = []byte{ 0x61, 0x78, 0x51, 0x75, 0x65, 0x73, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, - 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, + 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x22, 0x88, 0x01, 0x0a, 0x23, 0x43, 0x4d, 0x73, 0x67, 0x43, @@ -17209,7 +17415,7 @@ var file_dota_gcmessages_common_proto_rawDesc = []byte{ 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, - 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, + 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x22, 0xec, 0x01, 0x0a, 0x23, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x52, 0x65, 0x72, 0x6f, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x06, 0x72, 0x65, 0x73, @@ -17311,7 +17517,7 @@ var file_dota_gcmessages_common_proto_rawDesc = []byte{ 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x68, 0x65, + 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x70, 0x6f, 0x69, 0x6e, 0x74, @@ -17444,7 +17650,7 @@ var file_dota_gcmessages_common_proto_rawDesc = []byte{ 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x1a, 0x38, 0x0a, 0x0e, 0x50, 0x69, 0x63, 0x6b, 0x42, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x12, - 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x68, 0x65, + 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x1a, 0xd6, 0x06, 0x0a, 0x0c, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, @@ -17588,7 +17794,7 @@ var file_dota_gcmessages_common_proto_rawDesc = []byte{ 0x6c, 0x61, 0x79, 0x65, 0x72, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x12, - 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x6b, 0x69, 0x6c, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, @@ -17624,7 +17830,7 @@ var file_dota_gcmessages_common_proto_rawDesc = []byte{ 0x72, 0x6f, 0x79, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x65, 0x64, 0x1a, 0x38, 0x0a, 0x0e, 0x50, 0x69, 0x63, 0x6b, 0x42, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x12, 0x12, 0x0a, 0x04, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x1a, 0xaa, 0x04, 0x0a, 0x0c, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x65, 0x61, @@ -18041,7 +18247,7 @@ var file_dota_gcmessages_common_proto_rawDesc = []byte{ 0x1f, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x69, 0x74, 0x65, + 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x30, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x30, 0x12, 0x15, 0x0a, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x31, 0x12, 0x15, 0x0a, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x5f, @@ -18396,7 +18602,7 @@ var file_dota_gcmessages_common_proto_rawDesc = []byte{ 0x03, 0x42, 0x6f, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, - 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, + 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x63, @@ -18440,7 +18646,7 @@ var file_dota_gcmessages_common_proto_rawDesc = []byte{ 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x75, 0x0a, 0x12, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x48, 0x65, 0x72, 0x6f, 0x12, 0x17, 0x0a, 0x07, - 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, + 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x69, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x77, 0x69, 0x6e, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x73, @@ -18516,7 +18722,7 @@ var file_dota_gcmessages_common_proto_rawDesc = []byte{ 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x14, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x12, 0x18, 0x0a, 0x07, @@ -18645,7 +18851,7 @@ var file_dota_gcmessages_common_proto_rawDesc = []byte{ 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x77, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x77, 0x69, 0x6e, 0x12, 0x17, - 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x64, @@ -18735,7 +18941,7 @@ var file_dota_gcmessages_common_proto_rawDesc = []byte{ 0x73, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x22, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x22, 0xc8, 0x02, 0x0a, 0x38, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x69, 0x73, 0x68, 0x6d, @@ -18761,7 +18967,7 @@ var file_dota_gcmessages_common_proto_rawDesc = []byte{ 0x68, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x6f, + 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x76, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xe7, 0x01, 0x0a, 0x28, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x74, 0x6f, 0x47, 0x43, 0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, @@ -18820,7 +19026,7 @@ var file_dota_gcmessages_common_proto_rawDesc = []byte{ 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1b, 0x0a, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x64, 0x65, 0x65, 0x6d, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, @@ -18829,7 +19035,7 @@ var file_dota_gcmessages_common_proto_rawDesc = []byte{ 0x01, 0x28, 0x0d, 0x52, 0x07, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, - 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, + 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x22, 0xb4, 0x03, 0x0a, 0x12, 0x43, 0x4d, 0x73, 0x67, 0x55, 0x6e, 0x64, 0x65, 0x72, 0x44, 0x72, 0x61, 0x66, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x43, 0x0a, 0x0b, 0x62, 0x65, 0x6e, 0x63, 0x68, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, @@ -18849,12 +19055,12 @@ var file_dota_gcmessages_common_proto_rawDesc = []byte{ 0x6e, 0x63, 0x68, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x6c, 0x6f, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x73, 0x1a, 0x68, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x70, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x6c, 0x6f, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x2a, 0x0a, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x5e, 0x0a, 0x13, 0x43, 0x4d, 0x73, @@ -19022,7 +19228,7 @@ var file_dota_gcmessages_common_proto_rawDesc = []byte{ 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4f, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x09, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x22, 0xa4, 0x0b, 0x0a, 0x10, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x65, 0x72, 0x6f, 0x12, 0x0e, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, @@ -19132,7 +19338,7 @@ var file_dota_gcmessages_common_proto_rawDesc = []byte{ 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x65, 0x72, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x65, 0x73, 0x1a, 0xb6, 0x01, 0x0a, 0x08, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x61, 0x6d, 0x65, 0x4c, 0x6f, 0x63, 0x12, 0x28, 0x0a, 0x10, 0x6e, @@ -19257,7 +19463,7 @@ var file_dota_gcmessages_common_proto_rawDesc = []byte{ 0x0d, 0x52, 0x0f, 0x66, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x50, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x22, 0x8a, 0x01, 0x0a, 0x0f, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x48, 0x65, 0x72, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x69, 0x74, 0x65, 0x6d, 0x44, 0x65, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, @@ -19279,7 +19485,7 @@ var file_dota_gcmessages_common_proto_rawDesc = []byte{ 0x08, 0x77, 0x69, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x68, 0x0a, 0x15, 0x43, 0x4d, 0x73, 0x67, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x6f, 0x6c, 0x65, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x0a, 0x72, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x0a, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x6f, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x53, 0x74, @@ -19445,253 +19651,283 @@ var file_dota_gcmessages_common_proto_rawDesc = []byte{ 0x6b, 0x5f, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x6b, 0x5f, 0x65, 0x4e, 0x6f, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x6b, 0x5f, 0x65, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x74, 0x65, - 0x6d, 0x10, 0x06, 0x2a, 0x55, 0x0a, 0x11, 0x45, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x50, - 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x1a, 0x6b, 0x5f, 0x45, 0x53, + 0x6d, 0x10, 0x06, 0x22, 0xdc, 0x03, 0x0a, 0x19, 0x43, 0x44, 0x6f, 0x74, 0x61, 0x4d, 0x73, 0x67, + 0x5f, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, + 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x6f, + 0x72, 0x72, 0x65, 0x63, 0x74, 0x12, 0x4c, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x64, 0x6f, 0x74, + 0x61, 0x2e, 0x43, 0x44, 0x6f, 0x74, 0x61, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x72, 0x65, 0x64, 0x69, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x50, 0x72, 0x65, 0x64, + 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x1a, 0x9c, 0x02, 0x0a, 0x0a, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x66, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x69, 0x74, 0x65, 0x6d, 0x44, 0x65, 0x66, 0x12, 0x1f, 0x0a, + 0x0b, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x12, 0x1b, + 0x0a, 0x09, 0x6e, 0x75, 0x6d, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x46, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x4a, 0x0a, 0x06, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x64, 0x6f, + 0x74, 0x61, 0x2e, 0x43, 0x44, 0x6f, 0x74, 0x61, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x72, 0x65, 0x64, + 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x50, 0x72, 0x65, + 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, + 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x67, 0x72, 0x61, 0x6e, 0x74, + 0x65, 0x64, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x66, 0x73, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x0f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x44, + 0x65, 0x66, 0x73, 0x22, 0x3d, 0x0a, 0x07, 0x45, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x19, + 0x0a, 0x15, 0x6b, 0x5f, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x49, 0x74, 0x65, 0x6d, + 0x47, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, 0x65, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x65, 0x64, + 0x10, 0x02, 0x2a, 0x55, 0x0a, 0x11, 0x45, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x50, 0x69, + 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x1a, 0x6b, 0x5f, 0x45, 0x53, 0x70, + 0x65, 0x63, 0x69, 0x61, 0x6c, 0x50, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x4e, + 0x6f, 0x44, 0x61, 0x74, 0x61, 0x10, 0xfe, 0x7f, 0x12, 0x1f, 0x0a, 0x1a, 0x6b, 0x5f, 0x45, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x50, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5f, - 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x10, 0xfe, 0x7f, 0x12, 0x1f, 0x0a, 0x1a, 0x6b, 0x5f, 0x45, - 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x50, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x5f, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xff, 0x7f, 0x2a, 0x86, 0x05, 0x0a, 0x12, 0x45, - 0x44, 0x4f, 0x54, 0x41, 0x47, 0x43, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x65, - 0x64, 0x12, 0x20, 0x0a, 0x1c, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x47, 0x43, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x65, 0x64, 0x5f, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, - 0x6e, 0x10, 0x00, 0x12, 0x2c, 0x0a, 0x28, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x47, 0x43, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x65, 0x64, 0x5f, 0x55, 0x73, 0x65, 0x72, - 0x4e, 0x6f, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x10, - 0x64, 0x12, 0x29, 0x0a, 0x25, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x47, 0x43, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x65, 0x64, 0x5f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, - 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x10, 0x65, 0x12, 0x28, 0x0a, 0x24, - 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x47, 0x43, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x4e, 0x65, 0x65, 0x64, 0x5f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, - 0x47, 0x61, 0x6d, 0x65, 0x10, 0x66, 0x12, 0x2d, 0x0a, 0x29, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, - 0x41, 0x47, 0x43, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x65, 0x64, 0x5f, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x6e, 0x55, 0x49, 0x57, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x10, 0x67, 0x12, 0x2f, 0x0a, 0x2b, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, + 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xff, 0x7f, 0x2a, 0x86, 0x05, 0x0a, 0x12, 0x45, 0x44, + 0x4f, 0x54, 0x41, 0x47, 0x43, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x65, 0x64, + 0x12, 0x20, 0x0a, 0x1c, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x47, 0x43, 0x53, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x65, 0x64, 0x5f, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, + 0x10, 0x00, 0x12, 0x2c, 0x0a, 0x28, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x47, 0x43, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x65, 0x64, 0x5f, 0x55, 0x73, 0x65, 0x72, 0x4e, + 0x6f, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x10, 0x64, + 0x12, 0x29, 0x0a, 0x25, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x47, 0x43, 0x53, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x65, 0x64, 0x5f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x4f, + 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x10, 0x65, 0x12, 0x28, 0x0a, 0x24, 0x6b, + 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x47, 0x43, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, + 0x65, 0x65, 0x64, 0x5f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x47, + 0x61, 0x6d, 0x65, 0x10, 0x66, 0x12, 0x2d, 0x0a, 0x29, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x47, 0x43, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x65, 0x64, 0x5f, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x6e, 0x55, 0x49, 0x4e, 0x65, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x10, 0x68, 0x12, 0x26, 0x0a, 0x22, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, - 0x41, 0x47, 0x43, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x65, 0x64, 0x5f, 0x55, - 0x73, 0x65, 0x72, 0x54, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x10, 0x69, 0x12, 0x31, - 0x0a, 0x2d, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x47, 0x43, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x4e, 0x65, 0x65, 0x64, 0x5f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x55, 0x49, 0x57, - 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x64, 0x6c, 0x65, 0x10, - 0x6a, 0x12, 0x33, 0x0a, 0x2f, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x47, 0x43, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x65, 0x64, 0x5f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, - 0x55, 0x49, 0x4e, 0x65, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, - 0x49, 0x64, 0x6c, 0x65, 0x10, 0x6b, 0x12, 0x2a, 0x0a, 0x25, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, + 0x65, 0x72, 0x49, 0x6e, 0x55, 0x49, 0x57, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x10, 0x67, 0x12, 0x2f, 0x0a, 0x2b, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x47, + 0x43, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x65, 0x64, 0x5f, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x6e, 0x55, 0x49, 0x4e, 0x65, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x10, 0x68, 0x12, 0x26, 0x0a, 0x22, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, + 0x47, 0x43, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x65, 0x64, 0x5f, 0x55, 0x73, + 0x65, 0x72, 0x54, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x10, 0x69, 0x12, 0x31, 0x0a, + 0x2d, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x47, 0x43, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x4e, 0x65, 0x65, 0x64, 0x5f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x55, 0x49, 0x57, 0x61, + 0x73, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x64, 0x6c, 0x65, 0x10, 0x6a, + 0x12, 0x33, 0x0a, 0x2f, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x47, 0x43, 0x53, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x65, 0x64, 0x5f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x55, + 0x49, 0x4e, 0x65, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, + 0x64, 0x6c, 0x65, 0x10, 0x6b, 0x12, 0x2a, 0x0a, 0x25, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, + 0x47, 0x43, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x65, 0x64, 0x5f, 0x47, 0x61, + 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x10, 0xc8, + 0x01, 0x12, 0x29, 0x0a, 0x24, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x47, 0x43, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x65, 0x64, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x10, 0xc9, 0x01, 0x12, 0x28, 0x0a, 0x23, + 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x47, 0x43, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x4e, 0x65, 0x65, 0x64, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, + 0x64, 0x6c, 0x65, 0x10, 0xca, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x47, 0x43, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x65, 0x64, 0x5f, 0x47, - 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x10, - 0xc8, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x47, 0x43, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x65, 0x64, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x10, 0xc9, 0x01, 0x12, 0x28, 0x0a, - 0x23, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x47, 0x43, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x4e, 0x65, 0x65, 0x64, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x49, 0x64, 0x6c, 0x65, 0x10, 0xca, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x6b, 0x5f, 0x45, 0x44, 0x4f, - 0x54, 0x41, 0x47, 0x43, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x65, 0x64, 0x5f, - 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x10, - 0xcb, 0x01, 0x12, 0x2f, 0x0a, 0x2a, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x47, 0x43, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x65, 0x64, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, - 0x10, 0xcc, 0x01, 0x2a, 0x86, 0x02, 0x0a, 0x1e, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x4d, 0x61, 0x74, + 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x10, 0xcb, + 0x01, 0x12, 0x2f, 0x0a, 0x2a, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x47, 0x43, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x65, 0x64, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x10, + 0xcc, 0x01, 0x2a, 0x86, 0x02, 0x0a, 0x1e, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x53, 0x74, 0x61, 0x74, 0x12, 0x3a, 0x0a, 0x36, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, + 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, + 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x5f, 0x48, 0x50, 0x52, 0x65, 0x67, + 0x65, 0x6e, 0x55, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x31, 0x54, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x10, + 0x01, 0x12, 0x4f, 0x0a, 0x4b, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x12, 0x3a, 0x0a, 0x36, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, - 0x41, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x69, 0x6d, - 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x5f, 0x48, 0x50, 0x52, 0x65, - 0x67, 0x65, 0x6e, 0x55, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x31, 0x54, 0x6f, 0x77, 0x65, 0x72, 0x73, - 0x10, 0x01, 0x12, 0x4f, 0x0a, 0x4b, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4d, 0x61, + 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x5f, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x44, 0x61, 0x6d, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x64, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x65, 0x77, + 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x5f, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, + 0x10, 0x02, 0x12, 0x57, 0x0a, 0x53, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x5f, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x64, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x65, - 0x77, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x5f, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, - 0x65, 0x10, 0x02, 0x12, 0x57, 0x0a, 0x53, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x5f, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x44, 0x61, - 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x64, 0x57, 0x69, 0x74, 0x68, 0x4e, - 0x65, 0x77, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x5f, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, - 0x74, 0x4f, 0x66, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x48, 0x50, 0x10, 0x03, 0x2a, 0xf6, 0x01, 0x0a, - 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x45, 0x5f, 0x46, 0x49, 0x52, - 0x53, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x4f, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x45, - 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x54, - 0x45, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x10, 0x02, 0x12, 0x10, - 0x0a, 0x0c, 0x54, 0x45, 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x44, 0x45, 0x4e, 0x59, 0x10, 0x03, - 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x45, 0x5f, 0x41, 0x45, 0x47, 0x49, 0x53, 0x5f, 0x44, 0x45, 0x4e, - 0x59, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x45, 0x5f, 0x41, 0x45, 0x47, 0x49, 0x53, 0x5f, - 0x53, 0x54, 0x4f, 0x4c, 0x45, 0x4e, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x45, 0x5f, 0x47, - 0x4f, 0x44, 0x4c, 0x49, 0x4b, 0x45, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x45, 0x5f, 0x43, - 0x4f, 0x55, 0x52, 0x49, 0x45, 0x52, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x10, 0x07, 0x12, 0x0f, 0x0a, - 0x0b, 0x54, 0x45, 0x5f, 0x45, 0x43, 0x48, 0x4f, 0x53, 0x4c, 0x41, 0x4d, 0x10, 0x08, 0x12, 0x0d, - 0x0a, 0x09, 0x54, 0x45, 0x5f, 0x52, 0x41, 0x50, 0x49, 0x45, 0x52, 0x10, 0x09, 0x12, 0x13, 0x0a, - 0x0f, 0x54, 0x45, 0x5f, 0x45, 0x41, 0x52, 0x4c, 0x59, 0x5f, 0x52, 0x4f, 0x53, 0x48, 0x41, 0x4e, - 0x10, 0x0a, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x45, 0x5f, 0x42, 0x4c, 0x41, 0x43, 0x4b, 0x5f, 0x48, - 0x4f, 0x4c, 0x45, 0x10, 0x0b, 0x2a, 0x8d, 0x03, 0x0a, 0x17, 0x45, 0x42, 0x72, 0x6f, 0x61, 0x64, - 0x63, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x12, 0x28, 0x0a, 0x24, 0x45, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, - 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x2c, 0x0a, 0x28, 0x45, + 0x77, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x5f, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, + 0x4f, 0x66, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x48, 0x50, 0x10, 0x03, 0x2a, 0xf6, 0x01, 0x0a, 0x15, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x45, 0x5f, 0x46, 0x49, 0x52, 0x53, + 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x4f, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x45, 0x5f, + 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x45, + 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x10, 0x02, 0x12, 0x10, 0x0a, + 0x0c, 0x54, 0x45, 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x44, 0x45, 0x4e, 0x59, 0x10, 0x03, 0x12, + 0x11, 0x0a, 0x0d, 0x54, 0x45, 0x5f, 0x41, 0x45, 0x47, 0x49, 0x53, 0x5f, 0x44, 0x45, 0x4e, 0x59, + 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x45, 0x5f, 0x41, 0x45, 0x47, 0x49, 0x53, 0x5f, 0x53, + 0x54, 0x4f, 0x4c, 0x45, 0x4e, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x45, 0x5f, 0x47, 0x4f, + 0x44, 0x4c, 0x49, 0x4b, 0x45, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x45, 0x5f, 0x43, 0x4f, + 0x55, 0x52, 0x49, 0x45, 0x52, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x10, 0x07, 0x12, 0x0f, 0x0a, 0x0b, + 0x54, 0x45, 0x5f, 0x45, 0x43, 0x48, 0x4f, 0x53, 0x4c, 0x41, 0x4d, 0x10, 0x08, 0x12, 0x0d, 0x0a, + 0x09, 0x54, 0x45, 0x5f, 0x52, 0x41, 0x50, 0x49, 0x45, 0x52, 0x10, 0x09, 0x12, 0x13, 0x0a, 0x0f, + 0x54, 0x45, 0x5f, 0x45, 0x41, 0x52, 0x4c, 0x59, 0x5f, 0x52, 0x4f, 0x53, 0x48, 0x41, 0x4e, 0x10, + 0x0a, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x45, 0x5f, 0x42, 0x4c, 0x41, 0x43, 0x4b, 0x5f, 0x48, 0x4f, + 0x4c, 0x45, 0x10, 0x0b, 0x2a, 0x8d, 0x03, 0x0a, 0x17, 0x45, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, + 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x12, 0x28, 0x0a, 0x24, 0x45, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x2c, 0x0a, 0x28, 0x45, 0x42, + 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22, 0x45, 0x42, 0x72, 0x6f, + 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x5f, 0x54, 0x6f, 0x77, 0x65, 0x72, 0x44, 0x65, 0x61, 0x74, 0x68, 0x10, 0x03, + 0x12, 0x29, 0x0a, 0x25, 0x45, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x42, 0x61, 0x72, 0x72, + 0x61, 0x63, 0x6b, 0x73, 0x44, 0x65, 0x61, 0x74, 0x68, 0x10, 0x04, 0x12, 0x28, 0x0a, 0x24, 0x45, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, - 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22, 0x45, 0x42, 0x72, - 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x54, 0x6f, 0x77, 0x65, 0x72, 0x44, 0x65, 0x61, 0x74, 0x68, 0x10, - 0x03, 0x12, 0x29, 0x0a, 0x25, 0x45, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, - 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x42, 0x61, 0x72, - 0x72, 0x61, 0x63, 0x6b, 0x73, 0x44, 0x65, 0x61, 0x74, 0x68, 0x10, 0x04, 0x12, 0x28, 0x0a, 0x24, + 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x41, 0x6e, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, + 0x61, 0x74, 0x68, 0x10, 0x05, 0x12, 0x27, 0x0a, 0x23, 0x45, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, + 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x5f, 0x52, 0x6f, 0x73, 0x68, 0x61, 0x6e, 0x44, 0x65, 0x61, 0x74, 0x68, 0x10, 0x06, 0x12, 0x25, + 0x0a, 0x21, 0x45, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x65, + 0x61, 0x74, 0x68, 0x10, 0x07, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, + 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x5f, 0x54, 0x65, 0x61, 0x6d, 0x46, 0x69, 0x67, 0x68, 0x74, 0x10, 0x08, 0x12, 0x26, 0x0a, 0x22, 0x45, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, - 0x6e, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x41, 0x6e, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x44, - 0x65, 0x61, 0x74, 0x68, 0x10, 0x05, 0x12, 0x27, 0x0a, 0x23, 0x45, 0x42, 0x72, 0x6f, 0x61, 0x64, - 0x63, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x5f, 0x52, 0x6f, 0x73, 0x68, 0x61, 0x6e, 0x44, 0x65, 0x61, 0x74, 0x68, 0x10, 0x06, 0x12, - 0x25, 0x0a, 0x21, 0x45, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x48, 0x65, 0x72, 0x6f, 0x44, - 0x65, 0x61, 0x74, 0x68, 0x10, 0x07, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x42, 0x72, 0x6f, 0x61, 0x64, - 0x63, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x5f, 0x54, 0x65, 0x61, 0x6d, 0x46, 0x69, 0x67, 0x68, 0x74, 0x10, 0x08, 0x12, 0x26, 0x0a, - 0x22, 0x45, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6c, - 0x69, 0x6e, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x46, 0x69, 0x72, 0x73, 0x74, 0x42, 0x6c, - 0x6f, 0x6f, 0x64, 0x10, 0x09, 0x2a, 0x98, 0x01, 0x0a, 0x19, 0x45, 0x43, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x23, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x47, 0x41, - 0x4d, 0x45, 0x5f, 0x57, 0x48, 0x49, 0x54, 0x45, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x28, 0x0a, 0x24, - 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x57, 0x48, 0x49, 0x54, - 0x45, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x50, 0x50, 0x52, - 0x4f, 0x56, 0x45, 0x44, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, - 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x57, 0x48, 0x49, 0x54, 0x45, 0x4c, 0x49, 0x53, 0x54, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x02, - 0x2a, 0x9a, 0x07, 0x0a, 0x1b, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x54, 0x72, 0x69, 0x76, 0x69, 0x61, + 0x6e, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x46, 0x69, 0x72, 0x73, 0x74, 0x42, 0x6c, 0x6f, + 0x6f, 0x64, 0x10, 0x09, 0x2a, 0x98, 0x01, 0x0a, 0x19, 0x45, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x47, 0x61, 0x6d, 0x65, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x27, 0x0a, 0x23, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x47, 0x41, 0x4d, + 0x45, 0x5f, 0x57, 0x48, 0x49, 0x54, 0x45, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x28, 0x0a, 0x24, 0x43, + 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x57, 0x48, 0x49, 0x54, 0x45, + 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x50, 0x50, 0x52, 0x4f, + 0x56, 0x45, 0x44, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, + 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x57, 0x48, 0x49, 0x54, 0x45, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x02, 0x2a, + 0x9a, 0x07, 0x0a, 0x1b, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x54, 0x72, 0x69, 0x76, 0x69, 0x61, 0x51, + 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, + 0x2d, 0x0a, 0x29, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x54, 0x72, 0x69, 0x76, 0x69, 0x61, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, - 0x12, 0x2d, 0x0a, 0x29, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x54, 0x72, 0x69, 0x76, 0x69, + 0x5f, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x63, 0x6f, 0x6e, 0x10, 0x00, 0x12, 0x31, + 0x0a, 0x2d, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x54, 0x72, 0x69, 0x76, 0x69, 0x61, 0x51, + 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, + 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x10, + 0x01, 0x12, 0x30, 0x0a, 0x2c, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x54, 0x72, 0x69, 0x76, + 0x69, 0x61, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, + 0x72, 0x79, 0x5f, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x73, 0x10, 0x02, 0x12, 0x33, 0x0a, 0x2f, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x54, 0x72, + 0x69, 0x76, 0x69, 0x61, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x74, 0x65, + 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x6f, 0x76, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x10, 0x03, 0x12, 0x2c, 0x0a, 0x28, 0x6b, 0x5f, 0x45, 0x44, + 0x4f, 0x54, 0x41, 0x54, 0x72, 0x69, 0x76, 0x69, 0x61, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, + 0x6e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, + 0x54, 0x72, 0x65, 0x65, 0x10, 0x04, 0x12, 0x2b, 0x0a, 0x27, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, + 0x41, 0x54, 0x72, 0x69, 0x76, 0x69, 0x61, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x43, + 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, + 0x73, 0x10, 0x05, 0x12, 0x2b, 0x0a, 0x27, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x54, 0x72, + 0x69, 0x76, 0x69, 0x61, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x74, 0x65, + 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x10, 0x06, + 0x12, 0x2e, 0x0a, 0x2a, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x54, 0x72, 0x69, 0x76, 0x69, 0x61, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, - 0x79, 0x5f, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x63, 0x6f, 0x6e, 0x10, 0x00, 0x12, - 0x31, 0x0a, 0x2d, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x54, 0x72, 0x69, 0x76, 0x69, 0x61, - 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, - 0x5f, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, - 0x10, 0x01, 0x12, 0x30, 0x0a, 0x2c, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x54, 0x72, 0x69, - 0x76, 0x69, 0x61, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x74, 0x65, 0x67, - 0x6f, 0x72, 0x79, 0x5f, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x10, 0x02, 0x12, 0x33, 0x0a, 0x2f, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x54, + 0x79, 0x5f, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x07, + 0x12, 0x2f, 0x0a, 0x2b, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x54, 0x72, 0x69, 0x76, 0x69, + 0x61, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, + 0x79, 0x5f, 0x49, 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x72, 0x53, 0x70, 0x65, 0x6c, 0x6c, 0x73, 0x10, + 0x08, 0x12, 0x31, 0x0a, 0x2d, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x54, 0x72, 0x69, 0x76, + 0x69, 0x61, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, + 0x72, 0x79, 0x5f, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4d, 0x61, 0x6e, 0x61, 0x43, 0x6f, + 0x73, 0x74, 0x10, 0x09, 0x12, 0x31, 0x0a, 0x2d, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x54, 0x72, 0x69, 0x76, 0x69, 0x61, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x74, - 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x6f, 0x76, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x10, 0x03, 0x12, 0x2c, 0x0a, 0x28, 0x6b, 0x5f, 0x45, - 0x44, 0x4f, 0x54, 0x41, 0x54, 0x72, 0x69, 0x76, 0x69, 0x61, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, - 0x6f, 0x6e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x54, 0x61, 0x6c, 0x65, 0x6e, - 0x74, 0x54, 0x72, 0x65, 0x65, 0x10, 0x04, 0x12, 0x2b, 0x0a, 0x27, 0x6b, 0x5f, 0x45, 0x44, 0x4f, + 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, + 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x0a, 0x12, 0x2d, 0x0a, 0x29, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x54, 0x72, 0x69, 0x76, 0x69, 0x61, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, - 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, - 0x74, 0x73, 0x10, 0x05, 0x12, 0x2b, 0x0a, 0x27, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x54, - 0x72, 0x69, 0x76, 0x69, 0x61, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x74, - 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x10, - 0x06, 0x12, 0x2e, 0x0a, 0x2a, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x54, 0x72, 0x69, 0x76, - 0x69, 0x61, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, - 0x72, 0x79, 0x5f, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x10, - 0x07, 0x12, 0x2f, 0x0a, 0x2b, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x54, 0x72, 0x69, 0x76, - 0x69, 0x61, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, - 0x72, 0x79, 0x5f, 0x49, 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x72, 0x53, 0x70, 0x65, 0x6c, 0x6c, 0x73, - 0x10, 0x08, 0x12, 0x31, 0x0a, 0x2d, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x54, 0x72, 0x69, - 0x76, 0x69, 0x61, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x74, 0x65, 0x67, - 0x6f, 0x72, 0x79, 0x5f, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4d, 0x61, 0x6e, 0x61, 0x43, - 0x6f, 0x73, 0x74, 0x10, 0x09, 0x12, 0x31, 0x0a, 0x2d, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, - 0x54, 0x72, 0x69, 0x76, 0x69, 0x61, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, - 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x74, 0x74, 0x61, 0x63, - 0x6b, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x0a, 0x12, 0x2d, 0x0a, 0x29, 0x6b, 0x5f, 0x45, 0x44, + 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x4e, 0x61, 0x6d, 0x65, 0x10, 0x0b, 0x12, 0x30, 0x0a, 0x2c, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, + 0x41, 0x54, 0x72, 0x69, 0x76, 0x69, 0x61, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x43, + 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6d, 0x70, + 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x10, 0x0c, 0x12, 0x2a, 0x0a, 0x26, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x54, 0x72, 0x69, 0x76, 0x69, 0x61, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, - 0x6e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x10, 0x0b, 0x12, 0x30, 0x0a, 0x2c, 0x6b, 0x5f, 0x45, 0x44, 0x4f, + 0x6e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x4c, 0x6f, + 0x72, 0x65, 0x10, 0x0d, 0x12, 0x2e, 0x0a, 0x2a, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x54, + 0x72, 0x69, 0x76, 0x69, 0x61, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x74, + 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x61, 0x73, 0x73, 0x69, 0x76, + 0x65, 0x73, 0x10, 0x0e, 0x12, 0x36, 0x0a, 0x32, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x54, + 0x72, 0x69, 0x76, 0x69, 0x61, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x74, + 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x49, 0x43, 0x5f, 0x51, 0x55, 0x45, + 0x53, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0x0f, 0x12, 0x39, 0x0a, 0x35, + 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x54, 0x72, 0x69, 0x76, 0x69, 0x61, 0x51, 0x75, 0x65, + 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x44, 0x59, + 0x4e, 0x41, 0x4d, 0x49, 0x43, 0x5f, 0x51, 0x55, 0x45, 0x53, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x5f, + 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x63, 0x12, 0x33, 0x0a, 0x2f, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x54, 0x72, 0x69, 0x76, 0x69, 0x61, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, - 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6d, - 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x10, 0x0c, 0x12, 0x2a, 0x0a, 0x26, 0x6b, 0x5f, 0x45, - 0x44, 0x4f, 0x54, 0x41, 0x54, 0x72, 0x69, 0x76, 0x69, 0x61, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, - 0x6f, 0x6e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x4c, - 0x6f, 0x72, 0x65, 0x10, 0x0d, 0x12, 0x2e, 0x0a, 0x2a, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, - 0x54, 0x72, 0x69, 0x76, 0x69, 0x61, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, - 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x61, 0x73, 0x73, 0x69, - 0x76, 0x65, 0x73, 0x10, 0x0e, 0x12, 0x36, 0x0a, 0x32, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, - 0x54, 0x72, 0x69, 0x76, 0x69, 0x61, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, - 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x49, 0x43, 0x5f, 0x51, 0x55, - 0x45, 0x53, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0x0f, 0x12, 0x39, 0x0a, - 0x35, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x54, 0x72, 0x69, 0x76, 0x69, 0x61, 0x51, 0x75, - 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x44, - 0x59, 0x4e, 0x41, 0x4d, 0x49, 0x43, 0x5f, 0x51, 0x55, 0x45, 0x53, 0x54, 0x49, 0x4f, 0x4e, 0x53, - 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x63, 0x12, 0x33, 0x0a, 0x2f, 0x6b, 0x5f, 0x45, 0x44, - 0x4f, 0x54, 0x41, 0x54, 0x72, 0x69, 0x76, 0x69, 0x61, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, - 0x6e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, - 0x63, 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x10, 0x64, 0x2a, 0xa9, 0x01, - 0x0a, 0x14, 0x45, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x76, - 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x1b, 0x6b, 0x5f, 0x45, 0x4f, 0x76, 0x65, - 0x72, 0x77, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x76, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x24, 0x0a, 0x20, 0x6b, 0x5f, 0x45, 0x4f, 0x76, - 0x65, 0x72, 0x77, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x76, 0x69, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x4e, 0x6f, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x74, 0x79, 0x10, 0x01, 0x12, 0x27, 0x0a, - 0x23, 0x6b, 0x5f, 0x45, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, - 0x76, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x47, 0x75, 0x69, 0x6c, 0x74, 0x55, 0x6e, 0x63, - 0x6c, 0x65, 0x61, 0x72, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x6b, 0x5f, 0x45, 0x4f, 0x76, 0x65, + 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, + 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x10, 0x64, 0x2a, 0xa9, 0x01, 0x0a, + 0x14, 0x45, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x76, 0x69, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x1b, 0x6b, 0x5f, 0x45, 0x4f, 0x76, 0x65, 0x72, + 0x77, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x76, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x24, 0x0a, 0x20, 0x6b, 0x5f, 0x45, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x76, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x47, 0x75, 0x69, 0x6c, 0x74, 0x79, 0x10, 0x03, 0x2a, 0x74, 0x0a, 0x10, 0x45, 0x48, 0x65, - 0x72, 0x6f, 0x52, 0x65, 0x6c, 0x69, 0x63, 0x52, 0x61, 0x72, 0x69, 0x74, 0x79, 0x12, 0x26, 0x0a, - 0x19, 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x52, 0x45, 0x4c, 0x49, 0x43, 0x5f, 0x52, 0x41, 0x52, 0x49, - 0x54, 0x59, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x52, 0x45, - 0x4c, 0x49, 0x43, 0x5f, 0x52, 0x41, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x4f, - 0x4e, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x52, 0x45, 0x4c, 0x49, - 0x43, 0x5f, 0x52, 0x41, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x52, 0x41, 0x52, 0x45, 0x10, 0x01, 0x2a, - 0xd1, 0x01, 0x0a, 0x17, 0x45, 0x53, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, - 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x1d, 0x53, - 0x54, 0x49, 0x43, 0x4b, 0x45, 0x52, 0x42, 0x4f, 0x4f, 0x4b, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, - 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x41, 0x47, 0x45, 0x10, 0x00, 0x12, 0x21, - 0x0a, 0x1d, 0x53, 0x54, 0x49, 0x43, 0x4b, 0x45, 0x52, 0x42, 0x4f, 0x4f, 0x4b, 0x5f, 0x41, 0x55, - 0x44, 0x49, 0x54, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x50, 0x41, 0x47, 0x45, 0x10, - 0x01, 0x12, 0x24, 0x0a, 0x20, 0x53, 0x54, 0x49, 0x43, 0x4b, 0x45, 0x52, 0x42, 0x4f, 0x4f, 0x4b, - 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x53, 0x54, 0x49, 0x43, 0x4b, 0x5f, 0x53, 0x54, 0x49, - 0x43, 0x4b, 0x45, 0x52, 0x53, 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x54, 0x49, 0x43, 0x4b, - 0x45, 0x52, 0x42, 0x4f, 0x4f, 0x4b, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x52, 0x45, 0x50, - 0x4c, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x49, 0x43, 0x4b, 0x45, 0x52, 0x53, 0x10, 0x03, 0x12, - 0x22, 0x0a, 0x1e, 0x53, 0x54, 0x49, 0x43, 0x4b, 0x45, 0x52, 0x42, 0x4f, 0x4f, 0x4b, 0x5f, 0x41, - 0x55, 0x44, 0x49, 0x54, 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x53, 0x54, 0x49, 0x43, 0x4b, 0x45, - 0x52, 0x10, 0x04, 0x2a, 0x60, 0x0a, 0x14, 0x45, 0x53, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x62, - 0x6f, 0x6f, 0x6b, 0x50, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x53, - 0x54, 0x49, 0x43, 0x4b, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x47, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, - 0x52, 0x49, 0x43, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x49, 0x43, 0x4b, 0x45, 0x52, - 0x5f, 0x50, 0x41, 0x47, 0x45, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, - 0x53, 0x54, 0x49, 0x43, 0x4b, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x47, 0x45, 0x5f, 0x54, 0x41, 0x4c, - 0x45, 0x4e, 0x54, 0x10, 0x02, 0x2a, 0xbb, 0x04, 0x0a, 0x18, 0x45, 0x4e, 0x65, 0x77, 0x42, 0x6c, - 0x6f, 0x6f, 0x6d, 0x47, 0x69, 0x66, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x6b, 0x45, 0x4e, 0x65, 0x77, 0x42, 0x6c, 0x6f, 0x6f, 0x6d, - 0x47, 0x69, 0x66, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, - 0x00, 0x12, 0x24, 0x0a, 0x20, 0x6b, 0x45, 0x4e, 0x65, 0x77, 0x42, 0x6c, 0x6f, 0x6f, 0x6d, 0x47, - 0x69, 0x66, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x46, 0x61, - 0x69, 0x6c, 0x75, 0x72, 0x65, 0x10, 0x01, 0x12, 0x26, 0x0a, 0x22, 0x6b, 0x45, 0x4e, 0x65, 0x77, - 0x42, 0x6c, 0x6f, 0x6f, 0x6d, 0x47, 0x69, 0x66, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x4d, 0x61, 0x6c, - 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, 0x02, 0x12, - 0x25, 0x0a, 0x21, 0x6b, 0x45, 0x4e, 0x65, 0x77, 0x42, 0x6c, 0x6f, 0x6f, 0x6d, 0x47, 0x69, 0x66, - 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x44, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x10, 0x03, 0x12, 0x22, 0x0a, 0x1e, 0x6b, 0x45, 0x4e, 0x65, 0x77, 0x42, - 0x6c, 0x6f, 0x6f, 0x6d, 0x47, 0x69, 0x66, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x49, 0x74, 0x65, 0x6d, - 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x04, 0x12, 0x31, 0x0a, 0x2d, 0x6b, 0x45, - 0x4e, 0x65, 0x77, 0x42, 0x6c, 0x6f, 0x6f, 0x6d, 0x47, 0x69, 0x66, 0x74, 0x69, 0x6e, 0x67, 0x5f, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x54, 0x6f, 0x47, 0x69, 0x76, 0x65, 0x47, 0x69, 0x66, 0x74, 0x73, 0x10, 0x05, 0x12, 0x34, 0x0a, - 0x30, 0x6b, 0x45, 0x4e, 0x65, 0x77, 0x42, 0x6c, 0x6f, 0x6f, 0x6d, 0x47, 0x69, 0x66, 0x74, 0x69, - 0x6e, 0x67, 0x5f, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x41, 0x6c, 0x6c, 0x6f, - 0x77, 0x65, 0x64, 0x54, 0x6f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x47, 0x69, 0x66, 0x74, - 0x73, 0x10, 0x06, 0x12, 0x29, 0x0a, 0x25, 0x6b, 0x45, 0x4e, 0x65, 0x77, 0x42, 0x6c, 0x6f, 0x6f, - 0x6d, 0x47, 0x69, 0x66, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, - 0x6f, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x10, 0x64, 0x12, 0x26, - 0x0a, 0x22, 0x6b, 0x45, 0x4e, 0x65, 0x77, 0x42, 0x6c, 0x6f, 0x6f, 0x6d, 0x47, 0x69, 0x66, 0x74, - 0x69, 0x6e, 0x67, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x4c, - 0x6f, 0x62, 0x62, 0x79, 0x10, 0x65, 0x12, 0x26, 0x0a, 0x22, 0x6b, 0x45, 0x4e, 0x65, 0x77, 0x42, - 0x6c, 0x6f, 0x6f, 0x6d, 0x47, 0x69, 0x66, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x54, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x10, 0x66, 0x12, 0x26, - 0x0a, 0x22, 0x6b, 0x45, 0x4e, 0x65, 0x77, 0x42, 0x6c, 0x6f, 0x6f, 0x6d, 0x47, 0x69, 0x66, 0x74, - 0x69, 0x6e, 0x67, 0x5f, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x4e, 0x6f, 0x74, 0x45, 0x6c, 0x69, 0x67, - 0x69, 0x62, 0x6c, 0x65, 0x10, 0x67, 0x12, 0x26, 0x0a, 0x21, 0x6b, 0x45, 0x4e, 0x65, 0x77, 0x42, - 0x6c, 0x6f, 0x6f, 0x6d, 0x47, 0x69, 0x66, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x54, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x10, 0xc8, 0x01, 0x12, 0x33, - 0x0a, 0x2e, 0x6b, 0x45, 0x4e, 0x65, 0x77, 0x42, 0x6c, 0x6f, 0x6f, 0x6d, 0x47, 0x69, 0x66, 0x74, - 0x69, 0x6e, 0x67, 0x5f, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6f, 0x53, 0x68, 0x6f, 0x72, 0x74, - 0x10, 0xc9, 0x01, 0x42, 0x25, 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x62, 0x75, 0x66, 0x66, 0x2f, 0x6d, 0x61, 0x6e, 0x74, 0x61, - 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x3b, 0x64, 0x6f, 0x74, 0x61, + 0x5f, 0x4e, 0x6f, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x74, 0x79, 0x10, 0x01, 0x12, 0x27, 0x0a, 0x23, + 0x6b, 0x5f, 0x45, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x76, + 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x47, 0x75, 0x69, 0x6c, 0x74, 0x55, 0x6e, 0x63, 0x6c, + 0x65, 0x61, 0x72, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x6b, 0x5f, 0x45, 0x4f, 0x76, 0x65, 0x72, + 0x77, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x76, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x47, 0x75, 0x69, 0x6c, 0x74, 0x79, 0x10, 0x03, 0x2a, 0x74, 0x0a, 0x10, 0x45, 0x48, 0x65, 0x72, + 0x6f, 0x52, 0x65, 0x6c, 0x69, 0x63, 0x52, 0x61, 0x72, 0x69, 0x74, 0x79, 0x12, 0x26, 0x0a, 0x19, + 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x52, 0x45, 0x4c, 0x49, 0x43, 0x5f, 0x52, 0x41, 0x52, 0x49, 0x54, + 0x59, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x52, 0x45, 0x4c, + 0x49, 0x43, 0x5f, 0x52, 0x41, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x4f, 0x4e, + 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x52, 0x45, 0x4c, 0x49, 0x43, + 0x5f, 0x52, 0x41, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x52, 0x41, 0x52, 0x45, 0x10, 0x01, 0x2a, 0xd1, + 0x01, 0x0a, 0x17, 0x45, 0x53, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x41, + 0x75, 0x64, 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x54, + 0x49, 0x43, 0x4b, 0x45, 0x52, 0x42, 0x4f, 0x4f, 0x4b, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, + 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x41, 0x47, 0x45, 0x10, 0x00, 0x12, 0x21, 0x0a, + 0x1d, 0x53, 0x54, 0x49, 0x43, 0x4b, 0x45, 0x52, 0x42, 0x4f, 0x4f, 0x4b, 0x5f, 0x41, 0x55, 0x44, + 0x49, 0x54, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x50, 0x41, 0x47, 0x45, 0x10, 0x01, + 0x12, 0x24, 0x0a, 0x20, 0x53, 0x54, 0x49, 0x43, 0x4b, 0x45, 0x52, 0x42, 0x4f, 0x4f, 0x4b, 0x5f, + 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x53, 0x54, 0x49, 0x43, 0x4b, 0x5f, 0x53, 0x54, 0x49, 0x43, + 0x4b, 0x45, 0x52, 0x53, 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x54, 0x49, 0x43, 0x4b, 0x45, + 0x52, 0x42, 0x4f, 0x4f, 0x4b, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x52, 0x45, 0x50, 0x4c, + 0x41, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x49, 0x43, 0x4b, 0x45, 0x52, 0x53, 0x10, 0x03, 0x12, 0x22, + 0x0a, 0x1e, 0x53, 0x54, 0x49, 0x43, 0x4b, 0x45, 0x52, 0x42, 0x4f, 0x4f, 0x4b, 0x5f, 0x41, 0x55, + 0x44, 0x49, 0x54, 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x53, 0x54, 0x49, 0x43, 0x4b, 0x45, 0x52, + 0x10, 0x04, 0x2a, 0x60, 0x0a, 0x14, 0x45, 0x53, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x62, 0x6f, + 0x6f, 0x6b, 0x50, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x54, + 0x49, 0x43, 0x4b, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x47, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, + 0x49, 0x43, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x49, 0x43, 0x4b, 0x45, 0x52, 0x5f, + 0x50, 0x41, 0x47, 0x45, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x53, + 0x54, 0x49, 0x43, 0x4b, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x47, 0x45, 0x5f, 0x54, 0x41, 0x4c, 0x45, + 0x4e, 0x54, 0x10, 0x02, 0x2a, 0xbb, 0x04, 0x0a, 0x18, 0x45, 0x4e, 0x65, 0x77, 0x42, 0x6c, 0x6f, + 0x6f, 0x6d, 0x47, 0x69, 0x66, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x6b, 0x45, 0x4e, 0x65, 0x77, 0x42, 0x6c, 0x6f, 0x6f, 0x6d, 0x47, + 0x69, 0x66, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, + 0x12, 0x24, 0x0a, 0x20, 0x6b, 0x45, 0x4e, 0x65, 0x77, 0x42, 0x6c, 0x6f, 0x6f, 0x6d, 0x47, 0x69, + 0x66, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x46, 0x61, 0x69, + 0x6c, 0x75, 0x72, 0x65, 0x10, 0x01, 0x12, 0x26, 0x0a, 0x22, 0x6b, 0x45, 0x4e, 0x65, 0x77, 0x42, + 0x6c, 0x6f, 0x6f, 0x6d, 0x47, 0x69, 0x66, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x4d, 0x61, 0x6c, 0x66, + 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, 0x02, 0x12, 0x25, + 0x0a, 0x21, 0x6b, 0x45, 0x4e, 0x65, 0x77, 0x42, 0x6c, 0x6f, 0x6f, 0x6d, 0x47, 0x69, 0x66, 0x74, + 0x69, 0x6e, 0x67, 0x5f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x44, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x10, 0x03, 0x12, 0x22, 0x0a, 0x1e, 0x6b, 0x45, 0x4e, 0x65, 0x77, 0x42, 0x6c, + 0x6f, 0x6f, 0x6d, 0x47, 0x69, 0x66, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x4e, + 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x04, 0x12, 0x31, 0x0a, 0x2d, 0x6b, 0x45, 0x4e, + 0x65, 0x77, 0x42, 0x6c, 0x6f, 0x6f, 0x6d, 0x47, 0x69, 0x66, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x54, + 0x6f, 0x47, 0x69, 0x76, 0x65, 0x47, 0x69, 0x66, 0x74, 0x73, 0x10, 0x05, 0x12, 0x34, 0x0a, 0x30, + 0x6b, 0x45, 0x4e, 0x65, 0x77, 0x42, 0x6c, 0x6f, 0x6f, 0x6d, 0x47, 0x69, 0x66, 0x74, 0x69, 0x6e, + 0x67, 0x5f, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x54, 0x6f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x47, 0x69, 0x66, 0x74, 0x73, + 0x10, 0x06, 0x12, 0x29, 0x0a, 0x25, 0x6b, 0x45, 0x4e, 0x65, 0x77, 0x42, 0x6c, 0x6f, 0x6f, 0x6d, + 0x47, 0x69, 0x66, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x6f, + 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x10, 0x64, 0x12, 0x26, 0x0a, + 0x22, 0x6b, 0x45, 0x4e, 0x65, 0x77, 0x42, 0x6c, 0x6f, 0x6f, 0x6d, 0x47, 0x69, 0x66, 0x74, 0x69, + 0x6e, 0x67, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x4c, 0x6f, + 0x62, 0x62, 0x79, 0x10, 0x65, 0x12, 0x26, 0x0a, 0x22, 0x6b, 0x45, 0x4e, 0x65, 0x77, 0x42, 0x6c, + 0x6f, 0x6f, 0x6d, 0x47, 0x69, 0x66, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x10, 0x66, 0x12, 0x26, 0x0a, + 0x22, 0x6b, 0x45, 0x4e, 0x65, 0x77, 0x42, 0x6c, 0x6f, 0x6f, 0x6d, 0x47, 0x69, 0x66, 0x74, 0x69, + 0x6e, 0x67, 0x5f, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x4e, 0x6f, 0x74, 0x45, 0x6c, 0x69, 0x67, 0x69, + 0x62, 0x6c, 0x65, 0x10, 0x67, 0x12, 0x26, 0x0a, 0x21, 0x6b, 0x45, 0x4e, 0x65, 0x77, 0x42, 0x6c, + 0x6f, 0x6f, 0x6d, 0x47, 0x69, 0x66, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x4e, 0x6f, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x10, 0xc8, 0x01, 0x12, 0x33, 0x0a, + 0x2e, 0x6b, 0x45, 0x4e, 0x65, 0x77, 0x42, 0x6c, 0x6f, 0x6f, 0x6d, 0x47, 0x69, 0x66, 0x74, 0x69, + 0x6e, 0x67, 0x5f, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x44, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6f, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x10, + 0xc9, 0x01, 0x42, 0x25, 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x62, 0x75, 0x66, 0x66, 0x2f, 0x6d, 0x61, 0x6e, 0x74, 0x61, 0x2f, + 0x64, 0x6f, 0x74, 0x61, 0x3b, 0x64, 0x6f, 0x74, 0x61, } var ( @@ -19706,8 +19942,8 @@ func file_dota_gcmessages_common_proto_rawDescGZIP() []byte { return file_dota_gcmessages_common_proto_rawDescData } -var file_dota_gcmessages_common_proto_enumTypes = make([]protoimpl.EnumInfo, 27) -var file_dota_gcmessages_common_proto_msgTypes = make([]protoimpl.MessageInfo, 166) +var file_dota_gcmessages_common_proto_enumTypes = make([]protoimpl.EnumInfo, 28) +var file_dota_gcmessages_common_proto_msgTypes = make([]protoimpl.MessageInfo, 168) var file_dota_gcmessages_common_proto_goTypes = []interface{}{ (ESpecialPingValue)(0), // 0: dota.ESpecialPingValue (EDOTAGCSessionNeed)(0), // 1: dota.EDOTAGCSessionNeed @@ -19736,331 +19972,336 @@ var file_dota_gcmessages_common_proto_goTypes = []interface{}{ (CMsgServerToGCRequestPlayerRecentAccomplishmentsResponse_EResponse)(0), // 24: dota.CMsgServerToGCRequestPlayerRecentAccomplishmentsResponse.EResponse (CMsgDOTAClaimEventActionResponse_ResultCode)(0), // 25: dota.CMsgDOTAClaimEventActionResponse.ResultCode (CMsgClientToGCDotaLabsFeedbackResponse_EResponse)(0), // 26: dota.CMsgClientToGCDotaLabsFeedbackResponse.EResponse - (*CSODOTAGameAccountClient)(nil), // 27: dota.CSODOTAGameAccountClient - (*CSODOTAGameAccountPlus)(nil), // 28: dota.CSODOTAGameAccountPlus - (*CSODOTAChatWheel)(nil), // 29: dota.CSODOTAChatWheel - (*CMsgLobbyFeaturedGamemodeProgress)(nil), // 30: dota.CMsgLobbyFeaturedGamemodeProgress - (*CMsgBattleCupVictory)(nil), // 31: dota.CMsgBattleCupVictory - (*CMsgLobbyBattleCupVictoryList)(nil), // 32: dota.CMsgLobbyBattleCupVictoryList - (*CMsgDOTABroadcastNotification)(nil), // 33: dota.CMsgDOTABroadcastNotification - (*CProtoItemHeroStatue)(nil), // 34: dota.CProtoItemHeroStatue - (*CMatchPlayerAbilityUpgrade)(nil), // 35: dota.CMatchPlayerAbilityUpgrade - (*CMatchPlayerTimedCustomStat)(nil), // 36: dota.CMatchPlayerTimedCustomStat - (*CMatchPlayerTimedStats)(nil), // 37: dota.CMatchPlayerTimedStats - (*CMatchTeamTimedStats)(nil), // 38: dota.CMatchTeamTimedStats - (*CMatchAdditionalUnitInventory)(nil), // 39: dota.CMatchAdditionalUnitInventory - (*CMatchPlayerPermanentBuff)(nil), // 40: dota.CMatchPlayerPermanentBuff - (*CMatchHeroSelectEvent)(nil), // 41: dota.CMatchHeroSelectEvent - (*CMatchClip)(nil), // 42: dota.CMatchClip - (*CPartySearchClientParty)(nil), // 43: dota.CPartySearchClientParty - (*CMsgDOTAHasItemQuery)(nil), // 44: dota.CMsgDOTAHasItemQuery - (*CMsgDOTAHasItemResponse)(nil), // 45: dota.CMsgDOTAHasItemResponse - (*CMsgGCGetPlayerCardItemInfo)(nil), // 46: dota.CMsgGCGetPlayerCardItemInfo - (*CMsgGCGetPlayerCardItemInfoResponse)(nil), // 47: dota.CMsgGCGetPlayerCardItemInfoResponse - (*CSODOTAMapLocationState)(nil), // 48: dota.CSODOTAMapLocationState - (*CMsgLeagueAdminList)(nil), // 49: dota.CMsgLeagueAdminList - (*CMsgDOTAProfileCard)(nil), // 50: dota.CMsgDOTAProfileCard - (*CSODOTAPlayerChallenge)(nil), // 51: dota.CSODOTAPlayerChallenge - (*CMsgClientToGCRerollPlayerChallenge)(nil), // 52: dota.CMsgClientToGCRerollPlayerChallenge - (*CMsgGCRerollPlayerChallengeResponse)(nil), // 53: dota.CMsgGCRerollPlayerChallengeResponse - (*CMsgGCTopCustomGamesList)(nil), // 54: dota.CMsgGCTopCustomGamesList - (*CMsgDOTARealtimeGameStats)(nil), // 55: dota.CMsgDOTARealtimeGameStats - (*CMsgDOTARealtimeGameStatsTerse)(nil), // 56: dota.CMsgDOTARealtimeGameStatsTerse - (*CMsgDOTABroadcastTimelineEvent)(nil), // 57: dota.CMsgDOTABroadcastTimelineEvent - (*CMsgGCToClientMatchGroupsVersion)(nil), // 58: dota.CMsgGCToClientMatchGroupsVersion - (*CMsgDOTASDOHeroStatsHistory)(nil), // 59: dota.CMsgDOTASDOHeroStatsHistory - (*CMsgPredictionChoice)(nil), // 60: dota.CMsgPredictionChoice - (*CMsgInGamePrediction)(nil), // 61: dota.CMsgInGamePrediction - (*CMsgDOTASeasonPredictions)(nil), // 62: dota.CMsgDOTASeasonPredictions - (*CMsgAvailablePredictions)(nil), // 63: dota.CMsgAvailablePredictions - (*CMsgLeagueWatchedGames)(nil), // 64: dota.CMsgLeagueWatchedGames - (*CMsgDOTAMatch)(nil), // 65: dota.CMsgDOTAMatch - (*CMsgPlayerCard)(nil), // 66: dota.CMsgPlayerCard - (*CMsgDOTAFantasyPlayerStats)(nil), // 67: dota.CMsgDOTAFantasyPlayerStats - (*CMsgDOTAFantasyPlayerMatchStats)(nil), // 68: dota.CMsgDOTAFantasyPlayerMatchStats - (*CMsgDOTABotDebugInfo)(nil), // 69: dota.CMsgDOTABotDebugInfo - (*CMsgSuccessfulHero)(nil), // 70: dota.CMsgSuccessfulHero - (*CMsgRecentMatchInfo)(nil), // 71: dota.CMsgRecentMatchInfo - (*CMsgMatchTips)(nil), // 72: dota.CMsgMatchTips - (*CMsgDOTAMatchMinimal)(nil), // 73: dota.CMsgDOTAMatchMinimal - (*CMsgConsumableUsage)(nil), // 74: dota.CMsgConsumableUsage - (*CMsgMatchConsumableUsage)(nil), // 75: dota.CMsgMatchConsumableUsage - (*CMsgMatchEventActionGrants)(nil), // 76: dota.CMsgMatchEventActionGrants - (*CMsgCustomGameWhitelist)(nil), // 77: dota.CMsgCustomGameWhitelist - (*CMsgCustomGameWhitelistForEdit)(nil), // 78: dota.CMsgCustomGameWhitelistForEdit - (*CMsgPlayerRecentMatchInfo)(nil), // 79: dota.CMsgPlayerRecentMatchInfo - (*CMsgPlayerMatchRecord)(nil), // 80: dota.CMsgPlayerMatchRecord - (*CMsgPlayerRecentMatchOutcomes)(nil), // 81: dota.CMsgPlayerRecentMatchOutcomes - (*CMsgPlayerRecentCommends)(nil), // 82: dota.CMsgPlayerRecentCommends - (*CMsgPlayerRecentAccomplishments)(nil), // 83: dota.CMsgPlayerRecentAccomplishments - (*CMsgPlayerHeroRecentAccomplishments)(nil), // 84: dota.CMsgPlayerHeroRecentAccomplishments - (*CMsgRecentAccomplishments)(nil), // 85: dota.CMsgRecentAccomplishments - (*CMsgServerToGCRequestPlayerRecentAccomplishments)(nil), // 86: dota.CMsgServerToGCRequestPlayerRecentAccomplishments - (*CMsgServerToGCRequestPlayerRecentAccomplishmentsResponse)(nil), // 87: dota.CMsgServerToGCRequestPlayerRecentAccomplishmentsResponse - (*CMsgArcanaVoteMatchVotes)(nil), // 88: dota.CMsgArcanaVoteMatchVotes - (*CMsgGCtoGCAssociatedExploiterAccountInfo)(nil), // 89: dota.CMsgGCtoGCAssociatedExploiterAccountInfo - (*CMsgGCtoGCAssociatedExploiterAccountInfoResponse)(nil), // 90: dota.CMsgGCtoGCAssociatedExploiterAccountInfoResponse - (*CMsgPullTabsData)(nil), // 91: dota.CMsgPullTabsData - (*CMsgUnderDraftData)(nil), // 92: dota.CMsgUnderDraftData - (*CMsgPlayerTitleData)(nil), // 93: dota.CMsgPlayerTitleData - (*CMsgDOTATriviaQuestion)(nil), // 94: dota.CMsgDOTATriviaQuestion - (*CMsgDOTATriviaQuestionAnswersSummary)(nil), // 95: dota.CMsgDOTATriviaQuestionAnswersSummary - (*CMsgGameDataSpecialValueBonus)(nil), // 96: dota.CMsgGameDataSpecialValueBonus - (*CMsgGameDataSpecialValues)(nil), // 97: dota.CMsgGameDataSpecialValues - (*CMsgGameDataFacetAbilityBonus)(nil), // 98: dota.CMsgGameDataFacetAbilityBonus - (*CMsgGameDataAbilityOrItem)(nil), // 99: dota.CMsgGameDataAbilityOrItem - (*CMsgGameDataAbilityOrItemList)(nil), // 100: dota.CMsgGameDataAbilityOrItemList - (*CMsgGameDataHero)(nil), // 101: dota.CMsgGameDataHero - (*CMsgGameDataAbilities)(nil), // 102: dota.CMsgGameDataAbilities - (*CMsgGameDataItems)(nil), // 103: dota.CMsgGameDataItems - (*CMsgGameDataHeroes)(nil), // 104: dota.CMsgGameDataHeroes - (*CMsgGameDataHeroList)(nil), // 105: dota.CMsgGameDataHeroList - (*CMsgGameDataItemAbilityList)(nil), // 106: dota.CMsgGameDataItemAbilityList - (*CMsgLobbyAbilityDraftData)(nil), // 107: dota.CMsgLobbyAbilityDraftData - (*CSOEconItemDropRateBonus)(nil), // 108: dota.CSOEconItemDropRateBonus - (*CSOEconItemTournamentPassport)(nil), // 109: dota.CSOEconItemTournamentPassport - (*CMsgStickerbookSticker)(nil), // 110: dota.CMsgStickerbookSticker - (*CMsgStickerbookPage)(nil), // 111: dota.CMsgStickerbookPage - (*CMsgStickerbookTeamPageOrderSequence)(nil), // 112: dota.CMsgStickerbookTeamPageOrderSequence - (*CMsgStickerbook)(nil), // 113: dota.CMsgStickerbook - (*CMsgStickerHero)(nil), // 114: dota.CMsgStickerHero - (*CMsgStickerHeroes)(nil), // 115: dota.CMsgStickerHeroes - (*CMsgHeroRoleStats)(nil), // 116: dota.CMsgHeroRoleStats - (*CMsgHeroRoleHeroStats)(nil), // 117: dota.CMsgHeroRoleHeroStats - (*CMsgHeroRoleRankStats)(nil), // 118: dota.CMsgHeroRoleRankStats - (*CMsgHeroRoleAllRanksStats)(nil), // 119: dota.CMsgHeroRoleAllRanksStats - (*CMsgMapStatsSnapshot)(nil), // 120: dota.CMsgMapStatsSnapshot - (*CMsgGlobalMapStats)(nil), // 121: dota.CMsgGlobalMapStats - (*CMsgTrackedStat)(nil), // 122: dota.CMsgTrackedStat - (*CMsgDOTAClaimEventActionResponse)(nil), // 123: dota.CMsgDOTAClaimEventActionResponse - (*CMsgClientToGCDotaLabsFeedback)(nil), // 124: dota.CMsgClientToGCDotaLabsFeedback - (*CMsgClientToGCDotaLabsFeedbackResponse)(nil), // 125: dota.CMsgClientToGCDotaLabsFeedbackResponse - (*CSODOTAGameAccountClient_RoleHandicap)(nil), // 126: dota.CSODOTAGameAccountClient.RoleHandicap - (*CMsgLobbyFeaturedGamemodeProgress_AccountProgress)(nil), // 127: dota.CMsgLobbyFeaturedGamemodeProgress.AccountProgress - (*CMsgGCGetPlayerCardItemInfoResponse_PlayerCardInfo)(nil), // 128: dota.CMsgGCGetPlayerCardItemInfoResponse.PlayerCardInfo - (*CMsgDOTAProfileCard_Slot)(nil), // 129: dota.CMsgDOTAProfileCard.Slot - (*CMsgDOTAProfileCard_Slot_Trophy)(nil), // 130: dota.CMsgDOTAProfileCard.Slot.Trophy - (*CMsgDOTAProfileCard_Slot_Stat)(nil), // 131: dota.CMsgDOTAProfileCard.Slot.Stat - (*CMsgDOTAProfileCard_Slot_Item)(nil), // 132: dota.CMsgDOTAProfileCard.Slot.Item - (*CMsgDOTAProfileCard_Slot_Hero)(nil), // 133: dota.CMsgDOTAProfileCard.Slot.Hero - (*CMsgDOTAProfileCard_Slot_Emoticon)(nil), // 134: dota.CMsgDOTAProfileCard.Slot.Emoticon - (*CMsgDOTAProfileCard_Slot_Team)(nil), // 135: dota.CMsgDOTAProfileCard.Slot.Team - (*CMsgDOTARealtimeGameStats_TeamDetails)(nil), // 136: dota.CMsgDOTARealtimeGameStats.TeamDetails - (*CMsgDOTARealtimeGameStats_ItemDetails)(nil), // 137: dota.CMsgDOTARealtimeGameStats.ItemDetails - (*CMsgDOTARealtimeGameStats_AbilityDetails)(nil), // 138: dota.CMsgDOTARealtimeGameStats.AbilityDetails - (*CMsgDOTARealtimeGameStats_HeroToHeroStats)(nil), // 139: dota.CMsgDOTARealtimeGameStats.HeroToHeroStats - (*CMsgDOTARealtimeGameStats_AbilityList)(nil), // 140: dota.CMsgDOTARealtimeGameStats.AbilityList - (*CMsgDOTARealtimeGameStats_PlayerDetails)(nil), // 141: dota.CMsgDOTARealtimeGameStats.PlayerDetails - (*CMsgDOTARealtimeGameStats_BuildingDetails)(nil), // 142: dota.CMsgDOTARealtimeGameStats.BuildingDetails - (*CMsgDOTARealtimeGameStats_KillDetails)(nil), // 143: dota.CMsgDOTARealtimeGameStats.KillDetails - (*CMsgDOTARealtimeGameStats_BroadcasterDetails)(nil), // 144: dota.CMsgDOTARealtimeGameStats.BroadcasterDetails - (*CMsgDOTARealtimeGameStats_PickBanDetails)(nil), // 145: dota.CMsgDOTARealtimeGameStats.PickBanDetails - (*CMsgDOTARealtimeGameStats_MatchDetails)(nil), // 146: dota.CMsgDOTARealtimeGameStats.MatchDetails - (*CMsgDOTARealtimeGameStats_GraphData)(nil), // 147: dota.CMsgDOTARealtimeGameStats.GraphData - (*CMsgDOTARealtimeGameStats_GraphData_LocationStats)(nil), // 148: dota.CMsgDOTARealtimeGameStats.GraphData.LocationStats - (*CMsgDOTARealtimeGameStats_GraphData_TeamLocationStats)(nil), // 149: dota.CMsgDOTARealtimeGameStats.GraphData.TeamLocationStats - (*CMsgDOTARealtimeGameStatsTerse_TeamDetails)(nil), // 150: dota.CMsgDOTARealtimeGameStatsTerse.TeamDetails - (*CMsgDOTARealtimeGameStatsTerse_PlayerDetails)(nil), // 151: dota.CMsgDOTARealtimeGameStatsTerse.PlayerDetails - (*CMsgDOTARealtimeGameStatsTerse_BuildingDetails)(nil), // 152: dota.CMsgDOTARealtimeGameStatsTerse.BuildingDetails - (*CMsgDOTARealtimeGameStatsTerse_PickBanDetails)(nil), // 153: dota.CMsgDOTARealtimeGameStatsTerse.PickBanDetails - (*CMsgDOTARealtimeGameStatsTerse_MatchDetails)(nil), // 154: dota.CMsgDOTARealtimeGameStatsTerse.MatchDetails - (*CMsgDOTARealtimeGameStatsTerse_GraphData)(nil), // 155: dota.CMsgDOTARealtimeGameStatsTerse.GraphData - (*CMsgInGamePrediction_QueryKeyValues)(nil), // 156: dota.CMsgInGamePrediction.QueryKeyValues - (*CMsgDOTASeasonPredictions_Prediction)(nil), // 157: dota.CMsgDOTASeasonPredictions.Prediction - (*CMsgDOTASeasonPredictions_Prediction_Answers)(nil), // 158: dota.CMsgDOTASeasonPredictions.Prediction.Answers - (*CMsgAvailablePredictions_MatchPrediction)(nil), // 159: dota.CMsgAvailablePredictions.MatchPrediction - (*CMsgLeagueWatchedGames_Series)(nil), // 160: dota.CMsgLeagueWatchedGames.Series - (*CMsgLeagueWatchedGames_League)(nil), // 161: dota.CMsgLeagueWatchedGames.League - (*CMsgDOTAMatch_Player)(nil), // 162: dota.CMsgDOTAMatch.Player - (*CMsgDOTAMatch_BroadcasterInfo)(nil), // 163: dota.CMsgDOTAMatch.BroadcasterInfo - (*CMsgDOTAMatch_BroadcasterChannel)(nil), // 164: dota.CMsgDOTAMatch.BroadcasterChannel - (*CMsgDOTAMatch_Coach)(nil), // 165: dota.CMsgDOTAMatch.Coach - (*CMsgDOTAMatch_CustomGameData)(nil), // 166: dota.CMsgDOTAMatch.CustomGameData - (*CMsgDOTAMatch_Player_CustomGameData)(nil), // 167: dota.CMsgDOTAMatch.Player.CustomGameData - (*CMsgDOTAMatch_Player_HeroDamageReceived)(nil), // 168: dota.CMsgDOTAMatch.Player.HeroDamageReceived - (*CMsgPlayerCard_StatModifier)(nil), // 169: dota.CMsgPlayerCard.StatModifier - (*CMsgDOTABotDebugInfo_Bot)(nil), // 170: dota.CMsgDOTABotDebugInfo.Bot - (*CMsgDOTABotDebugInfo_Bot_Mode)(nil), // 171: dota.CMsgDOTABotDebugInfo.Bot.Mode - (*CMsgDOTABotDebugInfo_Bot_Action)(nil), // 172: dota.CMsgDOTABotDebugInfo.Bot.Action - (*CMsgMatchTips_SingleTip)(nil), // 173: dota.CMsgMatchTips.SingleTip - (*CMsgDOTAMatchMinimal_Player)(nil), // 174: dota.CMsgDOTAMatchMinimal.Player - (*CMsgDOTAMatchMinimal_Tourney)(nil), // 175: dota.CMsgDOTAMatchMinimal.Tourney - (*CMsgMatchConsumableUsage_PlayerUsage)(nil), // 176: dota.CMsgMatchConsumableUsage.PlayerUsage - (*CMsgMatchEventActionGrants_PlayerGrants)(nil), // 177: dota.CMsgMatchEventActionGrants.PlayerGrants - (*CMsgCustomGameWhitelistForEdit_WhitelistEntry)(nil), // 178: dota.CMsgCustomGameWhitelistForEdit.WhitelistEntry - (*CMsgGCtoGCAssociatedExploiterAccountInfoResponse_Account)(nil), // 179: dota.CMsgGCtoGCAssociatedExploiterAccountInfoResponse.Account - (*CMsgPullTabsData_Slot)(nil), // 180: dota.CMsgPullTabsData.Slot - (*CMsgPullTabsData_Jackpot)(nil), // 181: dota.CMsgPullTabsData.Jackpot - (*CMsgUnderDraftData_BenchSlot)(nil), // 182: dota.CMsgUnderDraftData.BenchSlot - (*CMsgUnderDraftData_ShopSlot)(nil), // 183: dota.CMsgUnderDraftData.ShopSlot - (*CMsgGameDataHero_Facet)(nil), // 184: dota.CMsgGameDataHero.Facet - (*CMsgGameDataHeroList_HeroInfo)(nil), // 185: dota.CMsgGameDataHeroList.HeroInfo - (*CMsgGameDataItemAbilityList_ItemAbilityInfo)(nil), // 186: dota.CMsgGameDataItemAbilityList.ItemAbilityInfo - (*CMsgDOTAClaimEventActionResponse_MysteryItemRewardData)(nil), // 187: dota.CMsgDOTAClaimEventActionResponse.MysteryItemRewardData - (*CMsgDOTAClaimEventActionResponse_LootListRewardData)(nil), // 188: dota.CMsgDOTAClaimEventActionResponse.LootListRewardData - (*CMsgDOTAClaimEventActionResponse_ActionListRewardData)(nil), // 189: dota.CMsgDOTAClaimEventActionResponse.ActionListRewardData - (*CMsgDOTAClaimEventActionResponse_OverworldTokenRewardData)(nil), // 190: dota.CMsgDOTAClaimEventActionResponse.OverworldTokenRewardData - (*CMsgDOTAClaimEventActionResponse_GrantedRewardData)(nil), // 191: dota.CMsgDOTAClaimEventActionResponse.GrantedRewardData - (*CMsgDOTAClaimEventActionResponse_OverworldTokenRewardData_TokenQuantity)(nil), // 192: dota.CMsgDOTAClaimEventActionResponse.OverworldTokenRewardData.TokenQuantity - (EEvent)(0), // 193: dota.EEvent - (DOTA_GameMode)(0), // 194: dota.DOTA_GameMode - (EMatchOutcome)(0), // 195: dota.EMatchOutcome - (ELeagueRegion)(0), // 196: dota.ELeagueRegion - (ELeaguePhase)(0), // 197: dota.ELeaguePhase - (DOTA_GC_TEAM)(0), // 198: dota.DOTA_GC_TEAM - (*CMsgPendingEventAward)(nil), // 199: dota.CMsgPendingEventAward + (CDotaMsg_PredictionResult_Prediction_EResult)(0), // 27: dota.CDotaMsg_PredictionResult.Prediction.EResult + (*CSODOTAGameAccountClient)(nil), // 28: dota.CSODOTAGameAccountClient + (*CSODOTAGameAccountPlus)(nil), // 29: dota.CSODOTAGameAccountPlus + (*CSODOTAChatWheel)(nil), // 30: dota.CSODOTAChatWheel + (*CMsgLobbyFeaturedGamemodeProgress)(nil), // 31: dota.CMsgLobbyFeaturedGamemodeProgress + (*CMsgBattleCupVictory)(nil), // 32: dota.CMsgBattleCupVictory + (*CMsgLobbyBattleCupVictoryList)(nil), // 33: dota.CMsgLobbyBattleCupVictoryList + (*CMsgDOTABroadcastNotification)(nil), // 34: dota.CMsgDOTABroadcastNotification + (*CProtoItemHeroStatue)(nil), // 35: dota.CProtoItemHeroStatue + (*CMatchPlayerAbilityUpgrade)(nil), // 36: dota.CMatchPlayerAbilityUpgrade + (*CMatchPlayerTimedCustomStat)(nil), // 37: dota.CMatchPlayerTimedCustomStat + (*CMatchPlayerTimedStats)(nil), // 38: dota.CMatchPlayerTimedStats + (*CMatchTeamTimedStats)(nil), // 39: dota.CMatchTeamTimedStats + (*CMatchAdditionalUnitInventory)(nil), // 40: dota.CMatchAdditionalUnitInventory + (*CMatchPlayerPermanentBuff)(nil), // 41: dota.CMatchPlayerPermanentBuff + (*CMatchHeroSelectEvent)(nil), // 42: dota.CMatchHeroSelectEvent + (*CMatchClip)(nil), // 43: dota.CMatchClip + (*CPartySearchClientParty)(nil), // 44: dota.CPartySearchClientParty + (*CMsgDOTAHasItemQuery)(nil), // 45: dota.CMsgDOTAHasItemQuery + (*CMsgDOTAHasItemResponse)(nil), // 46: dota.CMsgDOTAHasItemResponse + (*CMsgGCGetPlayerCardItemInfo)(nil), // 47: dota.CMsgGCGetPlayerCardItemInfo + (*CMsgGCGetPlayerCardItemInfoResponse)(nil), // 48: dota.CMsgGCGetPlayerCardItemInfoResponse + (*CSODOTAMapLocationState)(nil), // 49: dota.CSODOTAMapLocationState + (*CMsgLeagueAdminList)(nil), // 50: dota.CMsgLeagueAdminList + (*CMsgDOTAProfileCard)(nil), // 51: dota.CMsgDOTAProfileCard + (*CSODOTAPlayerChallenge)(nil), // 52: dota.CSODOTAPlayerChallenge + (*CMsgClientToGCRerollPlayerChallenge)(nil), // 53: dota.CMsgClientToGCRerollPlayerChallenge + (*CMsgGCRerollPlayerChallengeResponse)(nil), // 54: dota.CMsgGCRerollPlayerChallengeResponse + (*CMsgGCTopCustomGamesList)(nil), // 55: dota.CMsgGCTopCustomGamesList + (*CMsgDOTARealtimeGameStats)(nil), // 56: dota.CMsgDOTARealtimeGameStats + (*CMsgDOTARealtimeGameStatsTerse)(nil), // 57: dota.CMsgDOTARealtimeGameStatsTerse + (*CMsgDOTABroadcastTimelineEvent)(nil), // 58: dota.CMsgDOTABroadcastTimelineEvent + (*CMsgGCToClientMatchGroupsVersion)(nil), // 59: dota.CMsgGCToClientMatchGroupsVersion + (*CMsgDOTASDOHeroStatsHistory)(nil), // 60: dota.CMsgDOTASDOHeroStatsHistory + (*CMsgPredictionChoice)(nil), // 61: dota.CMsgPredictionChoice + (*CMsgInGamePrediction)(nil), // 62: dota.CMsgInGamePrediction + (*CMsgDOTASeasonPredictions)(nil), // 63: dota.CMsgDOTASeasonPredictions + (*CMsgAvailablePredictions)(nil), // 64: dota.CMsgAvailablePredictions + (*CMsgLeagueWatchedGames)(nil), // 65: dota.CMsgLeagueWatchedGames + (*CMsgDOTAMatch)(nil), // 66: dota.CMsgDOTAMatch + (*CMsgPlayerCard)(nil), // 67: dota.CMsgPlayerCard + (*CMsgDOTAFantasyPlayerStats)(nil), // 68: dota.CMsgDOTAFantasyPlayerStats + (*CMsgDOTAFantasyPlayerMatchStats)(nil), // 69: dota.CMsgDOTAFantasyPlayerMatchStats + (*CMsgDOTABotDebugInfo)(nil), // 70: dota.CMsgDOTABotDebugInfo + (*CMsgSuccessfulHero)(nil), // 71: dota.CMsgSuccessfulHero + (*CMsgRecentMatchInfo)(nil), // 72: dota.CMsgRecentMatchInfo + (*CMsgMatchTips)(nil), // 73: dota.CMsgMatchTips + (*CMsgDOTAMatchMinimal)(nil), // 74: dota.CMsgDOTAMatchMinimal + (*CMsgConsumableUsage)(nil), // 75: dota.CMsgConsumableUsage + (*CMsgMatchConsumableUsage)(nil), // 76: dota.CMsgMatchConsumableUsage + (*CMsgMatchEventActionGrants)(nil), // 77: dota.CMsgMatchEventActionGrants + (*CMsgCustomGameWhitelist)(nil), // 78: dota.CMsgCustomGameWhitelist + (*CMsgCustomGameWhitelistForEdit)(nil), // 79: dota.CMsgCustomGameWhitelistForEdit + (*CMsgPlayerRecentMatchInfo)(nil), // 80: dota.CMsgPlayerRecentMatchInfo + (*CMsgPlayerMatchRecord)(nil), // 81: dota.CMsgPlayerMatchRecord + (*CMsgPlayerRecentMatchOutcomes)(nil), // 82: dota.CMsgPlayerRecentMatchOutcomes + (*CMsgPlayerRecentCommends)(nil), // 83: dota.CMsgPlayerRecentCommends + (*CMsgPlayerRecentAccomplishments)(nil), // 84: dota.CMsgPlayerRecentAccomplishments + (*CMsgPlayerHeroRecentAccomplishments)(nil), // 85: dota.CMsgPlayerHeroRecentAccomplishments + (*CMsgRecentAccomplishments)(nil), // 86: dota.CMsgRecentAccomplishments + (*CMsgServerToGCRequestPlayerRecentAccomplishments)(nil), // 87: dota.CMsgServerToGCRequestPlayerRecentAccomplishments + (*CMsgServerToGCRequestPlayerRecentAccomplishmentsResponse)(nil), // 88: dota.CMsgServerToGCRequestPlayerRecentAccomplishmentsResponse + (*CMsgArcanaVoteMatchVotes)(nil), // 89: dota.CMsgArcanaVoteMatchVotes + (*CMsgGCtoGCAssociatedExploiterAccountInfo)(nil), // 90: dota.CMsgGCtoGCAssociatedExploiterAccountInfo + (*CMsgGCtoGCAssociatedExploiterAccountInfoResponse)(nil), // 91: dota.CMsgGCtoGCAssociatedExploiterAccountInfoResponse + (*CMsgPullTabsData)(nil), // 92: dota.CMsgPullTabsData + (*CMsgUnderDraftData)(nil), // 93: dota.CMsgUnderDraftData + (*CMsgPlayerTitleData)(nil), // 94: dota.CMsgPlayerTitleData + (*CMsgDOTATriviaQuestion)(nil), // 95: dota.CMsgDOTATriviaQuestion + (*CMsgDOTATriviaQuestionAnswersSummary)(nil), // 96: dota.CMsgDOTATriviaQuestionAnswersSummary + (*CMsgGameDataSpecialValueBonus)(nil), // 97: dota.CMsgGameDataSpecialValueBonus + (*CMsgGameDataSpecialValues)(nil), // 98: dota.CMsgGameDataSpecialValues + (*CMsgGameDataFacetAbilityBonus)(nil), // 99: dota.CMsgGameDataFacetAbilityBonus + (*CMsgGameDataAbilityOrItem)(nil), // 100: dota.CMsgGameDataAbilityOrItem + (*CMsgGameDataAbilityOrItemList)(nil), // 101: dota.CMsgGameDataAbilityOrItemList + (*CMsgGameDataHero)(nil), // 102: dota.CMsgGameDataHero + (*CMsgGameDataAbilities)(nil), // 103: dota.CMsgGameDataAbilities + (*CMsgGameDataItems)(nil), // 104: dota.CMsgGameDataItems + (*CMsgGameDataHeroes)(nil), // 105: dota.CMsgGameDataHeroes + (*CMsgGameDataHeroList)(nil), // 106: dota.CMsgGameDataHeroList + (*CMsgGameDataItemAbilityList)(nil), // 107: dota.CMsgGameDataItemAbilityList + (*CMsgLobbyAbilityDraftData)(nil), // 108: dota.CMsgLobbyAbilityDraftData + (*CSOEconItemDropRateBonus)(nil), // 109: dota.CSOEconItemDropRateBonus + (*CSOEconItemTournamentPassport)(nil), // 110: dota.CSOEconItemTournamentPassport + (*CMsgStickerbookSticker)(nil), // 111: dota.CMsgStickerbookSticker + (*CMsgStickerbookPage)(nil), // 112: dota.CMsgStickerbookPage + (*CMsgStickerbookTeamPageOrderSequence)(nil), // 113: dota.CMsgStickerbookTeamPageOrderSequence + (*CMsgStickerbook)(nil), // 114: dota.CMsgStickerbook + (*CMsgStickerHero)(nil), // 115: dota.CMsgStickerHero + (*CMsgStickerHeroes)(nil), // 116: dota.CMsgStickerHeroes + (*CMsgHeroRoleStats)(nil), // 117: dota.CMsgHeroRoleStats + (*CMsgHeroRoleHeroStats)(nil), // 118: dota.CMsgHeroRoleHeroStats + (*CMsgHeroRoleRankStats)(nil), // 119: dota.CMsgHeroRoleRankStats + (*CMsgHeroRoleAllRanksStats)(nil), // 120: dota.CMsgHeroRoleAllRanksStats + (*CMsgMapStatsSnapshot)(nil), // 121: dota.CMsgMapStatsSnapshot + (*CMsgGlobalMapStats)(nil), // 122: dota.CMsgGlobalMapStats + (*CMsgTrackedStat)(nil), // 123: dota.CMsgTrackedStat + (*CMsgDOTAClaimEventActionResponse)(nil), // 124: dota.CMsgDOTAClaimEventActionResponse + (*CMsgClientToGCDotaLabsFeedback)(nil), // 125: dota.CMsgClientToGCDotaLabsFeedback + (*CMsgClientToGCDotaLabsFeedbackResponse)(nil), // 126: dota.CMsgClientToGCDotaLabsFeedbackResponse + (*CDotaMsg_PredictionResult)(nil), // 127: dota.CDotaMsg_PredictionResult + (*CSODOTAGameAccountClient_RoleHandicap)(nil), // 128: dota.CSODOTAGameAccountClient.RoleHandicap + (*CMsgLobbyFeaturedGamemodeProgress_AccountProgress)(nil), // 129: dota.CMsgLobbyFeaturedGamemodeProgress.AccountProgress + (*CMsgGCGetPlayerCardItemInfoResponse_PlayerCardInfo)(nil), // 130: dota.CMsgGCGetPlayerCardItemInfoResponse.PlayerCardInfo + (*CMsgDOTAProfileCard_Slot)(nil), // 131: dota.CMsgDOTAProfileCard.Slot + (*CMsgDOTAProfileCard_Slot_Trophy)(nil), // 132: dota.CMsgDOTAProfileCard.Slot.Trophy + (*CMsgDOTAProfileCard_Slot_Stat)(nil), // 133: dota.CMsgDOTAProfileCard.Slot.Stat + (*CMsgDOTAProfileCard_Slot_Item)(nil), // 134: dota.CMsgDOTAProfileCard.Slot.Item + (*CMsgDOTAProfileCard_Slot_Hero)(nil), // 135: dota.CMsgDOTAProfileCard.Slot.Hero + (*CMsgDOTAProfileCard_Slot_Emoticon)(nil), // 136: dota.CMsgDOTAProfileCard.Slot.Emoticon + (*CMsgDOTAProfileCard_Slot_Team)(nil), // 137: dota.CMsgDOTAProfileCard.Slot.Team + (*CMsgDOTARealtimeGameStats_TeamDetails)(nil), // 138: dota.CMsgDOTARealtimeGameStats.TeamDetails + (*CMsgDOTARealtimeGameStats_ItemDetails)(nil), // 139: dota.CMsgDOTARealtimeGameStats.ItemDetails + (*CMsgDOTARealtimeGameStats_AbilityDetails)(nil), // 140: dota.CMsgDOTARealtimeGameStats.AbilityDetails + (*CMsgDOTARealtimeGameStats_HeroToHeroStats)(nil), // 141: dota.CMsgDOTARealtimeGameStats.HeroToHeroStats + (*CMsgDOTARealtimeGameStats_AbilityList)(nil), // 142: dota.CMsgDOTARealtimeGameStats.AbilityList + (*CMsgDOTARealtimeGameStats_PlayerDetails)(nil), // 143: dota.CMsgDOTARealtimeGameStats.PlayerDetails + (*CMsgDOTARealtimeGameStats_BuildingDetails)(nil), // 144: dota.CMsgDOTARealtimeGameStats.BuildingDetails + (*CMsgDOTARealtimeGameStats_KillDetails)(nil), // 145: dota.CMsgDOTARealtimeGameStats.KillDetails + (*CMsgDOTARealtimeGameStats_BroadcasterDetails)(nil), // 146: dota.CMsgDOTARealtimeGameStats.BroadcasterDetails + (*CMsgDOTARealtimeGameStats_PickBanDetails)(nil), // 147: dota.CMsgDOTARealtimeGameStats.PickBanDetails + (*CMsgDOTARealtimeGameStats_MatchDetails)(nil), // 148: dota.CMsgDOTARealtimeGameStats.MatchDetails + (*CMsgDOTARealtimeGameStats_GraphData)(nil), // 149: dota.CMsgDOTARealtimeGameStats.GraphData + (*CMsgDOTARealtimeGameStats_GraphData_LocationStats)(nil), // 150: dota.CMsgDOTARealtimeGameStats.GraphData.LocationStats + (*CMsgDOTARealtimeGameStats_GraphData_TeamLocationStats)(nil), // 151: dota.CMsgDOTARealtimeGameStats.GraphData.TeamLocationStats + (*CMsgDOTARealtimeGameStatsTerse_TeamDetails)(nil), // 152: dota.CMsgDOTARealtimeGameStatsTerse.TeamDetails + (*CMsgDOTARealtimeGameStatsTerse_PlayerDetails)(nil), // 153: dota.CMsgDOTARealtimeGameStatsTerse.PlayerDetails + (*CMsgDOTARealtimeGameStatsTerse_BuildingDetails)(nil), // 154: dota.CMsgDOTARealtimeGameStatsTerse.BuildingDetails + (*CMsgDOTARealtimeGameStatsTerse_PickBanDetails)(nil), // 155: dota.CMsgDOTARealtimeGameStatsTerse.PickBanDetails + (*CMsgDOTARealtimeGameStatsTerse_MatchDetails)(nil), // 156: dota.CMsgDOTARealtimeGameStatsTerse.MatchDetails + (*CMsgDOTARealtimeGameStatsTerse_GraphData)(nil), // 157: dota.CMsgDOTARealtimeGameStatsTerse.GraphData + (*CMsgInGamePrediction_QueryKeyValues)(nil), // 158: dota.CMsgInGamePrediction.QueryKeyValues + (*CMsgDOTASeasonPredictions_Prediction)(nil), // 159: dota.CMsgDOTASeasonPredictions.Prediction + (*CMsgDOTASeasonPredictions_Prediction_Answers)(nil), // 160: dota.CMsgDOTASeasonPredictions.Prediction.Answers + (*CMsgAvailablePredictions_MatchPrediction)(nil), // 161: dota.CMsgAvailablePredictions.MatchPrediction + (*CMsgLeagueWatchedGames_Series)(nil), // 162: dota.CMsgLeagueWatchedGames.Series + (*CMsgLeagueWatchedGames_League)(nil), // 163: dota.CMsgLeagueWatchedGames.League + (*CMsgDOTAMatch_Player)(nil), // 164: dota.CMsgDOTAMatch.Player + (*CMsgDOTAMatch_BroadcasterInfo)(nil), // 165: dota.CMsgDOTAMatch.BroadcasterInfo + (*CMsgDOTAMatch_BroadcasterChannel)(nil), // 166: dota.CMsgDOTAMatch.BroadcasterChannel + (*CMsgDOTAMatch_Coach)(nil), // 167: dota.CMsgDOTAMatch.Coach + (*CMsgDOTAMatch_CustomGameData)(nil), // 168: dota.CMsgDOTAMatch.CustomGameData + (*CMsgDOTAMatch_Player_CustomGameData)(nil), // 169: dota.CMsgDOTAMatch.Player.CustomGameData + (*CMsgDOTAMatch_Player_HeroDamageReceived)(nil), // 170: dota.CMsgDOTAMatch.Player.HeroDamageReceived + (*CMsgPlayerCard_StatModifier)(nil), // 171: dota.CMsgPlayerCard.StatModifier + (*CMsgDOTABotDebugInfo_Bot)(nil), // 172: dota.CMsgDOTABotDebugInfo.Bot + (*CMsgDOTABotDebugInfo_Bot_Mode)(nil), // 173: dota.CMsgDOTABotDebugInfo.Bot.Mode + (*CMsgDOTABotDebugInfo_Bot_Action)(nil), // 174: dota.CMsgDOTABotDebugInfo.Bot.Action + (*CMsgMatchTips_SingleTip)(nil), // 175: dota.CMsgMatchTips.SingleTip + (*CMsgDOTAMatchMinimal_Player)(nil), // 176: dota.CMsgDOTAMatchMinimal.Player + (*CMsgDOTAMatchMinimal_Tourney)(nil), // 177: dota.CMsgDOTAMatchMinimal.Tourney + (*CMsgMatchConsumableUsage_PlayerUsage)(nil), // 178: dota.CMsgMatchConsumableUsage.PlayerUsage + (*CMsgMatchEventActionGrants_PlayerGrants)(nil), // 179: dota.CMsgMatchEventActionGrants.PlayerGrants + (*CMsgCustomGameWhitelistForEdit_WhitelistEntry)(nil), // 180: dota.CMsgCustomGameWhitelistForEdit.WhitelistEntry + (*CMsgGCtoGCAssociatedExploiterAccountInfoResponse_Account)(nil), // 181: dota.CMsgGCtoGCAssociatedExploiterAccountInfoResponse.Account + (*CMsgPullTabsData_Slot)(nil), // 182: dota.CMsgPullTabsData.Slot + (*CMsgPullTabsData_Jackpot)(nil), // 183: dota.CMsgPullTabsData.Jackpot + (*CMsgUnderDraftData_BenchSlot)(nil), // 184: dota.CMsgUnderDraftData.BenchSlot + (*CMsgUnderDraftData_ShopSlot)(nil), // 185: dota.CMsgUnderDraftData.ShopSlot + (*CMsgGameDataHero_Facet)(nil), // 186: dota.CMsgGameDataHero.Facet + (*CMsgGameDataHeroList_HeroInfo)(nil), // 187: dota.CMsgGameDataHeroList.HeroInfo + (*CMsgGameDataItemAbilityList_ItemAbilityInfo)(nil), // 188: dota.CMsgGameDataItemAbilityList.ItemAbilityInfo + (*CMsgDOTAClaimEventActionResponse_MysteryItemRewardData)(nil), // 189: dota.CMsgDOTAClaimEventActionResponse.MysteryItemRewardData + (*CMsgDOTAClaimEventActionResponse_LootListRewardData)(nil), // 190: dota.CMsgDOTAClaimEventActionResponse.LootListRewardData + (*CMsgDOTAClaimEventActionResponse_ActionListRewardData)(nil), // 191: dota.CMsgDOTAClaimEventActionResponse.ActionListRewardData + (*CMsgDOTAClaimEventActionResponse_OverworldTokenRewardData)(nil), // 192: dota.CMsgDOTAClaimEventActionResponse.OverworldTokenRewardData + (*CMsgDOTAClaimEventActionResponse_GrantedRewardData)(nil), // 193: dota.CMsgDOTAClaimEventActionResponse.GrantedRewardData + (*CMsgDOTAClaimEventActionResponse_OverworldTokenRewardData_TokenQuantity)(nil), // 194: dota.CMsgDOTAClaimEventActionResponse.OverworldTokenRewardData.TokenQuantity + (*CDotaMsg_PredictionResult_Prediction)(nil), // 195: dota.CDotaMsg_PredictionResult.Prediction + (EEvent)(0), // 196: dota.EEvent + (DOTA_GameMode)(0), // 197: dota.DOTA_GameMode + (EMatchOutcome)(0), // 198: dota.EMatchOutcome + (ELeagueRegion)(0), // 199: dota.ELeagueRegion + (ELeaguePhase)(0), // 200: dota.ELeaguePhase + (DOTA_GC_TEAM)(0), // 201: dota.DOTA_GC_TEAM + (*CMsgPendingEventAward)(nil), // 202: dota.CMsgPendingEventAward } var file_dota_gcmessages_common_proto_depIdxs = []int32{ - 126, // 0: dota.CSODOTAGameAccountClient.role_handicaps:type_name -> dota.CSODOTAGameAccountClient.RoleHandicap - 127, // 1: dota.CMsgLobbyFeaturedGamemodeProgress.accounts:type_name -> dota.CMsgLobbyFeaturedGamemodeProgress.AccountProgress - 31, // 2: dota.CMsgLobbyBattleCupVictoryList.winners:type_name -> dota.CMsgBattleCupVictory + 128, // 0: dota.CSODOTAGameAccountClient.role_handicaps:type_name -> dota.CSODOTAGameAccountClient.RoleHandicap + 129, // 1: dota.CMsgLobbyFeaturedGamemodeProgress.accounts:type_name -> dota.CMsgLobbyFeaturedGamemodeProgress.AccountProgress + 32, // 2: dota.CMsgLobbyBattleCupVictoryList.winners:type_name -> dota.CMsgBattleCupVictory 2, // 3: dota.CMatchPlayerTimedCustomStat.stat:type_name -> dota.EDOTAMatchPlayerTimeCustomStat - 36, // 4: dota.CMatchPlayerTimedStats.custom_stats:type_name -> dota.CMatchPlayerTimedCustomStat - 128, // 5: dota.CMsgGCGetPlayerCardItemInfoResponse.player_card_infos:type_name -> dota.CMsgGCGetPlayerCardItemInfoResponse.PlayerCardInfo - 129, // 6: dota.CMsgDOTAProfileCard.slots:type_name -> dota.CMsgDOTAProfileCard.Slot - 31, // 7: dota.CMsgDOTAProfileCard.recent_battle_cup_victory:type_name -> dota.CMsgBattleCupVictory - 193, // 8: dota.CMsgClientToGCRerollPlayerChallenge.event_id:type_name -> dota.EEvent + 37, // 4: dota.CMatchPlayerTimedStats.custom_stats:type_name -> dota.CMatchPlayerTimedCustomStat + 130, // 5: dota.CMsgGCGetPlayerCardItemInfoResponse.player_card_infos:type_name -> dota.CMsgGCGetPlayerCardItemInfoResponse.PlayerCardInfo + 131, // 6: dota.CMsgDOTAProfileCard.slots:type_name -> dota.CMsgDOTAProfileCard.Slot + 32, // 7: dota.CMsgDOTAProfileCard.recent_battle_cup_victory:type_name -> dota.CMsgBattleCupVictory + 196, // 8: dota.CMsgClientToGCRerollPlayerChallenge.event_id:type_name -> dota.EEvent 13, // 9: dota.CMsgGCRerollPlayerChallengeResponse.result:type_name -> dota.CMsgGCRerollPlayerChallengeResponse.EResult - 146, // 10: dota.CMsgDOTARealtimeGameStats.match:type_name -> dota.CMsgDOTARealtimeGameStats.MatchDetails - 136, // 11: dota.CMsgDOTARealtimeGameStats.teams:type_name -> dota.CMsgDOTARealtimeGameStats.TeamDetails - 142, // 12: dota.CMsgDOTARealtimeGameStats.buildings:type_name -> dota.CMsgDOTARealtimeGameStats.BuildingDetails - 147, // 13: dota.CMsgDOTARealtimeGameStats.graph_data:type_name -> dota.CMsgDOTARealtimeGameStats.GraphData - 154, // 14: dota.CMsgDOTARealtimeGameStatsTerse.match:type_name -> dota.CMsgDOTARealtimeGameStatsTerse.MatchDetails - 150, // 15: dota.CMsgDOTARealtimeGameStatsTerse.teams:type_name -> dota.CMsgDOTARealtimeGameStatsTerse.TeamDetails - 152, // 16: dota.CMsgDOTARealtimeGameStatsTerse.buildings:type_name -> dota.CMsgDOTARealtimeGameStatsTerse.BuildingDetails - 155, // 17: dota.CMsgDOTARealtimeGameStatsTerse.graph_data:type_name -> dota.CMsgDOTARealtimeGameStatsTerse.GraphData + 148, // 10: dota.CMsgDOTARealtimeGameStats.match:type_name -> dota.CMsgDOTARealtimeGameStats.MatchDetails + 138, // 11: dota.CMsgDOTARealtimeGameStats.teams:type_name -> dota.CMsgDOTARealtimeGameStats.TeamDetails + 144, // 12: dota.CMsgDOTARealtimeGameStats.buildings:type_name -> dota.CMsgDOTARealtimeGameStats.BuildingDetails + 149, // 13: dota.CMsgDOTARealtimeGameStats.graph_data:type_name -> dota.CMsgDOTARealtimeGameStats.GraphData + 156, // 14: dota.CMsgDOTARealtimeGameStatsTerse.match:type_name -> dota.CMsgDOTARealtimeGameStatsTerse.MatchDetails + 152, // 15: dota.CMsgDOTARealtimeGameStatsTerse.teams:type_name -> dota.CMsgDOTARealtimeGameStatsTerse.TeamDetails + 154, // 16: dota.CMsgDOTARealtimeGameStatsTerse.buildings:type_name -> dota.CMsgDOTARealtimeGameStatsTerse.BuildingDetails + 157, // 17: dota.CMsgDOTARealtimeGameStatsTerse.graph_data:type_name -> dota.CMsgDOTARealtimeGameStatsTerse.GraphData 4, // 18: dota.CMsgDOTABroadcastTimelineEvent.event:type_name -> dota.EBroadcastTimelineEvent 17, // 19: dota.CMsgInGamePrediction.type:type_name -> dota.CMsgInGamePrediction.EPredictionType 19, // 20: dota.CMsgInGamePrediction.group:type_name -> dota.CMsgInGamePrediction.ERandomSelectionGroup_t - 60, // 21: dota.CMsgInGamePrediction.choices:type_name -> dota.CMsgPredictionChoice - 156, // 22: dota.CMsgInGamePrediction.query_values:type_name -> dota.CMsgInGamePrediction.QueryKeyValues + 61, // 21: dota.CMsgInGamePrediction.choices:type_name -> dota.CMsgPredictionChoice + 158, // 22: dota.CMsgInGamePrediction.query_values:type_name -> dota.CMsgInGamePrediction.QueryKeyValues 18, // 23: dota.CMsgInGamePrediction.answer_resolution_type:type_name -> dota.CMsgInGamePrediction.EResolutionType_t 16, // 24: dota.CMsgInGamePrediction.raw_value_type:type_name -> dota.CMsgInGamePrediction.ERawValueType_t - 157, // 25: dota.CMsgDOTASeasonPredictions.predictions:type_name -> dota.CMsgDOTASeasonPredictions.Prediction - 61, // 26: dota.CMsgDOTASeasonPredictions.in_game_predictions:type_name -> dota.CMsgInGamePrediction - 159, // 27: dota.CMsgAvailablePredictions.match_predictions:type_name -> dota.CMsgAvailablePredictions.MatchPrediction - 161, // 28: dota.CMsgLeagueWatchedGames.leagues:type_name -> dota.CMsgLeagueWatchedGames.League - 162, // 29: dota.CMsgDOTAMatch.players:type_name -> dota.CMsgDOTAMatch.Player - 194, // 30: dota.CMsgDOTAMatch.game_mode:type_name -> dota.DOTA_GameMode - 41, // 31: dota.CMsgDOTAMatch.picks_bans:type_name -> dota.CMatchHeroSelectEvent + 159, // 25: dota.CMsgDOTASeasonPredictions.predictions:type_name -> dota.CMsgDOTASeasonPredictions.Prediction + 62, // 26: dota.CMsgDOTASeasonPredictions.in_game_predictions:type_name -> dota.CMsgInGamePrediction + 161, // 27: dota.CMsgAvailablePredictions.match_predictions:type_name -> dota.CMsgAvailablePredictions.MatchPrediction + 163, // 28: dota.CMsgLeagueWatchedGames.leagues:type_name -> dota.CMsgLeagueWatchedGames.League + 164, // 29: dota.CMsgDOTAMatch.players:type_name -> dota.CMsgDOTAMatch.Player + 197, // 30: dota.CMsgDOTAMatch.game_mode:type_name -> dota.DOTA_GameMode + 42, // 31: dota.CMsgDOTAMatch.picks_bans:type_name -> dota.CMatchHeroSelectEvent 22, // 32: dota.CMsgDOTAMatch.replay_state:type_name -> dota.CMsgDOTAMatch.ReplayState - 164, // 33: dota.CMsgDOTAMatch.broadcaster_channels:type_name -> dota.CMsgDOTAMatch.BroadcasterChannel - 166, // 34: dota.CMsgDOTAMatch.custom_game_data:type_name -> dota.CMsgDOTAMatch.CustomGameData - 195, // 35: dota.CMsgDOTAMatch.match_outcome:type_name -> dota.EMatchOutcome - 165, // 36: dota.CMsgDOTAMatch.coaches:type_name -> dota.CMsgDOTAMatch.Coach - 169, // 37: dota.CMsgPlayerCard.stat_modifier:type_name -> dota.CMsgPlayerCard.StatModifier - 67, // 38: dota.CMsgDOTAFantasyPlayerMatchStats.matches:type_name -> dota.CMsgDOTAFantasyPlayerStats - 170, // 39: dota.CMsgDOTABotDebugInfo.bots:type_name -> dota.CMsgDOTABotDebugInfo.Bot - 194, // 40: dota.CMsgRecentMatchInfo.game_mode:type_name -> dota.DOTA_GameMode - 195, // 41: dota.CMsgRecentMatchInfo.match_outcome:type_name -> dota.EMatchOutcome - 173, // 42: dota.CMsgMatchTips.tips:type_name -> dota.CMsgMatchTips.SingleTip - 194, // 43: dota.CMsgDOTAMatchMinimal.game_mode:type_name -> dota.DOTA_GameMode - 174, // 44: dota.CMsgDOTAMatchMinimal.players:type_name -> dota.CMsgDOTAMatchMinimal.Player - 175, // 45: dota.CMsgDOTAMatchMinimal.tourney:type_name -> dota.CMsgDOTAMatchMinimal.Tourney - 195, // 46: dota.CMsgDOTAMatchMinimal.match_outcome:type_name -> dota.EMatchOutcome - 176, // 47: dota.CMsgMatchConsumableUsage.player_consumables_used:type_name -> dota.CMsgMatchConsumableUsage.PlayerUsage - 177, // 48: dota.CMsgMatchEventActionGrants.player_grants:type_name -> dota.CMsgMatchEventActionGrants.PlayerGrants - 178, // 49: dota.CMsgCustomGameWhitelistForEdit.whitelist_entries:type_name -> dota.CMsgCustomGameWhitelistForEdit.WhitelistEntry - 81, // 50: dota.CMsgPlayerRecentAccomplishments.recent_outcomes:type_name -> dota.CMsgPlayerRecentMatchOutcomes - 80, // 51: dota.CMsgPlayerRecentAccomplishments.total_record:type_name -> dota.CMsgPlayerMatchRecord - 82, // 52: dota.CMsgPlayerRecentAccomplishments.recent_commends:type_name -> dota.CMsgPlayerRecentCommends - 79, // 53: dota.CMsgPlayerRecentAccomplishments.last_match:type_name -> dota.CMsgPlayerRecentMatchInfo - 81, // 54: dota.CMsgPlayerRecentAccomplishments.recent_mvps:type_name -> dota.CMsgPlayerRecentMatchOutcomes - 81, // 55: dota.CMsgPlayerHeroRecentAccomplishments.recent_outcomes:type_name -> dota.CMsgPlayerRecentMatchOutcomes - 80, // 56: dota.CMsgPlayerHeroRecentAccomplishments.total_record:type_name -> dota.CMsgPlayerMatchRecord - 79, // 57: dota.CMsgPlayerHeroRecentAccomplishments.last_match:type_name -> dota.CMsgPlayerRecentMatchInfo - 83, // 58: dota.CMsgRecentAccomplishments.player_accomplishments:type_name -> dota.CMsgPlayerRecentAccomplishments - 84, // 59: dota.CMsgRecentAccomplishments.hero_accomplishments:type_name -> dota.CMsgPlayerHeroRecentAccomplishments + 166, // 33: dota.CMsgDOTAMatch.broadcaster_channels:type_name -> dota.CMsgDOTAMatch.BroadcasterChannel + 168, // 34: dota.CMsgDOTAMatch.custom_game_data:type_name -> dota.CMsgDOTAMatch.CustomGameData + 198, // 35: dota.CMsgDOTAMatch.match_outcome:type_name -> dota.EMatchOutcome + 167, // 36: dota.CMsgDOTAMatch.coaches:type_name -> dota.CMsgDOTAMatch.Coach + 171, // 37: dota.CMsgPlayerCard.stat_modifier:type_name -> dota.CMsgPlayerCard.StatModifier + 68, // 38: dota.CMsgDOTAFantasyPlayerMatchStats.matches:type_name -> dota.CMsgDOTAFantasyPlayerStats + 172, // 39: dota.CMsgDOTABotDebugInfo.bots:type_name -> dota.CMsgDOTABotDebugInfo.Bot + 197, // 40: dota.CMsgRecentMatchInfo.game_mode:type_name -> dota.DOTA_GameMode + 198, // 41: dota.CMsgRecentMatchInfo.match_outcome:type_name -> dota.EMatchOutcome + 175, // 42: dota.CMsgMatchTips.tips:type_name -> dota.CMsgMatchTips.SingleTip + 197, // 43: dota.CMsgDOTAMatchMinimal.game_mode:type_name -> dota.DOTA_GameMode + 176, // 44: dota.CMsgDOTAMatchMinimal.players:type_name -> dota.CMsgDOTAMatchMinimal.Player + 177, // 45: dota.CMsgDOTAMatchMinimal.tourney:type_name -> dota.CMsgDOTAMatchMinimal.Tourney + 198, // 46: dota.CMsgDOTAMatchMinimal.match_outcome:type_name -> dota.EMatchOutcome + 178, // 47: dota.CMsgMatchConsumableUsage.player_consumables_used:type_name -> dota.CMsgMatchConsumableUsage.PlayerUsage + 179, // 48: dota.CMsgMatchEventActionGrants.player_grants:type_name -> dota.CMsgMatchEventActionGrants.PlayerGrants + 180, // 49: dota.CMsgCustomGameWhitelistForEdit.whitelist_entries:type_name -> dota.CMsgCustomGameWhitelistForEdit.WhitelistEntry + 82, // 50: dota.CMsgPlayerRecentAccomplishments.recent_outcomes:type_name -> dota.CMsgPlayerRecentMatchOutcomes + 81, // 51: dota.CMsgPlayerRecentAccomplishments.total_record:type_name -> dota.CMsgPlayerMatchRecord + 83, // 52: dota.CMsgPlayerRecentAccomplishments.recent_commends:type_name -> dota.CMsgPlayerRecentCommends + 80, // 53: dota.CMsgPlayerRecentAccomplishments.last_match:type_name -> dota.CMsgPlayerRecentMatchInfo + 82, // 54: dota.CMsgPlayerRecentAccomplishments.recent_mvps:type_name -> dota.CMsgPlayerRecentMatchOutcomes + 82, // 55: dota.CMsgPlayerHeroRecentAccomplishments.recent_outcomes:type_name -> dota.CMsgPlayerRecentMatchOutcomes + 81, // 56: dota.CMsgPlayerHeroRecentAccomplishments.total_record:type_name -> dota.CMsgPlayerMatchRecord + 80, // 57: dota.CMsgPlayerHeroRecentAccomplishments.last_match:type_name -> dota.CMsgPlayerRecentMatchInfo + 84, // 58: dota.CMsgRecentAccomplishments.player_accomplishments:type_name -> dota.CMsgPlayerRecentAccomplishments + 85, // 59: dota.CMsgRecentAccomplishments.hero_accomplishments:type_name -> dota.CMsgPlayerHeroRecentAccomplishments 24, // 60: dota.CMsgServerToGCRequestPlayerRecentAccomplishmentsResponse.result:type_name -> dota.CMsgServerToGCRequestPlayerRecentAccomplishmentsResponse.EResponse - 85, // 61: dota.CMsgServerToGCRequestPlayerRecentAccomplishmentsResponse.player_accomplishments:type_name -> dota.CMsgRecentAccomplishments - 179, // 62: dota.CMsgGCtoGCAssociatedExploiterAccountInfoResponse.accounts:type_name -> dota.CMsgGCtoGCAssociatedExploiterAccountInfoResponse.Account - 180, // 63: dota.CMsgPullTabsData.slots:type_name -> dota.CMsgPullTabsData.Slot - 181, // 64: dota.CMsgPullTabsData.jackpots:type_name -> dota.CMsgPullTabsData.Jackpot - 182, // 65: dota.CMsgUnderDraftData.bench_slots:type_name -> dota.CMsgUnderDraftData.BenchSlot - 183, // 66: dota.CMsgUnderDraftData.shop_slots:type_name -> dota.CMsgUnderDraftData.ShopSlot + 86, // 61: dota.CMsgServerToGCRequestPlayerRecentAccomplishmentsResponse.player_accomplishments:type_name -> dota.CMsgRecentAccomplishments + 181, // 62: dota.CMsgGCtoGCAssociatedExploiterAccountInfoResponse.accounts:type_name -> dota.CMsgGCtoGCAssociatedExploiterAccountInfoResponse.Account + 182, // 63: dota.CMsgPullTabsData.slots:type_name -> dota.CMsgPullTabsData.Slot + 183, // 64: dota.CMsgPullTabsData.jackpots:type_name -> dota.CMsgPullTabsData.Jackpot + 184, // 65: dota.CMsgUnderDraftData.bench_slots:type_name -> dota.CMsgUnderDraftData.BenchSlot + 185, // 66: dota.CMsgUnderDraftData.shop_slots:type_name -> dota.CMsgUnderDraftData.ShopSlot 6, // 67: dota.CMsgDOTATriviaQuestion.category:type_name -> dota.EDOTATriviaQuestionCategory - 96, // 68: dota.CMsgGameDataSpecialValues.bonuses:type_name -> dota.CMsgGameDataSpecialValueBonus - 98, // 69: dota.CMsgGameDataSpecialValues.facet_bonus:type_name -> dota.CMsgGameDataFacetAbilityBonus - 97, // 70: dota.CMsgGameDataAbilityOrItem.special_values:type_name -> dota.CMsgGameDataSpecialValues - 99, // 71: dota.CMsgGameDataAbilityOrItemList.abilities:type_name -> dota.CMsgGameDataAbilityOrItem - 184, // 72: dota.CMsgGameDataHero.facets:type_name -> dota.CMsgGameDataHero.Facet - 99, // 73: dota.CMsgGameDataHero.abilities:type_name -> dota.CMsgGameDataAbilityOrItem - 99, // 74: dota.CMsgGameDataHero.talents:type_name -> dota.CMsgGameDataAbilityOrItem - 100, // 75: dota.CMsgGameDataHero.facet_abilities:type_name -> dota.CMsgGameDataAbilityOrItemList - 99, // 76: dota.CMsgGameDataAbilities.abilities:type_name -> dota.CMsgGameDataAbilityOrItem - 99, // 77: dota.CMsgGameDataItems.items:type_name -> dota.CMsgGameDataAbilityOrItem - 101, // 78: dota.CMsgGameDataHeroes.heroes:type_name -> dota.CMsgGameDataHero - 185, // 79: dota.CMsgGameDataHeroList.heroes:type_name -> dota.CMsgGameDataHeroList.HeroInfo - 186, // 80: dota.CMsgGameDataItemAbilityList.itemabilities:type_name -> dota.CMsgGameDataItemAbilityList.ItemAbilityInfo - 193, // 81: dota.CMsgStickerbookPage.event_id:type_name -> dota.EEvent - 110, // 82: dota.CMsgStickerbookPage.stickers:type_name -> dota.CMsgStickerbookSticker + 97, // 68: dota.CMsgGameDataSpecialValues.bonuses:type_name -> dota.CMsgGameDataSpecialValueBonus + 99, // 69: dota.CMsgGameDataSpecialValues.facet_bonus:type_name -> dota.CMsgGameDataFacetAbilityBonus + 98, // 70: dota.CMsgGameDataAbilityOrItem.special_values:type_name -> dota.CMsgGameDataSpecialValues + 100, // 71: dota.CMsgGameDataAbilityOrItemList.abilities:type_name -> dota.CMsgGameDataAbilityOrItem + 186, // 72: dota.CMsgGameDataHero.facets:type_name -> dota.CMsgGameDataHero.Facet + 100, // 73: dota.CMsgGameDataHero.abilities:type_name -> dota.CMsgGameDataAbilityOrItem + 100, // 74: dota.CMsgGameDataHero.talents:type_name -> dota.CMsgGameDataAbilityOrItem + 101, // 75: dota.CMsgGameDataHero.facet_abilities:type_name -> dota.CMsgGameDataAbilityOrItemList + 100, // 76: dota.CMsgGameDataAbilities.abilities:type_name -> dota.CMsgGameDataAbilityOrItem + 100, // 77: dota.CMsgGameDataItems.items:type_name -> dota.CMsgGameDataAbilityOrItem + 102, // 78: dota.CMsgGameDataHeroes.heroes:type_name -> dota.CMsgGameDataHero + 187, // 79: dota.CMsgGameDataHeroList.heroes:type_name -> dota.CMsgGameDataHeroList.HeroInfo + 188, // 80: dota.CMsgGameDataItemAbilityList.itemabilities:type_name -> dota.CMsgGameDataItemAbilityList.ItemAbilityInfo + 196, // 81: dota.CMsgStickerbookPage.event_id:type_name -> dota.EEvent + 111, // 82: dota.CMsgStickerbookPage.stickers:type_name -> dota.CMsgStickerbookSticker 10, // 83: dota.CMsgStickerbookPage.page_type:type_name -> dota.EStickerbookPageType - 111, // 84: dota.CMsgStickerbook.pages:type_name -> dota.CMsgStickerbookPage - 112, // 85: dota.CMsgStickerbook.team_page_order_sequence:type_name -> dota.CMsgStickerbookTeamPageOrderSequence - 114, // 86: dota.CMsgStickerHeroes.heroes:type_name -> dota.CMsgStickerHero - 116, // 87: dota.CMsgHeroRoleHeroStats.role_stats:type_name -> dota.CMsgHeroRoleStats - 117, // 88: dota.CMsgHeroRoleRankStats.hero_stats:type_name -> dota.CMsgHeroRoleHeroStats - 118, // 89: dota.CMsgHeroRoleAllRanksStats.rank_stats:type_name -> dota.CMsgHeroRoleRankStats - 120, // 90: dota.CMsgGlobalMapStats.current:type_name -> dota.CMsgMapStatsSnapshot - 120, // 91: dota.CMsgGlobalMapStats.window_start:type_name -> dota.CMsgMapStatsSnapshot - 120, // 92: dota.CMsgGlobalMapStats.window_end:type_name -> dota.CMsgMapStatsSnapshot + 112, // 84: dota.CMsgStickerbook.pages:type_name -> dota.CMsgStickerbookPage + 113, // 85: dota.CMsgStickerbook.team_page_order_sequence:type_name -> dota.CMsgStickerbookTeamPageOrderSequence + 115, // 86: dota.CMsgStickerHeroes.heroes:type_name -> dota.CMsgStickerHero + 117, // 87: dota.CMsgHeroRoleHeroStats.role_stats:type_name -> dota.CMsgHeroRoleStats + 118, // 88: dota.CMsgHeroRoleRankStats.hero_stats:type_name -> dota.CMsgHeroRoleHeroStats + 119, // 89: dota.CMsgHeroRoleAllRanksStats.rank_stats:type_name -> dota.CMsgHeroRoleRankStats + 121, // 90: dota.CMsgGlobalMapStats.current:type_name -> dota.CMsgMapStatsSnapshot + 121, // 91: dota.CMsgGlobalMapStats.window_start:type_name -> dota.CMsgMapStatsSnapshot + 121, // 92: dota.CMsgGlobalMapStats.window_end:type_name -> dota.CMsgMapStatsSnapshot 25, // 93: dota.CMsgDOTAClaimEventActionResponse.result:type_name -> dota.CMsgDOTAClaimEventActionResponse.ResultCode - 191, // 94: dota.CMsgDOTAClaimEventActionResponse.reward_results:type_name -> dota.CMsgDOTAClaimEventActionResponse.GrantedRewardData + 193, // 94: dota.CMsgDOTAClaimEventActionResponse.reward_results:type_name -> dota.CMsgDOTAClaimEventActionResponse.GrantedRewardData 26, // 95: dota.CMsgClientToGCDotaLabsFeedbackResponse.response:type_name -> dota.CMsgClientToGCDotaLabsFeedbackResponse.EResponse - 130, // 96: dota.CMsgDOTAProfileCard.Slot.trophy:type_name -> dota.CMsgDOTAProfileCard.Slot.Trophy - 131, // 97: dota.CMsgDOTAProfileCard.Slot.stat:type_name -> dota.CMsgDOTAProfileCard.Slot.Stat - 132, // 98: dota.CMsgDOTAProfileCard.Slot.item:type_name -> dota.CMsgDOTAProfileCard.Slot.Item - 133, // 99: dota.CMsgDOTAProfileCard.Slot.hero:type_name -> dota.CMsgDOTAProfileCard.Slot.Hero - 134, // 100: dota.CMsgDOTAProfileCard.Slot.emoticon:type_name -> dota.CMsgDOTAProfileCard.Slot.Emoticon - 135, // 101: dota.CMsgDOTAProfileCard.Slot.team:type_name -> dota.CMsgDOTAProfileCard.Slot.Team - 12, // 102: dota.CMsgDOTAProfileCard.Slot.Stat.stat_id:type_name -> dota.CMsgDOTAProfileCard.EStatID - 141, // 103: dota.CMsgDOTARealtimeGameStats.TeamDetails.players:type_name -> dota.CMsgDOTARealtimeGameStats.PlayerDetails - 138, // 104: dota.CMsgDOTARealtimeGameStats.PlayerDetails.abilities:type_name -> dota.CMsgDOTARealtimeGameStats.AbilityDetails - 137, // 105: dota.CMsgDOTARealtimeGameStats.PlayerDetails.items:type_name -> dota.CMsgDOTARealtimeGameStats.ItemDetails - 137, // 106: dota.CMsgDOTARealtimeGameStats.PlayerDetails.stashitems:type_name -> dota.CMsgDOTARealtimeGameStats.ItemDetails - 137, // 107: dota.CMsgDOTARealtimeGameStats.PlayerDetails.itemshoppinglist:type_name -> dota.CMsgDOTARealtimeGameStats.ItemDetails - 140, // 108: dota.CMsgDOTARealtimeGameStats.PlayerDetails.levelpoints:type_name -> dota.CMsgDOTARealtimeGameStats.AbilityList - 139, // 109: dota.CMsgDOTARealtimeGameStats.PlayerDetails.hero_to_hero_stats:type_name -> dota.CMsgDOTARealtimeGameStats.HeroToHeroStats - 145, // 110: dota.CMsgDOTARealtimeGameStats.MatchDetails.picks:type_name -> dota.CMsgDOTARealtimeGameStats.PickBanDetails - 145, // 111: dota.CMsgDOTARealtimeGameStats.MatchDetails.bans:type_name -> dota.CMsgDOTARealtimeGameStats.PickBanDetails - 143, // 112: dota.CMsgDOTARealtimeGameStats.MatchDetails.kills:type_name -> dota.CMsgDOTARealtimeGameStats.KillDetails - 144, // 113: dota.CMsgDOTARealtimeGameStats.MatchDetails.broadcasters:type_name -> dota.CMsgDOTARealtimeGameStats.BroadcasterDetails - 149, // 114: dota.CMsgDOTARealtimeGameStats.GraphData.team_loc_stats:type_name -> dota.CMsgDOTARealtimeGameStats.GraphData.TeamLocationStats - 148, // 115: dota.CMsgDOTARealtimeGameStats.GraphData.TeamLocationStats.loc_stats:type_name -> dota.CMsgDOTARealtimeGameStats.GraphData.LocationStats - 151, // 116: dota.CMsgDOTARealtimeGameStatsTerse.TeamDetails.players:type_name -> dota.CMsgDOTARealtimeGameStatsTerse.PlayerDetails - 153, // 117: dota.CMsgDOTARealtimeGameStatsTerse.MatchDetails.picks:type_name -> dota.CMsgDOTARealtimeGameStatsTerse.PickBanDetails - 153, // 118: dota.CMsgDOTARealtimeGameStatsTerse.MatchDetails.bans:type_name -> dota.CMsgDOTARealtimeGameStatsTerse.PickBanDetails - 20, // 119: dota.CMsgDOTASeasonPredictions.Prediction.type:type_name -> dota.CMsgDOTASeasonPredictions.Prediction.EPredictionType - 60, // 120: dota.CMsgDOTASeasonPredictions.Prediction.choices:type_name -> dota.CMsgPredictionChoice - 21, // 121: dota.CMsgDOTASeasonPredictions.Prediction.answer_type:type_name -> dota.CMsgDOTASeasonPredictions.Prediction.EAnswerType - 158, // 122: dota.CMsgDOTASeasonPredictions.Prediction.answers:type_name -> dota.CMsgDOTASeasonPredictions.Prediction.Answers - 196, // 123: dota.CMsgDOTASeasonPredictions.Prediction.region:type_name -> dota.ELeagueRegion - 197, // 124: dota.CMsgDOTASeasonPredictions.Prediction.phases:type_name -> dota.ELeaguePhase - 193, // 125: dota.CMsgDOTASeasonPredictions.Prediction.reward_event:type_name -> dota.EEvent - 61, // 126: dota.CMsgAvailablePredictions.MatchPrediction.predictions:type_name -> dota.CMsgInGamePrediction - 160, // 127: dota.CMsgLeagueWatchedGames.League.series:type_name -> dota.CMsgLeagueWatchedGames.Series - 35, // 128: dota.CMsgDOTAMatch.Player.ability_upgrades:type_name -> dota.CMatchPlayerAbilityUpgrade - 39, // 129: dota.CMsgDOTAMatch.Player.additional_units_inventory:type_name -> dota.CMatchAdditionalUnitInventory - 40, // 130: dota.CMsgDOTAMatch.Player.permanent_buffs:type_name -> dota.CMatchPlayerPermanentBuff - 167, // 131: dota.CMsgDOTAMatch.Player.custom_game_data:type_name -> dota.CMsgDOTAMatch.Player.CustomGameData - 168, // 132: dota.CMsgDOTAMatch.Player.hero_damage_received:type_name -> dota.CMsgDOTAMatch.Player.HeroDamageReceived - 168, // 133: dota.CMsgDOTAMatch.Player.hero_damage_dealt:type_name -> dota.CMsgDOTAMatch.Player.HeroDamageReceived - 198, // 134: dota.CMsgDOTAMatch.Player.team_number:type_name -> dota.DOTA_GC_TEAM - 163, // 135: dota.CMsgDOTAMatch.BroadcasterChannel.broadcaster_infos:type_name -> dota.CMsgDOTAMatch.BroadcasterInfo - 23, // 136: dota.CMsgDOTAMatch.Player.HeroDamageReceived.damage_type:type_name -> dota.CMsgDOTAMatch.Player.HeroDamageType - 171, // 137: dota.CMsgDOTABotDebugInfo.Bot.modes:type_name -> dota.CMsgDOTABotDebugInfo.Bot.Mode - 172, // 138: dota.CMsgDOTABotDebugInfo.Bot.action:type_name -> dota.CMsgDOTABotDebugInfo.Bot.Action - 193, // 139: dota.CMsgMatchTips.SingleTip.event_id:type_name -> dota.EEvent - 198, // 140: dota.CMsgDOTAMatchMinimal.Player.team_number:type_name -> dota.DOTA_GC_TEAM - 74, // 141: dota.CMsgMatchConsumableUsage.PlayerUsage.consumables_used:type_name -> dota.CMsgConsumableUsage - 199, // 142: dota.CMsgMatchEventActionGrants.PlayerGrants.actions_granted:type_name -> dota.CMsgPendingEventAward - 5, // 143: dota.CMsgCustomGameWhitelistForEdit.WhitelistEntry.whitelist_state:type_name -> dota.ECustomGameWhitelistState - 192, // 144: dota.CMsgDOTAClaimEventActionResponse.OverworldTokenRewardData.tokens:type_name -> dota.CMsgDOTAClaimEventActionResponse.OverworldTokenRewardData.TokenQuantity - 145, // [145:145] is the sub-list for method output_type - 145, // [145:145] is the sub-list for method input_type - 145, // [145:145] is the sub-list for extension type_name - 145, // [145:145] is the sub-list for extension extendee - 0, // [0:145] is the sub-list for field type_name + 195, // 96: dota.CDotaMsg_PredictionResult.predictions:type_name -> dota.CDotaMsg_PredictionResult.Prediction + 132, // 97: dota.CMsgDOTAProfileCard.Slot.trophy:type_name -> dota.CMsgDOTAProfileCard.Slot.Trophy + 133, // 98: dota.CMsgDOTAProfileCard.Slot.stat:type_name -> dota.CMsgDOTAProfileCard.Slot.Stat + 134, // 99: dota.CMsgDOTAProfileCard.Slot.item:type_name -> dota.CMsgDOTAProfileCard.Slot.Item + 135, // 100: dota.CMsgDOTAProfileCard.Slot.hero:type_name -> dota.CMsgDOTAProfileCard.Slot.Hero + 136, // 101: dota.CMsgDOTAProfileCard.Slot.emoticon:type_name -> dota.CMsgDOTAProfileCard.Slot.Emoticon + 137, // 102: dota.CMsgDOTAProfileCard.Slot.team:type_name -> dota.CMsgDOTAProfileCard.Slot.Team + 12, // 103: dota.CMsgDOTAProfileCard.Slot.Stat.stat_id:type_name -> dota.CMsgDOTAProfileCard.EStatID + 143, // 104: dota.CMsgDOTARealtimeGameStats.TeamDetails.players:type_name -> dota.CMsgDOTARealtimeGameStats.PlayerDetails + 140, // 105: dota.CMsgDOTARealtimeGameStats.PlayerDetails.abilities:type_name -> dota.CMsgDOTARealtimeGameStats.AbilityDetails + 139, // 106: dota.CMsgDOTARealtimeGameStats.PlayerDetails.items:type_name -> dota.CMsgDOTARealtimeGameStats.ItemDetails + 139, // 107: dota.CMsgDOTARealtimeGameStats.PlayerDetails.stashitems:type_name -> dota.CMsgDOTARealtimeGameStats.ItemDetails + 139, // 108: dota.CMsgDOTARealtimeGameStats.PlayerDetails.itemshoppinglist:type_name -> dota.CMsgDOTARealtimeGameStats.ItemDetails + 142, // 109: dota.CMsgDOTARealtimeGameStats.PlayerDetails.levelpoints:type_name -> dota.CMsgDOTARealtimeGameStats.AbilityList + 141, // 110: dota.CMsgDOTARealtimeGameStats.PlayerDetails.hero_to_hero_stats:type_name -> dota.CMsgDOTARealtimeGameStats.HeroToHeroStats + 147, // 111: dota.CMsgDOTARealtimeGameStats.MatchDetails.picks:type_name -> dota.CMsgDOTARealtimeGameStats.PickBanDetails + 147, // 112: dota.CMsgDOTARealtimeGameStats.MatchDetails.bans:type_name -> dota.CMsgDOTARealtimeGameStats.PickBanDetails + 145, // 113: dota.CMsgDOTARealtimeGameStats.MatchDetails.kills:type_name -> dota.CMsgDOTARealtimeGameStats.KillDetails + 146, // 114: dota.CMsgDOTARealtimeGameStats.MatchDetails.broadcasters:type_name -> dota.CMsgDOTARealtimeGameStats.BroadcasterDetails + 151, // 115: dota.CMsgDOTARealtimeGameStats.GraphData.team_loc_stats:type_name -> dota.CMsgDOTARealtimeGameStats.GraphData.TeamLocationStats + 150, // 116: dota.CMsgDOTARealtimeGameStats.GraphData.TeamLocationStats.loc_stats:type_name -> dota.CMsgDOTARealtimeGameStats.GraphData.LocationStats + 153, // 117: dota.CMsgDOTARealtimeGameStatsTerse.TeamDetails.players:type_name -> dota.CMsgDOTARealtimeGameStatsTerse.PlayerDetails + 155, // 118: dota.CMsgDOTARealtimeGameStatsTerse.MatchDetails.picks:type_name -> dota.CMsgDOTARealtimeGameStatsTerse.PickBanDetails + 155, // 119: dota.CMsgDOTARealtimeGameStatsTerse.MatchDetails.bans:type_name -> dota.CMsgDOTARealtimeGameStatsTerse.PickBanDetails + 20, // 120: dota.CMsgDOTASeasonPredictions.Prediction.type:type_name -> dota.CMsgDOTASeasonPredictions.Prediction.EPredictionType + 61, // 121: dota.CMsgDOTASeasonPredictions.Prediction.choices:type_name -> dota.CMsgPredictionChoice + 21, // 122: dota.CMsgDOTASeasonPredictions.Prediction.answer_type:type_name -> dota.CMsgDOTASeasonPredictions.Prediction.EAnswerType + 160, // 123: dota.CMsgDOTASeasonPredictions.Prediction.answers:type_name -> dota.CMsgDOTASeasonPredictions.Prediction.Answers + 199, // 124: dota.CMsgDOTASeasonPredictions.Prediction.region:type_name -> dota.ELeagueRegion + 200, // 125: dota.CMsgDOTASeasonPredictions.Prediction.phases:type_name -> dota.ELeaguePhase + 196, // 126: dota.CMsgDOTASeasonPredictions.Prediction.reward_event:type_name -> dota.EEvent + 62, // 127: dota.CMsgAvailablePredictions.MatchPrediction.predictions:type_name -> dota.CMsgInGamePrediction + 162, // 128: dota.CMsgLeagueWatchedGames.League.series:type_name -> dota.CMsgLeagueWatchedGames.Series + 36, // 129: dota.CMsgDOTAMatch.Player.ability_upgrades:type_name -> dota.CMatchPlayerAbilityUpgrade + 40, // 130: dota.CMsgDOTAMatch.Player.additional_units_inventory:type_name -> dota.CMatchAdditionalUnitInventory + 41, // 131: dota.CMsgDOTAMatch.Player.permanent_buffs:type_name -> dota.CMatchPlayerPermanentBuff + 169, // 132: dota.CMsgDOTAMatch.Player.custom_game_data:type_name -> dota.CMsgDOTAMatch.Player.CustomGameData + 170, // 133: dota.CMsgDOTAMatch.Player.hero_damage_received:type_name -> dota.CMsgDOTAMatch.Player.HeroDamageReceived + 170, // 134: dota.CMsgDOTAMatch.Player.hero_damage_dealt:type_name -> dota.CMsgDOTAMatch.Player.HeroDamageReceived + 201, // 135: dota.CMsgDOTAMatch.Player.team_number:type_name -> dota.DOTA_GC_TEAM + 165, // 136: dota.CMsgDOTAMatch.BroadcasterChannel.broadcaster_infos:type_name -> dota.CMsgDOTAMatch.BroadcasterInfo + 23, // 137: dota.CMsgDOTAMatch.Player.HeroDamageReceived.damage_type:type_name -> dota.CMsgDOTAMatch.Player.HeroDamageType + 173, // 138: dota.CMsgDOTABotDebugInfo.Bot.modes:type_name -> dota.CMsgDOTABotDebugInfo.Bot.Mode + 174, // 139: dota.CMsgDOTABotDebugInfo.Bot.action:type_name -> dota.CMsgDOTABotDebugInfo.Bot.Action + 196, // 140: dota.CMsgMatchTips.SingleTip.event_id:type_name -> dota.EEvent + 201, // 141: dota.CMsgDOTAMatchMinimal.Player.team_number:type_name -> dota.DOTA_GC_TEAM + 75, // 142: dota.CMsgMatchConsumableUsage.PlayerUsage.consumables_used:type_name -> dota.CMsgConsumableUsage + 202, // 143: dota.CMsgMatchEventActionGrants.PlayerGrants.actions_granted:type_name -> dota.CMsgPendingEventAward + 5, // 144: dota.CMsgCustomGameWhitelistForEdit.WhitelistEntry.whitelist_state:type_name -> dota.ECustomGameWhitelistState + 194, // 145: dota.CMsgDOTAClaimEventActionResponse.OverworldTokenRewardData.tokens:type_name -> dota.CMsgDOTAClaimEventActionResponse.OverworldTokenRewardData.TokenQuantity + 27, // 146: dota.CDotaMsg_PredictionResult.Prediction.result:type_name -> dota.CDotaMsg_PredictionResult.Prediction.EResult + 147, // [147:147] is the sub-list for method output_type + 147, // [147:147] is the sub-list for method input_type + 147, // [147:147] is the sub-list for extension type_name + 147, // [147:147] is the sub-list for extension extendee + 0, // [0:147] is the sub-list for field type_name } func init() { file_dota_gcmessages_common_proto_init() } @@ -21261,7 +21502,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSODOTAGameAccountClient_RoleHandicap); i { + switch v := v.(*CDotaMsg_PredictionResult); i { case 0: return &v.state case 1: @@ -21273,7 +21514,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgLobbyFeaturedGamemodeProgress_AccountProgress); i { + switch v := v.(*CSODOTAGameAccountClient_RoleHandicap); i { case 0: return &v.state case 1: @@ -21285,7 +21526,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCGetPlayerCardItemInfoResponse_PlayerCardInfo); i { + switch v := v.(*CMsgLobbyFeaturedGamemodeProgress_AccountProgress); i { case 0: return &v.state case 1: @@ -21297,7 +21538,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTAProfileCard_Slot); i { + switch v := v.(*CMsgGCGetPlayerCardItemInfoResponse_PlayerCardInfo); i { case 0: return &v.state case 1: @@ -21309,7 +21550,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTAProfileCard_Slot_Trophy); i { + switch v := v.(*CMsgDOTAProfileCard_Slot); i { case 0: return &v.state case 1: @@ -21321,7 +21562,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTAProfileCard_Slot_Stat); i { + switch v := v.(*CMsgDOTAProfileCard_Slot_Trophy); i { case 0: return &v.state case 1: @@ -21333,7 +21574,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTAProfileCard_Slot_Item); i { + switch v := v.(*CMsgDOTAProfileCard_Slot_Stat); i { case 0: return &v.state case 1: @@ -21345,7 +21586,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTAProfileCard_Slot_Hero); i { + switch v := v.(*CMsgDOTAProfileCard_Slot_Item); i { case 0: return &v.state case 1: @@ -21357,7 +21598,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTAProfileCard_Slot_Emoticon); i { + switch v := v.(*CMsgDOTAProfileCard_Slot_Hero); i { case 0: return &v.state case 1: @@ -21369,7 +21610,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTAProfileCard_Slot_Team); i { + switch v := v.(*CMsgDOTAProfileCard_Slot_Emoticon); i { case 0: return &v.state case 1: @@ -21381,7 +21622,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTARealtimeGameStats_TeamDetails); i { + switch v := v.(*CMsgDOTAProfileCard_Slot_Team); i { case 0: return &v.state case 1: @@ -21393,7 +21634,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTARealtimeGameStats_ItemDetails); i { + switch v := v.(*CMsgDOTARealtimeGameStats_TeamDetails); i { case 0: return &v.state case 1: @@ -21405,7 +21646,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTARealtimeGameStats_AbilityDetails); i { + switch v := v.(*CMsgDOTARealtimeGameStats_ItemDetails); i { case 0: return &v.state case 1: @@ -21417,7 +21658,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTARealtimeGameStats_HeroToHeroStats); i { + switch v := v.(*CMsgDOTARealtimeGameStats_AbilityDetails); i { case 0: return &v.state case 1: @@ -21429,7 +21670,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTARealtimeGameStats_AbilityList); i { + switch v := v.(*CMsgDOTARealtimeGameStats_HeroToHeroStats); i { case 0: return &v.state case 1: @@ -21441,7 +21682,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTARealtimeGameStats_PlayerDetails); i { + switch v := v.(*CMsgDOTARealtimeGameStats_AbilityList); i { case 0: return &v.state case 1: @@ -21453,7 +21694,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTARealtimeGameStats_BuildingDetails); i { + switch v := v.(*CMsgDOTARealtimeGameStats_PlayerDetails); i { case 0: return &v.state case 1: @@ -21465,7 +21706,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTARealtimeGameStats_KillDetails); i { + switch v := v.(*CMsgDOTARealtimeGameStats_BuildingDetails); i { case 0: return &v.state case 1: @@ -21477,7 +21718,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTARealtimeGameStats_BroadcasterDetails); i { + switch v := v.(*CMsgDOTARealtimeGameStats_KillDetails); i { case 0: return &v.state case 1: @@ -21489,7 +21730,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTARealtimeGameStats_PickBanDetails); i { + switch v := v.(*CMsgDOTARealtimeGameStats_BroadcasterDetails); i { case 0: return &v.state case 1: @@ -21501,7 +21742,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTARealtimeGameStats_MatchDetails); i { + switch v := v.(*CMsgDOTARealtimeGameStats_PickBanDetails); i { case 0: return &v.state case 1: @@ -21513,7 +21754,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTARealtimeGameStats_GraphData); i { + switch v := v.(*CMsgDOTARealtimeGameStats_MatchDetails); i { case 0: return &v.state case 1: @@ -21525,7 +21766,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTARealtimeGameStats_GraphData_LocationStats); i { + switch v := v.(*CMsgDOTARealtimeGameStats_GraphData); i { case 0: return &v.state case 1: @@ -21537,7 +21778,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTARealtimeGameStats_GraphData_TeamLocationStats); i { + switch v := v.(*CMsgDOTARealtimeGameStats_GraphData_LocationStats); i { case 0: return &v.state case 1: @@ -21549,7 +21790,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTARealtimeGameStatsTerse_TeamDetails); i { + switch v := v.(*CMsgDOTARealtimeGameStats_GraphData_TeamLocationStats); i { case 0: return &v.state case 1: @@ -21561,7 +21802,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTARealtimeGameStatsTerse_PlayerDetails); i { + switch v := v.(*CMsgDOTARealtimeGameStatsTerse_TeamDetails); i { case 0: return &v.state case 1: @@ -21573,7 +21814,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTARealtimeGameStatsTerse_BuildingDetails); i { + switch v := v.(*CMsgDOTARealtimeGameStatsTerse_PlayerDetails); i { case 0: return &v.state case 1: @@ -21585,7 +21826,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTARealtimeGameStatsTerse_PickBanDetails); i { + switch v := v.(*CMsgDOTARealtimeGameStatsTerse_BuildingDetails); i { case 0: return &v.state case 1: @@ -21597,7 +21838,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTARealtimeGameStatsTerse_MatchDetails); i { + switch v := v.(*CMsgDOTARealtimeGameStatsTerse_PickBanDetails); i { case 0: return &v.state case 1: @@ -21609,7 +21850,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTARealtimeGameStatsTerse_GraphData); i { + switch v := v.(*CMsgDOTARealtimeGameStatsTerse_MatchDetails); i { case 0: return &v.state case 1: @@ -21621,7 +21862,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgInGamePrediction_QueryKeyValues); i { + switch v := v.(*CMsgDOTARealtimeGameStatsTerse_GraphData); i { case 0: return &v.state case 1: @@ -21633,7 +21874,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTASeasonPredictions_Prediction); i { + switch v := v.(*CMsgInGamePrediction_QueryKeyValues); i { case 0: return &v.state case 1: @@ -21645,7 +21886,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTASeasonPredictions_Prediction_Answers); i { + switch v := v.(*CMsgDOTASeasonPredictions_Prediction); i { case 0: return &v.state case 1: @@ -21657,7 +21898,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgAvailablePredictions_MatchPrediction); i { + switch v := v.(*CMsgDOTASeasonPredictions_Prediction_Answers); i { case 0: return &v.state case 1: @@ -21669,7 +21910,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgLeagueWatchedGames_Series); i { + switch v := v.(*CMsgAvailablePredictions_MatchPrediction); i { case 0: return &v.state case 1: @@ -21681,7 +21922,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgLeagueWatchedGames_League); i { + switch v := v.(*CMsgLeagueWatchedGames_Series); i { case 0: return &v.state case 1: @@ -21693,7 +21934,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTAMatch_Player); i { + switch v := v.(*CMsgLeagueWatchedGames_League); i { case 0: return &v.state case 1: @@ -21705,7 +21946,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTAMatch_BroadcasterInfo); i { + switch v := v.(*CMsgDOTAMatch_Player); i { case 0: return &v.state case 1: @@ -21717,7 +21958,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTAMatch_BroadcasterChannel); i { + switch v := v.(*CMsgDOTAMatch_BroadcasterInfo); i { case 0: return &v.state case 1: @@ -21729,7 +21970,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTAMatch_Coach); i { + switch v := v.(*CMsgDOTAMatch_BroadcasterChannel); i { case 0: return &v.state case 1: @@ -21741,7 +21982,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTAMatch_CustomGameData); i { + switch v := v.(*CMsgDOTAMatch_Coach); i { case 0: return &v.state case 1: @@ -21753,7 +21994,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTAMatch_Player_CustomGameData); i { + switch v := v.(*CMsgDOTAMatch_CustomGameData); i { case 0: return &v.state case 1: @@ -21765,7 +22006,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTAMatch_Player_HeroDamageReceived); i { + switch v := v.(*CMsgDOTAMatch_Player_CustomGameData); i { case 0: return &v.state case 1: @@ -21777,7 +22018,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgPlayerCard_StatModifier); i { + switch v := v.(*CMsgDOTAMatch_Player_HeroDamageReceived); i { case 0: return &v.state case 1: @@ -21789,7 +22030,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTABotDebugInfo_Bot); i { + switch v := v.(*CMsgPlayerCard_StatModifier); i { case 0: return &v.state case 1: @@ -21801,7 +22042,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTABotDebugInfo_Bot_Mode); i { + switch v := v.(*CMsgDOTABotDebugInfo_Bot); i { case 0: return &v.state case 1: @@ -21813,7 +22054,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTABotDebugInfo_Bot_Action); i { + switch v := v.(*CMsgDOTABotDebugInfo_Bot_Mode); i { case 0: return &v.state case 1: @@ -21825,7 +22066,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgMatchTips_SingleTip); i { + switch v := v.(*CMsgDOTABotDebugInfo_Bot_Action); i { case 0: return &v.state case 1: @@ -21837,7 +22078,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTAMatchMinimal_Player); i { + switch v := v.(*CMsgMatchTips_SingleTip); i { case 0: return &v.state case 1: @@ -21849,7 +22090,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTAMatchMinimal_Tourney); i { + switch v := v.(*CMsgDOTAMatchMinimal_Player); i { case 0: return &v.state case 1: @@ -21861,7 +22102,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgMatchConsumableUsage_PlayerUsage); i { + switch v := v.(*CMsgDOTAMatchMinimal_Tourney); i { case 0: return &v.state case 1: @@ -21873,7 +22114,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgMatchEventActionGrants_PlayerGrants); i { + switch v := v.(*CMsgMatchConsumableUsage_PlayerUsage); i { case 0: return &v.state case 1: @@ -21885,7 +22126,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgCustomGameWhitelistForEdit_WhitelistEntry); i { + switch v := v.(*CMsgMatchEventActionGrants_PlayerGrants); i { case 0: return &v.state case 1: @@ -21897,7 +22138,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCtoGCAssociatedExploiterAccountInfoResponse_Account); i { + switch v := v.(*CMsgCustomGameWhitelistForEdit_WhitelistEntry); i { case 0: return &v.state case 1: @@ -21909,7 +22150,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgPullTabsData_Slot); i { + switch v := v.(*CMsgGCtoGCAssociatedExploiterAccountInfoResponse_Account); i { case 0: return &v.state case 1: @@ -21921,7 +22162,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgPullTabsData_Jackpot); i { + switch v := v.(*CMsgPullTabsData_Slot); i { case 0: return &v.state case 1: @@ -21933,7 +22174,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgUnderDraftData_BenchSlot); i { + switch v := v.(*CMsgPullTabsData_Jackpot); i { case 0: return &v.state case 1: @@ -21945,7 +22186,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgUnderDraftData_ShopSlot); i { + switch v := v.(*CMsgUnderDraftData_BenchSlot); i { case 0: return &v.state case 1: @@ -21957,7 +22198,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGameDataHero_Facet); i { + switch v := v.(*CMsgUnderDraftData_ShopSlot); i { case 0: return &v.state case 1: @@ -21969,7 +22210,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGameDataHeroList_HeroInfo); i { + switch v := v.(*CMsgGameDataHero_Facet); i { case 0: return &v.state case 1: @@ -21981,7 +22222,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGameDataItemAbilityList_ItemAbilityInfo); i { + switch v := v.(*CMsgGameDataHeroList_HeroInfo); i { case 0: return &v.state case 1: @@ -21993,7 +22234,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[160].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTAClaimEventActionResponse_MysteryItemRewardData); i { + switch v := v.(*CMsgGameDataItemAbilityList_ItemAbilityInfo); i { case 0: return &v.state case 1: @@ -22005,7 +22246,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[161].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTAClaimEventActionResponse_LootListRewardData); i { + switch v := v.(*CMsgDOTAClaimEventActionResponse_MysteryItemRewardData); i { case 0: return &v.state case 1: @@ -22017,7 +22258,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[162].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTAClaimEventActionResponse_ActionListRewardData); i { + switch v := v.(*CMsgDOTAClaimEventActionResponse_LootListRewardData); i { case 0: return &v.state case 1: @@ -22029,7 +22270,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[163].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTAClaimEventActionResponse_OverworldTokenRewardData); i { + switch v := v.(*CMsgDOTAClaimEventActionResponse_ActionListRewardData); i { case 0: return &v.state case 1: @@ -22041,7 +22282,7 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[164].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTAClaimEventActionResponse_GrantedRewardData); i { + switch v := v.(*CMsgDOTAClaimEventActionResponse_OverworldTokenRewardData); i { case 0: return &v.state case 1: @@ -22053,6 +22294,18 @@ func file_dota_gcmessages_common_proto_init() { } } file_dota_gcmessages_common_proto_msgTypes[165].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgDOTAClaimEventActionResponse_GrantedRewardData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_dota_gcmessages_common_proto_msgTypes[166].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgDOTAClaimEventActionResponse_OverworldTokenRewardData_TokenQuantity); i { case 0: return &v.state @@ -22064,14 +22317,26 @@ func file_dota_gcmessages_common_proto_init() { return nil } } + file_dota_gcmessages_common_proto_msgTypes[167].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CDotaMsg_PredictionResult_Prediction); 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_dota_gcmessages_common_proto_rawDesc, - NumEnums: 27, - NumMessages: 166, + NumEnums: 28, + NumMessages: 168, NumExtensions: 0, NumServices: 0, }, diff --git a/dota/dota_gcmessages_common.proto b/dota/dota_gcmessages_common.proto index d636d0c..73f21f0 100644 --- a/dota/dota_gcmessages_common.proto +++ b/dota/dota_gcmessages_common.proto @@ -168,7 +168,7 @@ message CSODOTAGameAccountClient { optional uint32 solo_competitive_games_played = 61; optional uint32 party_competitive_games_played = 62; optional uint32 casual_1v1_games_played = 65; - optional uint32 curr_all_hero_challenge_id = 67; + optional int32 curr_all_hero_challenge_id = 67; optional uint32 play_time_points = 68; optional uint32 account_flags = 69; optional uint32 play_time_level = 70; @@ -193,7 +193,7 @@ message CSODOTAGameAccountClient { repeated CSODOTAGameAccountClient.RoleHandicap role_handicaps = 115; optional uint32 event_mode_recent_time = 120; optional uint32 mmr_recalibration_time = 121; - repeated uint32 banned_hero_ids = 123; + repeated int32 banned_hero_ids = 123; } message CSODOTAGameAccountPlus { @@ -242,7 +242,7 @@ message CMsgDOTABroadcastNotification { } message CProtoItemHeroStatue { - optional uint32 hero_id = 1; + optional int32 hero_id = 1; optional uint32 status_effect_index = 2; optional string sequence_name = 3; optional float cycle = 4; @@ -324,7 +324,7 @@ message CMatchPlayerPermanentBuff { message CMatchHeroSelectEvent { optional bool is_pick = 1; optional uint32 team = 2; - optional uint32 hero_id = 3; + optional int32 hero_id = 3; } message CMatchClip { @@ -333,7 +333,7 @@ message CMatchClip { optional uint32 game_time_seconds = 3; optional uint32 duration_seconds = 4; optional uint32 player_id = 5; - optional uint32 hero_id = 6; + optional int32 hero_id = 6; optional int32 ability_id = 7; optional uint32 camera_mode = 8; optional string comment = 9; @@ -398,7 +398,7 @@ message CMsgDOTAProfileCard { } message Hero { - optional uint32 hero_id = 1; + optional int32 hero_id = 1; optional uint32 hero_wins = 2; optional uint32 hero_losses = 3; } @@ -462,14 +462,14 @@ message CSODOTAPlayerChallenge { optional uint32 quest_rank = 14; optional uint32 max_quest_rank = 15; optional uint32 instance_id = 16; - optional uint32 hero_id = 17; + optional int32 hero_id = 17; optional uint32 template_id = 18; } message CMsgClientToGCRerollPlayerChallenge { optional EEvent event_id = 1; optional uint32 sequence_id = 3; - optional uint32 hero_id = 4; + optional int32 hero_id = 4; } message CMsgGCRerollPlayerChallengeResponse { @@ -535,7 +535,7 @@ message CMsgDOTARealtimeGameStats { optional int32 playerid = 2; optional string name = 3; optional uint32 team = 4; - optional uint32 heroid = 5; + optional int32 heroid = 5; optional uint32 healthpoints = 6; optional uint32 maxhealthpoints = 7; optional float healthregenrate = 8; @@ -605,7 +605,7 @@ message CMsgDOTARealtimeGameStats { } message PickBanDetails { - optional uint32 hero = 1; + optional int32 hero = 1; optional uint32 team = 2; } @@ -690,7 +690,7 @@ message CMsgDOTARealtimeGameStatsTerse { optional int32 playerid = 2; optional string name = 3; optional uint32 team = 4; - optional uint32 heroid = 5; + optional int32 heroid = 5; optional uint32 level = 6; optional uint32 kill_count = 7; optional uint32 death_count = 8; @@ -718,7 +718,7 @@ message CMsgDOTARealtimeGameStatsTerse { } message PickBanDetails { - optional uint32 hero = 1; + optional int32 hero = 1; optional uint32 team = 2; } @@ -934,7 +934,7 @@ message CMsgDOTAMatch { optional uint32 account_id = 1; optional uint32 player_slot = 2; - optional uint32 hero_id = 3; + optional int32 hero_id = 3; optional int32 item_0 = 4; optional int32 item_1 = 5; optional int32 item_2 = 6; @@ -1151,7 +1151,7 @@ message CMsgDOTABotDebugInfo { } optional int32 player_owner_id = 1; - optional uint32 hero_id = 2; + optional int32 hero_id = 2; optional uint32 difficulty = 3; optional uint32 power_current = 4; optional uint32 power_max = 5; @@ -1180,7 +1180,7 @@ message CMsgDOTABotDebugInfo { } message CMsgSuccessfulHero { - optional uint32 hero_id = 1; + optional int32 hero_id = 1; optional float win_percent = 2; optional uint32 longest_streak = 3; } @@ -1213,7 +1213,7 @@ message CMsgMatchTips { message CMsgDOTAMatchMinimal { message Player { optional uint32 account_id = 1; - optional uint32 hero_id = 2; + optional int32 hero_id = 2; optional uint32 kills = 3; optional uint32 deaths = 4; optional uint32 assists = 5; @@ -1297,7 +1297,7 @@ message CMsgPlayerRecentMatchInfo { optional uint32 timestamp = 2; optional uint32 duration = 3; optional bool win = 4; - optional uint32 hero_id = 5; + optional int32 hero_id = 5; optional uint32 kills = 6; optional uint32 deaths = 7; optional uint32 assists = 8; @@ -1342,7 +1342,7 @@ message CMsgRecentAccomplishments { message CMsgServerToGCRequestPlayerRecentAccomplishments { optional uint32 account_id = 1; - optional uint32 hero_id = 2; + optional int32 hero_id = 2; } message CMsgServerToGCRequestPlayerRecentAccomplishmentsResponse { @@ -1359,7 +1359,7 @@ message CMsgServerToGCRequestPlayerRecentAccomplishmentsResponse { message CMsgArcanaVoteMatchVotes { optional uint32 match_id = 1; - optional uint32 hero_id = 2; + optional int32 hero_id = 2; optional uint32 vote_count = 3; } @@ -1388,7 +1388,7 @@ message CMsgPullTabsData { message Slot { optional uint32 event_id = 1; optional uint32 board_id = 2; - optional uint32 hero_id = 3; + optional int32 hero_id = 3; optional uint32 action_id = 4; optional bool redeemed = 5; } @@ -1396,7 +1396,7 @@ message CMsgPullTabsData { message Jackpot { optional uint32 board_id = 1; optional uint32 action_id = 2; - optional uint32 hero_id = 3; + optional int32 hero_id = 3; } repeated CMsgPullTabsData.Slot slots = 1; @@ -1407,13 +1407,13 @@ message CMsgPullTabsData { message CMsgUnderDraftData { message BenchSlot { optional uint32 slot_id = 1; - optional uint32 hero_id = 2; + optional int32 hero_id = 2; optional uint32 stars = 3; } message ShopSlot { optional uint32 slot_id = 1; - optional uint32 hero_id = 2; + optional int32 hero_id = 2; optional bool is_special_reward = 3; } @@ -1525,7 +1525,7 @@ message CMsgGameDataHero { optional int32 gradient_id = 6; } - optional uint32 id = 1; + optional int32 id = 1; optional string name = 2; optional uint32 order_id = 3; optional string name_loc = 5; @@ -1577,7 +1577,7 @@ message CMsgGameDataHeroes { message CMsgGameDataHeroList { message HeroInfo { - optional uint32 id = 1; + optional int32 id = 1; optional string name = 2; optional string name_loc = 3; optional string name_english_loc = 4; @@ -1658,7 +1658,7 @@ message CMsgStickerbook { } message CMsgStickerHero { - optional uint32 hero_id = 1; + optional int32 hero_id = 1; optional uint32 item_def_id = 2; optional uint32 quality = 3; optional uint64 source_item_id = 4; @@ -1675,7 +1675,7 @@ message CMsgHeroRoleStats { } message CMsgHeroRoleHeroStats { - optional uint32 hero_id = 1; + optional int32 hero_id = 1; repeated CMsgHeroRoleStats role_stats = 2; } @@ -1788,3 +1788,23 @@ message CMsgClientToGCDotaLabsFeedbackResponse { optional CMsgClientToGCDotaLabsFeedbackResponse.EResponse response = 1; } + +message CDotaMsg_PredictionResult { + message Prediction { + enum EResult { + k_eResult_ItemGranted = 1; + k_eResult_Destroyed = 2; + } + + optional uint32 item_def = 1; + optional uint32 num_correct = 2; + optional uint32 num_fails = 3; + optional CDotaMsg_PredictionResult.Prediction.EResult result = 4; + repeated uint32 granted_item_defs = 6; + } + + optional uint32 account_id = 1; + optional uint64 match_id = 2; + optional bool correct = 3; + repeated CDotaMsg_PredictionResult.Prediction predictions = 4; +} diff --git a/dota/dota_gcmessages_common_fighting_game.pb.go b/dota/dota_gcmessages_common_fighting_game.pb.go new file mode 100644 index 0000000..47a4066 --- /dev/null +++ b/dota/dota_gcmessages_common_fighting_game.pb.go @@ -0,0 +1,821 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc v3.21.5 +// source: dota_gcmessages_common_fighting_game.proto + +package dota + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type CMsgClientToGCFightingGameChallengeFriendResponse_EResponse int32 + +const ( + CMsgClientToGCFightingGameChallengeFriendResponse_k_eInternalError CMsgClientToGCFightingGameChallengeFriendResponse_EResponse = 0 + CMsgClientToGCFightingGameChallengeFriendResponse_k_eSuccess CMsgClientToGCFightingGameChallengeFriendResponse_EResponse = 1 + CMsgClientToGCFightingGameChallengeFriendResponse_k_eTooBusy CMsgClientToGCFightingGameChallengeFriendResponse_EResponse = 2 + CMsgClientToGCFightingGameChallengeFriendResponse_k_eDisabled CMsgClientToGCFightingGameChallengeFriendResponse_EResponse = 3 + CMsgClientToGCFightingGameChallengeFriendResponse_k_eTimeout CMsgClientToGCFightingGameChallengeFriendResponse_EResponse = 4 + CMsgClientToGCFightingGameChallengeFriendResponse_k_eInvalidAccountID CMsgClientToGCFightingGameChallengeFriendResponse_EResponse = 5 + CMsgClientToGCFightingGameChallengeFriendResponse_k_eStillWaitingOnAnotherChallenge CMsgClientToGCFightingGameChallengeFriendResponse_EResponse = 6 +) + +// Enum value maps for CMsgClientToGCFightingGameChallengeFriendResponse_EResponse. +var ( + CMsgClientToGCFightingGameChallengeFriendResponse_EResponse_name = map[int32]string{ + 0: "k_eInternalError", + 1: "k_eSuccess", + 2: "k_eTooBusy", + 3: "k_eDisabled", + 4: "k_eTimeout", + 5: "k_eInvalidAccountID", + 6: "k_eStillWaitingOnAnotherChallenge", + } + CMsgClientToGCFightingGameChallengeFriendResponse_EResponse_value = map[string]int32{ + "k_eInternalError": 0, + "k_eSuccess": 1, + "k_eTooBusy": 2, + "k_eDisabled": 3, + "k_eTimeout": 4, + "k_eInvalidAccountID": 5, + "k_eStillWaitingOnAnotherChallenge": 6, + } +) + +func (x CMsgClientToGCFightingGameChallengeFriendResponse_EResponse) Enum() *CMsgClientToGCFightingGameChallengeFriendResponse_EResponse { + p := new(CMsgClientToGCFightingGameChallengeFriendResponse_EResponse) + *p = x + return p +} + +func (x CMsgClientToGCFightingGameChallengeFriendResponse_EResponse) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CMsgClientToGCFightingGameChallengeFriendResponse_EResponse) Descriptor() protoreflect.EnumDescriptor { + return file_dota_gcmessages_common_fighting_game_proto_enumTypes[0].Descriptor() +} + +func (CMsgClientToGCFightingGameChallengeFriendResponse_EResponse) Type() protoreflect.EnumType { + return &file_dota_gcmessages_common_fighting_game_proto_enumTypes[0] +} + +func (x CMsgClientToGCFightingGameChallengeFriendResponse_EResponse) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *CMsgClientToGCFightingGameChallengeFriendResponse_EResponse) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = CMsgClientToGCFightingGameChallengeFriendResponse_EResponse(num) + return nil +} + +// Deprecated: Use CMsgClientToGCFightingGameChallengeFriendResponse_EResponse.Descriptor instead. +func (CMsgClientToGCFightingGameChallengeFriendResponse_EResponse) EnumDescriptor() ([]byte, []int) { + return file_dota_gcmessages_common_fighting_game_proto_rawDescGZIP(), []int{1, 0} +} + +type CMsgClientToGCFightingGameAnswerChallengeResponse_EResponse int32 + +const ( + CMsgClientToGCFightingGameAnswerChallengeResponse_k_eInternalError CMsgClientToGCFightingGameAnswerChallengeResponse_EResponse = 0 + CMsgClientToGCFightingGameAnswerChallengeResponse_k_eSuccess CMsgClientToGCFightingGameAnswerChallengeResponse_EResponse = 1 + CMsgClientToGCFightingGameAnswerChallengeResponse_k_eTooBusy CMsgClientToGCFightingGameAnswerChallengeResponse_EResponse = 2 + CMsgClientToGCFightingGameAnswerChallengeResponse_k_eDisabled CMsgClientToGCFightingGameAnswerChallengeResponse_EResponse = 3 + CMsgClientToGCFightingGameAnswerChallengeResponse_k_eTimeout CMsgClientToGCFightingGameAnswerChallengeResponse_EResponse = 4 + CMsgClientToGCFightingGameAnswerChallengeResponse_k_eInvalidChallenge CMsgClientToGCFightingGameAnswerChallengeResponse_EResponse = 5 +) + +// Enum value maps for CMsgClientToGCFightingGameAnswerChallengeResponse_EResponse. +var ( + CMsgClientToGCFightingGameAnswerChallengeResponse_EResponse_name = map[int32]string{ + 0: "k_eInternalError", + 1: "k_eSuccess", + 2: "k_eTooBusy", + 3: "k_eDisabled", + 4: "k_eTimeout", + 5: "k_eInvalidChallenge", + } + CMsgClientToGCFightingGameAnswerChallengeResponse_EResponse_value = map[string]int32{ + "k_eInternalError": 0, + "k_eSuccess": 1, + "k_eTooBusy": 2, + "k_eDisabled": 3, + "k_eTimeout": 4, + "k_eInvalidChallenge": 5, + } +) + +func (x CMsgClientToGCFightingGameAnswerChallengeResponse_EResponse) Enum() *CMsgClientToGCFightingGameAnswerChallengeResponse_EResponse { + p := new(CMsgClientToGCFightingGameAnswerChallengeResponse_EResponse) + *p = x + return p +} + +func (x CMsgClientToGCFightingGameAnswerChallengeResponse_EResponse) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CMsgClientToGCFightingGameAnswerChallengeResponse_EResponse) Descriptor() protoreflect.EnumDescriptor { + return file_dota_gcmessages_common_fighting_game_proto_enumTypes[1].Descriptor() +} + +func (CMsgClientToGCFightingGameAnswerChallengeResponse_EResponse) Type() protoreflect.EnumType { + return &file_dota_gcmessages_common_fighting_game_proto_enumTypes[1] +} + +func (x CMsgClientToGCFightingGameAnswerChallengeResponse_EResponse) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *CMsgClientToGCFightingGameAnswerChallengeResponse_EResponse) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = CMsgClientToGCFightingGameAnswerChallengeResponse_EResponse(num) + return nil +} + +// Deprecated: Use CMsgClientToGCFightingGameAnswerChallengeResponse_EResponse.Descriptor instead. +func (CMsgClientToGCFightingGameAnswerChallengeResponse_EResponse) EnumDescriptor() ([]byte, []int) { + return file_dota_gcmessages_common_fighting_game_proto_rawDescGZIP(), []int{4, 0} +} + +type CMsgClientToGCFightingGameChallengeFriend struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FriendAccountId *uint32 `protobuf:"varint,1,opt,name=friend_account_id,json=friendAccountId" json:"friend_account_id,omitempty"` +} + +func (x *CMsgClientToGCFightingGameChallengeFriend) Reset() { + *x = CMsgClientToGCFightingGameChallengeFriend{} + if protoimpl.UnsafeEnabled { + mi := &file_dota_gcmessages_common_fighting_game_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgClientToGCFightingGameChallengeFriend) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgClientToGCFightingGameChallengeFriend) ProtoMessage() {} + +func (x *CMsgClientToGCFightingGameChallengeFriend) ProtoReflect() protoreflect.Message { + mi := &file_dota_gcmessages_common_fighting_game_proto_msgTypes[0] + 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 CMsgClientToGCFightingGameChallengeFriend.ProtoReflect.Descriptor instead. +func (*CMsgClientToGCFightingGameChallengeFriend) Descriptor() ([]byte, []int) { + return file_dota_gcmessages_common_fighting_game_proto_rawDescGZIP(), []int{0} +} + +func (x *CMsgClientToGCFightingGameChallengeFriend) GetFriendAccountId() uint32 { + if x != nil && x.FriendAccountId != nil { + return *x.FriendAccountId + } + return 0 +} + +type CMsgClientToGCFightingGameChallengeFriendResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Response *CMsgClientToGCFightingGameChallengeFriendResponse_EResponse `protobuf:"varint,1,opt,name=response,enum=dota.CMsgClientToGCFightingGameChallengeFriendResponse_EResponse" json:"response,omitempty"` +} + +func (x *CMsgClientToGCFightingGameChallengeFriendResponse) Reset() { + *x = CMsgClientToGCFightingGameChallengeFriendResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_dota_gcmessages_common_fighting_game_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgClientToGCFightingGameChallengeFriendResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgClientToGCFightingGameChallengeFriendResponse) ProtoMessage() {} + +func (x *CMsgClientToGCFightingGameChallengeFriendResponse) ProtoReflect() protoreflect.Message { + mi := &file_dota_gcmessages_common_fighting_game_proto_msgTypes[1] + 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 CMsgClientToGCFightingGameChallengeFriendResponse.ProtoReflect.Descriptor instead. +func (*CMsgClientToGCFightingGameChallengeFriendResponse) Descriptor() ([]byte, []int) { + return file_dota_gcmessages_common_fighting_game_proto_rawDescGZIP(), []int{1} +} + +func (x *CMsgClientToGCFightingGameChallengeFriendResponse) GetResponse() CMsgClientToGCFightingGameChallengeFriendResponse_EResponse { + if x != nil && x.Response != nil { + return *x.Response + } + return CMsgClientToGCFightingGameChallengeFriendResponse_k_eInternalError +} + +type CMsgClientToGCFightingGameCancelChallengeFriend struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FriendAccountId *uint32 `protobuf:"varint,1,opt,name=friend_account_id,json=friendAccountId" json:"friend_account_id,omitempty"` +} + +func (x *CMsgClientToGCFightingGameCancelChallengeFriend) Reset() { + *x = CMsgClientToGCFightingGameCancelChallengeFriend{} + if protoimpl.UnsafeEnabled { + mi := &file_dota_gcmessages_common_fighting_game_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgClientToGCFightingGameCancelChallengeFriend) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgClientToGCFightingGameCancelChallengeFriend) ProtoMessage() {} + +func (x *CMsgClientToGCFightingGameCancelChallengeFriend) ProtoReflect() protoreflect.Message { + mi := &file_dota_gcmessages_common_fighting_game_proto_msgTypes[2] + 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 CMsgClientToGCFightingGameCancelChallengeFriend.ProtoReflect.Descriptor instead. +func (*CMsgClientToGCFightingGameCancelChallengeFriend) Descriptor() ([]byte, []int) { + return file_dota_gcmessages_common_fighting_game_proto_rawDescGZIP(), []int{2} +} + +func (x *CMsgClientToGCFightingGameCancelChallengeFriend) GetFriendAccountId() uint32 { + if x != nil && x.FriendAccountId != nil { + return *x.FriendAccountId + } + return 0 +} + +type CMsgClientToGCFightingGameAnswerChallenge struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChallengerAccountId *uint32 `protobuf:"varint,1,opt,name=challenger_account_id,json=challengerAccountId" json:"challenger_account_id,omitempty"` + Accept *bool `protobuf:"varint,2,opt,name=accept" json:"accept,omitempty"` +} + +func (x *CMsgClientToGCFightingGameAnswerChallenge) Reset() { + *x = CMsgClientToGCFightingGameAnswerChallenge{} + if protoimpl.UnsafeEnabled { + mi := &file_dota_gcmessages_common_fighting_game_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgClientToGCFightingGameAnswerChallenge) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgClientToGCFightingGameAnswerChallenge) ProtoMessage() {} + +func (x *CMsgClientToGCFightingGameAnswerChallenge) ProtoReflect() protoreflect.Message { + mi := &file_dota_gcmessages_common_fighting_game_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 CMsgClientToGCFightingGameAnswerChallenge.ProtoReflect.Descriptor instead. +func (*CMsgClientToGCFightingGameAnswerChallenge) Descriptor() ([]byte, []int) { + return file_dota_gcmessages_common_fighting_game_proto_rawDescGZIP(), []int{3} +} + +func (x *CMsgClientToGCFightingGameAnswerChallenge) GetChallengerAccountId() uint32 { + if x != nil && x.ChallengerAccountId != nil { + return *x.ChallengerAccountId + } + return 0 +} + +func (x *CMsgClientToGCFightingGameAnswerChallenge) GetAccept() bool { + if x != nil && x.Accept != nil { + return *x.Accept + } + return false +} + +type CMsgClientToGCFightingGameAnswerChallengeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Response *CMsgClientToGCFightingGameAnswerChallengeResponse_EResponse `protobuf:"varint,1,opt,name=response,enum=dota.CMsgClientToGCFightingGameAnswerChallengeResponse_EResponse" json:"response,omitempty"` +} + +func (x *CMsgClientToGCFightingGameAnswerChallengeResponse) Reset() { + *x = CMsgClientToGCFightingGameAnswerChallengeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_dota_gcmessages_common_fighting_game_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgClientToGCFightingGameAnswerChallengeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgClientToGCFightingGameAnswerChallengeResponse) ProtoMessage() {} + +func (x *CMsgClientToGCFightingGameAnswerChallengeResponse) ProtoReflect() protoreflect.Message { + mi := &file_dota_gcmessages_common_fighting_game_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 CMsgClientToGCFightingGameAnswerChallengeResponse.ProtoReflect.Descriptor instead. +func (*CMsgClientToGCFightingGameAnswerChallengeResponse) Descriptor() ([]byte, []int) { + return file_dota_gcmessages_common_fighting_game_proto_rawDescGZIP(), []int{4} +} + +func (x *CMsgClientToGCFightingGameAnswerChallengeResponse) GetResponse() CMsgClientToGCFightingGameAnswerChallengeResponse_EResponse { + if x != nil && x.Response != nil { + return *x.Response + } + return CMsgClientToGCFightingGameAnswerChallengeResponse_k_eInternalError +} + +type CMsgGCToClientFightingGameChallenge struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChallengerAccountId *uint32 `protobuf:"varint,1,opt,name=challenger_account_id,json=challengerAccountId" json:"challenger_account_id,omitempty"` +} + +func (x *CMsgGCToClientFightingGameChallenge) Reset() { + *x = CMsgGCToClientFightingGameChallenge{} + if protoimpl.UnsafeEnabled { + mi := &file_dota_gcmessages_common_fighting_game_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCToClientFightingGameChallenge) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCToClientFightingGameChallenge) ProtoMessage() {} + +func (x *CMsgGCToClientFightingGameChallenge) ProtoReflect() protoreflect.Message { + mi := &file_dota_gcmessages_common_fighting_game_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 CMsgGCToClientFightingGameChallenge.ProtoReflect.Descriptor instead. +func (*CMsgGCToClientFightingGameChallenge) Descriptor() ([]byte, []int) { + return file_dota_gcmessages_common_fighting_game_proto_rawDescGZIP(), []int{5} +} + +func (x *CMsgGCToClientFightingGameChallenge) GetChallengerAccountId() uint32 { + if x != nil && x.ChallengerAccountId != nil { + return *x.ChallengerAccountId + } + return 0 +} + +type CMsgGCToClientFightingGameChallengeCanceled struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChallengerAccountId *uint32 `protobuf:"varint,1,opt,name=challenger_account_id,json=challengerAccountId" json:"challenger_account_id,omitempty"` + ResponderAccountId *uint32 `protobuf:"varint,2,opt,name=responder_account_id,json=responderAccountId" json:"responder_account_id,omitempty"` +} + +func (x *CMsgGCToClientFightingGameChallengeCanceled) Reset() { + *x = CMsgGCToClientFightingGameChallengeCanceled{} + if protoimpl.UnsafeEnabled { + mi := &file_dota_gcmessages_common_fighting_game_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCToClientFightingGameChallengeCanceled) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCToClientFightingGameChallengeCanceled) ProtoMessage() {} + +func (x *CMsgGCToClientFightingGameChallengeCanceled) ProtoReflect() protoreflect.Message { + mi := &file_dota_gcmessages_common_fighting_game_proto_msgTypes[6] + 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 CMsgGCToClientFightingGameChallengeCanceled.ProtoReflect.Descriptor instead. +func (*CMsgGCToClientFightingGameChallengeCanceled) Descriptor() ([]byte, []int) { + return file_dota_gcmessages_common_fighting_game_proto_rawDescGZIP(), []int{6} +} + +func (x *CMsgGCToClientFightingGameChallengeCanceled) GetChallengerAccountId() uint32 { + if x != nil && x.ChallengerAccountId != nil { + return *x.ChallengerAccountId + } + return 0 +} + +func (x *CMsgGCToClientFightingGameChallengeCanceled) GetResponderAccountId() uint32 { + if x != nil && x.ResponderAccountId != nil { + return *x.ResponderAccountId + } + return 0 +} + +type CMsgGCToClientFightingGameStartMatch struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChallengerAccountId *uint32 `protobuf:"varint,1,opt,name=challenger_account_id,json=challengerAccountId" json:"challenger_account_id,omitempty"` + ResponderAccountId *uint32 `protobuf:"varint,2,opt,name=responder_account_id,json=responderAccountId" json:"responder_account_id,omitempty"` +} + +func (x *CMsgGCToClientFightingGameStartMatch) Reset() { + *x = CMsgGCToClientFightingGameStartMatch{} + if protoimpl.UnsafeEnabled { + mi := &file_dota_gcmessages_common_fighting_game_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCToClientFightingGameStartMatch) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCToClientFightingGameStartMatch) ProtoMessage() {} + +func (x *CMsgGCToClientFightingGameStartMatch) ProtoReflect() protoreflect.Message { + mi := &file_dota_gcmessages_common_fighting_game_proto_msgTypes[7] + 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 CMsgGCToClientFightingGameStartMatch.ProtoReflect.Descriptor instead. +func (*CMsgGCToClientFightingGameStartMatch) Descriptor() ([]byte, []int) { + return file_dota_gcmessages_common_fighting_game_proto_rawDescGZIP(), []int{7} +} + +func (x *CMsgGCToClientFightingGameStartMatch) GetChallengerAccountId() uint32 { + if x != nil && x.ChallengerAccountId != nil { + return *x.ChallengerAccountId + } + return 0 +} + +func (x *CMsgGCToClientFightingGameStartMatch) GetResponderAccountId() uint32 { + if x != nil && x.ResponderAccountId != nil { + return *x.ResponderAccountId + } + return 0 +} + +var File_dota_gcmessages_common_fighting_game_proto protoreflect.FileDescriptor + +var file_dota_gcmessages_common_fighting_game_proto_rawDesc = []byte{ + 0x0a, 0x2a, 0x64, 0x6f, 0x74, 0x61, 0x5f, 0x67, 0x63, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, + 0x67, 0x5f, 0x67, 0x61, 0x6d, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x64, 0x6f, + 0x74, 0x61, 0x1a, 0x13, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x64, 0x6f, 0x74, 0x61, 0x5f, 0x73, 0x68, + 0x61, 0x72, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x1c, 0x64, 0x6f, 0x74, 0x61, 0x5f, 0x67, 0x63, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x16, + 0x67, 0x63, 0x73, 0x64, 0x6b, 0x5f, 0x67, 0x63, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x57, 0x0a, 0x29, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x46, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, + 0x47, 0x61, 0x6d, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5f, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, + 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, + 0xb7, 0x02, 0x0a, 0x31, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, + 0x47, 0x43, 0x46, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x68, + 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x41, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, + 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x46, 0x69, 0x67, + 0x68, 0x74, 0x69, 0x6e, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, + 0x67, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x45, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa2, 0x01, 0x0a, 0x09, 0x45, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x6b, 0x5f, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x53, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x54, + 0x6f, 0x6f, 0x42, 0x75, 0x73, 0x79, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x5f, 0x65, 0x44, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, 0x65, + 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, + 0x10, 0x05, 0x12, 0x25, 0x0a, 0x21, 0x6b, 0x5f, 0x65, 0x53, 0x74, 0x69, 0x6c, 0x6c, 0x57, 0x61, + 0x69, 0x74, 0x69, 0x6e, 0x67, 0x4f, 0x6e, 0x41, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x43, 0x68, + 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x10, 0x06, 0x22, 0x5d, 0x0a, 0x2f, 0x43, 0x4d, 0x73, + 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x46, 0x69, 0x67, 0x68, 0x74, + 0x69, 0x6e, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x43, 0x68, 0x61, + 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x2a, 0x0a, 0x11, + 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x77, 0x0a, 0x29, 0x43, 0x4d, 0x73, 0x67, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x46, 0x69, 0x67, 0x68, 0x74, 0x69, + 0x6e, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6c, + 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, + 0x67, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x63, + 0x65, 0x70, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x63, 0x63, 0x65, 0x70, + 0x74, 0x22, 0x8f, 0x02, 0x0a, 0x31, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x54, 0x6f, 0x47, 0x43, 0x46, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, 0x47, 0x61, 0x6d, 0x65, + 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x41, 0x2e, 0x64, 0x6f, 0x74, 0x61, + 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x46, + 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x41, 0x6e, 0x73, 0x77, 0x65, + 0x72, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x45, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x08, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7b, 0x0a, 0x09, 0x45, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x6b, 0x5f, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, + 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, + 0x54, 0x6f, 0x6f, 0x42, 0x75, 0x73, 0x79, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x5f, 0x65, + 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, + 0x65, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, + 0x65, 0x10, 0x05, 0x22, 0x59, 0x0a, 0x23, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x54, 0x6f, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, 0x47, 0x61, 0x6d, + 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x68, + 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x63, 0x68, 0x61, 0x6c, 0x6c, + 0x65, 0x6e, 0x67, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x93, + 0x01, 0x0a, 0x2b, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x54, 0x6f, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x46, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x68, 0x61, + 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x12, 0x32, + 0x0a, 0x15, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x63, + 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x5f, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x12, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x49, 0x64, 0x22, 0x8c, 0x01, 0x0a, 0x24, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x54, + 0x6f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, 0x47, + 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x32, 0x0a, + 0x15, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x63, 0x68, + 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x12, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x49, 0x64, 0x42, 0x25, 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x62, 0x75, 0x66, 0x66, 0x2f, 0x6d, 0x61, 0x6e, 0x74, 0x61, + 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x3b, 0x64, 0x6f, 0x74, 0x61, +} + +var ( + file_dota_gcmessages_common_fighting_game_proto_rawDescOnce sync.Once + file_dota_gcmessages_common_fighting_game_proto_rawDescData = file_dota_gcmessages_common_fighting_game_proto_rawDesc +) + +func file_dota_gcmessages_common_fighting_game_proto_rawDescGZIP() []byte { + file_dota_gcmessages_common_fighting_game_proto_rawDescOnce.Do(func() { + file_dota_gcmessages_common_fighting_game_proto_rawDescData = protoimpl.X.CompressGZIP(file_dota_gcmessages_common_fighting_game_proto_rawDescData) + }) + return file_dota_gcmessages_common_fighting_game_proto_rawDescData +} + +var file_dota_gcmessages_common_fighting_game_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_dota_gcmessages_common_fighting_game_proto_msgTypes = make([]protoimpl.MessageInfo, 8) +var file_dota_gcmessages_common_fighting_game_proto_goTypes = []interface{}{ + (CMsgClientToGCFightingGameChallengeFriendResponse_EResponse)(0), // 0: dota.CMsgClientToGCFightingGameChallengeFriendResponse.EResponse + (CMsgClientToGCFightingGameAnswerChallengeResponse_EResponse)(0), // 1: dota.CMsgClientToGCFightingGameAnswerChallengeResponse.EResponse + (*CMsgClientToGCFightingGameChallengeFriend)(nil), // 2: dota.CMsgClientToGCFightingGameChallengeFriend + (*CMsgClientToGCFightingGameChallengeFriendResponse)(nil), // 3: dota.CMsgClientToGCFightingGameChallengeFriendResponse + (*CMsgClientToGCFightingGameCancelChallengeFriend)(nil), // 4: dota.CMsgClientToGCFightingGameCancelChallengeFriend + (*CMsgClientToGCFightingGameAnswerChallenge)(nil), // 5: dota.CMsgClientToGCFightingGameAnswerChallenge + (*CMsgClientToGCFightingGameAnswerChallengeResponse)(nil), // 6: dota.CMsgClientToGCFightingGameAnswerChallengeResponse + (*CMsgGCToClientFightingGameChallenge)(nil), // 7: dota.CMsgGCToClientFightingGameChallenge + (*CMsgGCToClientFightingGameChallengeCanceled)(nil), // 8: dota.CMsgGCToClientFightingGameChallengeCanceled + (*CMsgGCToClientFightingGameStartMatch)(nil), // 9: dota.CMsgGCToClientFightingGameStartMatch +} +var file_dota_gcmessages_common_fighting_game_proto_depIdxs = []int32{ + 0, // 0: dota.CMsgClientToGCFightingGameChallengeFriendResponse.response:type_name -> dota.CMsgClientToGCFightingGameChallengeFriendResponse.EResponse + 1, // 1: dota.CMsgClientToGCFightingGameAnswerChallengeResponse.response:type_name -> dota.CMsgClientToGCFightingGameAnswerChallengeResponse.EResponse + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_dota_gcmessages_common_fighting_game_proto_init() } +func file_dota_gcmessages_common_fighting_game_proto_init() { + if File_dota_gcmessages_common_fighting_game_proto != nil { + return + } + file_steammessages_proto_init() + file_dota_shared_enums_proto_init() + file_dota_gcmessages_common_proto_init() + file_gcsdk_gcmessages_proto_init() + if !protoimpl.UnsafeEnabled { + file_dota_gcmessages_common_fighting_game_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgClientToGCFightingGameChallengeFriend); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_dota_gcmessages_common_fighting_game_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgClientToGCFightingGameChallengeFriendResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_dota_gcmessages_common_fighting_game_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgClientToGCFightingGameCancelChallengeFriend); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_dota_gcmessages_common_fighting_game_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgClientToGCFightingGameAnswerChallenge); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_dota_gcmessages_common_fighting_game_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgClientToGCFightingGameAnswerChallengeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_dota_gcmessages_common_fighting_game_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCToClientFightingGameChallenge); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_dota_gcmessages_common_fighting_game_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCToClientFightingGameChallengeCanceled); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_dota_gcmessages_common_fighting_game_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCToClientFightingGameStartMatch); 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_dota_gcmessages_common_fighting_game_proto_rawDesc, + NumEnums: 2, + NumMessages: 8, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_dota_gcmessages_common_fighting_game_proto_goTypes, + DependencyIndexes: file_dota_gcmessages_common_fighting_game_proto_depIdxs, + EnumInfos: file_dota_gcmessages_common_fighting_game_proto_enumTypes, + MessageInfos: file_dota_gcmessages_common_fighting_game_proto_msgTypes, + }.Build() + File_dota_gcmessages_common_fighting_game_proto = out.File + file_dota_gcmessages_common_fighting_game_proto_rawDesc = nil + file_dota_gcmessages_common_fighting_game_proto_goTypes = nil + file_dota_gcmessages_common_fighting_game_proto_depIdxs = nil +} diff --git a/dota/dota_gcmessages_common_fighting_game.proto b/dota/dota_gcmessages_common_fighting_game.proto new file mode 100644 index 0000000..c9bb25b --- /dev/null +++ b/dota/dota_gcmessages_common_fighting_game.proto @@ -0,0 +1,63 @@ +syntax = "proto2"; + +package dota; +option go_package = "github.com/dotabuff/manta/dota;dota"; + +import "steammessages.proto"; +import "dota_shared_enums.proto"; +import "dota_gcmessages_common.proto"; +import "gcsdk_gcmessages.proto"; + +message CMsgClientToGCFightingGameChallengeFriend { + optional uint32 friend_account_id = 1; +} + +message CMsgClientToGCFightingGameChallengeFriendResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidAccountID = 5; + k_eStillWaitingOnAnotherChallenge = 6; + } + + optional CMsgClientToGCFightingGameChallengeFriendResponse.EResponse response = 1; +} + +message CMsgClientToGCFightingGameCancelChallengeFriend { + optional uint32 friend_account_id = 1; +} + +message CMsgClientToGCFightingGameAnswerChallenge { + optional uint32 challenger_account_id = 1; + optional bool accept = 2; +} + +message CMsgClientToGCFightingGameAnswerChallengeResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidChallenge = 5; + } + + optional CMsgClientToGCFightingGameAnswerChallengeResponse.EResponse response = 1; +} + +message CMsgGCToClientFightingGameChallenge { + optional uint32 challenger_account_id = 1; +} + +message CMsgGCToClientFightingGameChallengeCanceled { + optional uint32 challenger_account_id = 1; + optional uint32 responder_account_id = 2; +} + +message CMsgGCToClientFightingGameStartMatch { + optional uint32 challenger_account_id = 1; + optional uint32 responder_account_id = 2; +} diff --git a/dota/dota_gcmessages_common_lobby.pb.go b/dota/dota_gcmessages_common_lobby.pb.go index 4db3967..5e6f65b 100644 --- a/dota/dota_gcmessages_common_lobby.pb.go +++ b/dota/dota_gcmessages_common_lobby.pb.go @@ -801,7 +801,7 @@ type CSODOTALobbyMember struct { unknownFields protoimpl.UnknownFields Id *uint64 `protobuf:"fixed64,1,opt,name=id" json:"id,omitempty"` - HeroId *uint32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` Team *DOTA_GC_TEAM `protobuf:"varint,3,opt,name=team,enum=dota.DOTA_GC_TEAM" json:"team,omitempty"` Name *string `protobuf:"bytes,6,opt,name=name" json:"name,omitempty"` Slot *uint32 `protobuf:"varint,7,opt,name=slot" json:"slot,omitempty"` @@ -812,8 +812,8 @@ type CSODOTALobbyMember struct { LeaverStatus *DOTALeaverStatusT `protobuf:"varint,16,opt,name=leaver_status,json=leaverStatus,enum=dota.DOTALeaverStatusT" json:"leaver_status,omitempty"` LeaverActions *uint32 `protobuf:"varint,28,opt,name=leaver_actions,json=leaverActions" json:"leaver_actions,omitempty"` Channel *uint32 `protobuf:"varint,17,opt,name=channel" json:"channel,omitempty"` - DisabledHeroId []uint32 `protobuf:"varint,20,rep,name=disabled_hero_id,json=disabledHeroId" json:"disabled_hero_id,omitempty"` - EnabledHeroId []uint32 `protobuf:"varint,22,rep,name=enabled_hero_id,json=enabledHeroId" json:"enabled_hero_id,omitempty"` + DisabledHeroId []int32 `protobuf:"varint,20,rep,name=disabled_hero_id,json=disabledHeroId" json:"disabled_hero_id,omitempty"` + EnabledHeroId []int32 `protobuf:"varint,22,rep,name=enabled_hero_id,json=enabledHeroId" json:"enabled_hero_id,omitempty"` CoachTeam *DOTA_GC_TEAM `protobuf:"varint,23,opt,name=coach_team,json=coachTeam,enum=dota.DOTA_GC_TEAM" json:"coach_team,omitempty"` CoachedAccountIds []uint32 `protobuf:"varint,53,rep,name=coached_account_ids,json=coachedAccountIds" json:"coached_account_ids,omitempty"` CoachRating *uint32 `protobuf:"varint,42,opt,name=coach_rating,json=coachRating" json:"coach_rating,omitempty"` @@ -841,7 +841,7 @@ type CSODOTALobbyMember struct { IsSteamChina *bool `protobuf:"varint,54,opt,name=is_steam_china,json=isSteamChina" json:"is_steam_china,omitempty"` LiveSpectatorAccountId *uint32 `protobuf:"varint,55,opt,name=live_spectator_account_id,json=liveSpectatorAccountId" json:"live_spectator_account_id,omitempty"` CommsReportsAvailable *uint32 `protobuf:"varint,56,opt,name=comms_reports_available,json=commsReportsAvailable" json:"comms_reports_available,omitempty"` - BannedHeroIds []uint32 `protobuf:"varint,57,rep,name=banned_hero_ids,json=bannedHeroIds" json:"banned_hero_ids,omitempty"` + BannedHeroIds []int32 `protobuf:"varint,57,rep,name=banned_hero_ids,json=bannedHeroIds" json:"banned_hero_ids,omitempty"` } func (x *CSODOTALobbyMember) Reset() { @@ -883,7 +883,7 @@ func (x *CSODOTALobbyMember) GetId() uint64 { return 0 } -func (x *CSODOTALobbyMember) GetHeroId() uint32 { +func (x *CSODOTALobbyMember) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -960,14 +960,14 @@ func (x *CSODOTALobbyMember) GetChannel() uint32 { return 0 } -func (x *CSODOTALobbyMember) GetDisabledHeroId() []uint32 { +func (x *CSODOTALobbyMember) GetDisabledHeroId() []int32 { if x != nil { return x.DisabledHeroId } return nil } -func (x *CSODOTALobbyMember) GetEnabledHeroId() []uint32 { +func (x *CSODOTALobbyMember) GetEnabledHeroId() []int32 { if x != nil { return x.EnabledHeroId } @@ -1163,7 +1163,7 @@ func (x *CSODOTALobbyMember) GetCommsReportsAvailable() uint32 { return 0 } -func (x *CSODOTALobbyMember) GetBannedHeroIds() []uint32 { +func (x *CSODOTALobbyMember) GetBannedHeroIds() []int32 { if x != nil { return x.BannedHeroIds } @@ -1979,7 +1979,7 @@ type CSODOTALobby struct { SeriesCurrentNonPriorityTeamChoice *DOTASelectionPriorityChoice `protobuf:"varint,101,opt,name=series_current_non_priority_team_choice,json=seriesCurrentNonPriorityTeamChoice,enum=dota.DOTASelectionPriorityChoice" json:"series_current_non_priority_team_choice,omitempty"` SeriesCurrentSelectionPriorityUsedCoinToss *bool `protobuf:"varint,102,opt,name=series_current_selection_priority_used_coin_toss,json=seriesCurrentSelectionPriorityUsedCoinToss" json:"series_current_selection_priority_used_coin_toss,omitempty"` CurrentPrimaryEvent *EEvent `protobuf:"varint,103,opt,name=current_primary_event,json=currentPrimaryEvent,enum=dota.EEvent" json:"current_primary_event,omitempty"` - EmergencyDisabledHeroIds []uint32 `protobuf:"varint,105,rep,name=emergency_disabled_hero_ids,json=emergencyDisabledHeroIds" json:"emergency_disabled_hero_ids,omitempty"` + EmergencyDisabledHeroIds []int32 `protobuf:"varint,105,rep,name=emergency_disabled_hero_ids,json=emergencyDisabledHeroIds" json:"emergency_disabled_hero_ids,omitempty"` CustomGamePrivateKey *uint64 `protobuf:"fixed64,106,opt,name=custom_game_private_key,json=customGamePrivateKey" json:"custom_game_private_key,omitempty"` CustomGamePenalties *bool `protobuf:"varint,107,opt,name=custom_game_penalties,json=customGamePenalties" json:"custom_game_penalties,omitempty"` LanHostPingLocation *string `protobuf:"bytes,109,opt,name=lan_host_ping_location,json=lanHostPingLocation" json:"lan_host_ping_location,omitempty"` @@ -1990,7 +1990,7 @@ type CSODOTALobby struct { GuildChallenges []*CLobbyGuildChallenge `protobuf:"bytes,117,rep,name=guild_challenges,json=guildChallenges" json:"guild_challenges,omitempty"` GuildDetails []*CLobbyGuildDetails `protobuf:"bytes,118,rep,name=guild_details,json=guildDetails" json:"guild_details,omitempty"` LobbyEventPoints []*CMsgLobbyEventPoints `protobuf:"bytes,119,rep,name=lobby_event_points,json=lobbyEventPoints" json:"lobby_event_points,omitempty"` - RequestedHeroIds []uint32 `protobuf:"varint,124,rep,name=requested_hero_ids,json=requestedHeroIds" json:"requested_hero_ids,omitempty"` + RequestedHeroIds []int32 `protobuf:"varint,124,rep,name=requested_hero_ids,json=requestedHeroIds" json:"requested_hero_ids,omitempty"` CoachFriendRequests []*CMsgLobbyCoachFriendRequest `protobuf:"bytes,125,rep,name=coach_friend_requests,json=coachFriendRequests" json:"coach_friend_requests,omitempty"` IsInSteamChina *bool `protobuf:"varint,126,opt,name=is_in_steam_china,json=isInSteamChina" json:"is_in_steam_china,omitempty"` WithScenarioSave *bool `protobuf:"varint,127,opt,name=with_scenario_save,json=withScenarioSave" json:"with_scenario_save,omitempty"` @@ -2585,7 +2585,7 @@ func (x *CSODOTALobby) GetCurrentPrimaryEvent() EEvent { return EEvent_EVENT_ID_NONE } -func (x *CSODOTALobby) GetEmergencyDisabledHeroIds() []uint32 { +func (x *CSODOTALobby) GetEmergencyDisabledHeroIds() []int32 { if x != nil { return x.EmergencyDisabledHeroIds } @@ -2662,7 +2662,7 @@ func (x *CSODOTALobby) GetLobbyEventPoints() []*CMsgLobbyEventPoints { return nil } -func (x *CSODOTALobby) GetRequestedHeroIds() []uint32 { +func (x *CSODOTALobby) GetRequestedHeroIds() []int32 { if x != nil { return x.RequestedHeroIds } @@ -3266,7 +3266,7 @@ type CMsgLobbyPlayerPlusSubscriptionData_HeroBadge struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroId *uint32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` HeroBadgeXp *uint32 `protobuf:"varint,2,opt,name=hero_badge_xp,json=heroBadgeXp" json:"hero_badge_xp,omitempty"` } @@ -3302,7 +3302,7 @@ func (*CMsgLobbyPlayerPlusSubscriptionData_HeroBadge) Descriptor() ([]byte, []in return file_dota_gcmessages_common_lobby_proto_rawDescGZIP(), []int{1, 0} } -func (x *CMsgLobbyPlayerPlusSubscriptionData_HeroBadge) GetHeroId() uint32 { +func (x *CMsgLobbyPlayerPlusSubscriptionData_HeroBadge) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -3718,7 +3718,7 @@ var file_dota_gcmessages_common_lobby_proto_rawDesc = []byte{ 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x42, 0x61, 0x64, 0x67, 0x65, 0x52, 0x0a, 0x68, 0x65, 0x72, 0x6f, 0x42, 0x61, 0x64, 0x67, 0x65, 0x73, 0x1a, 0x48, 0x0a, 0x09, 0x48, 0x65, 0x72, 0x6f, 0x42, 0x61, 0x64, 0x67, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x68, - 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, + 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x62, 0x61, 0x64, 0x67, 0x65, 0x5f, 0x78, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x68, 0x65, 0x72, 0x6f, 0x42, 0x61, 0x64, 0x67, 0x65, 0x58, 0x70, 0x22, 0x55, 0x0a, 0x13, 0x43, 0x4d, 0x73, 0x67, @@ -3823,7 +3823,7 @@ var file_dota_gcmessages_common_lobby_proto_rawDesc = []byte{ 0x64, 0x22, 0xad, 0x0e, 0x0a, 0x12, 0x43, 0x53, 0x4f, 0x44, 0x4f, 0x54, 0x41, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x02, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x43, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, @@ -3846,9 +3846,9 @@ var file_dota_gcmessages_common_lobby_proto_rawDesc = []byte{ 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x10, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, - 0x18, 0x14, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x18, 0x14, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x64, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x16, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x0a, 0x63, 0x6f, 0x61, 0x63, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, @@ -3934,7 +3934,7 @@ var file_dota_gcmessages_common_lobby_proto_rawDesc = []byte{ 0x28, 0x0d, 0x52, 0x15, 0x63, 0x6f, 0x6d, 0x6d, 0x73, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x39, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x0d, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, + 0x28, 0x05, 0x52, 0x0d, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x22, 0x1a, 0x0a, 0x18, 0x43, 0x53, 0x4f, 0x44, 0x4f, 0x54, 0x41, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x1a, 0x0a, 0x18, 0x43, 0x53, 0x4f, 0x44, 0x4f, 0x54, 0x41, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x4c, 0x6f, @@ -4316,7 +4316,7 @@ var file_dota_gcmessages_common_lobby_proto_rawDesc = []byte{ 0x6e, 0x74, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x1b, 0x65, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x69, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x18, 0x65, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x44, 0x69, + 0x03, 0x28, 0x05, 0x52, 0x18, 0x65, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x12, 0x35, 0x0a, 0x17, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x06, 0x52, 0x14, @@ -4353,7 +4353,7 @@ var file_dota_gcmessages_common_lobby_proto_rawDesc = []byte{ 0x6f, 0x62, 0x62, 0x79, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x10, 0x6c, 0x6f, 0x62, 0x62, 0x79, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x68, - 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x7c, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x10, 0x72, + 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x7c, 0x20, 0x03, 0x28, 0x05, 0x52, 0x10, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x12, 0x55, 0x0a, 0x15, 0x63, 0x6f, 0x61, 0x63, 0x68, 0x5f, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x7d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, diff --git a/dota/dota_gcmessages_common_lobby.proto b/dota/dota_gcmessages_common_lobby.proto index ec6f99e..a8c8913 100644 --- a/dota/dota_gcmessages_common_lobby.proto +++ b/dota/dota_gcmessages_common_lobby.proto @@ -34,7 +34,7 @@ message CMsgLobbyCoachFriendRequest { message CMsgLobbyPlayerPlusSubscriptionData { message HeroBadge { - optional uint32 hero_id = 1; + optional int32 hero_id = 1; optional uint32 hero_badge_xp = 2; } @@ -97,7 +97,7 @@ message CSODOTALobbyInvite { message CSODOTALobbyMember { optional fixed64 id = 1; - optional uint32 hero_id = 2; + optional int32 hero_id = 2; optional DOTA_GC_TEAM team = 3; optional string name = 6; optional uint32 slot = 7; @@ -108,8 +108,8 @@ message CSODOTALobbyMember { optional DOTALeaverStatus_t leaver_status = 16; optional uint32 leaver_actions = 28; optional uint32 channel = 17; - repeated uint32 disabled_hero_id = 20; - repeated uint32 enabled_hero_id = 22; + repeated int32 disabled_hero_id = 20; + repeated int32 enabled_hero_id = 22; optional DOTA_GC_TEAM coach_team = 23; repeated uint32 coached_account_ids = 53; optional uint32 coach_rating = 42; @@ -137,7 +137,7 @@ message CSODOTALobbyMember { optional bool is_steam_china = 54; optional uint32 live_spectator_account_id = 55; optional uint32 comms_reports_available = 56; - repeated uint32 banned_hero_ids = 57; + repeated int32 banned_hero_ids = 57; } message CSODOTAServerLobbyMember { @@ -323,7 +323,7 @@ message CSODOTALobby { optional DOTASelectionPriorityChoice series_current_non_priority_team_choice = 101; optional bool series_current_selection_priority_used_coin_toss = 102; optional EEvent current_primary_event = 103; - repeated uint32 emergency_disabled_hero_ids = 105; + repeated int32 emergency_disabled_hero_ids = 105; optional fixed64 custom_game_private_key = 106; optional bool custom_game_penalties = 107; optional string lan_host_ping_location = 109; @@ -334,7 +334,7 @@ message CSODOTALobby { repeated CLobbyGuildChallenge guild_challenges = 117; repeated CLobbyGuildDetails guild_details = 118; repeated CMsgLobbyEventPoints lobby_event_points = 119; - repeated uint32 requested_hero_ids = 124; + repeated int32 requested_hero_ids = 124; repeated CMsgLobbyCoachFriendRequest coach_friend_requests = 125; optional bool is_in_steam_china = 126; optional bool with_scenario_save = 127; diff --git a/dota/dota_gcmessages_common_match_management.pb.go b/dota/dota_gcmessages_common_match_management.pb.go index 1b48277..829cabc 100644 --- a/dota/dota_gcmessages_common_match_management.pb.go +++ b/dota/dota_gcmessages_common_match_management.pb.go @@ -1425,7 +1425,7 @@ type CSODOTAPartyMember struct { HasHpResource *bool `protobuf:"varint,15,opt,name=has_hp_resource,json=hasHpResource" json:"has_hp_resource,omitempty"` JoinedFromPartyfinder *bool `protobuf:"varint,12,opt,name=joined_from_partyfinder,json=joinedFromPartyfinder" json:"joined_from_partyfinder,omitempty"` IsSteamChina *bool `protobuf:"varint,16,opt,name=is_steam_china,json=isSteamChina" json:"is_steam_china,omitempty"` - BannedHeroIds []uint32 `protobuf:"varint,17,rep,name=banned_hero_ids,json=bannedHeroIds" json:"banned_hero_ids,omitempty"` + BannedHeroIds []int32 `protobuf:"varint,17,rep,name=banned_hero_ids,json=bannedHeroIds" json:"banned_hero_ids,omitempty"` } func (x *CSODOTAPartyMember) Reset() { @@ -1558,7 +1558,7 @@ func (x *CSODOTAPartyMember) GetIsSteamChina() bool { return false } -func (x *CSODOTAPartyMember) GetBannedHeroIds() []uint32 { +func (x *CSODOTAPartyMember) GetBannedHeroIds() []int32 { if x != nil { return x.BannedHeroIds } @@ -2875,7 +2875,7 @@ var file_dota_gcmessages_common_match_management_proto_rawDesc = []byte{ 0x6d, 0x5f, 0x63, 0x68, 0x69, 0x6e, 0x61, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x43, 0x68, 0x69, 0x6e, 0x61, 0x12, 0x26, 0x0a, 0x0f, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x11, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0d, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x48, 0x65, 0x72, 0x6f, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x22, 0xf1, 0x16, 0x0a, 0x0c, 0x43, 0x53, 0x4f, 0x44, 0x4f, 0x54, 0x41, 0x50, 0x61, 0x72, 0x74, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x61, 0x72, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x70, 0x61, 0x72, 0x74, 0x79, 0x49, 0x64, 0x12, diff --git a/dota/dota_gcmessages_common_match_management.proto b/dota/dota_gcmessages_common_match_management.proto index 248e680..943ee22 100644 --- a/dota/dota_gcmessages_common_match_management.proto +++ b/dota/dota_gcmessages_common_match_management.proto @@ -80,7 +80,7 @@ message CSODOTAPartyMember { optional bool has_hp_resource = 15; optional bool joined_from_partyfinder = 12; optional bool is_steam_china = 16; - repeated uint32 banned_hero_ids = 17; + repeated int32 banned_hero_ids = 17; } message CSODOTAParty { diff --git a/dota/dota_gcmessages_common_overworld.pb.go b/dota/dota_gcmessages_common_overworld.pb.go index 5e84d45..3deb262 100644 --- a/dota/dota_gcmessages_common_overworld.pb.go +++ b/dota/dota_gcmessages_common_overworld.pb.go @@ -98,6 +98,7 @@ const ( EOverworldAuditAction_k_eOverworldAuditAction_EncounterRewardTokenCost EOverworldAuditAction = 13 EOverworldAuditAction_k_eOverworldAuditAction_EncounterRewardTokenReward EOverworldAuditAction = 14 EOverworldAuditAction_k_eOverworldAuditAction_SupportGrantTokens EOverworldAuditAction = 16 + EOverworldAuditAction_k_eOverworldAuditAction_TokenGiftSent EOverworldAuditAction = 17 ) // Enum value maps for EOverworldAuditAction. @@ -119,6 +120,7 @@ var ( 13: "k_eOverworldAuditAction_EncounterRewardTokenCost", 14: "k_eOverworldAuditAction_EncounterRewardTokenReward", 16: "k_eOverworldAuditAction_SupportGrantTokens", + 17: "k_eOverworldAuditAction_TokenGiftSent", } EOverworldAuditAction_value = map[string]int32{ "k_eOverworldAuditAction_Invalid": 0, @@ -137,6 +139,7 @@ var ( "k_eOverworldAuditAction_EncounterRewardTokenCost": 13, "k_eOverworldAuditAction_EncounterRewardTokenReward": 14, "k_eOverworldAuditAction_SupportGrantTokens": 16, + "k_eOverworldAuditAction_TokenGiftSent": 17, } ) @@ -574,83 +577,22 @@ func (CMsgClientToGCOverworldMoveToNodeResponse_EResponse) EnumDescriptor() ([]b return file_dota_gcmessages_common_overworld_proto_rawDescGZIP(), []int{23, 0} } -type CMsgClientToGCOverworldTradeTokens_ETradeRecipe int32 - -const ( - CMsgClientToGCOverworldTradeTokens_k_eThreeToOneChosen CMsgClientToGCOverworldTradeTokens_ETradeRecipe = 1 - CMsgClientToGCOverworldTradeTokens_k_eFourToOneChosen CMsgClientToGCOverworldTradeTokens_ETradeRecipe = 2 - CMsgClientToGCOverworldTradeTokens_k_eThreeToTwoRandom CMsgClientToGCOverworldTradeTokens_ETradeRecipe = 3 - CMsgClientToGCOverworldTradeTokens_k_eSixScrapToOneChosen CMsgClientToGCOverworldTradeTokens_ETradeRecipe = 4 -) - -// Enum value maps for CMsgClientToGCOverworldTradeTokens_ETradeRecipe. -var ( - CMsgClientToGCOverworldTradeTokens_ETradeRecipe_name = map[int32]string{ - 1: "k_eThreeToOneChosen", - 2: "k_eFourToOneChosen", - 3: "k_eThreeToTwoRandom", - 4: "k_eSixScrapToOneChosen", - } - CMsgClientToGCOverworldTradeTokens_ETradeRecipe_value = map[string]int32{ - "k_eThreeToOneChosen": 1, - "k_eFourToOneChosen": 2, - "k_eThreeToTwoRandom": 3, - "k_eSixScrapToOneChosen": 4, - } -) - -func (x CMsgClientToGCOverworldTradeTokens_ETradeRecipe) Enum() *CMsgClientToGCOverworldTradeTokens_ETradeRecipe { - p := new(CMsgClientToGCOverworldTradeTokens_ETradeRecipe) - *p = x - return p -} - -func (x CMsgClientToGCOverworldTradeTokens_ETradeRecipe) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (CMsgClientToGCOverworldTradeTokens_ETradeRecipe) Descriptor() protoreflect.EnumDescriptor { - return file_dota_gcmessages_common_overworld_proto_enumTypes[7].Descriptor() -} - -func (CMsgClientToGCOverworldTradeTokens_ETradeRecipe) Type() protoreflect.EnumType { - return &file_dota_gcmessages_common_overworld_proto_enumTypes[7] -} - -func (x CMsgClientToGCOverworldTradeTokens_ETradeRecipe) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Do not use. -func (x *CMsgClientToGCOverworldTradeTokens_ETradeRecipe) UnmarshalJSON(b []byte) error { - num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) - if err != nil { - return err - } - *x = CMsgClientToGCOverworldTradeTokens_ETradeRecipe(num) - return nil -} - -// Deprecated: Use CMsgClientToGCOverworldTradeTokens_ETradeRecipe.Descriptor instead. -func (CMsgClientToGCOverworldTradeTokens_ETradeRecipe) EnumDescriptor() ([]byte, []int) { - return file_dota_gcmessages_common_overworld_proto_rawDescGZIP(), []int{24, 0} -} - type CMsgClientToGCOverworldTradeTokensResponse_EResponse int32 const ( - CMsgClientToGCOverworldTradeTokensResponse_k_eInternalError CMsgClientToGCOverworldTradeTokensResponse_EResponse = 0 - CMsgClientToGCOverworldTradeTokensResponse_k_eSuccess CMsgClientToGCOverworldTradeTokensResponse_EResponse = 1 - CMsgClientToGCOverworldTradeTokensResponse_k_eTooBusy CMsgClientToGCOverworldTradeTokensResponse_EResponse = 2 - CMsgClientToGCOverworldTradeTokensResponse_k_eDisabled CMsgClientToGCOverworldTradeTokensResponse_EResponse = 3 - CMsgClientToGCOverworldTradeTokensResponse_k_eTimeout CMsgClientToGCOverworldTradeTokensResponse_EResponse = 4 - CMsgClientToGCOverworldTradeTokensResponse_k_eNotAllowed CMsgClientToGCOverworldTradeTokensResponse_EResponse = 5 - CMsgClientToGCOverworldTradeTokensResponse_k_eNodeLocked CMsgClientToGCOverworldTradeTokensResponse_EResponse = 6 - CMsgClientToGCOverworldTradeTokensResponse_k_eInvalidOverworld CMsgClientToGCOverworldTradeTokensResponse_EResponse = 7 - CMsgClientToGCOverworldTradeTokensResponse_k_eInvalidOffer CMsgClientToGCOverworldTradeTokensResponse_EResponse = 8 - CMsgClientToGCOverworldTradeTokensResponse_k_eNotEnoughTokens CMsgClientToGCOverworldTradeTokensResponse_EResponse = 9 - CMsgClientToGCOverworldTradeTokensResponse_k_eInvalidNode CMsgClientToGCOverworldTradeTokensResponse_EResponse = 10 - CMsgClientToGCOverworldTradeTokensResponse_k_eInvalidEncounter CMsgClientToGCOverworldTradeTokensResponse_EResponse = 11 + CMsgClientToGCOverworldTradeTokensResponse_k_eInternalError CMsgClientToGCOverworldTradeTokensResponse_EResponse = 0 + CMsgClientToGCOverworldTradeTokensResponse_k_eSuccess CMsgClientToGCOverworldTradeTokensResponse_EResponse = 1 + CMsgClientToGCOverworldTradeTokensResponse_k_eTooBusy CMsgClientToGCOverworldTradeTokensResponse_EResponse = 2 + CMsgClientToGCOverworldTradeTokensResponse_k_eDisabled CMsgClientToGCOverworldTradeTokensResponse_EResponse = 3 + CMsgClientToGCOverworldTradeTokensResponse_k_eTimeout CMsgClientToGCOverworldTradeTokensResponse_EResponse = 4 + CMsgClientToGCOverworldTradeTokensResponse_k_eNotAllowed CMsgClientToGCOverworldTradeTokensResponse_EResponse = 5 + CMsgClientToGCOverworldTradeTokensResponse_k_eNodeLocked CMsgClientToGCOverworldTradeTokensResponse_EResponse = 6 + CMsgClientToGCOverworldTradeTokensResponse_k_eInvalidOverworld CMsgClientToGCOverworldTradeTokensResponse_EResponse = 7 + CMsgClientToGCOverworldTradeTokensResponse_k_eInvalidOffer CMsgClientToGCOverworldTradeTokensResponse_EResponse = 8 + CMsgClientToGCOverworldTradeTokensResponse_k_eNotEnoughTokens CMsgClientToGCOverworldTradeTokensResponse_EResponse = 9 + CMsgClientToGCOverworldTradeTokensResponse_k_eInvalidNode CMsgClientToGCOverworldTradeTokensResponse_EResponse = 10 + CMsgClientToGCOverworldTradeTokensResponse_k_eInvalidEncounter CMsgClientToGCOverworldTradeTokensResponse_EResponse = 11 + CMsgClientToGCOverworldTradeTokensResponse_k_eRewardDoesNotMatchRecipe CMsgClientToGCOverworldTradeTokensResponse_EResponse = 12 ) // Enum value maps for CMsgClientToGCOverworldTradeTokensResponse_EResponse. @@ -668,20 +610,22 @@ var ( 9: "k_eNotEnoughTokens", 10: "k_eInvalidNode", 11: "k_eInvalidEncounter", + 12: "k_eRewardDoesNotMatchRecipe", } CMsgClientToGCOverworldTradeTokensResponse_EResponse_value = map[string]int32{ - "k_eInternalError": 0, - "k_eSuccess": 1, - "k_eTooBusy": 2, - "k_eDisabled": 3, - "k_eTimeout": 4, - "k_eNotAllowed": 5, - "k_eNodeLocked": 6, - "k_eInvalidOverworld": 7, - "k_eInvalidOffer": 8, - "k_eNotEnoughTokens": 9, - "k_eInvalidNode": 10, - "k_eInvalidEncounter": 11, + "k_eInternalError": 0, + "k_eSuccess": 1, + "k_eTooBusy": 2, + "k_eDisabled": 3, + "k_eTimeout": 4, + "k_eNotAllowed": 5, + "k_eNodeLocked": 6, + "k_eInvalidOverworld": 7, + "k_eInvalidOffer": 8, + "k_eNotEnoughTokens": 9, + "k_eInvalidNode": 10, + "k_eInvalidEncounter": 11, + "k_eRewardDoesNotMatchRecipe": 12, } ) @@ -696,11 +640,11 @@ func (x CMsgClientToGCOverworldTradeTokensResponse_EResponse) String() string { } func (CMsgClientToGCOverworldTradeTokensResponse_EResponse) Descriptor() protoreflect.EnumDescriptor { - return file_dota_gcmessages_common_overworld_proto_enumTypes[8].Descriptor() + return file_dota_gcmessages_common_overworld_proto_enumTypes[7].Descriptor() } func (CMsgClientToGCOverworldTradeTokensResponse_EResponse) Type() protoreflect.EnumType { - return &file_dota_gcmessages_common_overworld_proto_enumTypes[8] + return &file_dota_gcmessages_common_overworld_proto_enumTypes[7] } func (x CMsgClientToGCOverworldTradeTokensResponse_EResponse) Number() protoreflect.EnumNumber { @@ -782,11 +726,11 @@ func (x CMsgClientToGCOverworldGiftTokensResponse_EResponse) String() string { } func (CMsgClientToGCOverworldGiftTokensResponse_EResponse) Descriptor() protoreflect.EnumDescriptor { - return file_dota_gcmessages_common_overworld_proto_enumTypes[9].Descriptor() + return file_dota_gcmessages_common_overworld_proto_enumTypes[8].Descriptor() } func (CMsgClientToGCOverworldGiftTokensResponse_EResponse) Type() protoreflect.EnumType { - return &file_dota_gcmessages_common_overworld_proto_enumTypes[9] + return &file_dota_gcmessages_common_overworld_proto_enumTypes[8] } func (x CMsgClientToGCOverworldGiftTokensResponse_EResponse) Number() protoreflect.EnumNumber { @@ -853,11 +797,11 @@ func (x CMsgClientToGCOverworldDevResetAllResponse_EResponse) String() string { } func (CMsgClientToGCOverworldDevResetAllResponse_EResponse) Descriptor() protoreflect.EnumDescriptor { - return file_dota_gcmessages_common_overworld_proto_enumTypes[10].Descriptor() + return file_dota_gcmessages_common_overworld_proto_enumTypes[9].Descriptor() } func (CMsgClientToGCOverworldDevResetAllResponse_EResponse) Type() protoreflect.EnumType { - return &file_dota_gcmessages_common_overworld_proto_enumTypes[10] + return &file_dota_gcmessages_common_overworld_proto_enumTypes[9] } func (x CMsgClientToGCOverworldDevResetAllResponse_EResponse) Number() protoreflect.EnumNumber { @@ -927,11 +871,11 @@ func (x CMsgClientToGCOverworldDevResetNodeResponse_EResponse) String() string { } func (CMsgClientToGCOverworldDevResetNodeResponse_EResponse) Descriptor() protoreflect.EnumDescriptor { - return file_dota_gcmessages_common_overworld_proto_enumTypes[11].Descriptor() + return file_dota_gcmessages_common_overworld_proto_enumTypes[10].Descriptor() } func (CMsgClientToGCOverworldDevResetNodeResponse_EResponse) Type() protoreflect.EnumType { - return &file_dota_gcmessages_common_overworld_proto_enumTypes[11] + return &file_dota_gcmessages_common_overworld_proto_enumTypes[10] } func (x CMsgClientToGCOverworldDevResetNodeResponse_EResponse) Number() protoreflect.EnumNumber { @@ -998,11 +942,11 @@ func (x CMsgClientToGCOverworldDevGrantTokensResponse_EResponse) String() string } func (CMsgClientToGCOverworldDevGrantTokensResponse_EResponse) Descriptor() protoreflect.EnumDescriptor { - return file_dota_gcmessages_common_overworld_proto_enumTypes[12].Descriptor() + return file_dota_gcmessages_common_overworld_proto_enumTypes[11].Descriptor() } func (CMsgClientToGCOverworldDevGrantTokensResponse_EResponse) Type() protoreflect.EnumType { - return &file_dota_gcmessages_common_overworld_proto_enumTypes[12] + return &file_dota_gcmessages_common_overworld_proto_enumTypes[11] } func (x CMsgClientToGCOverworldDevGrantTokensResponse_EResponse) Number() protoreflect.EnumNumber { @@ -1069,11 +1013,11 @@ func (x CMsgClientToGCOverworldDevClearInventoryResponse_EResponse) String() str } func (CMsgClientToGCOverworldDevClearInventoryResponse_EResponse) Descriptor() protoreflect.EnumDescriptor { - return file_dota_gcmessages_common_overworld_proto_enumTypes[13].Descriptor() + return file_dota_gcmessages_common_overworld_proto_enumTypes[12].Descriptor() } func (CMsgClientToGCOverworldDevClearInventoryResponse_EResponse) Type() protoreflect.EnumType { - return &file_dota_gcmessages_common_overworld_proto_enumTypes[13] + return &file_dota_gcmessages_common_overworld_proto_enumTypes[12] } func (x CMsgClientToGCOverworldDevClearInventoryResponse_EResponse) Number() protoreflect.EnumNumber { @@ -1140,11 +1084,11 @@ func (x CMsgClientToGCOverworldFeedbackResponse_EResponse) String() string { } func (CMsgClientToGCOverworldFeedbackResponse_EResponse) Descriptor() protoreflect.EnumDescriptor { - return file_dota_gcmessages_common_overworld_proto_enumTypes[14].Descriptor() + return file_dota_gcmessages_common_overworld_proto_enumTypes[13].Descriptor() } func (CMsgClientToGCOverworldFeedbackResponse_EResponse) Type() protoreflect.EnumType { - return &file_dota_gcmessages_common_overworld_proto_enumTypes[14] + return &file_dota_gcmessages_common_overworld_proto_enumTypes[13] } func (x CMsgClientToGCOverworldFeedbackResponse_EResponse) Number() protoreflect.EnumNumber { @@ -1199,11 +1143,11 @@ func (x CMsgClientToGCOverworldGetDynamicImageResponse_EDynamicImageFormat) Stri } func (CMsgClientToGCOverworldGetDynamicImageResponse_EDynamicImageFormat) Descriptor() protoreflect.EnumDescriptor { - return file_dota_gcmessages_common_overworld_proto_enumTypes[15].Descriptor() + return file_dota_gcmessages_common_overworld_proto_enumTypes[14].Descriptor() } func (CMsgClientToGCOverworldGetDynamicImageResponse_EDynamicImageFormat) Type() protoreflect.EnumType { - return &file_dota_gcmessages_common_overworld_proto_enumTypes[15] + return &file_dota_gcmessages_common_overworld_proto_enumTypes[14] } func (x CMsgClientToGCOverworldGetDynamicImageResponse_EDynamicImageFormat) Number() protoreflect.EnumNumber { @@ -1426,7 +1370,7 @@ type CMsgOverworldHeroList struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroIds []uint32 `protobuf:"varint,1,rep,name=hero_ids,json=heroIds" json:"hero_ids,omitempty"` + HeroIds []int32 `protobuf:"varint,1,rep,name=hero_ids,json=heroIds" json:"hero_ids,omitempty"` } func (x *CMsgOverworldHeroList) Reset() { @@ -1461,7 +1405,7 @@ func (*CMsgOverworldHeroList) Descriptor() ([]byte, []int) { return file_dota_gcmessages_common_overworld_proto_rawDescGZIP(), []int{4} } -func (x *CMsgOverworldHeroList) GetHeroIds() []uint32 { +func (x *CMsgOverworldHeroList) GetHeroIds() []int32 { if x != nil { return x.HeroIds } @@ -2550,11 +2494,11 @@ type CMsgClientToGCOverworldTradeTokens struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - OverworldId *uint32 `protobuf:"varint,1,opt,name=overworld_id,json=overworldId" json:"overworld_id,omitempty"` - TokenOffer *CMsgOverworldTokenQuantity `protobuf:"bytes,2,opt,name=token_offer,json=tokenOffer" json:"token_offer,omitempty"` - TokenRequest *CMsgOverworldTokenQuantity `protobuf:"bytes,3,opt,name=token_request,json=tokenRequest" json:"token_request,omitempty"` - Recipe *CMsgClientToGCOverworldTradeTokens_ETradeRecipe `protobuf:"varint,4,opt,name=recipe,enum=dota.CMsgClientToGCOverworldTradeTokens_ETradeRecipe" json:"recipe,omitempty"` - EncounterId *uint32 `protobuf:"varint,5,opt,name=encounter_id,json=encounterId" json:"encounter_id,omitempty"` + OverworldId *uint32 `protobuf:"varint,1,opt,name=overworld_id,json=overworldId" json:"overworld_id,omitempty"` + TokenOffer *CMsgOverworldTokenQuantity `protobuf:"bytes,2,opt,name=token_offer,json=tokenOffer" json:"token_offer,omitempty"` + TokenRequest *CMsgOverworldTokenQuantity `protobuf:"bytes,3,opt,name=token_request,json=tokenRequest" json:"token_request,omitempty"` + Recipe *uint32 `protobuf:"varint,4,opt,name=recipe" json:"recipe,omitempty"` + EncounterId *uint32 `protobuf:"varint,5,opt,name=encounter_id,json=encounterId" json:"encounter_id,omitempty"` } func (x *CMsgClientToGCOverworldTradeTokens) Reset() { @@ -2610,11 +2554,11 @@ func (x *CMsgClientToGCOverworldTradeTokens) GetTokenRequest() *CMsgOverworldTok return nil } -func (x *CMsgClientToGCOverworldTradeTokens) GetRecipe() CMsgClientToGCOverworldTradeTokens_ETradeRecipe { +func (x *CMsgClientToGCOverworldTradeTokens) GetRecipe() uint32 { if x != nil && x.Recipe != nil { return *x.Recipe } - return CMsgClientToGCOverworldTradeTokens_k_eThreeToOneChosen + return 0 } func (x *CMsgClientToGCOverworldTradeTokens) GetEncounterId() uint32 { @@ -3741,7 +3685,7 @@ var file_dota_gcmessages_common_overworld_proto_rawDesc = []byte{ 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x32, 0x0a, 0x15, 0x43, 0x4d, 0x73, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x48, 0x65, 0x72, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x0a, - 0x08, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x08, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x22, 0x7c, 0x0a, 0x24, 0x43, 0x4d, 0x73, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x43, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x61, 0x74, 0x61, @@ -4001,8 +3945,8 @@ var file_dota_gcmessages_common_overworld_proto_rawDesc = []byte{ 0x0a, 0x13, 0x6b, 0x5f, 0x65, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x6b, 0x5f, 0x65, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x6b, - 0x5f, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0x07, 0x22, 0xb9, - 0x03, 0x0a, 0x22, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, + 0x5f, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0x07, 0x22, 0x8c, + 0x02, 0x0a, 0x22, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x54, 0x72, 0x61, 0x64, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6f, 0x76, 0x65, @@ -4015,304 +3959,298 @@ var file_dota_gcmessages_common_overworld_proto_rawDesc = []byte{ 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x0c, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x69, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, - 0x64, 0x54, 0x72, 0x61, 0x64, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x2e, 0x45, 0x54, 0x72, - 0x61, 0x64, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x65, 0x52, 0x06, 0x72, 0x65, 0x63, 0x69, 0x70, - 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x49, 0x64, 0x22, 0x74, 0x0a, 0x0c, 0x45, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, - 0x63, 0x69, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, 0x65, 0x54, 0x68, 0x72, 0x65, 0x65, - 0x54, 0x6f, 0x4f, 0x6e, 0x65, 0x43, 0x68, 0x6f, 0x73, 0x65, 0x6e, 0x10, 0x01, 0x12, 0x16, 0x0a, - 0x12, 0x6b, 0x5f, 0x65, 0x46, 0x6f, 0x75, 0x72, 0x54, 0x6f, 0x4f, 0x6e, 0x65, 0x43, 0x68, 0x6f, - 0x73, 0x65, 0x6e, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, 0x65, 0x54, 0x68, 0x72, 0x65, - 0x65, 0x54, 0x6f, 0x54, 0x77, 0x6f, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x10, 0x03, 0x12, 0x1a, - 0x0a, 0x16, 0x6b, 0x5f, 0x65, 0x53, 0x69, 0x78, 0x53, 0x63, 0x72, 0x61, 0x70, 0x54, 0x6f, 0x4f, - 0x6e, 0x65, 0x43, 0x68, 0x6f, 0x73, 0x65, 0x6e, 0x10, 0x04, 0x22, 0xcd, 0x03, 0x0a, 0x2a, 0x43, - 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x4f, 0x76, 0x65, - 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x54, 0x72, 0x61, 0x64, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x08, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3a, 0x2e, 0x64, 0x6f, - 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, - 0x43, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x54, 0x72, 0x61, 0x64, 0x65, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x49, 0x0a, 0x0f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x64, 0x6f, 0x74, - 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x22, 0xfb, 0x01, 0x0a, - 0x09, 0x45, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x6b, 0x5f, - 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x00, - 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x01, - 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x54, 0x6f, 0x6f, 0x42, 0x75, 0x73, 0x79, 0x10, 0x02, - 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x5f, 0x65, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x10, - 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x10, - 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x6b, 0x5f, 0x65, 0x4e, 0x6f, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, - 0x65, 0x64, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x6b, 0x5f, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x4c, - 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0x06, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, 0x65, 0x49, 0x6e, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x10, 0x07, - 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x5f, 0x65, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4f, 0x66, - 0x66, 0x65, 0x72, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x6b, 0x5f, 0x65, 0x4e, 0x6f, 0x74, 0x45, - 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x10, 0x09, 0x12, 0x12, 0x0a, - 0x0e, 0x6b, 0x5f, 0x65, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x10, - 0x0a, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, 0x65, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x45, - 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x10, 0x0b, 0x22, 0xe8, 0x01, 0x0a, 0x21, 0x43, - 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x4f, 0x76, 0x65, - 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x47, 0x69, 0x66, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, - 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, - 0x64, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x0a, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x67, 0x69, 0x66, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, - 0x4d, 0x73, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x47, 0x69, 0x66, - 0x74, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x12, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x5f, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x12, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x52, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x49, 0x64, 0x22, 0x8d, 0x03, 0x0a, 0x29, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, - 0x64, 0x47, 0x69, 0x66, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, + 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x69, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x63, 0x69, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0b, 0x65, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0xee, 0x03, + 0x0a, 0x2a, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, + 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x54, 0x72, 0x61, 0x64, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x08, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3a, + 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x54, 0x6f, 0x47, 0x43, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x54, 0x72, 0x61, + 0x64, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x45, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x5f, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, + 0x6c, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, + 0x0e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x22, + 0x9c, 0x02, 0x0a, 0x09, 0x45, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, + 0x10, 0x6b, 0x5f, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x54, 0x6f, 0x6f, 0x42, 0x75, 0x73, + 0x79, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x5f, 0x65, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, + 0x75, 0x74, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x6b, 0x5f, 0x65, 0x4e, 0x6f, 0x74, 0x41, 0x6c, + 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x6b, 0x5f, 0x65, 0x4e, 0x6f, + 0x64, 0x65, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0x06, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, + 0x65, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, + 0x64, 0x10, 0x07, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x5f, 0x65, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x6b, 0x5f, 0x65, 0x4e, + 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x10, 0x09, + 0x12, 0x12, 0x0a, 0x0e, 0x6b, 0x5f, 0x65, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4e, 0x6f, + 0x64, 0x65, 0x10, 0x0a, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, 0x65, 0x49, 0x6e, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x10, 0x0b, 0x12, 0x1f, 0x0a, + 0x1b, 0x6b, 0x5f, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x6f, 0x65, 0x73, 0x4e, 0x6f, + 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x63, 0x69, 0x70, 0x65, 0x10, 0x0c, 0x22, 0xe8, + 0x01, 0x0a, 0x21, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, + 0x43, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x47, 0x69, 0x66, 0x74, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, + 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6f, 0x76, 0x65, 0x72, + 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x0a, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x5f, 0x67, 0x69, 0x66, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x64, 0x6f, + 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x09, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x47, 0x69, 0x66, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x12, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x65, 0x72, 0x69, 0x6f, + 0x64, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x22, 0x8d, 0x03, 0x0a, 0x29, 0x43, 0x4d, + 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x4f, 0x76, 0x65, 0x72, + 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x47, 0x69, 0x66, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x64, 0x6f, 0x74, 0x61, + 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x4f, + 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x47, 0x69, 0x66, 0x74, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x88, + 0x02, 0x0a, 0x09, 0x45, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x10, + 0x6b, 0x5f, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x54, 0x6f, 0x6f, 0x42, 0x75, 0x73, 0x79, + 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x5f, 0x65, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, + 0x74, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x6b, 0x5f, 0x65, 0x4e, 0x6f, 0x74, 0x41, 0x6c, 0x6c, + 0x6f, 0x77, 0x65, 0x64, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x6b, 0x5f, 0x65, 0x4e, 0x6f, 0x64, + 0x65, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0x06, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, 0x65, + 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, + 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x6b, 0x5f, 0x65, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x47, 0x69, 0x66, 0x74, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x6b, 0x5f, 0x65, 0x4e, 0x6f, 0x74, + 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x10, 0x09, 0x12, 0x17, + 0x0a, 0x13, 0x6b, 0x5f, 0x65, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x52, 0x65, 0x63, 0x69, + 0x70, 0x69, 0x65, 0x6e, 0x74, 0x10, 0x0a, 0x12, 0x20, 0x0a, 0x1c, 0x6b, 0x5f, 0x65, 0x4e, 0x6f, + 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x10, 0x0b, 0x22, 0x47, 0x0a, 0x22, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x4f, 0x76, 0x65, 0x72, 0x77, - 0x6f, 0x72, 0x6c, 0x64, 0x47, 0x69, 0x66, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x88, 0x02, 0x0a, 0x09, 0x45, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x6b, 0x5f, 0x65, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x00, 0x12, 0x0e, - 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x01, 0x12, 0x0e, - 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x54, 0x6f, 0x6f, 0x42, 0x75, 0x73, 0x79, 0x10, 0x02, 0x12, 0x0f, - 0x0a, 0x0b, 0x6b, 0x5f, 0x65, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x10, 0x03, 0x12, - 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x10, 0x04, 0x12, - 0x11, 0x0a, 0x0d, 0x6b, 0x5f, 0x65, 0x4e, 0x6f, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x6b, 0x5f, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x6f, 0x63, - 0x6b, 0x65, 0x64, 0x10, 0x06, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, 0x65, 0x49, 0x6e, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x10, 0x07, 0x12, 0x12, - 0x0a, 0x0e, 0x6b, 0x5f, 0x65, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x47, 0x69, 0x66, 0x74, - 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x6b, 0x5f, 0x65, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, - 0x67, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x10, 0x09, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, - 0x65, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, - 0x74, 0x10, 0x0a, 0x12, 0x20, 0x0a, 0x1c, 0x6b, 0x5f, 0x65, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, - 0x75, 0x67, 0x68, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x52, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x10, 0x0b, 0x22, 0x47, 0x0a, 0x22, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, - 0x44, 0x65, 0x76, 0x52, 0x65, 0x73, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x6f, - 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0b, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x49, 0x64, 0x22, 0x95, - 0x02, 0x0a, 0x2a, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, - 0x43, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x44, 0x65, 0x76, 0x52, 0x65, 0x73, - 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, - 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x3a, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x6f, 0x72, 0x6c, 0x64, 0x44, 0x65, 0x76, 0x52, 0x65, 0x73, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x12, + 0x21, 0x0a, 0x0c, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, + 0x49, 0x64, 0x22, 0x95, 0x02, 0x0a, 0x2a, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x44, 0x65, 0x76, 0x52, 0x65, 0x73, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x2e, 0x45, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x09, 0x45, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x6b, 0x5f, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, - 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, - 0x54, 0x6f, 0x6f, 0x42, 0x75, 0x73, 0x79, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x5f, 0x65, - 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x6b, 0x5f, - 0x65, 0x4e, 0x6f, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x10, 0x05, 0x12, 0x17, 0x0a, - 0x13, 0x6b, 0x5f, 0x65, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4f, 0x76, 0x65, 0x72, 0x77, - 0x6f, 0x72, 0x6c, 0x64, 0x10, 0x06, 0x22, 0x61, 0x0a, 0x23, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, - 0x64, 0x44, 0x65, 0x76, 0x52, 0x65, 0x73, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, - 0x0c, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x49, 0x64, - 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0xab, 0x02, 0x0a, 0x2b, 0x43, 0x4d, + 0x65, 0x12, 0x56, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x3a, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, + 0x6c, 0x64, 0x44, 0x65, 0x76, 0x52, 0x65, 0x73, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, + 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x09, 0x45, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x6b, 0x5f, 0x65, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x00, 0x12, 0x0e, 0x0a, + 0x0a, 0x6b, 0x5f, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x01, 0x12, 0x0e, 0x0a, + 0x0a, 0x6b, 0x5f, 0x65, 0x54, 0x6f, 0x6f, 0x42, 0x75, 0x73, 0x79, 0x10, 0x02, 0x12, 0x0f, 0x0a, + 0x0b, 0x6b, 0x5f, 0x65, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x10, 0x03, 0x12, 0x0e, + 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x10, 0x04, 0x12, 0x11, + 0x0a, 0x0d, 0x6b, 0x5f, 0x65, 0x4e, 0x6f, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x10, + 0x05, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, 0x65, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4f, + 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x10, 0x06, 0x22, 0x61, 0x0a, 0x23, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x44, 0x65, 0x76, 0x52, 0x65, 0x73, 0x65, 0x74, 0x4e, 0x6f, 0x64, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x08, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x64, 0x6f, - 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, - 0x43, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x44, 0x65, 0x76, 0x52, 0x65, 0x73, - 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0xa2, 0x01, 0x0a, 0x09, 0x45, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x14, 0x0a, 0x10, 0x6b, 0x5f, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x53, 0x75, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x54, 0x6f, 0x6f, - 0x42, 0x75, 0x73, 0x79, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x5f, 0x65, 0x44, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x64, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x6b, 0x5f, 0x65, 0x4e, 0x6f, - 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, - 0x65, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, - 0x64, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x6b, 0x5f, 0x65, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x10, 0x07, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x43, 0x4d, 0x73, 0x67, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, - 0x72, 0x6c, 0x64, 0x44, 0x65, 0x76, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x5f, 0x69, + 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, - 0x6c, 0x64, 0x49, 0x64, 0x12, 0x47, 0x0a, 0x0e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x71, 0x75, - 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x64, - 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, - 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x0d, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x22, 0x9b, 0x02, - 0x0a, 0x2d, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, - 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x44, 0x65, 0x76, 0x47, 0x72, 0x61, 0x6e, - 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x59, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x3d, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, - 0x44, 0x65, 0x76, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x09, 0x45, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x6b, 0x5f, 0x65, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x00, 0x12, 0x0e, - 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x01, 0x12, 0x0e, - 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x54, 0x6f, 0x6f, 0x42, 0x75, 0x73, 0x79, 0x10, 0x02, 0x12, 0x0f, - 0x0a, 0x0b, 0x6b, 0x5f, 0x65, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x10, 0x03, 0x12, - 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x10, 0x04, 0x12, - 0x11, 0x0a, 0x0d, 0x6b, 0x5f, 0x65, 0x4e, 0x6f, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, 0x65, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x10, 0x06, 0x22, 0x4d, 0x0a, 0x28, 0x43, - 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x4f, 0x76, 0x65, - 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x44, 0x65, 0x76, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x49, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x76, 0x65, 0x72, 0x77, - 0x6f, 0x72, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6f, - 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x49, 0x64, 0x22, 0xa1, 0x02, 0x0a, 0x30, 0x43, + 0x6c, 0x64, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0xab, 0x02, + 0x0a, 0x2b, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, + 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x44, 0x65, 0x76, 0x52, 0x65, 0x73, 0x65, + 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, + 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x3b, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x54, 0x6f, 0x47, 0x43, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x44, 0x65, + 0x76, 0x52, 0x65, 0x73, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x45, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x08, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa2, 0x01, 0x0a, 0x09, 0x45, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x6b, 0x5f, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, + 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, + 0x65, 0x54, 0x6f, 0x6f, 0x42, 0x75, 0x73, 0x79, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x5f, + 0x65, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, + 0x5f, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x6b, + 0x5f, 0x65, 0x4e, 0x6f, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x10, 0x05, 0x12, 0x17, + 0x0a, 0x13, 0x6b, 0x5f, 0x65, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4f, 0x76, 0x65, 0x72, + 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x6b, 0x5f, 0x65, 0x49, 0x6e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x10, 0x07, 0x22, 0x93, 0x01, 0x0a, 0x25, + 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x4f, 0x76, + 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x44, 0x65, 0x76, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, + 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6f, 0x76, 0x65, + 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x47, 0x0a, 0x0e, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x4f, 0x76, 0x65, 0x72, + 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x52, 0x0d, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x22, 0x9b, 0x02, 0x0a, 0x2d, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x54, 0x6f, 0x47, 0x43, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x44, 0x65, 0x76, + 0x47, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3d, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, + 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x4f, 0x76, 0x65, 0x72, 0x77, + 0x6f, 0x72, 0x6c, 0x64, 0x44, 0x65, 0x76, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8e, + 0x01, 0x0a, 0x09, 0x45, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x10, + 0x6b, 0x5f, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x54, 0x6f, 0x6f, 0x42, 0x75, 0x73, 0x79, + 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x5f, 0x65, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, + 0x74, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x6b, 0x5f, 0x65, 0x4e, 0x6f, 0x74, 0x41, 0x6c, 0x6c, + 0x6f, 0x77, 0x65, 0x64, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, 0x65, 0x49, 0x6e, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x10, 0x06, 0x22, + 0x4d, 0x0a, 0x28, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, + 0x43, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x44, 0x65, 0x76, 0x43, 0x6c, 0x65, + 0x61, 0x72, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x6f, + 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0b, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x49, 0x64, 0x22, 0xa1, + 0x02, 0x0a, 0x30, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, + 0x43, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x44, 0x65, 0x76, 0x43, 0x6c, 0x65, + 0x61, 0x72, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x40, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, + 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x4f, 0x76, 0x65, 0x72, 0x77, + 0x6f, 0x72, 0x6c, 0x64, 0x44, 0x65, 0x76, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x49, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x09, 0x45, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x14, 0x0a, 0x10, 0x6b, 0x5f, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x53, 0x75, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x54, 0x6f, 0x6f, 0x42, + 0x75, 0x73, 0x79, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x5f, 0x65, 0x44, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x6b, 0x5f, 0x65, 0x4e, 0x6f, 0x74, + 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, 0x65, + 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, + 0x10, 0x06, 0x22, 0x7c, 0x0a, 0x1f, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x54, 0x6f, 0x47, 0x43, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x46, 0x65, 0x65, + 0x64, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, + 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, + 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, + 0x22, 0x8f, 0x02, 0x0a, 0x27, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, + 0x6f, 0x47, 0x43, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x46, 0x65, 0x65, 0x64, + 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x08, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, + 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x54, 0x6f, 0x47, 0x43, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x46, 0x65, 0x65, + 0x64, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x09, 0x45, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x14, 0x0a, 0x10, 0x6b, 0x5f, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x53, 0x75, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x54, 0x6f, 0x6f, 0x42, + 0x75, 0x73, 0x79, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x5f, 0x65, 0x44, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x6b, 0x5f, 0x65, 0x4e, 0x6f, 0x74, + 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, 0x65, + 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, + 0x10, 0x06, 0x22, 0x75, 0x0a, 0x26, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x54, 0x6f, 0x47, 0x43, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x47, 0x65, 0x74, + 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x6d, 0x61, 0x67, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x61, 0x67, + 0x69, 0x63, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x9a, 0x03, 0x0a, 0x2e, 0x43, 0x4d, + 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x4f, 0x76, 0x65, 0x72, + 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x47, 0x65, 0x74, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x52, 0x0a, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x4f, 0x76, 0x65, - 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x44, 0x65, 0x76, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x49, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x5c, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x40, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, - 0x44, 0x65, 0x76, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8e, 0x01, - 0x0a, 0x09, 0x45, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x6b, - 0x5f, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, - 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, - 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x54, 0x6f, 0x6f, 0x42, 0x75, 0x73, 0x79, 0x10, - 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x5f, 0x65, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, - 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x6b, 0x5f, 0x65, 0x4e, 0x6f, 0x74, 0x41, 0x6c, 0x6c, 0x6f, - 0x77, 0x65, 0x64, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, 0x65, 0x49, 0x6e, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x10, 0x06, 0x22, 0x7c, - 0x0a, 0x1f, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, - 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x46, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, - 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x21, 0x0a, - 0x0c, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x49, 0x64, - 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x22, 0x8f, 0x02, 0x0a, - 0x27, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x4f, - 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x46, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x64, 0x6f, 0x74, - 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, - 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x46, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, - 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8e, 0x01, - 0x0a, 0x09, 0x45, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x6b, - 0x5f, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, - 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, - 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x54, 0x6f, 0x6f, 0x42, 0x75, 0x73, 0x79, 0x10, - 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x5f, 0x65, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, - 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x6b, 0x5f, 0x65, 0x4e, 0x6f, 0x74, 0x41, 0x6c, 0x6c, 0x6f, - 0x77, 0x65, 0x64, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, 0x65, 0x49, 0x6e, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x10, 0x06, 0x22, 0x75, - 0x0a, 0x26, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, - 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x47, 0x65, 0x74, 0x44, 0x79, 0x6e, 0x61, - 0x6d, 0x69, 0x63, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x67, 0x69, - 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x12, 0x19, - 0x0a, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x07, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, - 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x61, 0x6e, - 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x9a, 0x03, 0x0a, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, - 0x64, 0x47, 0x65, 0x74, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x6d, 0x61, 0x67, - 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x69, 0x6d, 0x61, 0x67, - 0x65, 0x49, 0x64, 0x12, 0x52, 0x0a, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x43, + 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x47, 0x65, 0x74, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x52, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x1a, 0xb8, 0x01, 0x0a, 0x05, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x12, 0x60, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x48, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x47, 0x65, 0x74, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, - 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x1a, 0xb8, 0x01, 0x0a, 0x05, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, - 0x60, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x48, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x54, 0x6f, 0x47, 0x43, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x47, 0x65, - 0x74, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x49, 0x6d, - 0x61, 0x67, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x79, 0x74, - 0x65, 0x73, 0x22, 0x3e, 0x0a, 0x13, 0x45, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x49, 0x6d, - 0x61, 0x67, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x65, - 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x6b, 0x5f, 0x65, - 0x50, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x6b, 0x5f, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x10, 0x02, 0x2a, 0x7e, 0x0a, 0x13, 0x45, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, - 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x6b, 0x5f, 0x65, - 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x5f, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, - 0x6b, 0x5f, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x4e, 0x6f, 0x64, 0x65, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0x01, 0x12, 0x22, - 0x0a, 0x1e, 0x6b, 0x5f, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x4e, 0x6f, - 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, - 0x10, 0x02, 0x2a, 0xfd, 0x05, 0x0a, 0x15, 0x45, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, - 0x64, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x1f, - 0x6b, 0x5f, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x41, 0x75, 0x64, 0x69, - 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, - 0x00, 0x12, 0x2b, 0x0a, 0x27, 0x6b, 0x5f, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x44, 0x79, 0x6e, 0x61, 0x6d, + 0x69, 0x63, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x3e, 0x0a, 0x13, 0x45, 0x44, 0x79, 0x6e, 0x61, 0x6d, + 0x69, 0x63, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x0e, 0x0a, + 0x0a, 0x6b, 0x5f, 0x65, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x0a, 0x0a, + 0x06, 0x6b, 0x5f, 0x65, 0x50, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x6b, 0x5f, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x10, 0x02, 0x2a, 0x7e, 0x0a, 0x13, 0x45, 0x4f, 0x76, 0x65, 0x72, 0x77, + 0x6f, 0x72, 0x6c, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, + 0x1d, 0x6b, 0x5f, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x4e, 0x6f, 0x64, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x00, + 0x12, 0x20, 0x0a, 0x1c, 0x6b, 0x5f, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, + 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, + 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x6b, 0x5f, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, + 0x6c, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x55, 0x6e, 0x6c, 0x6f, + 0x63, 0x6b, 0x65, 0x64, 0x10, 0x02, 0x2a, 0xa8, 0x06, 0x0a, 0x15, 0x45, 0x4f, 0x76, 0x65, 0x72, + 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x23, 0x0a, 0x1f, 0x6b, 0x5f, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, + 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x49, 0x6e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x10, 0x00, 0x12, 0x2b, 0x0a, 0x27, 0x6b, 0x5f, 0x65, 0x4f, 0x76, 0x65, 0x72, + 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x44, 0x65, 0x76, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, + 0x10, 0x01, 0x12, 0x2d, 0x0a, 0x29, 0x6b, 0x5f, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, + 0x6c, 0x64, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x44, 0x65, + 0x76, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x10, + 0x02, 0x12, 0x2a, 0x0a, 0x26, 0x6b, 0x5f, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x44, 0x65, 0x76, - 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x10, 0x01, 0x12, 0x2d, - 0x0a, 0x29, 0x6b, 0x5f, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x41, 0x75, - 0x64, 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x44, 0x65, 0x76, 0x43, 0x6c, 0x65, - 0x61, 0x72, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x10, 0x02, 0x12, 0x2a, 0x0a, - 0x26, 0x6b, 0x5f, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x41, 0x75, 0x64, - 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x44, 0x65, 0x76, 0x47, 0x72, 0x61, 0x6e, - 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x10, 0x03, 0x12, 0x28, 0x0a, 0x24, 0x6b, 0x5f, 0x65, + 0x47, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x10, 0x03, 0x12, 0x28, 0x0a, + 0x24, 0x6b, 0x5f, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x41, 0x75, 0x64, + 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, + 0x65, 0x50, 0x61, 0x74, 0x68, 0x10, 0x04, 0x12, 0x30, 0x0a, 0x2c, 0x6b, 0x5f, 0x65, 0x4f, 0x76, + 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x05, 0x12, 0x28, 0x0a, 0x24, 0x6b, 0x5f, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x74, - 0x68, 0x10, 0x04, 0x12, 0x30, 0x0a, 0x2c, 0x6b, 0x5f, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, - 0x72, 0x6c, 0x64, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x43, - 0x6c, 0x61, 0x69, 0x6d, 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x10, 0x05, 0x12, 0x28, 0x0a, 0x24, 0x6b, 0x5f, 0x65, 0x4f, 0x76, 0x65, 0x72, - 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x44, 0x65, 0x76, 0x52, 0x65, 0x73, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x10, 0x06, 0x12, - 0x28, 0x0a, 0x24, 0x6b, 0x5f, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x41, - 0x75, 0x64, 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x44, 0x65, 0x76, 0x52, 0x65, - 0x73, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x10, 0x07, 0x12, 0x2c, 0x0a, 0x28, 0x6b, 0x5f, 0x65, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x44, 0x65, 0x76, 0x52, 0x65, 0x73, 0x65, 0x74, 0x4e, 0x6f, 0x64, + 0x65, 0x10, 0x06, 0x12, 0x28, 0x0a, 0x24, 0x6b, 0x5f, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, + 0x72, 0x6c, 0x64, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x44, + 0x65, 0x76, 0x52, 0x65, 0x73, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x10, 0x07, 0x12, 0x2c, 0x0a, + 0x28, 0x6b, 0x5f, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x41, 0x75, 0x64, + 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x73, 0x46, 0x75, 0x6c, 0x6c, 0x10, 0x08, 0x12, 0x2c, 0x0a, 0x28, 0x6b, + 0x5f, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x41, 0x75, 0x64, 0x69, 0x74, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x73, 0x48, 0x61, 0x6c, 0x66, 0x10, 0x09, 0x12, 0x31, 0x0a, 0x2d, 0x6b, 0x5f, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x73, 0x46, 0x75, 0x6c, 0x6c, 0x10, 0x08, 0x12, 0x2c, 0x0a, 0x28, 0x6b, 0x5f, 0x65, 0x4f, 0x76, - 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x48, - 0x61, 0x6c, 0x66, 0x10, 0x09, 0x12, 0x31, 0x0a, 0x2d, 0x6b, 0x5f, 0x65, 0x4f, 0x76, 0x65, 0x72, - 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x10, 0x0a, 0x12, 0x2b, 0x0a, 0x27, 0x6b, 0x5f, 0x65, 0x4f, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x10, 0x0a, 0x12, 0x2b, 0x0a, 0x27, + 0x6b, 0x5f, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x41, 0x75, 0x64, 0x69, + 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x72, 0x61, + 0x64, 0x65, 0x72, 0x4c, 0x6f, 0x73, 0x74, 0x10, 0x0b, 0x12, 0x2d, 0x0a, 0x29, 0x6b, 0x5f, 0x65, + 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x72, + 0x47, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x10, 0x0c, 0x12, 0x34, 0x0a, 0x30, 0x6b, 0x5f, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x72, 0x4c, - 0x6f, 0x73, 0x74, 0x10, 0x0b, 0x12, 0x2d, 0x0a, 0x29, 0x6b, 0x5f, 0x65, 0x4f, 0x76, 0x65, 0x72, - 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x69, 0x6e, - 0x65, 0x64, 0x10, 0x0c, 0x12, 0x34, 0x0a, 0x30, 0x6b, 0x5f, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x77, - 0x6f, 0x72, 0x6c, 0x64, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x6f, 0x73, 0x74, 0x10, 0x0d, 0x12, 0x36, 0x0a, 0x32, 0x6b, 0x5f, - 0x65, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x10, 0x0e, 0x12, 0x2e, 0x0a, 0x2a, 0x6b, 0x5f, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, - 0x6c, 0x64, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x53, 0x75, - 0x70, 0x70, 0x6f, 0x72, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, - 0x10, 0x10, 0x42, 0x25, 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x62, 0x75, 0x66, 0x66, 0x2f, 0x6d, 0x61, 0x6e, 0x74, 0x61, 0x2f, - 0x64, 0x6f, 0x74, 0x61, 0x3b, 0x64, 0x6f, 0x74, 0x61, + 0x69, 0x6f, 0x6e, 0x5f, 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x6f, 0x73, 0x74, 0x10, 0x0d, 0x12, 0x36, + 0x0a, 0x32, 0x6b, 0x5f, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x41, 0x75, + 0x64, 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x10, 0x0e, 0x12, 0x2e, 0x0a, 0x2a, 0x6b, 0x5f, 0x65, 0x4f, 0x76, 0x65, + 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x73, 0x10, 0x10, 0x12, 0x29, 0x0a, 0x25, 0x6b, 0x5f, 0x65, 0x4f, 0x76, 0x65, + 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x47, 0x69, 0x66, 0x74, 0x53, 0x65, 0x6e, 0x74, 0x10, + 0x11, 0x42, 0x25, 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x64, 0x6f, 0x74, 0x61, 0x62, 0x75, 0x66, 0x66, 0x2f, 0x6d, 0x61, 0x6e, 0x74, 0x61, 0x2f, 0x64, + 0x6f, 0x74, 0x61, 0x3b, 0x64, 0x6f, 0x74, 0x61, } var ( @@ -4327,7 +4265,7 @@ func file_dota_gcmessages_common_overworld_proto_rawDescGZIP() []byte { return file_dota_gcmessages_common_overworld_proto_rawDescData } -var file_dota_gcmessages_common_overworld_proto_enumTypes = make([]protoimpl.EnumInfo, 16) +var file_dota_gcmessages_common_overworld_proto_enumTypes = make([]protoimpl.EnumInfo, 15) var file_dota_gcmessages_common_overworld_proto_msgTypes = make([]protoimpl.MessageInfo, 44) var file_dota_gcmessages_common_overworld_proto_goTypes = []interface{}{ (EOverworldNodeState)(0), // 0: dota.EOverworldNodeState @@ -4337,111 +4275,109 @@ var file_dota_gcmessages_common_overworld_proto_goTypes = []interface{}{ (CMsgClientToGCOverworldClaimEncounterRewardResponse_EResponse)(0), // 4: dota.CMsgClientToGCOverworldClaimEncounterRewardResponse.EResponse (CMsgClientToGCOverworldVisitEncounterResponse_EResponse)(0), // 5: dota.CMsgClientToGCOverworldVisitEncounterResponse.EResponse (CMsgClientToGCOverworldMoveToNodeResponse_EResponse)(0), // 6: dota.CMsgClientToGCOverworldMoveToNodeResponse.EResponse - (CMsgClientToGCOverworldTradeTokens_ETradeRecipe)(0), // 7: dota.CMsgClientToGCOverworldTradeTokens.ETradeRecipe - (CMsgClientToGCOverworldTradeTokensResponse_EResponse)(0), // 8: dota.CMsgClientToGCOverworldTradeTokensResponse.EResponse - (CMsgClientToGCOverworldGiftTokensResponse_EResponse)(0), // 9: dota.CMsgClientToGCOverworldGiftTokensResponse.EResponse - (CMsgClientToGCOverworldDevResetAllResponse_EResponse)(0), // 10: dota.CMsgClientToGCOverworldDevResetAllResponse.EResponse - (CMsgClientToGCOverworldDevResetNodeResponse_EResponse)(0), // 11: dota.CMsgClientToGCOverworldDevResetNodeResponse.EResponse - (CMsgClientToGCOverworldDevGrantTokensResponse_EResponse)(0), // 12: dota.CMsgClientToGCOverworldDevGrantTokensResponse.EResponse - (CMsgClientToGCOverworldDevClearInventoryResponse_EResponse)(0), // 13: dota.CMsgClientToGCOverworldDevClearInventoryResponse.EResponse - (CMsgClientToGCOverworldFeedbackResponse_EResponse)(0), // 14: dota.CMsgClientToGCOverworldFeedbackResponse.EResponse - (CMsgClientToGCOverworldGetDynamicImageResponse_EDynamicImageFormat)(0), // 15: dota.CMsgClientToGCOverworldGetDynamicImageResponse.EDynamicImageFormat - (*CMsgOverworldTokenCount)(nil), // 16: dota.CMsgOverworldTokenCount - (*CMsgOverworldTokenQuantity)(nil), // 17: dota.CMsgOverworldTokenQuantity - (*CMsgOverworldEncounterTokenTreasureData)(nil), // 18: dota.CMsgOverworldEncounterTokenTreasureData - (*CMsgOverworldEncounterTokenQuestData)(nil), // 19: dota.CMsgOverworldEncounterTokenQuestData - (*CMsgOverworldHeroList)(nil), // 20: dota.CMsgOverworldHeroList - (*CMsgOverworldEncounterChooseHeroData)(nil), // 21: dota.CMsgOverworldEncounterChooseHeroData - (*CMsgOverworldEncounterProgressData)(nil), // 22: dota.CMsgOverworldEncounterProgressData - (*CMsgOverworldEncounterData)(nil), // 23: dota.CMsgOverworldEncounterData - (*CMsgOverworldNode)(nil), // 24: dota.CMsgOverworldNode - (*CMsgOverworldPath)(nil), // 25: dota.CMsgOverworldPath - (*CMsgOverworldUserData)(nil), // 26: dota.CMsgOverworldUserData - (*CMsgOverworldMatchRewards)(nil), // 27: dota.CMsgOverworldMatchRewards - (*CMsgClientToGCOverworldGetUserData)(nil), // 28: dota.CMsgClientToGCOverworldGetUserData - (*CMsgClientToGCOverworldGetUserDataResponse)(nil), // 29: dota.CMsgClientToGCOverworldGetUserDataResponse - (*CMsgGCToClientOverworldUserDataUpdated)(nil), // 30: dota.CMsgGCToClientOverworldUserDataUpdated - (*CMsgClientToGCOverworldCompletePath)(nil), // 31: dota.CMsgClientToGCOverworldCompletePath - (*CMsgClientToGCOverworldCompletePathResponse)(nil), // 32: dota.CMsgClientToGCOverworldCompletePathResponse - (*CMsgOverworldEncounterPitFighterRewardData)(nil), // 33: dota.CMsgOverworldEncounterPitFighterRewardData - (*CMsgClientToGCOverworldClaimEncounterReward)(nil), // 34: dota.CMsgClientToGCOverworldClaimEncounterReward - (*CMsgClientToGCOverworldClaimEncounterRewardResponse)(nil), // 35: dota.CMsgClientToGCOverworldClaimEncounterRewardResponse - (*CMsgClientToGCOverworldVisitEncounter)(nil), // 36: dota.CMsgClientToGCOverworldVisitEncounter - (*CMsgClientToGCOverworldVisitEncounterResponse)(nil), // 37: dota.CMsgClientToGCOverworldVisitEncounterResponse - (*CMsgClientToGCOverworldMoveToNode)(nil), // 38: dota.CMsgClientToGCOverworldMoveToNode - (*CMsgClientToGCOverworldMoveToNodeResponse)(nil), // 39: dota.CMsgClientToGCOverworldMoveToNodeResponse - (*CMsgClientToGCOverworldTradeTokens)(nil), // 40: dota.CMsgClientToGCOverworldTradeTokens - (*CMsgClientToGCOverworldTradeTokensResponse)(nil), // 41: dota.CMsgClientToGCOverworldTradeTokensResponse - (*CMsgClientToGCOverworldGiftTokens)(nil), // 42: dota.CMsgClientToGCOverworldGiftTokens - (*CMsgClientToGCOverworldGiftTokensResponse)(nil), // 43: dota.CMsgClientToGCOverworldGiftTokensResponse - (*CMsgClientToGCOverworldDevResetAll)(nil), // 44: dota.CMsgClientToGCOverworldDevResetAll - (*CMsgClientToGCOverworldDevResetAllResponse)(nil), // 45: dota.CMsgClientToGCOverworldDevResetAllResponse - (*CMsgClientToGCOverworldDevResetNode)(nil), // 46: dota.CMsgClientToGCOverworldDevResetNode - (*CMsgClientToGCOverworldDevResetNodeResponse)(nil), // 47: dota.CMsgClientToGCOverworldDevResetNodeResponse - (*CMsgClientToGCOverworldDevGrantTokens)(nil), // 48: dota.CMsgClientToGCOverworldDevGrantTokens - (*CMsgClientToGCOverworldDevGrantTokensResponse)(nil), // 49: dota.CMsgClientToGCOverworldDevGrantTokensResponse - (*CMsgClientToGCOverworldDevClearInventory)(nil), // 50: dota.CMsgClientToGCOverworldDevClearInventory - (*CMsgClientToGCOverworldDevClearInventoryResponse)(nil), // 51: dota.CMsgClientToGCOverworldDevClearInventoryResponse - (*CMsgClientToGCOverworldFeedback)(nil), // 52: dota.CMsgClientToGCOverworldFeedback - (*CMsgClientToGCOverworldFeedbackResponse)(nil), // 53: dota.CMsgClientToGCOverworldFeedbackResponse - (*CMsgClientToGCOverworldGetDynamicImage)(nil), // 54: dota.CMsgClientToGCOverworldGetDynamicImage - (*CMsgClientToGCOverworldGetDynamicImageResponse)(nil), // 55: dota.CMsgClientToGCOverworldGetDynamicImageResponse - (*CMsgOverworldEncounterTokenTreasureData_RewardOption)(nil), // 56: dota.CMsgOverworldEncounterTokenTreasureData.RewardOption - (*CMsgOverworldEncounterTokenQuestData_Quest)(nil), // 57: dota.CMsgOverworldEncounterTokenQuestData.Quest - (*CMsgOverworldMatchRewards_Player)(nil), // 58: dota.CMsgOverworldMatchRewards.Player - (*CMsgClientToGCOverworldGetDynamicImageResponse_Image)(nil), // 59: dota.CMsgClientToGCOverworldGetDynamicImageResponse.Image - (*CExtraMsgBlock)(nil), // 60: dota.CExtraMsgBlock - (*CMsgDOTAClaimEventActionResponse)(nil), // 61: dota.CMsgDOTAClaimEventActionResponse + (CMsgClientToGCOverworldTradeTokensResponse_EResponse)(0), // 7: dota.CMsgClientToGCOverworldTradeTokensResponse.EResponse + (CMsgClientToGCOverworldGiftTokensResponse_EResponse)(0), // 8: dota.CMsgClientToGCOverworldGiftTokensResponse.EResponse + (CMsgClientToGCOverworldDevResetAllResponse_EResponse)(0), // 9: dota.CMsgClientToGCOverworldDevResetAllResponse.EResponse + (CMsgClientToGCOverworldDevResetNodeResponse_EResponse)(0), // 10: dota.CMsgClientToGCOverworldDevResetNodeResponse.EResponse + (CMsgClientToGCOverworldDevGrantTokensResponse_EResponse)(0), // 11: dota.CMsgClientToGCOverworldDevGrantTokensResponse.EResponse + (CMsgClientToGCOverworldDevClearInventoryResponse_EResponse)(0), // 12: dota.CMsgClientToGCOverworldDevClearInventoryResponse.EResponse + (CMsgClientToGCOverworldFeedbackResponse_EResponse)(0), // 13: dota.CMsgClientToGCOverworldFeedbackResponse.EResponse + (CMsgClientToGCOverworldGetDynamicImageResponse_EDynamicImageFormat)(0), // 14: dota.CMsgClientToGCOverworldGetDynamicImageResponse.EDynamicImageFormat + (*CMsgOverworldTokenCount)(nil), // 15: dota.CMsgOverworldTokenCount + (*CMsgOverworldTokenQuantity)(nil), // 16: dota.CMsgOverworldTokenQuantity + (*CMsgOverworldEncounterTokenTreasureData)(nil), // 17: dota.CMsgOverworldEncounterTokenTreasureData + (*CMsgOverworldEncounterTokenQuestData)(nil), // 18: dota.CMsgOverworldEncounterTokenQuestData + (*CMsgOverworldHeroList)(nil), // 19: dota.CMsgOverworldHeroList + (*CMsgOverworldEncounterChooseHeroData)(nil), // 20: dota.CMsgOverworldEncounterChooseHeroData + (*CMsgOverworldEncounterProgressData)(nil), // 21: dota.CMsgOverworldEncounterProgressData + (*CMsgOverworldEncounterData)(nil), // 22: dota.CMsgOverworldEncounterData + (*CMsgOverworldNode)(nil), // 23: dota.CMsgOverworldNode + (*CMsgOverworldPath)(nil), // 24: dota.CMsgOverworldPath + (*CMsgOverworldUserData)(nil), // 25: dota.CMsgOverworldUserData + (*CMsgOverworldMatchRewards)(nil), // 26: dota.CMsgOverworldMatchRewards + (*CMsgClientToGCOverworldGetUserData)(nil), // 27: dota.CMsgClientToGCOverworldGetUserData + (*CMsgClientToGCOverworldGetUserDataResponse)(nil), // 28: dota.CMsgClientToGCOverworldGetUserDataResponse + (*CMsgGCToClientOverworldUserDataUpdated)(nil), // 29: dota.CMsgGCToClientOverworldUserDataUpdated + (*CMsgClientToGCOverworldCompletePath)(nil), // 30: dota.CMsgClientToGCOverworldCompletePath + (*CMsgClientToGCOverworldCompletePathResponse)(nil), // 31: dota.CMsgClientToGCOverworldCompletePathResponse + (*CMsgOverworldEncounterPitFighterRewardData)(nil), // 32: dota.CMsgOverworldEncounterPitFighterRewardData + (*CMsgClientToGCOverworldClaimEncounterReward)(nil), // 33: dota.CMsgClientToGCOverworldClaimEncounterReward + (*CMsgClientToGCOverworldClaimEncounterRewardResponse)(nil), // 34: dota.CMsgClientToGCOverworldClaimEncounterRewardResponse + (*CMsgClientToGCOverworldVisitEncounter)(nil), // 35: dota.CMsgClientToGCOverworldVisitEncounter + (*CMsgClientToGCOverworldVisitEncounterResponse)(nil), // 36: dota.CMsgClientToGCOverworldVisitEncounterResponse + (*CMsgClientToGCOverworldMoveToNode)(nil), // 37: dota.CMsgClientToGCOverworldMoveToNode + (*CMsgClientToGCOverworldMoveToNodeResponse)(nil), // 38: dota.CMsgClientToGCOverworldMoveToNodeResponse + (*CMsgClientToGCOverworldTradeTokens)(nil), // 39: dota.CMsgClientToGCOverworldTradeTokens + (*CMsgClientToGCOverworldTradeTokensResponse)(nil), // 40: dota.CMsgClientToGCOverworldTradeTokensResponse + (*CMsgClientToGCOverworldGiftTokens)(nil), // 41: dota.CMsgClientToGCOverworldGiftTokens + (*CMsgClientToGCOverworldGiftTokensResponse)(nil), // 42: dota.CMsgClientToGCOverworldGiftTokensResponse + (*CMsgClientToGCOverworldDevResetAll)(nil), // 43: dota.CMsgClientToGCOverworldDevResetAll + (*CMsgClientToGCOverworldDevResetAllResponse)(nil), // 44: dota.CMsgClientToGCOverworldDevResetAllResponse + (*CMsgClientToGCOverworldDevResetNode)(nil), // 45: dota.CMsgClientToGCOverworldDevResetNode + (*CMsgClientToGCOverworldDevResetNodeResponse)(nil), // 46: dota.CMsgClientToGCOverworldDevResetNodeResponse + (*CMsgClientToGCOverworldDevGrantTokens)(nil), // 47: dota.CMsgClientToGCOverworldDevGrantTokens + (*CMsgClientToGCOverworldDevGrantTokensResponse)(nil), // 48: dota.CMsgClientToGCOverworldDevGrantTokensResponse + (*CMsgClientToGCOverworldDevClearInventory)(nil), // 49: dota.CMsgClientToGCOverworldDevClearInventory + (*CMsgClientToGCOverworldDevClearInventoryResponse)(nil), // 50: dota.CMsgClientToGCOverworldDevClearInventoryResponse + (*CMsgClientToGCOverworldFeedback)(nil), // 51: dota.CMsgClientToGCOverworldFeedback + (*CMsgClientToGCOverworldFeedbackResponse)(nil), // 52: dota.CMsgClientToGCOverworldFeedbackResponse + (*CMsgClientToGCOverworldGetDynamicImage)(nil), // 53: dota.CMsgClientToGCOverworldGetDynamicImage + (*CMsgClientToGCOverworldGetDynamicImageResponse)(nil), // 54: dota.CMsgClientToGCOverworldGetDynamicImageResponse + (*CMsgOverworldEncounterTokenTreasureData_RewardOption)(nil), // 55: dota.CMsgOverworldEncounterTokenTreasureData.RewardOption + (*CMsgOverworldEncounterTokenQuestData_Quest)(nil), // 56: dota.CMsgOverworldEncounterTokenQuestData.Quest + (*CMsgOverworldMatchRewards_Player)(nil), // 57: dota.CMsgOverworldMatchRewards.Player + (*CMsgClientToGCOverworldGetDynamicImageResponse_Image)(nil), // 58: dota.CMsgClientToGCOverworldGetDynamicImageResponse.Image + (*CExtraMsgBlock)(nil), // 59: dota.CExtraMsgBlock + (*CMsgDOTAClaimEventActionResponse)(nil), // 60: dota.CMsgDOTAClaimEventActionResponse } var file_dota_gcmessages_common_overworld_proto_depIdxs = []int32{ - 16, // 0: dota.CMsgOverworldTokenQuantity.token_counts:type_name -> dota.CMsgOverworldTokenCount - 56, // 1: dota.CMsgOverworldEncounterTokenTreasureData.reward_options:type_name -> dota.CMsgOverworldEncounterTokenTreasureData.RewardOption - 57, // 2: dota.CMsgOverworldEncounterTokenQuestData.quests:type_name -> dota.CMsgOverworldEncounterTokenQuestData.Quest - 20, // 3: dota.CMsgOverworldEncounterChooseHeroData.hero_list:type_name -> dota.CMsgOverworldHeroList - 60, // 4: dota.CMsgOverworldEncounterData.extra_encounter_data:type_name -> dota.CExtraMsgBlock + 15, // 0: dota.CMsgOverworldTokenQuantity.token_counts:type_name -> dota.CMsgOverworldTokenCount + 55, // 1: dota.CMsgOverworldEncounterTokenTreasureData.reward_options:type_name -> dota.CMsgOverworldEncounterTokenTreasureData.RewardOption + 56, // 2: dota.CMsgOverworldEncounterTokenQuestData.quests:type_name -> dota.CMsgOverworldEncounterTokenQuestData.Quest + 19, // 3: dota.CMsgOverworldEncounterChooseHeroData.hero_list:type_name -> dota.CMsgOverworldHeroList + 59, // 4: dota.CMsgOverworldEncounterData.extra_encounter_data:type_name -> dota.CExtraMsgBlock 0, // 5: dota.CMsgOverworldNode.node_state:type_name -> dota.EOverworldNodeState - 23, // 6: dota.CMsgOverworldNode.node_encounter_data:type_name -> dota.CMsgOverworldEncounterData - 17, // 7: dota.CMsgOverworldPath.path_cost:type_name -> dota.CMsgOverworldTokenQuantity - 17, // 8: dota.CMsgOverworldUserData.token_inventory:type_name -> dota.CMsgOverworldTokenQuantity - 24, // 9: dota.CMsgOverworldUserData.overworld_nodes:type_name -> dota.CMsgOverworldNode - 25, // 10: dota.CMsgOverworldUserData.overworld_paths:type_name -> dota.CMsgOverworldPath - 58, // 11: dota.CMsgOverworldMatchRewards.players:type_name -> dota.CMsgOverworldMatchRewards.Player + 22, // 6: dota.CMsgOverworldNode.node_encounter_data:type_name -> dota.CMsgOverworldEncounterData + 16, // 7: dota.CMsgOverworldPath.path_cost:type_name -> dota.CMsgOverworldTokenQuantity + 16, // 8: dota.CMsgOverworldUserData.token_inventory:type_name -> dota.CMsgOverworldTokenQuantity + 23, // 9: dota.CMsgOverworldUserData.overworld_nodes:type_name -> dota.CMsgOverworldNode + 24, // 10: dota.CMsgOverworldUserData.overworld_paths:type_name -> dota.CMsgOverworldPath + 57, // 11: dota.CMsgOverworldMatchRewards.players:type_name -> dota.CMsgOverworldMatchRewards.Player 2, // 12: dota.CMsgClientToGCOverworldGetUserDataResponse.response:type_name -> dota.CMsgClientToGCOverworldGetUserDataResponse.EResponse - 26, // 13: dota.CMsgClientToGCOverworldGetUserDataResponse.user_data:type_name -> dota.CMsgOverworldUserData - 26, // 14: dota.CMsgGCToClientOverworldUserDataUpdated.user_data:type_name -> dota.CMsgOverworldUserData + 25, // 13: dota.CMsgClientToGCOverworldGetUserDataResponse.user_data:type_name -> dota.CMsgOverworldUserData + 25, // 14: dota.CMsgGCToClientOverworldUserDataUpdated.user_data:type_name -> dota.CMsgOverworldUserData 3, // 15: dota.CMsgClientToGCOverworldCompletePathResponse.response:type_name -> dota.CMsgClientToGCOverworldCompletePathResponse.EResponse - 61, // 16: dota.CMsgClientToGCOverworldCompletePathResponse.claim_response:type_name -> dota.CMsgDOTAClaimEventActionResponse - 23, // 17: dota.CMsgClientToGCOverworldClaimEncounterReward.extra_reward_data:type_name -> dota.CMsgOverworldEncounterData + 60, // 16: dota.CMsgClientToGCOverworldCompletePathResponse.claim_response:type_name -> dota.CMsgDOTAClaimEventActionResponse + 22, // 17: dota.CMsgClientToGCOverworldClaimEncounterReward.extra_reward_data:type_name -> dota.CMsgOverworldEncounterData 4, // 18: dota.CMsgClientToGCOverworldClaimEncounterRewardResponse.response:type_name -> dota.CMsgClientToGCOverworldClaimEncounterRewardResponse.EResponse - 61, // 19: dota.CMsgClientToGCOverworldClaimEncounterRewardResponse.claim_response:type_name -> dota.CMsgDOTAClaimEventActionResponse - 17, // 20: dota.CMsgClientToGCOverworldClaimEncounterRewardResponse.tokens_received:type_name -> dota.CMsgOverworldTokenQuantity + 60, // 19: dota.CMsgClientToGCOverworldClaimEncounterRewardResponse.claim_response:type_name -> dota.CMsgDOTAClaimEventActionResponse + 16, // 20: dota.CMsgClientToGCOverworldClaimEncounterRewardResponse.tokens_received:type_name -> dota.CMsgOverworldTokenQuantity 5, // 21: dota.CMsgClientToGCOverworldVisitEncounterResponse.response:type_name -> dota.CMsgClientToGCOverworldVisitEncounterResponse.EResponse 6, // 22: dota.CMsgClientToGCOverworldMoveToNodeResponse.response:type_name -> dota.CMsgClientToGCOverworldMoveToNodeResponse.EResponse - 17, // 23: dota.CMsgClientToGCOverworldTradeTokens.token_offer:type_name -> dota.CMsgOverworldTokenQuantity - 17, // 24: dota.CMsgClientToGCOverworldTradeTokens.token_request:type_name -> dota.CMsgOverworldTokenQuantity - 7, // 25: dota.CMsgClientToGCOverworldTradeTokens.recipe:type_name -> dota.CMsgClientToGCOverworldTradeTokens.ETradeRecipe - 8, // 26: dota.CMsgClientToGCOverworldTradeTokensResponse.response:type_name -> dota.CMsgClientToGCOverworldTradeTokensResponse.EResponse - 17, // 27: dota.CMsgClientToGCOverworldTradeTokensResponse.tokens_received:type_name -> dota.CMsgOverworldTokenQuantity - 16, // 28: dota.CMsgClientToGCOverworldGiftTokens.token_gift:type_name -> dota.CMsgOverworldTokenCount - 9, // 29: dota.CMsgClientToGCOverworldGiftTokensResponse.response:type_name -> dota.CMsgClientToGCOverworldGiftTokensResponse.EResponse - 10, // 30: dota.CMsgClientToGCOverworldDevResetAllResponse.response:type_name -> dota.CMsgClientToGCOverworldDevResetAllResponse.EResponse - 11, // 31: dota.CMsgClientToGCOverworldDevResetNodeResponse.response:type_name -> dota.CMsgClientToGCOverworldDevResetNodeResponse.EResponse - 17, // 32: dota.CMsgClientToGCOverworldDevGrantTokens.token_quantity:type_name -> dota.CMsgOverworldTokenQuantity - 12, // 33: dota.CMsgClientToGCOverworldDevGrantTokensResponse.response:type_name -> dota.CMsgClientToGCOverworldDevGrantTokensResponse.EResponse - 13, // 34: dota.CMsgClientToGCOverworldDevClearInventoryResponse.response:type_name -> dota.CMsgClientToGCOverworldDevClearInventoryResponse.EResponse - 14, // 35: dota.CMsgClientToGCOverworldFeedbackResponse.response:type_name -> dota.CMsgClientToGCOverworldFeedbackResponse.EResponse - 59, // 36: dota.CMsgClientToGCOverworldGetDynamicImageResponse.images:type_name -> dota.CMsgClientToGCOverworldGetDynamicImageResponse.Image - 17, // 37: dota.CMsgOverworldEncounterTokenTreasureData.RewardOption.token_cost:type_name -> dota.CMsgOverworldTokenQuantity - 17, // 38: dota.CMsgOverworldEncounterTokenTreasureData.RewardOption.token_reward:type_name -> dota.CMsgOverworldTokenQuantity - 17, // 39: dota.CMsgOverworldEncounterTokenQuestData.Quest.token_cost:type_name -> dota.CMsgOverworldTokenQuantity - 17, // 40: dota.CMsgOverworldEncounterTokenQuestData.Quest.token_reward:type_name -> dota.CMsgOverworldTokenQuantity - 17, // 41: dota.CMsgOverworldMatchRewards.Player.tokens:type_name -> dota.CMsgOverworldTokenQuantity - 15, // 42: dota.CMsgClientToGCOverworldGetDynamicImageResponse.Image.format:type_name -> dota.CMsgClientToGCOverworldGetDynamicImageResponse.EDynamicImageFormat - 43, // [43:43] is the sub-list for method output_type - 43, // [43:43] is the sub-list for method input_type - 43, // [43:43] is the sub-list for extension type_name - 43, // [43:43] is the sub-list for extension extendee - 0, // [0:43] is the sub-list for field type_name + 16, // 23: dota.CMsgClientToGCOverworldTradeTokens.token_offer:type_name -> dota.CMsgOverworldTokenQuantity + 16, // 24: dota.CMsgClientToGCOverworldTradeTokens.token_request:type_name -> dota.CMsgOverworldTokenQuantity + 7, // 25: dota.CMsgClientToGCOverworldTradeTokensResponse.response:type_name -> dota.CMsgClientToGCOverworldTradeTokensResponse.EResponse + 16, // 26: dota.CMsgClientToGCOverworldTradeTokensResponse.tokens_received:type_name -> dota.CMsgOverworldTokenQuantity + 15, // 27: dota.CMsgClientToGCOverworldGiftTokens.token_gift:type_name -> dota.CMsgOverworldTokenCount + 8, // 28: dota.CMsgClientToGCOverworldGiftTokensResponse.response:type_name -> dota.CMsgClientToGCOverworldGiftTokensResponse.EResponse + 9, // 29: dota.CMsgClientToGCOverworldDevResetAllResponse.response:type_name -> dota.CMsgClientToGCOverworldDevResetAllResponse.EResponse + 10, // 30: dota.CMsgClientToGCOverworldDevResetNodeResponse.response:type_name -> dota.CMsgClientToGCOverworldDevResetNodeResponse.EResponse + 16, // 31: dota.CMsgClientToGCOverworldDevGrantTokens.token_quantity:type_name -> dota.CMsgOverworldTokenQuantity + 11, // 32: dota.CMsgClientToGCOverworldDevGrantTokensResponse.response:type_name -> dota.CMsgClientToGCOverworldDevGrantTokensResponse.EResponse + 12, // 33: dota.CMsgClientToGCOverworldDevClearInventoryResponse.response:type_name -> dota.CMsgClientToGCOverworldDevClearInventoryResponse.EResponse + 13, // 34: dota.CMsgClientToGCOverworldFeedbackResponse.response:type_name -> dota.CMsgClientToGCOverworldFeedbackResponse.EResponse + 58, // 35: dota.CMsgClientToGCOverworldGetDynamicImageResponse.images:type_name -> dota.CMsgClientToGCOverworldGetDynamicImageResponse.Image + 16, // 36: dota.CMsgOverworldEncounterTokenTreasureData.RewardOption.token_cost:type_name -> dota.CMsgOverworldTokenQuantity + 16, // 37: dota.CMsgOverworldEncounterTokenTreasureData.RewardOption.token_reward:type_name -> dota.CMsgOverworldTokenQuantity + 16, // 38: dota.CMsgOverworldEncounterTokenQuestData.Quest.token_cost:type_name -> dota.CMsgOverworldTokenQuantity + 16, // 39: dota.CMsgOverworldEncounterTokenQuestData.Quest.token_reward:type_name -> dota.CMsgOverworldTokenQuantity + 16, // 40: dota.CMsgOverworldMatchRewards.Player.tokens:type_name -> dota.CMsgOverworldTokenQuantity + 14, // 41: dota.CMsgClientToGCOverworldGetDynamicImageResponse.Image.format:type_name -> dota.CMsgClientToGCOverworldGetDynamicImageResponse.EDynamicImageFormat + 42, // [42:42] is the sub-list for method output_type + 42, // [42:42] is the sub-list for method input_type + 42, // [42:42] is the sub-list for extension type_name + 42, // [42:42] is the sub-list for extension extendee + 0, // [0:42] is the sub-list for field type_name } func init() { file_dota_gcmessages_common_overworld_proto_init() } @@ -4988,7 +4924,7 @@ func file_dota_gcmessages_common_overworld_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_dota_gcmessages_common_overworld_proto_rawDesc, - NumEnums: 16, + NumEnums: 15, NumMessages: 44, NumExtensions: 0, NumServices: 0, diff --git a/dota/dota_gcmessages_common_overworld.proto b/dota/dota_gcmessages_common_overworld.proto index 885d11f..e5e075c 100644 --- a/dota/dota_gcmessages_common_overworld.proto +++ b/dota/dota_gcmessages_common_overworld.proto @@ -31,6 +31,7 @@ enum EOverworldAuditAction { k_eOverworldAuditAction_EncounterRewardTokenCost = 13; k_eOverworldAuditAction_EncounterRewardTokenReward = 14; k_eOverworldAuditAction_SupportGrantTokens = 16; + k_eOverworldAuditAction_TokenGiftSent = 17; } message CMsgOverworldTokenCount { @@ -63,7 +64,7 @@ message CMsgOverworldEncounterTokenQuestData { } message CMsgOverworldHeroList { - repeated uint32 hero_ids = 1; + repeated int32 hero_ids = 1; } message CMsgOverworldEncounterChooseHeroData { @@ -236,17 +237,10 @@ message CMsgClientToGCOverworldMoveToNodeResponse { } message CMsgClientToGCOverworldTradeTokens { - enum ETradeRecipe { - k_eThreeToOneChosen = 1; - k_eFourToOneChosen = 2; - k_eThreeToTwoRandom = 3; - k_eSixScrapToOneChosen = 4; - } - optional uint32 overworld_id = 1; optional CMsgOverworldTokenQuantity token_offer = 2; optional CMsgOverworldTokenQuantity token_request = 3; - optional CMsgClientToGCOverworldTradeTokens.ETradeRecipe recipe = 4; + optional uint32 recipe = 4; optional uint32 encounter_id = 5; } @@ -264,6 +258,7 @@ message CMsgClientToGCOverworldTradeTokensResponse { k_eNotEnoughTokens = 9; k_eInvalidNode = 10; k_eInvalidEncounter = 11; + k_eRewardDoesNotMatchRecipe = 12; } optional CMsgClientToGCOverworldTradeTokensResponse.EResponse response = 1; diff --git a/dota/dota_gcmessages_msgid.pb.go b/dota/dota_gcmessages_msgid.pb.go index 84b9687..4c6f041 100644 --- a/dota/dota_gcmessages_msgid.pb.go +++ b/dota/dota_gcmessages_msgid.pb.go @@ -953,6 +953,15 @@ const ( EDOTAGCMsg_k_EMsgOverworldEncounterPitFighterRewardData EDOTAGCMsg = 8987 EDOTAGCMsg_k_EMsgClientToGCOverworldGetDynamicImage EDOTAGCMsg = 8988 EDOTAGCMsg_k_EMsgClientToGCOverworldGetDynamicImageResponse EDOTAGCMsg = 8989 + EDOTAGCMsg_k_EMsgClientToGCFightingGameChallengeFriend EDOTAGCMsg = 8990 + EDOTAGCMsg_k_EMsgClientToGCFightingGameChallengeFriendResponse EDOTAGCMsg = 8991 + EDOTAGCMsg_k_EMsgClientToGCFightingGameCancelChallengeFriend EDOTAGCMsg = 8992 + EDOTAGCMsg_k_EMsgClientToGCFightingGameAnswerChallenge EDOTAGCMsg = 8993 + EDOTAGCMsg_k_EMsgClientToGCFightingGameAnswerChallengeResponse EDOTAGCMsg = 8994 + EDOTAGCMsg_k_EMsgGCToClientFightingGameChallenge EDOTAGCMsg = 8995 + EDOTAGCMsg_k_EMsgGCToClientFightingGameStartMatch EDOTAGCMsg = 8996 + EDOTAGCMsg_k_EMsgGCToClientFightingGameChallengeCanceled EDOTAGCMsg = 8997 + EDOTAGCMsg_k_EMsgGCToServerSteamLearnUseHTTP EDOTAGCMsg = 8998 ) // Enum value maps for EDOTAGCMsg. @@ -1888,6 +1897,15 @@ var ( 8987: "k_EMsgOverworldEncounterPitFighterRewardData", 8988: "k_EMsgClientToGCOverworldGetDynamicImage", 8989: "k_EMsgClientToGCOverworldGetDynamicImageResponse", + 8990: "k_EMsgClientToGCFightingGameChallengeFriend", + 8991: "k_EMsgClientToGCFightingGameChallengeFriendResponse", + 8992: "k_EMsgClientToGCFightingGameCancelChallengeFriend", + 8993: "k_EMsgClientToGCFightingGameAnswerChallenge", + 8994: "k_EMsgClientToGCFightingGameAnswerChallengeResponse", + 8995: "k_EMsgGCToClientFightingGameChallenge", + 8996: "k_EMsgGCToClientFightingGameStartMatch", + 8997: "k_EMsgGCToClientFightingGameChallengeCanceled", + 8998: "k_EMsgGCToServerSteamLearnUseHTTP", } EDOTAGCMsg_value = map[string]int32{ "k_EMsgGCDOTABase": 7000, @@ -2820,6 +2838,15 @@ var ( "k_EMsgOverworldEncounterPitFighterRewardData": 8987, "k_EMsgClientToGCOverworldGetDynamicImage": 8988, "k_EMsgClientToGCOverworldGetDynamicImageResponse": 8989, + "k_EMsgClientToGCFightingGameChallengeFriend": 8990, + "k_EMsgClientToGCFightingGameChallengeFriendResponse": 8991, + "k_EMsgClientToGCFightingGameCancelChallengeFriend": 8992, + "k_EMsgClientToGCFightingGameAnswerChallenge": 8993, + "k_EMsgClientToGCFightingGameAnswerChallengeResponse": 8994, + "k_EMsgGCToClientFightingGameChallenge": 8995, + "k_EMsgGCToClientFightingGameStartMatch": 8996, + "k_EMsgGCToClientFightingGameChallengeCanceled": 8997, + "k_EMsgGCToServerSteamLearnUseHTTP": 8998, } ) @@ -2865,7 +2892,7 @@ var File_dota_gcmessages_msgid_proto protoreflect.FileDescriptor var file_dota_gcmessages_msgid_proto_rawDesc = []byte{ 0x0a, 0x1b, 0x64, 0x6f, 0x74, 0x61, 0x5f, 0x67, 0x63, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x5f, 0x6d, 0x73, 0x67, 0x69, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x64, - 0x6f, 0x74, 0x61, 0x2a, 0x82, 0xbb, 0x02, 0x0a, 0x0a, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x47, 0x43, + 0x6f, 0x74, 0x61, 0x2a, 0xc7, 0xbe, 0x02, 0x0a, 0x0a, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x12, 0x15, 0x0a, 0x10, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x42, 0x61, 0x73, 0x65, 0x10, 0xd8, 0x36, 0x12, 0x1d, 0x0a, 0x18, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, @@ -5385,9 +5412,38 @@ var file_dota_gcmessages_msgid_proto_rawDesc = []byte{ 0x9c, 0x46, 0x12, 0x35, 0x0a, 0x30, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x47, 0x65, 0x74, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x10, 0x9d, 0x46, 0x42, 0x25, 0x5a, 0x23, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x62, 0x75, 0x66, 0x66, - 0x2f, 0x6d, 0x61, 0x6e, 0x74, 0x61, 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x3b, 0x64, 0x6f, 0x74, 0x61, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x10, 0x9d, 0x46, 0x12, 0x30, 0x0a, 0x2b, 0x6b, 0x5f, 0x45, + 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x46, 0x69, 0x67, + 0x68, 0x74, 0x69, 0x6e, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, + 0x67, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x10, 0x9e, 0x46, 0x12, 0x38, 0x0a, 0x33, 0x6b, + 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x46, + 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, + 0x65, 0x6e, 0x67, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x10, 0x9f, 0x46, 0x12, 0x36, 0x0a, 0x31, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x46, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, + 0x67, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x43, 0x68, 0x61, 0x6c, 0x6c, + 0x65, 0x6e, 0x67, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x10, 0xa0, 0x46, 0x12, 0x30, 0x0a, + 0x2b, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, + 0x43, 0x46, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x41, 0x6e, 0x73, + 0x77, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x10, 0xa1, 0x46, 0x12, + 0x38, 0x0a, 0x33, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, + 0x6f, 0x47, 0x43, 0x46, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x41, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x10, 0xa2, 0x46, 0x12, 0x2a, 0x0a, 0x25, 0x6b, 0x5f, 0x45, + 0x4d, 0x73, 0x67, 0x47, 0x43, 0x54, 0x6f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x67, + 0x68, 0x74, 0x69, 0x6e, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, + 0x67, 0x65, 0x10, 0xa3, 0x46, 0x12, 0x2b, 0x0a, 0x26, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, + 0x43, 0x54, 0x6f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, + 0x67, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x10, + 0xa4, 0x46, 0x12, 0x32, 0x0a, 0x2d, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x54, 0x6f, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, 0x47, 0x61, + 0x6d, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, + 0x6c, 0x65, 0x64, 0x10, 0xa5, 0x46, 0x12, 0x26, 0x0a, 0x21, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, + 0x47, 0x43, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4c, + 0x65, 0x61, 0x72, 0x6e, 0x55, 0x73, 0x65, 0x48, 0x54, 0x54, 0x50, 0x10, 0xa6, 0x46, 0x42, 0x25, + 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x6f, 0x74, + 0x61, 0x62, 0x75, 0x66, 0x66, 0x2f, 0x6d, 0x61, 0x6e, 0x74, 0x61, 0x2f, 0x64, 0x6f, 0x74, 0x61, + 0x3b, 0x64, 0x6f, 0x74, 0x61, } var ( diff --git a/dota/dota_gcmessages_msgid.proto b/dota/dota_gcmessages_msgid.proto index e596ad1..5b76aa7 100644 --- a/dota/dota_gcmessages_msgid.proto +++ b/dota/dota_gcmessages_msgid.proto @@ -934,4 +934,13 @@ enum EDOTAGCMsg { k_EMsgOverworldEncounterPitFighterRewardData = 8987; k_EMsgClientToGCOverworldGetDynamicImage = 8988; k_EMsgClientToGCOverworldGetDynamicImageResponse = 8989; + k_EMsgClientToGCFightingGameChallengeFriend = 8990; + k_EMsgClientToGCFightingGameChallengeFriendResponse = 8991; + k_EMsgClientToGCFightingGameCancelChallengeFriend = 8992; + k_EMsgClientToGCFightingGameAnswerChallenge = 8993; + k_EMsgClientToGCFightingGameAnswerChallengeResponse = 8994; + k_EMsgGCToClientFightingGameChallenge = 8995; + k_EMsgGCToClientFightingGameStartMatch = 8996; + k_EMsgGCToClientFightingGameChallengeCanceled = 8997; + k_EMsgGCToServerSteamLearnUseHTTP = 8998; } diff --git a/dota/dota_gcmessages_server.pb.go b/dota/dota_gcmessages_server.pb.go index bfc2ac6..fb18c73 100644 --- a/dota/dota_gcmessages_server.pb.go +++ b/dota/dota_gcmessages_server.pb.go @@ -481,62 +481,6 @@ func (CMsgGameServerSaveGameResult_Result) EnumDescriptor() ([]byte, []int) { return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{38, 0} } -type CMsgGCToServerPredictionResult_Prediction_EResult int32 - -const ( - CMsgGCToServerPredictionResult_Prediction_k_eResult_ItemGranted CMsgGCToServerPredictionResult_Prediction_EResult = 1 - CMsgGCToServerPredictionResult_Prediction_k_eResult_Destroyed CMsgGCToServerPredictionResult_Prediction_EResult = 2 -) - -// Enum value maps for CMsgGCToServerPredictionResult_Prediction_EResult. -var ( - CMsgGCToServerPredictionResult_Prediction_EResult_name = map[int32]string{ - 1: "k_eResult_ItemGranted", - 2: "k_eResult_Destroyed", - } - CMsgGCToServerPredictionResult_Prediction_EResult_value = map[string]int32{ - "k_eResult_ItemGranted": 1, - "k_eResult_Destroyed": 2, - } -) - -func (x CMsgGCToServerPredictionResult_Prediction_EResult) Enum() *CMsgGCToServerPredictionResult_Prediction_EResult { - p := new(CMsgGCToServerPredictionResult_Prediction_EResult) - *p = x - return p -} - -func (x CMsgGCToServerPredictionResult_Prediction_EResult) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (CMsgGCToServerPredictionResult_Prediction_EResult) Descriptor() protoreflect.EnumDescriptor { - return file_dota_gcmessages_server_proto_enumTypes[7].Descriptor() -} - -func (CMsgGCToServerPredictionResult_Prediction_EResult) Type() protoreflect.EnumType { - return &file_dota_gcmessages_server_proto_enumTypes[7] -} - -func (x CMsgGCToServerPredictionResult_Prediction_EResult) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Do not use. -func (x *CMsgGCToServerPredictionResult_Prediction_EResult) UnmarshalJSON(b []byte) error { - num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) - if err != nil { - return err - } - *x = CMsgGCToServerPredictionResult_Prediction_EResult(num) - return nil -} - -// Deprecated: Use CMsgGCToServerPredictionResult_Prediction_EResult.Descriptor instead. -func (CMsgGCToServerPredictionResult_Prediction_EResult) EnumDescriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{55, 0, 0} -} - type CMsgPoorNetworkConditions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1541,7 +1485,6 @@ type CMsgGameMatchSignOut struct { ServerAddr *string `protobuf:"bytes,11,opt,name=server_addr,json=serverAddr" json:"server_addr,omitempty"` FirstBloodTime *uint32 `protobuf:"varint,12,opt,name=first_blood_time,json=firstBloodTime" json:"first_blood_time,omitempty"` EventScore *uint32 `protobuf:"varint,14,opt,name=event_score,json=eventScore" json:"event_score,omitempty"` - PicksBans []*CMatchHeroSelectEvent `protobuf:"bytes,15,rep,name=picks_bans,json=picksBans" json:"picks_bans,omitempty"` FantasyStats []*CMsgDOTAFantasyPlayerStats `protobuf:"bytes,41,rep,name=fantasy_stats,json=fantasyStats" json:"fantasy_stats,omitempty"` PlayerStrangeCountAdjustments []*CMsgEconPlayerStrangeCountAdjustment `protobuf:"bytes,17,rep,name=player_strange_count_adjustments,json=playerStrangeCountAdjustments" json:"player_strange_count_adjustments,omitempty"` AutomaticSurrender *bool `protobuf:"varint,18,opt,name=automatic_surrender,json=automaticSurrender" json:"automatic_surrender,omitempty"` @@ -1673,13 +1616,6 @@ func (x *CMsgGameMatchSignOut) GetEventScore() uint32 { return 0 } -func (x *CMsgGameMatchSignOut) GetPicksBans() []*CMatchHeroSelectEvent { - if x != nil { - return x.PicksBans - } - return nil -} - func (x *CMsgGameMatchSignOut) GetFantasyStats() []*CMsgDOTAFantasyPlayerStats { if x != nil { return x.FantasyStats @@ -2009,7 +1945,7 @@ type CMsgSignOutPlayerStats struct { AccountId *int32 `protobuf:"varint,1,opt,name=account_id,json=accountId" json:"account_id,omitempty"` MatchId *uint64 `protobuf:"varint,2,opt,name=match_id,json=matchId" json:"match_id,omitempty"` Rank *uint32 `protobuf:"varint,3,opt,name=rank" json:"rank,omitempty"` - HeroId *uint32 `protobuf:"varint,4,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,4,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` Rampages *uint32 `protobuf:"varint,5,opt,name=rampages" json:"rampages,omitempty"` TripleKills *uint32 `protobuf:"varint,6,opt,name=triple_kills,json=tripleKills" json:"triple_kills,omitempty"` FirstBloodClaimed *uint32 `protobuf:"varint,7,opt,name=first_blood_claimed,json=firstBloodClaimed" json:"first_blood_claimed,omitempty"` @@ -2091,7 +2027,7 @@ func (x *CMsgSignOutPlayerStats) GetRank() uint32 { return 0 } -func (x *CMsgSignOutPlayerStats) GetHeroId() uint32 { +func (x *CMsgSignOutPlayerStats) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -2950,8 +2886,8 @@ type CMsgGameMatchSignOutBanData struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroBans []uint32 `protobuf:"varint,1,rep,name=hero_bans,json=heroBans" json:"hero_bans,omitempty"` - HeroBanVotes []uint32 `protobuf:"varint,2,rep,name=hero_ban_votes,json=heroBanVotes" json:"hero_ban_votes,omitempty"` + HeroBans []int32 `protobuf:"varint,1,rep,name=hero_bans,json=heroBans" json:"hero_bans,omitempty"` + HeroBanVotes []int32 `protobuf:"varint,2,rep,name=hero_ban_votes,json=heroBanVotes" json:"hero_ban_votes,omitempty"` } func (x *CMsgGameMatchSignOutBanData) Reset() { @@ -2986,14 +2922,14 @@ func (*CMsgGameMatchSignOutBanData) Descriptor() ([]byte, []int) { return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{24} } -func (x *CMsgGameMatchSignOutBanData) GetHeroBans() []uint32 { +func (x *CMsgGameMatchSignOutBanData) GetHeroBans() []int32 { if x != nil { return x.HeroBans } return nil } -func (x *CMsgGameMatchSignOutBanData) GetHeroBanVotes() []uint32 { +func (x *CMsgGameMatchSignOutBanData) GetHeroBanVotes() []int32 { if x != nil { return x.HeroBanVotes } @@ -4780,7 +4716,7 @@ type CMsgSignOutAssassinMiniGameInfo struct { LosingPlayers []uint64 `protobuf:"fixed64,2,rep,name=losing_players,json=losingPlayers" json:"losing_players,omitempty"` ArcanaOwners []uint64 `protobuf:"fixed64,3,rep,name=arcana_owners,json=arcanaOwners" json:"arcana_owners,omitempty"` AssassinWon *bool `protobuf:"varint,4,opt,name=assassin_won,json=assassinWon" json:"assassin_won,omitempty"` - TargetHeroId *uint32 `protobuf:"varint,5,opt,name=target_hero_id,json=targetHeroId" json:"target_hero_id,omitempty"` + TargetHeroId *int32 `protobuf:"varint,5,opt,name=target_hero_id,json=targetHeroId" json:"target_hero_id,omitempty"` ContractCompleted *bool `protobuf:"varint,6,opt,name=contract_completed,json=contractCompleted" json:"contract_completed,omitempty"` ContractCompleteTime *float32 `protobuf:"fixed32,7,opt,name=contract_complete_time,json=contractCompleteTime" json:"contract_complete_time,omitempty"` PaIsRadiant *bool `protobuf:"varint,8,opt,name=pa_is_radiant,json=paIsRadiant" json:"pa_is_radiant,omitempty"` @@ -4846,7 +4782,7 @@ func (x *CMsgSignOutAssassinMiniGameInfo) GetAssassinWon() bool { return false } -func (x *CMsgSignOutAssassinMiniGameInfo) GetTargetHeroId() uint32 { +func (x *CMsgSignOutAssassinMiniGameInfo) GetTargetHeroId() int32 { if x != nil && x.TargetHeroId != nil { return *x.TargetHeroId } @@ -4929,77 +4865,6 @@ func (x *CMsgServerToGCKillSummaries) GetSummaries() []*CMsgServerToGCKillSummar return nil } -type CMsgGCToServerPredictionResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - AccountId *uint32 `protobuf:"varint,1,opt,name=account_id,json=accountId" json:"account_id,omitempty"` - MatchId *uint64 `protobuf:"varint,2,opt,name=match_id,json=matchId" json:"match_id,omitempty"` - Correct *bool `protobuf:"varint,3,opt,name=correct" json:"correct,omitempty"` - Predictions []*CMsgGCToServerPredictionResult_Prediction `protobuf:"bytes,4,rep,name=predictions" json:"predictions,omitempty"` -} - -func (x *CMsgGCToServerPredictionResult) Reset() { - *x = CMsgGCToServerPredictionResult{} - if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[55] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgGCToServerPredictionResult) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgGCToServerPredictionResult) ProtoMessage() {} - -func (x *CMsgGCToServerPredictionResult) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_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 CMsgGCToServerPredictionResult.ProtoReflect.Descriptor instead. -func (*CMsgGCToServerPredictionResult) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{55} -} - -func (x *CMsgGCToServerPredictionResult) GetAccountId() uint32 { - if x != nil && x.AccountId != nil { - return *x.AccountId - } - return 0 -} - -func (x *CMsgGCToServerPredictionResult) GetMatchId() uint64 { - if x != nil && x.MatchId != nil { - return *x.MatchId - } - return 0 -} - -func (x *CMsgGCToServerPredictionResult) GetCorrect() bool { - if x != nil && x.Correct != nil { - return *x.Correct - } - return false -} - -func (x *CMsgGCToServerPredictionResult) GetPredictions() []*CMsgGCToServerPredictionResult_Prediction { - if x != nil { - return x.Predictions - } - return nil -} - type CMsgServerToGCLockCharmTrading struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -5012,7 +4877,7 @@ type CMsgServerToGCLockCharmTrading struct { func (x *CMsgServerToGCLockCharmTrading) Reset() { *x = CMsgServerToGCLockCharmTrading{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[56] + mi := &file_dota_gcmessages_server_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5025,7 +4890,7 @@ func (x *CMsgServerToGCLockCharmTrading) String() string { func (*CMsgServerToGCLockCharmTrading) ProtoMessage() {} func (x *CMsgServerToGCLockCharmTrading) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[56] + mi := &file_dota_gcmessages_server_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5038,7 +4903,7 @@ func (x *CMsgServerToGCLockCharmTrading) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgServerToGCLockCharmTrading.ProtoReflect.Descriptor instead. func (*CMsgServerToGCLockCharmTrading) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{56} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{55} } func (x *CMsgServerToGCLockCharmTrading) GetAccountId() uint32 { @@ -5064,13 +4929,13 @@ type CMsgSignOutUpdatePlayerChallenge struct { Completed []*CMsgSignOutUpdatePlayerChallenge_Challenge `protobuf:"bytes,2,rep,name=completed" json:"completed,omitempty"` Rerolled []*CMsgSignOutUpdatePlayerChallenge_Challenge `protobuf:"bytes,3,rep,name=rerolled" json:"rerolled,omitempty"` MatchId *uint64 `protobuf:"varint,4,opt,name=match_id,json=matchId" json:"match_id,omitempty"` - HeroId *uint32 `protobuf:"varint,5,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,5,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` } func (x *CMsgSignOutUpdatePlayerChallenge) Reset() { *x = CMsgSignOutUpdatePlayerChallenge{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[57] + mi := &file_dota_gcmessages_server_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5083,7 +4948,7 @@ func (x *CMsgSignOutUpdatePlayerChallenge) String() string { func (*CMsgSignOutUpdatePlayerChallenge) ProtoMessage() {} func (x *CMsgSignOutUpdatePlayerChallenge) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[57] + mi := &file_dota_gcmessages_server_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5096,7 +4961,7 @@ func (x *CMsgSignOutUpdatePlayerChallenge) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgSignOutUpdatePlayerChallenge.ProtoReflect.Descriptor instead. func (*CMsgSignOutUpdatePlayerChallenge) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{57} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{56} } func (x *CMsgSignOutUpdatePlayerChallenge) GetAccountId() uint32 { @@ -5127,7 +4992,7 @@ func (x *CMsgSignOutUpdatePlayerChallenge) GetMatchId() uint64 { return 0 } -func (x *CMsgSignOutUpdatePlayerChallenge) GetHeroId() uint32 { +func (x *CMsgSignOutUpdatePlayerChallenge) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -5146,7 +5011,7 @@ type CMsgServerToGCRerollPlayerChallenge struct { func (x *CMsgServerToGCRerollPlayerChallenge) Reset() { *x = CMsgServerToGCRerollPlayerChallenge{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[58] + mi := &file_dota_gcmessages_server_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5159,7 +5024,7 @@ func (x *CMsgServerToGCRerollPlayerChallenge) String() string { func (*CMsgServerToGCRerollPlayerChallenge) ProtoMessage() {} func (x *CMsgServerToGCRerollPlayerChallenge) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[58] + mi := &file_dota_gcmessages_server_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5172,7 +5037,7 @@ func (x *CMsgServerToGCRerollPlayerChallenge) ProtoReflect() protoreflect.Messag // Deprecated: Use CMsgServerToGCRerollPlayerChallenge.ProtoReflect.Descriptor instead. func (*CMsgServerToGCRerollPlayerChallenge) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{58} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{57} } func (x *CMsgServerToGCRerollPlayerChallenge) GetAccountId() uint32 { @@ -5204,7 +5069,7 @@ type CMsgSpendWager struct { func (x *CMsgSpendWager) Reset() { *x = CMsgSpendWager{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[59] + mi := &file_dota_gcmessages_server_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5217,7 +5082,7 @@ func (x *CMsgSpendWager) String() string { func (*CMsgSpendWager) ProtoMessage() {} func (x *CMsgSpendWager) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[59] + mi := &file_dota_gcmessages_server_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5230,7 +5095,7 @@ func (x *CMsgSpendWager) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgSpendWager.ProtoReflect.Descriptor instead. func (*CMsgSpendWager) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{59} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{58} } func (x *CMsgSpendWager) GetPlayers() []*CMsgSpendWager_Player { @@ -5282,7 +5147,7 @@ type CMsgSignOutXPCoins struct { func (x *CMsgSignOutXPCoins) Reset() { *x = CMsgSignOutXPCoins{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[60] + mi := &file_dota_gcmessages_server_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5295,7 +5160,7 @@ func (x *CMsgSignOutXPCoins) String() string { func (*CMsgSignOutXPCoins) ProtoMessage() {} func (x *CMsgSignOutXPCoins) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[60] + mi := &file_dota_gcmessages_server_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5308,7 +5173,7 @@ func (x *CMsgSignOutXPCoins) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgSignOutXPCoins.ProtoReflect.Descriptor instead. func (*CMsgSignOutXPCoins) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{60} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{59} } func (x *CMsgSignOutXPCoins) GetPlayers() []*CMsgSignOutXPCoins_Player { @@ -5353,7 +5218,7 @@ type CMsgSignOutBounties struct { func (x *CMsgSignOutBounties) Reset() { *x = CMsgSignOutBounties{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[61] + mi := &file_dota_gcmessages_server_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5366,7 +5231,7 @@ func (x *CMsgSignOutBounties) String() string { func (*CMsgSignOutBounties) ProtoMessage() {} func (x *CMsgSignOutBounties) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[61] + mi := &file_dota_gcmessages_server_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5379,7 +5244,7 @@ func (x *CMsgSignOutBounties) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgSignOutBounties.ProtoReflect.Descriptor instead. func (*CMsgSignOutBounties) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{61} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{60} } func (x *CMsgSignOutBounties) GetBounties() []*CMsgSignOutBounties_Bounty { @@ -5422,7 +5287,7 @@ type CMsgSignOutCommunityGoalProgress struct { func (x *CMsgSignOutCommunityGoalProgress) Reset() { *x = CMsgSignOutCommunityGoalProgress{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[62] + mi := &file_dota_gcmessages_server_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5435,7 +5300,7 @@ func (x *CMsgSignOutCommunityGoalProgress) String() string { func (*CMsgSignOutCommunityGoalProgress) ProtoMessage() {} func (x *CMsgSignOutCommunityGoalProgress) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[62] + mi := &file_dota_gcmessages_server_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5448,7 +5313,7 @@ func (x *CMsgSignOutCommunityGoalProgress) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgSignOutCommunityGoalProgress.ProtoReflect.Descriptor instead. func (*CMsgSignOutCommunityGoalProgress) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{62} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{61} } func (x *CMsgSignOutCommunityGoalProgress) GetEventId() EEvent { @@ -5478,7 +5343,7 @@ type CMsgServerToGCCloseCompendiumInGamePredictionVoting struct { func (x *CMsgServerToGCCloseCompendiumInGamePredictionVoting) Reset() { *x = CMsgServerToGCCloseCompendiumInGamePredictionVoting{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[63] + mi := &file_dota_gcmessages_server_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5491,7 +5356,7 @@ func (x *CMsgServerToGCCloseCompendiumInGamePredictionVoting) String() string { func (*CMsgServerToGCCloseCompendiumInGamePredictionVoting) ProtoMessage() {} func (x *CMsgServerToGCCloseCompendiumInGamePredictionVoting) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[63] + mi := &file_dota_gcmessages_server_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5504,7 +5369,7 @@ func (x *CMsgServerToGCCloseCompendiumInGamePredictionVoting) ProtoReflect() pro // Deprecated: Use CMsgServerToGCCloseCompendiumInGamePredictionVoting.ProtoReflect.Descriptor instead. func (*CMsgServerToGCCloseCompendiumInGamePredictionVoting) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{63} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{62} } func (x *CMsgServerToGCCloseCompendiumInGamePredictionVoting) GetMatchId() uint64 { @@ -5539,7 +5404,7 @@ type CMsgServerToGCCloseCompendiumInGamePredictionVotingResponse struct { func (x *CMsgServerToGCCloseCompendiumInGamePredictionVotingResponse) Reset() { *x = CMsgServerToGCCloseCompendiumInGamePredictionVotingResponse{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[64] + mi := &file_dota_gcmessages_server_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5552,7 +5417,7 @@ func (x *CMsgServerToGCCloseCompendiumInGamePredictionVotingResponse) String() s func (*CMsgServerToGCCloseCompendiumInGamePredictionVotingResponse) ProtoMessage() {} func (x *CMsgServerToGCCloseCompendiumInGamePredictionVotingResponse) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[64] + mi := &file_dota_gcmessages_server_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5565,7 +5430,7 @@ func (x *CMsgServerToGCCloseCompendiumInGamePredictionVotingResponse) ProtoRefle // Deprecated: Use CMsgServerToGCCloseCompendiumInGamePredictionVotingResponse.ProtoReflect.Descriptor instead. func (*CMsgServerToGCCloseCompendiumInGamePredictionVotingResponse) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{64} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{63} } func (x *CMsgServerToGCCloseCompendiumInGamePredictionVotingResponse) GetResult() bool { @@ -5589,7 +5454,7 @@ type CMsgServerToGCCompendiumInGamePredictionResults struct { func (x *CMsgServerToGCCompendiumInGamePredictionResults) Reset() { *x = CMsgServerToGCCompendiumInGamePredictionResults{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[65] + mi := &file_dota_gcmessages_server_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5602,7 +5467,7 @@ func (x *CMsgServerToGCCompendiumInGamePredictionResults) String() string { func (*CMsgServerToGCCompendiumInGamePredictionResults) ProtoMessage() {} func (x *CMsgServerToGCCompendiumInGamePredictionResults) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[65] + mi := &file_dota_gcmessages_server_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5615,7 +5480,7 @@ func (x *CMsgServerToGCCompendiumInGamePredictionResults) ProtoReflect() protore // Deprecated: Use CMsgServerToGCCompendiumInGamePredictionResults.ProtoReflect.Descriptor instead. func (*CMsgServerToGCCompendiumInGamePredictionResults) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{65} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{64} } func (x *CMsgServerToGCCompendiumInGamePredictionResults) GetMatchId() uint64 { @@ -5659,7 +5524,7 @@ type CMsgServerToGCCompendiumChosenInGamePredictions struct { func (x *CMsgServerToGCCompendiumChosenInGamePredictions) Reset() { *x = CMsgServerToGCCompendiumChosenInGamePredictions{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[66] + mi := &file_dota_gcmessages_server_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5672,7 +5537,7 @@ func (x *CMsgServerToGCCompendiumChosenInGamePredictions) String() string { func (*CMsgServerToGCCompendiumChosenInGamePredictions) ProtoMessage() {} func (x *CMsgServerToGCCompendiumChosenInGamePredictions) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[66] + mi := &file_dota_gcmessages_server_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5685,7 +5550,7 @@ func (x *CMsgServerToGCCompendiumChosenInGamePredictions) ProtoReflect() protore // Deprecated: Use CMsgServerToGCCompendiumChosenInGamePredictions.ProtoReflect.Descriptor instead. func (*CMsgServerToGCCompendiumChosenInGamePredictions) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{66} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{65} } func (x *CMsgServerToGCCompendiumChosenInGamePredictions) GetMatchId() uint64 { @@ -5720,7 +5585,7 @@ type CMsgGCToGCCompendiumInGamePredictionResults struct { func (x *CMsgGCToGCCompendiumInGamePredictionResults) Reset() { *x = CMsgGCToGCCompendiumInGamePredictionResults{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[67] + mi := &file_dota_gcmessages_server_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5733,7 +5598,7 @@ func (x *CMsgGCToGCCompendiumInGamePredictionResults) String() string { func (*CMsgGCToGCCompendiumInGamePredictionResults) ProtoMessage() {} func (x *CMsgGCToGCCompendiumInGamePredictionResults) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[67] + mi := &file_dota_gcmessages_server_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5746,7 +5611,7 @@ func (x *CMsgGCToGCCompendiumInGamePredictionResults) ProtoReflect() protoreflec // Deprecated: Use CMsgGCToGCCompendiumInGamePredictionResults.ProtoReflect.Descriptor instead. func (*CMsgGCToGCCompendiumInGamePredictionResults) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{67} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{66} } func (x *CMsgGCToGCCompendiumInGamePredictionResults) GetResults() *CMsgServerToGCCompendiumInGamePredictionResults { @@ -5769,7 +5634,7 @@ type CMsgServerToGCMatchPlayerItemPurchaseHistory struct { func (x *CMsgServerToGCMatchPlayerItemPurchaseHistory) Reset() { *x = CMsgServerToGCMatchPlayerItemPurchaseHistory{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[68] + mi := &file_dota_gcmessages_server_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5782,7 +5647,7 @@ func (x *CMsgServerToGCMatchPlayerItemPurchaseHistory) String() string { func (*CMsgServerToGCMatchPlayerItemPurchaseHistory) ProtoMessage() {} func (x *CMsgServerToGCMatchPlayerItemPurchaseHistory) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[68] + mi := &file_dota_gcmessages_server_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5795,7 +5660,7 @@ func (x *CMsgServerToGCMatchPlayerItemPurchaseHistory) ProtoReflect() protorefle // Deprecated: Use CMsgServerToGCMatchPlayerItemPurchaseHistory.ProtoReflect.Descriptor instead. func (*CMsgServerToGCMatchPlayerItemPurchaseHistory) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{68} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{67} } func (x *CMsgServerToGCMatchPlayerItemPurchaseHistory) GetMatchId() uint64 { @@ -5831,7 +5696,7 @@ type CMsgServerToGCMatchPlayerNeutralItemEquipHistory struct { func (x *CMsgServerToGCMatchPlayerNeutralItemEquipHistory) Reset() { *x = CMsgServerToGCMatchPlayerNeutralItemEquipHistory{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[69] + mi := &file_dota_gcmessages_server_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5844,7 +5709,7 @@ func (x *CMsgServerToGCMatchPlayerNeutralItemEquipHistory) String() string { func (*CMsgServerToGCMatchPlayerNeutralItemEquipHistory) ProtoMessage() {} func (x *CMsgServerToGCMatchPlayerNeutralItemEquipHistory) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[69] + mi := &file_dota_gcmessages_server_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5857,7 +5722,7 @@ func (x *CMsgServerToGCMatchPlayerNeutralItemEquipHistory) ProtoReflect() protor // Deprecated: Use CMsgServerToGCMatchPlayerNeutralItemEquipHistory.ProtoReflect.Descriptor instead. func (*CMsgServerToGCMatchPlayerNeutralItemEquipHistory) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{69} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{68} } func (x *CMsgServerToGCMatchPlayerNeutralItemEquipHistory) GetMatchId() uint64 { @@ -5888,7 +5753,7 @@ type CMsgServerToGCMatchStateHistory struct { func (x *CMsgServerToGCMatchStateHistory) Reset() { *x = CMsgServerToGCMatchStateHistory{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[70] + mi := &file_dota_gcmessages_server_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5901,7 +5766,7 @@ func (x *CMsgServerToGCMatchStateHistory) String() string { func (*CMsgServerToGCMatchStateHistory) ProtoMessage() {} func (x *CMsgServerToGCMatchStateHistory) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[70] + mi := &file_dota_gcmessages_server_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5914,7 +5779,7 @@ func (x *CMsgServerToGCMatchStateHistory) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgServerToGCMatchStateHistory.ProtoReflect.Descriptor instead. func (*CMsgServerToGCMatchStateHistory) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{70} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{69} } func (x *CMsgServerToGCMatchStateHistory) GetMatchId() uint64 { @@ -5958,7 +5823,7 @@ type CMsgMatchStateSteamMLEntry struct { func (x *CMsgMatchStateSteamMLEntry) Reset() { *x = CMsgMatchStateSteamMLEntry{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[71] + mi := &file_dota_gcmessages_server_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5971,7 +5836,7 @@ func (x *CMsgMatchStateSteamMLEntry) String() string { func (*CMsgMatchStateSteamMLEntry) ProtoMessage() {} func (x *CMsgMatchStateSteamMLEntry) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[71] + mi := &file_dota_gcmessages_server_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5984,7 +5849,7 @@ func (x *CMsgMatchStateSteamMLEntry) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgMatchStateSteamMLEntry.ProtoReflect.Descriptor instead. func (*CMsgMatchStateSteamMLEntry) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{71} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{70} } func (x *CMsgMatchStateSteamMLEntry) GetMatchState() *CMsgServerToGCMatchStateHistory_MatchState { @@ -6013,14 +5878,14 @@ type CMsgLaneSelectionSteamMLEntry struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroIds []uint32 `protobuf:"varint,1,rep,name=hero_ids,json=heroIds" json:"hero_ids,omitempty"` + HeroIds []int32 `protobuf:"varint,1,rep,name=hero_ids,json=heroIds" json:"hero_ids,omitempty"` Lanes []uint32 `protobuf:"varint,2,rep,name=lanes" json:"lanes,omitempty"` } func (x *CMsgLaneSelectionSteamMLEntry) Reset() { *x = CMsgLaneSelectionSteamMLEntry{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[72] + mi := &file_dota_gcmessages_server_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6033,7 +5898,7 @@ func (x *CMsgLaneSelectionSteamMLEntry) String() string { func (*CMsgLaneSelectionSteamMLEntry) ProtoMessage() {} func (x *CMsgLaneSelectionSteamMLEntry) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[72] + mi := &file_dota_gcmessages_server_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6046,10 +5911,10 @@ func (x *CMsgLaneSelectionSteamMLEntry) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgLaneSelectionSteamMLEntry.ProtoReflect.Descriptor instead. func (*CMsgLaneSelectionSteamMLEntry) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{72} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{71} } -func (x *CMsgLaneSelectionSteamMLEntry) GetHeroIds() []uint32 { +func (x *CMsgLaneSelectionSteamMLEntry) GetHeroIds() []int32 { if x != nil { return x.HeroIds } @@ -6068,18 +5933,18 @@ type CMsgAbilitySelectionSteamMLEntry struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Mmr *uint32 `protobuf:"varint,1,opt,name=mmr" json:"mmr,omitempty"` - HeroId *uint32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` - EnemyHeroIds []uint32 `protobuf:"varint,3,rep,name=enemy_hero_ids,json=enemyHeroIds" json:"enemy_hero_ids,omitempty"` - Lane *uint32 `protobuf:"varint,4,opt,name=lane" json:"lane,omitempty"` - Abilities []int32 `protobuf:"varint,5,rep,name=abilities" json:"abilities,omitempty"` - SelectedAbility *int32 `protobuf:"varint,6,opt,name=selected_ability,json=selectedAbility" json:"selected_ability,omitempty"` + Mmr *uint32 `protobuf:"varint,1,opt,name=mmr" json:"mmr,omitempty"` + HeroId *int32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + EnemyHeroIds []int32 `protobuf:"varint,3,rep,name=enemy_hero_ids,json=enemyHeroIds" json:"enemy_hero_ids,omitempty"` + Lane *uint32 `protobuf:"varint,4,opt,name=lane" json:"lane,omitempty"` + Abilities []int32 `protobuf:"varint,5,rep,name=abilities" json:"abilities,omitempty"` + SelectedAbility *int32 `protobuf:"varint,6,opt,name=selected_ability,json=selectedAbility" json:"selected_ability,omitempty"` } func (x *CMsgAbilitySelectionSteamMLEntry) Reset() { *x = CMsgAbilitySelectionSteamMLEntry{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[73] + mi := &file_dota_gcmessages_server_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6092,7 +5957,7 @@ func (x *CMsgAbilitySelectionSteamMLEntry) String() string { func (*CMsgAbilitySelectionSteamMLEntry) ProtoMessage() {} func (x *CMsgAbilitySelectionSteamMLEntry) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[73] + mi := &file_dota_gcmessages_server_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6105,7 +5970,7 @@ func (x *CMsgAbilitySelectionSteamMLEntry) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgAbilitySelectionSteamMLEntry.ProtoReflect.Descriptor instead. func (*CMsgAbilitySelectionSteamMLEntry) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{73} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{72} } func (x *CMsgAbilitySelectionSteamMLEntry) GetMmr() uint32 { @@ -6115,14 +5980,14 @@ func (x *CMsgAbilitySelectionSteamMLEntry) GetMmr() uint32 { return 0 } -func (x *CMsgAbilitySelectionSteamMLEntry) GetHeroId() uint32 { +func (x *CMsgAbilitySelectionSteamMLEntry) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } return 0 } -func (x *CMsgAbilitySelectionSteamMLEntry) GetEnemyHeroIds() []uint32 { +func (x *CMsgAbilitySelectionSteamMLEntry) GetEnemyHeroIds() []int32 { if x != nil { return x.EnemyHeroIds } @@ -6158,16 +6023,16 @@ type CMsgItemPurchasePregameSteamMLEntry struct { Mmr *uint32 `protobuf:"varint,1,opt,name=mmr" json:"mmr,omitempty"` Lane *uint32 `protobuf:"varint,2,opt,name=lane" json:"lane,omitempty"` Balance *float32 `protobuf:"fixed32,3,opt,name=balance" json:"balance,omitempty"` - HeroId *uint32 `protobuf:"varint,4,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` - AlliedHeroIds []uint32 `protobuf:"varint,5,rep,name=allied_hero_ids,json=alliedHeroIds" json:"allied_hero_ids,omitempty"` - EnemyHeroIds []uint32 `protobuf:"varint,6,rep,name=enemy_hero_ids,json=enemyHeroIds" json:"enemy_hero_ids,omitempty"` + HeroId *int32 `protobuf:"varint,4,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + AlliedHeroIds []int32 `protobuf:"varint,5,rep,name=allied_hero_ids,json=alliedHeroIds" json:"allied_hero_ids,omitempty"` + EnemyHeroIds []int32 `protobuf:"varint,6,rep,name=enemy_hero_ids,json=enemyHeroIds" json:"enemy_hero_ids,omitempty"` Items []int32 `protobuf:"varint,7,rep,name=items" json:"items,omitempty"` } func (x *CMsgItemPurchasePregameSteamMLEntry) Reset() { *x = CMsgItemPurchasePregameSteamMLEntry{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[74] + mi := &file_dota_gcmessages_server_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6180,7 +6045,7 @@ func (x *CMsgItemPurchasePregameSteamMLEntry) String() string { func (*CMsgItemPurchasePregameSteamMLEntry) ProtoMessage() {} func (x *CMsgItemPurchasePregameSteamMLEntry) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[74] + mi := &file_dota_gcmessages_server_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6193,7 +6058,7 @@ func (x *CMsgItemPurchasePregameSteamMLEntry) ProtoReflect() protoreflect.Messag // Deprecated: Use CMsgItemPurchasePregameSteamMLEntry.ProtoReflect.Descriptor instead. func (*CMsgItemPurchasePregameSteamMLEntry) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{74} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{73} } func (x *CMsgItemPurchasePregameSteamMLEntry) GetMmr() uint32 { @@ -6217,21 +6082,21 @@ func (x *CMsgItemPurchasePregameSteamMLEntry) GetBalance() float32 { return 0 } -func (x *CMsgItemPurchasePregameSteamMLEntry) GetHeroId() uint32 { +func (x *CMsgItemPurchasePregameSteamMLEntry) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } return 0 } -func (x *CMsgItemPurchasePregameSteamMLEntry) GetAlliedHeroIds() []uint32 { +func (x *CMsgItemPurchasePregameSteamMLEntry) GetAlliedHeroIds() []int32 { if x != nil { return x.AlliedHeroIds } return nil } -func (x *CMsgItemPurchasePregameSteamMLEntry) GetEnemyHeroIds() []uint32 { +func (x *CMsgItemPurchasePregameSteamMLEntry) GetEnemyHeroIds() []int32 { if x != nil { return x.EnemyHeroIds } @@ -6250,19 +6115,19 @@ type CMsgItemPurchaseSteamMLEntry struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Mmr *uint32 `protobuf:"varint,1,opt,name=mmr" json:"mmr,omitempty"` - Lane *uint32 `protobuf:"varint,2,opt,name=lane" json:"lane,omitempty"` - HeroId *uint32 `protobuf:"varint,3,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` - AlliedHeroIds []uint32 `protobuf:"varint,4,rep,name=allied_hero_ids,json=alliedHeroIds" json:"allied_hero_ids,omitempty"` - EnemyHeroIds []uint32 `protobuf:"varint,5,rep,name=enemy_hero_ids,json=enemyHeroIds" json:"enemy_hero_ids,omitempty"` - Items []int32 `protobuf:"varint,6,rep,name=items" json:"items,omitempty"` - ItemsToBePurchased []int32 `protobuf:"varint,7,rep,name=items_to_be_purchased,json=itemsToBePurchased" json:"items_to_be_purchased,omitempty"` + Mmr *uint32 `protobuf:"varint,1,opt,name=mmr" json:"mmr,omitempty"` + Lane *uint32 `protobuf:"varint,2,opt,name=lane" json:"lane,omitempty"` + HeroId *int32 `protobuf:"varint,3,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + AlliedHeroIds []int32 `protobuf:"varint,4,rep,name=allied_hero_ids,json=alliedHeroIds" json:"allied_hero_ids,omitempty"` + EnemyHeroIds []int32 `protobuf:"varint,5,rep,name=enemy_hero_ids,json=enemyHeroIds" json:"enemy_hero_ids,omitempty"` + Items []int32 `protobuf:"varint,6,rep,name=items" json:"items,omitempty"` + ItemsToBePurchased []int32 `protobuf:"varint,7,rep,name=items_to_be_purchased,json=itemsToBePurchased" json:"items_to_be_purchased,omitempty"` } func (x *CMsgItemPurchaseSteamMLEntry) Reset() { *x = CMsgItemPurchaseSteamMLEntry{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[75] + mi := &file_dota_gcmessages_server_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6275,7 +6140,7 @@ func (x *CMsgItemPurchaseSteamMLEntry) String() string { func (*CMsgItemPurchaseSteamMLEntry) ProtoMessage() {} func (x *CMsgItemPurchaseSteamMLEntry) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[75] + mi := &file_dota_gcmessages_server_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6288,7 +6153,7 @@ func (x *CMsgItemPurchaseSteamMLEntry) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgItemPurchaseSteamMLEntry.ProtoReflect.Descriptor instead. func (*CMsgItemPurchaseSteamMLEntry) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{75} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{74} } func (x *CMsgItemPurchaseSteamMLEntry) GetMmr() uint32 { @@ -6305,21 +6170,21 @@ func (x *CMsgItemPurchaseSteamMLEntry) GetLane() uint32 { return 0 } -func (x *CMsgItemPurchaseSteamMLEntry) GetHeroId() uint32 { +func (x *CMsgItemPurchaseSteamMLEntry) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } return 0 } -func (x *CMsgItemPurchaseSteamMLEntry) GetAlliedHeroIds() []uint32 { +func (x *CMsgItemPurchaseSteamMLEntry) GetAlliedHeroIds() []int32 { if x != nil { return x.AlliedHeroIds } return nil } -func (x *CMsgItemPurchaseSteamMLEntry) GetEnemyHeroIds() []uint32 { +func (x *CMsgItemPurchaseSteamMLEntry) GetEnemyHeroIds() []int32 { if x != nil { return x.EnemyHeroIds } @@ -6345,19 +6210,19 @@ type CMsgItemPurchaseSequenceSteamMLEntry struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Mmr *uint32 `protobuf:"varint,1,opt,name=mmr" json:"mmr,omitempty"` - Lane *uint32 `protobuf:"varint,2,opt,name=lane" json:"lane,omitempty"` - HeroId *uint32 `protobuf:"varint,3,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` - AlliedHeroIds []uint32 `protobuf:"varint,4,rep,name=allied_hero_ids,json=alliedHeroIds" json:"allied_hero_ids,omitempty"` - EnemyHeroIds []uint32 `protobuf:"varint,5,rep,name=enemy_hero_ids,json=enemyHeroIds" json:"enemy_hero_ids,omitempty"` - Items []int32 `protobuf:"varint,6,rep,name=items" json:"items,omitempty"` - ItemToBePurchased *int32 `protobuf:"varint,7,opt,name=item_to_be_purchased,json=itemToBePurchased" json:"item_to_be_purchased,omitempty"` + Mmr *uint32 `protobuf:"varint,1,opt,name=mmr" json:"mmr,omitempty"` + Lane *uint32 `protobuf:"varint,2,opt,name=lane" json:"lane,omitempty"` + HeroId *int32 `protobuf:"varint,3,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + AlliedHeroIds []int32 `protobuf:"varint,4,rep,name=allied_hero_ids,json=alliedHeroIds" json:"allied_hero_ids,omitempty"` + EnemyHeroIds []int32 `protobuf:"varint,5,rep,name=enemy_hero_ids,json=enemyHeroIds" json:"enemy_hero_ids,omitempty"` + Items []int32 `protobuf:"varint,6,rep,name=items" json:"items,omitempty"` + ItemToBePurchased *int32 `protobuf:"varint,7,opt,name=item_to_be_purchased,json=itemToBePurchased" json:"item_to_be_purchased,omitempty"` } func (x *CMsgItemPurchaseSequenceSteamMLEntry) Reset() { *x = CMsgItemPurchaseSequenceSteamMLEntry{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[76] + mi := &file_dota_gcmessages_server_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6370,7 +6235,7 @@ func (x *CMsgItemPurchaseSequenceSteamMLEntry) String() string { func (*CMsgItemPurchaseSequenceSteamMLEntry) ProtoMessage() {} func (x *CMsgItemPurchaseSequenceSteamMLEntry) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[76] + mi := &file_dota_gcmessages_server_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6383,7 +6248,7 @@ func (x *CMsgItemPurchaseSequenceSteamMLEntry) ProtoReflect() protoreflect.Messa // Deprecated: Use CMsgItemPurchaseSequenceSteamMLEntry.ProtoReflect.Descriptor instead. func (*CMsgItemPurchaseSequenceSteamMLEntry) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{76} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{75} } func (x *CMsgItemPurchaseSequenceSteamMLEntry) GetMmr() uint32 { @@ -6400,21 +6265,21 @@ func (x *CMsgItemPurchaseSequenceSteamMLEntry) GetLane() uint32 { return 0 } -func (x *CMsgItemPurchaseSequenceSteamMLEntry) GetHeroId() uint32 { +func (x *CMsgItemPurchaseSequenceSteamMLEntry) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } return 0 } -func (x *CMsgItemPurchaseSequenceSteamMLEntry) GetAlliedHeroIds() []uint32 { +func (x *CMsgItemPurchaseSequenceSteamMLEntry) GetAlliedHeroIds() []int32 { if x != nil { return x.AlliedHeroIds } return nil } -func (x *CMsgItemPurchaseSequenceSteamMLEntry) GetEnemyHeroIds() []uint32 { +func (x *CMsgItemPurchaseSequenceSteamMLEntry) GetEnemyHeroIds() []int32 { if x != nil { return x.EnemyHeroIds } @@ -6443,14 +6308,14 @@ type CMsgServerToGCCavernCrawlIsHeroActive struct { EventId *uint32 `protobuf:"varint,1,opt,name=event_id,json=eventId" json:"event_id,omitempty"` AccountId *uint32 `protobuf:"varint,2,opt,name=account_id,json=accountId" json:"account_id,omitempty"` PreferredMapVariant *uint32 `protobuf:"varint,3,opt,name=preferred_map_variant,json=preferredMapVariant" json:"preferred_map_variant,omitempty"` - HeroId *uint32 `protobuf:"varint,4,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,4,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` TurboMode *bool `protobuf:"varint,5,opt,name=turbo_mode,json=turboMode" json:"turbo_mode,omitempty"` } func (x *CMsgServerToGCCavernCrawlIsHeroActive) Reset() { *x = CMsgServerToGCCavernCrawlIsHeroActive{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[77] + mi := &file_dota_gcmessages_server_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6463,7 +6328,7 @@ func (x *CMsgServerToGCCavernCrawlIsHeroActive) String() string { func (*CMsgServerToGCCavernCrawlIsHeroActive) ProtoMessage() {} func (x *CMsgServerToGCCavernCrawlIsHeroActive) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[77] + mi := &file_dota_gcmessages_server_proto_msgTypes[76] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6476,7 +6341,7 @@ func (x *CMsgServerToGCCavernCrawlIsHeroActive) ProtoReflect() protoreflect.Mess // Deprecated: Use CMsgServerToGCCavernCrawlIsHeroActive.ProtoReflect.Descriptor instead. func (*CMsgServerToGCCavernCrawlIsHeroActive) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{77} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{76} } func (x *CMsgServerToGCCavernCrawlIsHeroActive) GetEventId() uint32 { @@ -6500,7 +6365,7 @@ func (x *CMsgServerToGCCavernCrawlIsHeroActive) GetPreferredMapVariant() uint32 return 0 } -func (x *CMsgServerToGCCavernCrawlIsHeroActive) GetHeroId() uint32 { +func (x *CMsgServerToGCCavernCrawlIsHeroActive) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -6527,7 +6392,7 @@ type CMsgServerToGCPlayerChallengeHistory struct { func (x *CMsgServerToGCPlayerChallengeHistory) Reset() { *x = CMsgServerToGCPlayerChallengeHistory{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[78] + mi := &file_dota_gcmessages_server_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6540,7 +6405,7 @@ func (x *CMsgServerToGCPlayerChallengeHistory) String() string { func (*CMsgServerToGCPlayerChallengeHistory) ProtoMessage() {} func (x *CMsgServerToGCPlayerChallengeHistory) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[78] + mi := &file_dota_gcmessages_server_proto_msgTypes[77] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6553,7 +6418,7 @@ func (x *CMsgServerToGCPlayerChallengeHistory) ProtoReflect() protoreflect.Messa // Deprecated: Use CMsgServerToGCPlayerChallengeHistory.ProtoReflect.Descriptor instead. func (*CMsgServerToGCPlayerChallengeHistory) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{78} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{77} } func (x *CMsgServerToGCPlayerChallengeHistory) GetMatchId() uint64 { @@ -6592,7 +6457,7 @@ type CMsgServerToGCCavernCrawlIsHeroActiveResponse struct { func (x *CMsgServerToGCCavernCrawlIsHeroActiveResponse) Reset() { *x = CMsgServerToGCCavernCrawlIsHeroActiveResponse{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[79] + mi := &file_dota_gcmessages_server_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6605,7 +6470,7 @@ func (x *CMsgServerToGCCavernCrawlIsHeroActiveResponse) String() string { func (*CMsgServerToGCCavernCrawlIsHeroActiveResponse) ProtoMessage() {} func (x *CMsgServerToGCCavernCrawlIsHeroActiveResponse) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[79] + mi := &file_dota_gcmessages_server_proto_msgTypes[78] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6618,7 +6483,7 @@ func (x *CMsgServerToGCCavernCrawlIsHeroActiveResponse) ProtoReflect() protorefl // Deprecated: Use CMsgServerToGCCavernCrawlIsHeroActiveResponse.ProtoReflect.Descriptor instead. func (*CMsgServerToGCCavernCrawlIsHeroActiveResponse) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{79} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{78} } func (x *CMsgServerToGCCavernCrawlIsHeroActiveResponse) GetResult() bool { @@ -6667,7 +6532,7 @@ type CMsgNeutralItemStats struct { func (x *CMsgNeutralItemStats) Reset() { *x = CMsgNeutralItemStats{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[80] + mi := &file_dota_gcmessages_server_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6680,7 +6545,7 @@ func (x *CMsgNeutralItemStats) String() string { func (*CMsgNeutralItemStats) ProtoMessage() {} func (x *CMsgNeutralItemStats) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[80] + mi := &file_dota_gcmessages_server_proto_msgTypes[79] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6693,7 +6558,7 @@ func (x *CMsgNeutralItemStats) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgNeutralItemStats.ProtoReflect.Descriptor instead. func (*CMsgNeutralItemStats) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{80} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{79} } func (x *CMsgNeutralItemStats) GetNeutralItems() []*CMsgNeutralItemStats_NeutralItem { @@ -6714,7 +6579,7 @@ type CMsgGCToServerLobbyHeroBanRates struct { func (x *CMsgGCToServerLobbyHeroBanRates) Reset() { *x = CMsgGCToServerLobbyHeroBanRates{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[81] + mi := &file_dota_gcmessages_server_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6727,7 +6592,7 @@ func (x *CMsgGCToServerLobbyHeroBanRates) String() string { func (*CMsgGCToServerLobbyHeroBanRates) ProtoMessage() {} func (x *CMsgGCToServerLobbyHeroBanRates) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[81] + mi := &file_dota_gcmessages_server_proto_msgTypes[80] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6740,7 +6605,7 @@ func (x *CMsgGCToServerLobbyHeroBanRates) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgGCToServerLobbyHeroBanRates.ProtoReflect.Descriptor instead. func (*CMsgGCToServerLobbyHeroBanRates) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{81} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{80} } func (x *CMsgGCToServerLobbyHeroBanRates) GetBanData() []*CMsgGCToServerLobbyHeroBanRates_HeroBanEntry { @@ -6761,7 +6626,7 @@ type CMsgSignOutGuildContractProgress struct { func (x *CMsgSignOutGuildContractProgress) Reset() { *x = CMsgSignOutGuildContractProgress{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[82] + mi := &file_dota_gcmessages_server_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6774,7 +6639,7 @@ func (x *CMsgSignOutGuildContractProgress) String() string { func (*CMsgSignOutGuildContractProgress) ProtoMessage() {} func (x *CMsgSignOutGuildContractProgress) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[82] + mi := &file_dota_gcmessages_server_proto_msgTypes[81] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6787,7 +6652,7 @@ func (x *CMsgSignOutGuildContractProgress) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgSignOutGuildContractProgress.ProtoReflect.Descriptor instead. func (*CMsgSignOutGuildContractProgress) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{82} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{81} } func (x *CMsgSignOutGuildContractProgress) GetPlayerContracts() []*CMsgSignOutGuildContractProgress_PlayerContract { @@ -6808,7 +6673,7 @@ type CMsgSignOutGuildChallengeProgress struct { func (x *CMsgSignOutGuildChallengeProgress) Reset() { *x = CMsgSignOutGuildChallengeProgress{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[83] + mi := &file_dota_gcmessages_server_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6821,7 +6686,7 @@ func (x *CMsgSignOutGuildChallengeProgress) String() string { func (*CMsgSignOutGuildChallengeProgress) ProtoMessage() {} func (x *CMsgSignOutGuildChallengeProgress) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[83] + mi := &file_dota_gcmessages_server_proto_msgTypes[82] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6834,7 +6699,7 @@ func (x *CMsgSignOutGuildChallengeProgress) ProtoReflect() protoreflect.Message // Deprecated: Use CMsgSignOutGuildChallengeProgress.ProtoReflect.Descriptor instead. func (*CMsgSignOutGuildChallengeProgress) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{83} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{82} } func (x *CMsgSignOutGuildChallengeProgress) GetGuildChallengesProgresses() []*CMsgSignOutGuildChallengeProgress_ChallengeProgress { @@ -6859,7 +6724,7 @@ type CMsgSignOutMVPStats struct { func (x *CMsgSignOutMVPStats) Reset() { *x = CMsgSignOutMVPStats{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[84] + mi := &file_dota_gcmessages_server_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6872,7 +6737,7 @@ func (x *CMsgSignOutMVPStats) String() string { func (*CMsgSignOutMVPStats) ProtoMessage() {} func (x *CMsgSignOutMVPStats) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[84] + mi := &file_dota_gcmessages_server_proto_msgTypes[83] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6885,7 +6750,7 @@ func (x *CMsgSignOutMVPStats) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgSignOutMVPStats.ProtoReflect.Descriptor instead. func (*CMsgSignOutMVPStats) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{84} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{83} } func (x *CMsgSignOutMVPStats) GetMatchId() uint64 { @@ -6934,7 +6799,7 @@ type CMsgGCToServerRecordTrainingData struct { func (x *CMsgGCToServerRecordTrainingData) Reset() { *x = CMsgGCToServerRecordTrainingData{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[85] + mi := &file_dota_gcmessages_server_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6947,7 +6812,7 @@ func (x *CMsgGCToServerRecordTrainingData) String() string { func (*CMsgGCToServerRecordTrainingData) ProtoMessage() {} func (x *CMsgGCToServerRecordTrainingData) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[85] + mi := &file_dota_gcmessages_server_proto_msgTypes[84] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6960,7 +6825,7 @@ func (x *CMsgGCToServerRecordTrainingData) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgGCToServerRecordTrainingData.ProtoReflect.Descriptor instead. func (*CMsgGCToServerRecordTrainingData) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{85} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{84} } func (x *CMsgGCToServerRecordTrainingData) GetEnable() bool { @@ -6981,7 +6846,7 @@ type CMsgServerToGCGetGuildContracts struct { func (x *CMsgServerToGCGetGuildContracts) Reset() { *x = CMsgServerToGCGetGuildContracts{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[86] + mi := &file_dota_gcmessages_server_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6994,7 +6859,7 @@ func (x *CMsgServerToGCGetGuildContracts) String() string { func (*CMsgServerToGCGetGuildContracts) ProtoMessage() {} func (x *CMsgServerToGCGetGuildContracts) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[86] + mi := &file_dota_gcmessages_server_proto_msgTypes[85] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7007,7 +6872,7 @@ func (x *CMsgServerToGCGetGuildContracts) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgServerToGCGetGuildContracts.ProtoReflect.Descriptor instead. func (*CMsgServerToGCGetGuildContracts) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{86} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{85} } func (x *CMsgServerToGCGetGuildContracts) GetAccountIds() []uint32 { @@ -7028,7 +6893,7 @@ type CMsgServerToGCGetGuildContractsResponse struct { func (x *CMsgServerToGCGetGuildContractsResponse) Reset() { *x = CMsgServerToGCGetGuildContractsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[87] + mi := &file_dota_gcmessages_server_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7041,7 +6906,7 @@ func (x *CMsgServerToGCGetGuildContractsResponse) String() string { func (*CMsgServerToGCGetGuildContractsResponse) ProtoMessage() {} func (x *CMsgServerToGCGetGuildContractsResponse) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[87] + mi := &file_dota_gcmessages_server_proto_msgTypes[86] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7054,7 +6919,7 @@ func (x *CMsgServerToGCGetGuildContractsResponse) ProtoReflect() protoreflect.Me // Deprecated: Use CMsgServerToGCGetGuildContractsResponse.ProtoReflect.Descriptor instead. func (*CMsgServerToGCGetGuildContractsResponse) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{87} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{86} } func (x *CMsgServerToGCGetGuildContractsResponse) GetPlayerContracts() []*CMsgServerToGCGetGuildContractsResponse_Player { @@ -7076,7 +6941,7 @@ type CMsgMatchDiretideCandy struct { func (x *CMsgMatchDiretideCandy) Reset() { *x = CMsgMatchDiretideCandy{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[88] + mi := &file_dota_gcmessages_server_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7089,7 +6954,7 @@ func (x *CMsgMatchDiretideCandy) String() string { func (*CMsgMatchDiretideCandy) ProtoMessage() {} func (x *CMsgMatchDiretideCandy) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[88] + mi := &file_dota_gcmessages_server_proto_msgTypes[87] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7102,7 +6967,7 @@ func (x *CMsgMatchDiretideCandy) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgMatchDiretideCandy.ProtoReflect.Descriptor instead. func (*CMsgMatchDiretideCandy) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{88} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{87} } func (x *CMsgMatchDiretideCandy) GetPlayerCandyData() []*CMsgMatchDiretideCandy_PlayerCandy { @@ -7130,7 +6995,7 @@ type CMsgGCToServerCheerData struct { func (x *CMsgGCToServerCheerData) Reset() { *x = CMsgGCToServerCheerData{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[89] + mi := &file_dota_gcmessages_server_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7143,7 +7008,7 @@ func (x *CMsgGCToServerCheerData) String() string { func (*CMsgGCToServerCheerData) ProtoMessage() {} func (x *CMsgGCToServerCheerData) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[89] + mi := &file_dota_gcmessages_server_proto_msgTypes[88] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7156,7 +7021,7 @@ func (x *CMsgGCToServerCheerData) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgGCToServerCheerData.ProtoReflect.Descriptor instead. func (*CMsgGCToServerCheerData) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{89} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{88} } func (x *CMsgGCToServerCheerData) GetCheerTypes() []*CMsgGCToServerCheerData_CheerTypeCount { @@ -7194,7 +7059,7 @@ type CMsgCheerConfig struct { func (x *CMsgCheerConfig) Reset() { *x = CMsgCheerConfig{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[90] + mi := &file_dota_gcmessages_server_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7207,7 +7072,7 @@ func (x *CMsgCheerConfig) String() string { func (*CMsgCheerConfig) ProtoMessage() {} func (x *CMsgCheerConfig) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[90] + mi := &file_dota_gcmessages_server_proto_msgTypes[89] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7220,7 +7085,7 @@ func (x *CMsgCheerConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgCheerConfig.ProtoReflect.Descriptor instead. func (*CMsgCheerConfig) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{90} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{89} } func (x *CMsgCheerConfig) GetCheersEnabled() bool { @@ -7360,7 +7225,7 @@ type CMsgGCToServerCheerConfig struct { func (x *CMsgGCToServerCheerConfig) Reset() { *x = CMsgGCToServerCheerConfig{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[91] + mi := &file_dota_gcmessages_server_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7373,7 +7238,7 @@ func (x *CMsgGCToServerCheerConfig) String() string { func (*CMsgGCToServerCheerConfig) ProtoMessage() {} func (x *CMsgGCToServerCheerConfig) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[91] + mi := &file_dota_gcmessages_server_proto_msgTypes[90] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7386,7 +7251,7 @@ func (x *CMsgGCToServerCheerConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgGCToServerCheerConfig.ProtoReflect.Descriptor instead. func (*CMsgGCToServerCheerConfig) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{91} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{90} } func (x *CMsgGCToServerCheerConfig) GetCheerConfig() *CMsgCheerConfig { @@ -7407,7 +7272,7 @@ type CMsgServerToGCGetCheerConfig struct { func (x *CMsgServerToGCGetCheerConfig) Reset() { *x = CMsgServerToGCGetCheerConfig{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[92] + mi := &file_dota_gcmessages_server_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7420,7 +7285,7 @@ func (x *CMsgServerToGCGetCheerConfig) String() string { func (*CMsgServerToGCGetCheerConfig) ProtoMessage() {} func (x *CMsgServerToGCGetCheerConfig) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[92] + mi := &file_dota_gcmessages_server_proto_msgTypes[91] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7433,7 +7298,7 @@ func (x *CMsgServerToGCGetCheerConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgServerToGCGetCheerConfig.ProtoReflect.Descriptor instead. func (*CMsgServerToGCGetCheerConfig) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{92} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{91} } func (x *CMsgServerToGCGetCheerConfig) GetLeagueId() uint32 { @@ -7454,7 +7319,7 @@ type CMsgServerToGCGetCheerConfigResponse struct { func (x *CMsgServerToGCGetCheerConfigResponse) Reset() { *x = CMsgServerToGCGetCheerConfigResponse{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[93] + mi := &file_dota_gcmessages_server_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7467,7 +7332,7 @@ func (x *CMsgServerToGCGetCheerConfigResponse) String() string { func (*CMsgServerToGCGetCheerConfigResponse) ProtoMessage() {} func (x *CMsgServerToGCGetCheerConfigResponse) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[93] + mi := &file_dota_gcmessages_server_proto_msgTypes[92] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7480,7 +7345,7 @@ func (x *CMsgServerToGCGetCheerConfigResponse) ProtoReflect() protoreflect.Messa // Deprecated: Use CMsgServerToGCGetCheerConfigResponse.ProtoReflect.Descriptor instead. func (*CMsgServerToGCGetCheerConfigResponse) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{93} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{92} } func (x *CMsgServerToGCGetCheerConfigResponse) GetCheerConfig() *CMsgCheerConfig { @@ -7501,7 +7366,7 @@ type CMsgGCToServerCheerScalesOverride struct { func (x *CMsgGCToServerCheerScalesOverride) Reset() { *x = CMsgGCToServerCheerScalesOverride{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[94] + mi := &file_dota_gcmessages_server_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7514,7 +7379,7 @@ func (x *CMsgGCToServerCheerScalesOverride) String() string { func (*CMsgGCToServerCheerScalesOverride) ProtoMessage() {} func (x *CMsgGCToServerCheerScalesOverride) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[94] + mi := &file_dota_gcmessages_server_proto_msgTypes[93] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7527,7 +7392,7 @@ func (x *CMsgGCToServerCheerScalesOverride) ProtoReflect() protoreflect.Message // Deprecated: Use CMsgGCToServerCheerScalesOverride.ProtoReflect.Descriptor instead. func (*CMsgGCToServerCheerScalesOverride) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{94} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{93} } func (x *CMsgGCToServerCheerScalesOverride) GetScales() []float32 { @@ -7546,7 +7411,7 @@ type CMsgGCToServerGetCheerState struct { func (x *CMsgGCToServerGetCheerState) Reset() { *x = CMsgGCToServerGetCheerState{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[95] + mi := &file_dota_gcmessages_server_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7559,7 +7424,7 @@ func (x *CMsgGCToServerGetCheerState) String() string { func (*CMsgGCToServerGetCheerState) ProtoMessage() {} func (x *CMsgGCToServerGetCheerState) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[95] + mi := &file_dota_gcmessages_server_proto_msgTypes[94] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7572,7 +7437,7 @@ func (x *CMsgGCToServerGetCheerState) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgGCToServerGetCheerState.ProtoReflect.Descriptor instead. func (*CMsgGCToServerGetCheerState) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{95} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{94} } type CMsgCheerTypeState struct { @@ -7589,7 +7454,7 @@ type CMsgCheerTypeState struct { func (x *CMsgCheerTypeState) Reset() { *x = CMsgCheerTypeState{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[96] + mi := &file_dota_gcmessages_server_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7602,7 +7467,7 @@ func (x *CMsgCheerTypeState) String() string { func (*CMsgCheerTypeState) ProtoMessage() {} func (x *CMsgCheerTypeState) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[96] + mi := &file_dota_gcmessages_server_proto_msgTypes[95] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7615,7 +7480,7 @@ func (x *CMsgCheerTypeState) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgCheerTypeState.ProtoReflect.Descriptor instead. func (*CMsgCheerTypeState) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{96} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{95} } func (x *CMsgCheerTypeState) GetCheerCounts() []uint32 { @@ -7659,7 +7524,7 @@ type CMsgCheerState struct { func (x *CMsgCheerState) Reset() { *x = CMsgCheerState{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[97] + mi := &file_dota_gcmessages_server_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7672,7 +7537,7 @@ func (x *CMsgCheerState) String() string { func (*CMsgCheerState) ProtoMessage() {} func (x *CMsgCheerState) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[97] + mi := &file_dota_gcmessages_server_proto_msgTypes[96] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7685,7 +7550,7 @@ func (x *CMsgCheerState) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgCheerState.ProtoReflect.Descriptor instead. func (*CMsgCheerState) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{97} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{96} } func (x *CMsgCheerState) GetCheerTypes() []*CMsgCheerTypeState { @@ -7721,7 +7586,7 @@ type CMsgServerToGCReportCheerState struct { func (x *CMsgServerToGCReportCheerState) Reset() { *x = CMsgServerToGCReportCheerState{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[98] + mi := &file_dota_gcmessages_server_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7734,7 +7599,7 @@ func (x *CMsgServerToGCReportCheerState) String() string { func (*CMsgServerToGCReportCheerState) ProtoMessage() {} func (x *CMsgServerToGCReportCheerState) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[98] + mi := &file_dota_gcmessages_server_proto_msgTypes[97] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7747,7 +7612,7 @@ func (x *CMsgServerToGCReportCheerState) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgServerToGCReportCheerState.ProtoReflect.Descriptor instead. func (*CMsgServerToGCReportCheerState) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{98} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{97} } func (x *CMsgServerToGCReportCheerState) GetCheerConfig() *CMsgCheerConfig { @@ -7775,7 +7640,7 @@ type CMsgServerToGCGetStickerHeroes struct { func (x *CMsgServerToGCGetStickerHeroes) Reset() { *x = CMsgServerToGCGetStickerHeroes{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[99] + mi := &file_dota_gcmessages_server_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7788,7 +7653,7 @@ func (x *CMsgServerToGCGetStickerHeroes) String() string { func (*CMsgServerToGCGetStickerHeroes) ProtoMessage() {} func (x *CMsgServerToGCGetStickerHeroes) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[99] + mi := &file_dota_gcmessages_server_proto_msgTypes[98] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7801,7 +7666,7 @@ func (x *CMsgServerToGCGetStickerHeroes) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgServerToGCGetStickerHeroes.ProtoReflect.Descriptor instead. func (*CMsgServerToGCGetStickerHeroes) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{99} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{98} } func (x *CMsgServerToGCGetStickerHeroes) GetAccountIds() []uint32 { @@ -7822,7 +7687,7 @@ type CMsgServerToGCGetStickerHeroesResponse struct { func (x *CMsgServerToGCGetStickerHeroesResponse) Reset() { *x = CMsgServerToGCGetStickerHeroesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[100] + mi := &file_dota_gcmessages_server_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7835,7 +7700,7 @@ func (x *CMsgServerToGCGetStickerHeroesResponse) String() string { func (*CMsgServerToGCGetStickerHeroesResponse) ProtoMessage() {} func (x *CMsgServerToGCGetStickerHeroesResponse) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[100] + mi := &file_dota_gcmessages_server_proto_msgTypes[99] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7848,7 +7713,7 @@ func (x *CMsgServerToGCGetStickerHeroesResponse) ProtoReflect() protoreflect.Mes // Deprecated: Use CMsgServerToGCGetStickerHeroesResponse.ProtoReflect.Descriptor instead. func (*CMsgServerToGCGetStickerHeroesResponse) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{100} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{99} } func (x *CMsgServerToGCGetStickerHeroesResponse) GetPlayers() []*CMsgServerToGCGetStickerHeroesResponse_Player { @@ -7869,7 +7734,7 @@ type CMsgGCToServerSteamLearnAccessTokensChanged struct { func (x *CMsgGCToServerSteamLearnAccessTokensChanged) Reset() { *x = CMsgGCToServerSteamLearnAccessTokensChanged{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[101] + mi := &file_dota_gcmessages_server_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7882,7 +7747,7 @@ func (x *CMsgGCToServerSteamLearnAccessTokensChanged) String() string { func (*CMsgGCToServerSteamLearnAccessTokensChanged) ProtoMessage() {} func (x *CMsgGCToServerSteamLearnAccessTokensChanged) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[101] + mi := &file_dota_gcmessages_server_proto_msgTypes[100] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7895,7 +7760,7 @@ func (x *CMsgGCToServerSteamLearnAccessTokensChanged) ProtoReflect() protoreflec // Deprecated: Use CMsgGCToServerSteamLearnAccessTokensChanged.ProtoReflect.Descriptor instead. func (*CMsgGCToServerSteamLearnAccessTokensChanged) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{101} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{100} } func (x *CMsgGCToServerSteamLearnAccessTokensChanged) GetAccessTokens() *CMsgSteamLearnAccessTokens { @@ -7905,6 +7770,53 @@ func (x *CMsgGCToServerSteamLearnAccessTokensChanged) GetAccessTokens() *CMsgSte return nil } +type CMsgGCToServerSteamLearnUseHTTP struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UseHttp *bool `protobuf:"varint,1,opt,name=use_http,json=useHttp" json:"use_http,omitempty"` +} + +func (x *CMsgGCToServerSteamLearnUseHTTP) Reset() { + *x = CMsgGCToServerSteamLearnUseHTTP{} + if protoimpl.UnsafeEnabled { + mi := &file_dota_gcmessages_server_proto_msgTypes[101] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCToServerSteamLearnUseHTTP) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCToServerSteamLearnUseHTTP) ProtoMessage() {} + +func (x *CMsgGCToServerSteamLearnUseHTTP) ProtoReflect() protoreflect.Message { + mi := &file_dota_gcmessages_server_proto_msgTypes[101] + 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 CMsgGCToServerSteamLearnUseHTTP.ProtoReflect.Descriptor instead. +func (*CMsgGCToServerSteamLearnUseHTTP) Descriptor() ([]byte, []int) { + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{101} +} + +func (x *CMsgGCToServerSteamLearnUseHTTP) GetUseHttp() bool { + if x != nil && x.UseHttp != nil { + return *x.UseHttp + } + return false +} + type CMsgSteamLearnMatchInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -8071,19 +7983,23 @@ func (x *CMsgSteamLearnMatchInfoPlayer) GetPlayerMmr() uint32 { return 0 } -type CMsgSteamLearnMatchHeroesV1 struct { +type CMsgSteamLearnMatchHeroesV3 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - RadiantHeroIds []uint32 `protobuf:"varint,1,rep,name=radiant_hero_ids,json=radiantHeroIds" json:"radiant_hero_ids,omitempty"` - DireHeroIds []uint32 `protobuf:"varint,2,rep,name=dire_hero_ids,json=direHeroIds" json:"dire_hero_ids,omitempty"` - RadiantLanes []uint32 `protobuf:"varint,3,rep,name=radiant_lanes,json=radiantLanes" json:"radiant_lanes,omitempty"` - DireLanes []uint32 `protobuf:"varint,4,rep,name=dire_lanes,json=direLanes" json:"dire_lanes,omitempty"` + RadiantHeroIds []int32 `protobuf:"varint,1,rep,name=radiant_hero_ids,json=radiantHeroIds" json:"radiant_hero_ids,omitempty"` + DireHeroIds []int32 `protobuf:"varint,2,rep,name=dire_hero_ids,json=direHeroIds" json:"dire_hero_ids,omitempty"` + RadiantLanes []uint32 `protobuf:"varint,3,rep,name=radiant_lanes,json=radiantLanes" json:"radiant_lanes,omitempty"` + DireLanes []uint32 `protobuf:"varint,4,rep,name=dire_lanes,json=direLanes" json:"dire_lanes,omitempty"` + RadiantHeroFacets []uint32 `protobuf:"varint,5,rep,name=radiant_hero_facets,json=radiantHeroFacets" json:"radiant_hero_facets,omitempty"` + DireHeroFacets []uint32 `protobuf:"varint,6,rep,name=dire_hero_facets,json=direHeroFacets" json:"dire_hero_facets,omitempty"` + RadiantPositions []uint32 `protobuf:"varint,7,rep,name=radiant_positions,json=radiantPositions" json:"radiant_positions,omitempty"` + DirePositions []uint32 `protobuf:"varint,8,rep,name=dire_positions,json=direPositions" json:"dire_positions,omitempty"` } -func (x *CMsgSteamLearnMatchHeroesV1) Reset() { - *x = CMsgSteamLearnMatchHeroesV1{} +func (x *CMsgSteamLearnMatchHeroesV3) Reset() { + *x = CMsgSteamLearnMatchHeroesV3{} if protoimpl.UnsafeEnabled { mi := &file_dota_gcmessages_server_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -8091,13 +8007,13 @@ func (x *CMsgSteamLearnMatchHeroesV1) Reset() { } } -func (x *CMsgSteamLearnMatchHeroesV1) String() string { +func (x *CMsgSteamLearnMatchHeroesV3) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CMsgSteamLearnMatchHeroesV1) ProtoMessage() {} +func (*CMsgSteamLearnMatchHeroesV3) ProtoMessage() {} -func (x *CMsgSteamLearnMatchHeroesV1) ProtoReflect() protoreflect.Message { +func (x *CMsgSteamLearnMatchHeroesV3) ProtoReflect() protoreflect.Message { mi := &file_dota_gcmessages_server_proto_msgTypes[104] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -8109,54 +8025,84 @@ func (x *CMsgSteamLearnMatchHeroesV1) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CMsgSteamLearnMatchHeroesV1.ProtoReflect.Descriptor instead. -func (*CMsgSteamLearnMatchHeroesV1) Descriptor() ([]byte, []int) { +// Deprecated: Use CMsgSteamLearnMatchHeroesV3.ProtoReflect.Descriptor instead. +func (*CMsgSteamLearnMatchHeroesV3) Descriptor() ([]byte, []int) { return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{104} } -func (x *CMsgSteamLearnMatchHeroesV1) GetRadiantHeroIds() []uint32 { +func (x *CMsgSteamLearnMatchHeroesV3) GetRadiantHeroIds() []int32 { if x != nil { return x.RadiantHeroIds } return nil } -func (x *CMsgSteamLearnMatchHeroesV1) GetDireHeroIds() []uint32 { +func (x *CMsgSteamLearnMatchHeroesV3) GetDireHeroIds() []int32 { if x != nil { return x.DireHeroIds } return nil } -func (x *CMsgSteamLearnMatchHeroesV1) GetRadiantLanes() []uint32 { +func (x *CMsgSteamLearnMatchHeroesV3) GetRadiantLanes() []uint32 { if x != nil { return x.RadiantLanes } return nil } -func (x *CMsgSteamLearnMatchHeroesV1) GetDireLanes() []uint32 { +func (x *CMsgSteamLearnMatchHeroesV3) GetDireLanes() []uint32 { if x != nil { return x.DireLanes } return nil } -type CMsgSteamLearnMatchHeroesV2 struct { +func (x *CMsgSteamLearnMatchHeroesV3) GetRadiantHeroFacets() []uint32 { + if x != nil { + return x.RadiantHeroFacets + } + return nil +} + +func (x *CMsgSteamLearnMatchHeroesV3) GetDireHeroFacets() []uint32 { + if x != nil { + return x.DireHeroFacets + } + return nil +} + +func (x *CMsgSteamLearnMatchHeroesV3) GetRadiantPositions() []uint32 { + if x != nil { + return x.RadiantPositions + } + return nil +} + +func (x *CMsgSteamLearnMatchHeroesV3) GetDirePositions() []uint32 { + if x != nil { + return x.DirePositions + } + return nil +} + +type CMsgSteamLearnMatchHeroV3 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - RadiantHeroIds []uint32 `protobuf:"varint,1,rep,name=radiant_hero_ids,json=radiantHeroIds" json:"radiant_hero_ids,omitempty"` - DireHeroIds []uint32 `protobuf:"varint,2,rep,name=dire_hero_ids,json=direHeroIds" json:"dire_hero_ids,omitempty"` - RadiantLanes []uint32 `protobuf:"varint,3,rep,name=radiant_lanes,json=radiantLanes" json:"radiant_lanes,omitempty"` - DireLanes []uint32 `protobuf:"varint,4,rep,name=dire_lanes,json=direLanes" json:"dire_lanes,omitempty"` - RadiantHeroFacets []uint32 `protobuf:"varint,5,rep,name=radiant_hero_facets,json=radiantHeroFacets" json:"radiant_hero_facets,omitempty"` - DireHeroFacets []uint32 `protobuf:"varint,6,rep,name=dire_hero_facets,json=direHeroFacets" json:"dire_hero_facets,omitempty"` + HeroId *int32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + Lane *uint32 `protobuf:"varint,2,opt,name=lane" json:"lane,omitempty"` + Position *uint32 `protobuf:"varint,8,opt,name=position" json:"position,omitempty"` + AlliedHeroIds []int32 `protobuf:"varint,3,rep,name=allied_hero_ids,json=alliedHeroIds" json:"allied_hero_ids,omitempty"` + EnemyHeroIds []int32 `protobuf:"varint,4,rep,name=enemy_hero_ids,json=enemyHeroIds" json:"enemy_hero_ids,omitempty"` + HeroFacet *uint32 `protobuf:"varint,5,opt,name=hero_facet,json=heroFacet" json:"hero_facet,omitempty"` + AlliedHeroFacets []uint32 `protobuf:"varint,6,rep,name=allied_hero_facets,json=alliedHeroFacets" json:"allied_hero_facets,omitempty"` + EnemyHerofacets []uint32 `protobuf:"varint,7,rep,name=enemy_herofacets,json=enemyHerofacets" json:"enemy_herofacets,omitempty"` } -func (x *CMsgSteamLearnMatchHeroesV2) Reset() { - *x = CMsgSteamLearnMatchHeroesV2{} +func (x *CMsgSteamLearnMatchHeroV3) Reset() { + *x = CMsgSteamLearnMatchHeroV3{} if protoimpl.UnsafeEnabled { mi := &file_dota_gcmessages_server_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -8164,13 +8110,13 @@ func (x *CMsgSteamLearnMatchHeroesV2) Reset() { } } -func (x *CMsgSteamLearnMatchHeroesV2) String() string { +func (x *CMsgSteamLearnMatchHeroV3) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CMsgSteamLearnMatchHeroesV2) ProtoMessage() {} +func (*CMsgSteamLearnMatchHeroV3) ProtoMessage() {} -func (x *CMsgSteamLearnMatchHeroesV2) ProtoReflect() protoreflect.Message { +func (x *CMsgSteamLearnMatchHeroV3) ProtoReflect() protoreflect.Message { mi := &file_dota_gcmessages_server_proto_msgTypes[105] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -8182,66 +8128,77 @@ func (x *CMsgSteamLearnMatchHeroesV2) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CMsgSteamLearnMatchHeroesV2.ProtoReflect.Descriptor instead. -func (*CMsgSteamLearnMatchHeroesV2) Descriptor() ([]byte, []int) { +// Deprecated: Use CMsgSteamLearnMatchHeroV3.ProtoReflect.Descriptor instead. +func (*CMsgSteamLearnMatchHeroV3) Descriptor() ([]byte, []int) { return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{105} } -func (x *CMsgSteamLearnMatchHeroesV2) GetRadiantHeroIds() []uint32 { - if x != nil { - return x.RadiantHeroIds +func (x *CMsgSteamLearnMatchHeroV3) GetHeroId() int32 { + if x != nil && x.HeroId != nil { + return *x.HeroId } - return nil + return 0 } -func (x *CMsgSteamLearnMatchHeroesV2) GetDireHeroIds() []uint32 { - if x != nil { - return x.DireHeroIds +func (x *CMsgSteamLearnMatchHeroV3) GetLane() uint32 { + if x != nil && x.Lane != nil { + return *x.Lane } - return nil + return 0 } -func (x *CMsgSteamLearnMatchHeroesV2) GetRadiantLanes() []uint32 { +func (x *CMsgSteamLearnMatchHeroV3) GetPosition() uint32 { + if x != nil && x.Position != nil { + return *x.Position + } + return 0 +} + +func (x *CMsgSteamLearnMatchHeroV3) GetAlliedHeroIds() []int32 { if x != nil { - return x.RadiantLanes + return x.AlliedHeroIds } return nil } -func (x *CMsgSteamLearnMatchHeroesV2) GetDireLanes() []uint32 { +func (x *CMsgSteamLearnMatchHeroV3) GetEnemyHeroIds() []int32 { if x != nil { - return x.DireLanes + return x.EnemyHeroIds } return nil } -func (x *CMsgSteamLearnMatchHeroesV2) GetRadiantHeroFacets() []uint32 { +func (x *CMsgSteamLearnMatchHeroV3) GetHeroFacet() uint32 { + if x != nil && x.HeroFacet != nil { + return *x.HeroFacet + } + return 0 +} + +func (x *CMsgSteamLearnMatchHeroV3) GetAlliedHeroFacets() []uint32 { if x != nil { - return x.RadiantHeroFacets + return x.AlliedHeroFacets } return nil } -func (x *CMsgSteamLearnMatchHeroesV2) GetDireHeroFacets() []uint32 { +func (x *CMsgSteamLearnMatchHeroV3) GetEnemyHerofacets() []uint32 { if x != nil { - return x.DireHeroFacets + return x.EnemyHerofacets } return nil } -type CMsgSteamLearnMatchHeroV1 struct { +type CMsgSteamLearnPlayerTimedStats struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroId *uint32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` - Lane *uint32 `protobuf:"varint,2,opt,name=lane" json:"lane,omitempty"` - AlliedHeroIds []uint32 `protobuf:"varint,3,rep,name=allied_hero_ids,json=alliedHeroIds" json:"allied_hero_ids,omitempty"` - EnemyHeroIds []uint32 `protobuf:"varint,4,rep,name=enemy_hero_ids,json=enemyHeroIds" json:"enemy_hero_ids,omitempty"` + StatBuckets []*CMsgSteamLearnPlayerTimedStats_StatBucket `protobuf:"bytes,1,rep,name=stat_buckets,json=statBuckets" json:"stat_buckets,omitempty"` } -func (x *CMsgSteamLearnMatchHeroV1) Reset() { - *x = CMsgSteamLearnMatchHeroV1{} +func (x *CMsgSteamLearnPlayerTimedStats) Reset() { + *x = CMsgSteamLearnPlayerTimedStats{} if protoimpl.UnsafeEnabled { mi := &file_dota_gcmessages_server_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -8249,13 +8206,13 @@ func (x *CMsgSteamLearnMatchHeroV1) Reset() { } } -func (x *CMsgSteamLearnMatchHeroV1) String() string { +func (x *CMsgSteamLearnPlayerTimedStats) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CMsgSteamLearnMatchHeroV1) ProtoMessage() {} +func (*CMsgSteamLearnPlayerTimedStats) ProtoMessage() {} -func (x *CMsgSteamLearnMatchHeroV1) ProtoReflect() protoreflect.Message { +func (x *CMsgSteamLearnPlayerTimedStats) ProtoReflect() protoreflect.Message { mi := &file_dota_gcmessages_server_proto_msgTypes[106] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -8267,55 +8224,30 @@ func (x *CMsgSteamLearnMatchHeroV1) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CMsgSteamLearnMatchHeroV1.ProtoReflect.Descriptor instead. -func (*CMsgSteamLearnMatchHeroV1) Descriptor() ([]byte, []int) { +// Deprecated: Use CMsgSteamLearnPlayerTimedStats.ProtoReflect.Descriptor instead. +func (*CMsgSteamLearnPlayerTimedStats) Descriptor() ([]byte, []int) { return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{106} } -func (x *CMsgSteamLearnMatchHeroV1) GetHeroId() uint32 { - if x != nil && x.HeroId != nil { - return *x.HeroId - } - return 0 -} - -func (x *CMsgSteamLearnMatchHeroV1) GetLane() uint32 { - if x != nil && x.Lane != nil { - return *x.Lane - } - return 0 -} - -func (x *CMsgSteamLearnMatchHeroV1) GetAlliedHeroIds() []uint32 { - if x != nil { - return x.AlliedHeroIds - } - return nil -} - -func (x *CMsgSteamLearnMatchHeroV1) GetEnemyHeroIds() []uint32 { +func (x *CMsgSteamLearnPlayerTimedStats) GetStatBuckets() []*CMsgSteamLearnPlayerTimedStats_StatBucket { if x != nil { - return x.EnemyHeroIds + return x.StatBuckets } return nil } -type CMsgSteamLearnMatchHeroV2 struct { +type CMsgSteamLearnMatchStateV5 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroId *uint32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` - Lane *uint32 `protobuf:"varint,2,opt,name=lane" json:"lane,omitempty"` - AlliedHeroIds []uint32 `protobuf:"varint,3,rep,name=allied_hero_ids,json=alliedHeroIds" json:"allied_hero_ids,omitempty"` - EnemyHeroIds []uint32 `protobuf:"varint,4,rep,name=enemy_hero_ids,json=enemyHeroIds" json:"enemy_hero_ids,omitempty"` - HeroFacet *uint32 `protobuf:"varint,5,opt,name=hero_facet,json=heroFacet" json:"hero_facet,omitempty"` - AlliedHeroFacets []uint32 `protobuf:"varint,6,rep,name=allied_hero_facets,json=alliedHeroFacets" json:"allied_hero_facets,omitempty"` - EnemyHerofacets []uint32 `protobuf:"varint,7,rep,name=enemy_herofacets,json=enemyHerofacets" json:"enemy_herofacets,omitempty"` + GameTime *float32 `protobuf:"fixed32,1,opt,name=game_time,json=gameTime" json:"game_time,omitempty"` + RadiantState *CMsgSteamLearnMatchStateV5_TeamState `protobuf:"bytes,2,opt,name=radiant_state,json=radiantState" json:"radiant_state,omitempty"` + DireState *CMsgSteamLearnMatchStateV5_TeamState `protobuf:"bytes,3,opt,name=dire_state,json=direState" json:"dire_state,omitempty"` } -func (x *CMsgSteamLearnMatchHeroV2) Reset() { - *x = CMsgSteamLearnMatchHeroV2{} +func (x *CMsgSteamLearnMatchStateV5) Reset() { + *x = CMsgSteamLearnMatchStateV5{} if protoimpl.UnsafeEnabled { mi := &file_dota_gcmessages_server_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -8323,13 +8255,13 @@ func (x *CMsgSteamLearnMatchHeroV2) Reset() { } } -func (x *CMsgSteamLearnMatchHeroV2) String() string { +func (x *CMsgSteamLearnMatchStateV5) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CMsgSteamLearnMatchHeroV2) ProtoMessage() {} +func (*CMsgSteamLearnMatchStateV5) ProtoMessage() {} -func (x *CMsgSteamLearnMatchHeroV2) ProtoReflect() protoreflect.Message { +func (x *CMsgSteamLearnMatchStateV5) ProtoReflect() protoreflect.Message { mi := &file_dota_gcmessages_server_proto_msgTypes[107] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -8341,212 +8273,11 @@ func (x *CMsgSteamLearnMatchHeroV2) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CMsgSteamLearnMatchHeroV2.ProtoReflect.Descriptor instead. -func (*CMsgSteamLearnMatchHeroV2) Descriptor() ([]byte, []int) { +// Deprecated: Use CMsgSteamLearnMatchStateV5.ProtoReflect.Descriptor instead. +func (*CMsgSteamLearnMatchStateV5) Descriptor() ([]byte, []int) { return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{107} } -func (x *CMsgSteamLearnMatchHeroV2) GetHeroId() uint32 { - if x != nil && x.HeroId != nil { - return *x.HeroId - } - return 0 -} - -func (x *CMsgSteamLearnMatchHeroV2) GetLane() uint32 { - if x != nil && x.Lane != nil { - return *x.Lane - } - return 0 -} - -func (x *CMsgSteamLearnMatchHeroV2) GetAlliedHeroIds() []uint32 { - if x != nil { - return x.AlliedHeroIds - } - return nil -} - -func (x *CMsgSteamLearnMatchHeroV2) GetEnemyHeroIds() []uint32 { - if x != nil { - return x.EnemyHeroIds - } - return nil -} - -func (x *CMsgSteamLearnMatchHeroV2) GetHeroFacet() uint32 { - if x != nil && x.HeroFacet != nil { - return *x.HeroFacet - } - return 0 -} - -func (x *CMsgSteamLearnMatchHeroV2) GetAlliedHeroFacets() []uint32 { - if x != nil { - return x.AlliedHeroFacets - } - return nil -} - -func (x *CMsgSteamLearnMatchHeroV2) GetEnemyHerofacets() []uint32 { - if x != nil { - return x.EnemyHerofacets - } - return nil -} - -type CMsgSteamLearnPlayerTimedStats struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - StatBuckets []*CMsgSteamLearnPlayerTimedStats_StatBucket `protobuf:"bytes,1,rep,name=stat_buckets,json=statBuckets" json:"stat_buckets,omitempty"` -} - -func (x *CMsgSteamLearnPlayerTimedStats) Reset() { - *x = CMsgSteamLearnPlayerTimedStats{} - if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[108] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgSteamLearnPlayerTimedStats) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgSteamLearnPlayerTimedStats) ProtoMessage() {} - -func (x *CMsgSteamLearnPlayerTimedStats) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[108] - 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 CMsgSteamLearnPlayerTimedStats.ProtoReflect.Descriptor instead. -func (*CMsgSteamLearnPlayerTimedStats) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{108} -} - -func (x *CMsgSteamLearnPlayerTimedStats) GetStatBuckets() []*CMsgSteamLearnPlayerTimedStats_StatBucket { - if x != nil { - return x.StatBuckets - } - return nil -} - -type CMsgSteamLearnMatchStateV4 struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GameTime *float32 `protobuf:"fixed32,1,opt,name=game_time,json=gameTime" json:"game_time,omitempty"` - RadiantState *CMsgSteamLearnMatchStateV4_TeamState `protobuf:"bytes,2,opt,name=radiant_state,json=radiantState" json:"radiant_state,omitempty"` - DireState *CMsgSteamLearnMatchStateV4_TeamState `protobuf:"bytes,3,opt,name=dire_state,json=direState" json:"dire_state,omitempty"` -} - -func (x *CMsgSteamLearnMatchStateV4) Reset() { - *x = CMsgSteamLearnMatchStateV4{} - if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[109] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgSteamLearnMatchStateV4) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgSteamLearnMatchStateV4) ProtoMessage() {} - -func (x *CMsgSteamLearnMatchStateV4) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[109] - 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 CMsgSteamLearnMatchStateV4.ProtoReflect.Descriptor instead. -func (*CMsgSteamLearnMatchStateV4) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{109} -} - -func (x *CMsgSteamLearnMatchStateV4) GetGameTime() float32 { - if x != nil && x.GameTime != nil { - return *x.GameTime - } - return 0 -} - -func (x *CMsgSteamLearnMatchStateV4) GetRadiantState() *CMsgSteamLearnMatchStateV4_TeamState { - if x != nil { - return x.RadiantState - } - return nil -} - -func (x *CMsgSteamLearnMatchStateV4) GetDireState() *CMsgSteamLearnMatchStateV4_TeamState { - if x != nil { - return x.DireState - } - return nil -} - -type CMsgSteamLearnMatchStateV5 struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GameTime *float32 `protobuf:"fixed32,1,opt,name=game_time,json=gameTime" json:"game_time,omitempty"` - RadiantState *CMsgSteamLearnMatchStateV5_TeamState `protobuf:"bytes,2,opt,name=radiant_state,json=radiantState" json:"radiant_state,omitempty"` - DireState *CMsgSteamLearnMatchStateV5_TeamState `protobuf:"bytes,3,opt,name=dire_state,json=direState" json:"dire_state,omitempty"` -} - -func (x *CMsgSteamLearnMatchStateV5) Reset() { - *x = CMsgSteamLearnMatchStateV5{} - if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[110] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgSteamLearnMatchStateV5) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgSteamLearnMatchStateV5) ProtoMessage() {} - -func (x *CMsgSteamLearnMatchStateV5) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[110] - 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 CMsgSteamLearnMatchStateV5.ProtoReflect.Descriptor instead. -func (*CMsgSteamLearnMatchStateV5) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{110} -} - func (x *CMsgSteamLearnMatchStateV5) GetGameTime() float32 { if x != nil && x.GameTime != nil { return *x.GameTime @@ -8586,7 +8317,7 @@ type CMsgSteamLearnItemPurchase struct { func (x *CMsgSteamLearnItemPurchase) Reset() { *x = CMsgSteamLearnItemPurchase{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[111] + mi := &file_dota_gcmessages_server_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8599,7 +8330,7 @@ func (x *CMsgSteamLearnItemPurchase) String() string { func (*CMsgSteamLearnItemPurchase) ProtoMessage() {} func (x *CMsgSteamLearnItemPurchase) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[111] + mi := &file_dota_gcmessages_server_proto_msgTypes[108] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8612,7 +8343,7 @@ func (x *CMsgSteamLearnItemPurchase) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgSteamLearnItemPurchase.ProtoReflect.Descriptor instead. func (*CMsgSteamLearnItemPurchase) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{111} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{108} } func (x *CMsgSteamLearnItemPurchase) GetItemId() int32 { @@ -8684,7 +8415,7 @@ type CMsgSteamLearnPreGameItemPurchases struct { func (x *CMsgSteamLearnPreGameItemPurchases) Reset() { *x = CMsgSteamLearnPreGameItemPurchases{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[112] + mi := &file_dota_gcmessages_server_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8697,7 +8428,7 @@ func (x *CMsgSteamLearnPreGameItemPurchases) String() string { func (*CMsgSteamLearnPreGameItemPurchases) ProtoMessage() {} func (x *CMsgSteamLearnPreGameItemPurchases) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[112] + mi := &file_dota_gcmessages_server_proto_msgTypes[109] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8710,7 +8441,7 @@ func (x *CMsgSteamLearnPreGameItemPurchases) ProtoReflect() protoreflect.Message // Deprecated: Use CMsgSteamLearnPreGameItemPurchases.ProtoReflect.Descriptor instead. func (*CMsgSteamLearnPreGameItemPurchases) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{112} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{109} } func (x *CMsgSteamLearnPreGameItemPurchases) GetItemIds() []int32 { @@ -8748,7 +8479,7 @@ type CMsgSteamLearnNeutralItemPurchase struct { func (x *CMsgSteamLearnNeutralItemPurchase) Reset() { *x = CMsgSteamLearnNeutralItemPurchase{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[113] + mi := &file_dota_gcmessages_server_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8761,7 +8492,7 @@ func (x *CMsgSteamLearnNeutralItemPurchase) String() string { func (*CMsgSteamLearnNeutralItemPurchase) ProtoMessage() {} func (x *CMsgSteamLearnNeutralItemPurchase) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[113] + mi := &file_dota_gcmessages_server_proto_msgTypes[110] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8774,7 +8505,7 @@ func (x *CMsgSteamLearnNeutralItemPurchase) ProtoReflect() protoreflect.Message // Deprecated: Use CMsgSteamLearnNeutralItemPurchase.ProtoReflect.Descriptor instead. func (*CMsgSteamLearnNeutralItemPurchase) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{113} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{110} } func (x *CMsgSteamLearnNeutralItemPurchase) GetItemId() int32 { @@ -8819,7 +8550,7 @@ type CMsgSteamLearnAbilitySkill struct { func (x *CMsgSteamLearnAbilitySkill) Reset() { *x = CMsgSteamLearnAbilitySkill{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[114] + mi := &file_dota_gcmessages_server_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8832,7 +8563,7 @@ func (x *CMsgSteamLearnAbilitySkill) String() string { func (*CMsgSteamLearnAbilitySkill) ProtoMessage() {} func (x *CMsgSteamLearnAbilitySkill) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[114] + mi := &file_dota_gcmessages_server_proto_msgTypes[111] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8845,7 +8576,7 @@ func (x *CMsgSteamLearnAbilitySkill) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgSteamLearnAbilitySkill.ProtoReflect.Descriptor instead. func (*CMsgSteamLearnAbilitySkill) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{114} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{111} } func (x *CMsgSteamLearnAbilitySkill) GetAbilityId() int32 { @@ -8876,33 +8607,31 @@ func (x *CMsgSteamLearnAbilitySkill) GetIsUsingDotaPlus() bool { return false } -type CMsgSteamLearnWardPlacement struct { +type CMsgSteamLearnEarlyGameItemPurchases struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - WardLoc *CMsgSteamLearnWardPlacement_Location `protobuf:"bytes,1,opt,name=ward_loc,json=wardLoc" json:"ward_loc,omitempty"` - ExistingWardLocs []*CMsgSteamLearnWardPlacement_Location `protobuf:"bytes,2,rep,name=existing_ward_locs,json=existingWardLocs" json:"existing_ward_locs,omitempty"` - Team *uint32 `protobuf:"varint,3,opt,name=team" json:"team,omitempty"` + ItemIds []int32 `protobuf:"varint,1,rep,name=item_ids,json=itemIds" json:"item_ids,omitempty"` } -func (x *CMsgSteamLearnWardPlacement) Reset() { - *x = CMsgSteamLearnWardPlacement{} +func (x *CMsgSteamLearnEarlyGameItemPurchases) Reset() { + *x = CMsgSteamLearnEarlyGameItemPurchases{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[115] + mi := &file_dota_gcmessages_server_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CMsgSteamLearnWardPlacement) String() string { +func (x *CMsgSteamLearnEarlyGameItemPurchases) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CMsgSteamLearnWardPlacement) ProtoMessage() {} +func (*CMsgSteamLearnEarlyGameItemPurchases) ProtoMessage() {} -func (x *CMsgSteamLearnWardPlacement) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[115] +func (x *CMsgSteamLearnEarlyGameItemPurchases) ProtoReflect() protoreflect.Message { + mi := &file_dota_gcmessages_server_proto_msgTypes[112] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8913,57 +8642,43 @@ func (x *CMsgSteamLearnWardPlacement) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CMsgSteamLearnWardPlacement.ProtoReflect.Descriptor instead. -func (*CMsgSteamLearnWardPlacement) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{115} -} - -func (x *CMsgSteamLearnWardPlacement) GetWardLoc() *CMsgSteamLearnWardPlacement_Location { - if x != nil { - return x.WardLoc - } - return nil +// Deprecated: Use CMsgSteamLearnEarlyGameItemPurchases.ProtoReflect.Descriptor instead. +func (*CMsgSteamLearnEarlyGameItemPurchases) Descriptor() ([]byte, []int) { + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{112} } -func (x *CMsgSteamLearnWardPlacement) GetExistingWardLocs() []*CMsgSteamLearnWardPlacement_Location { +func (x *CMsgSteamLearnEarlyGameItemPurchases) GetItemIds() []int32 { if x != nil { - return x.ExistingWardLocs + return x.ItemIds } return nil } -func (x *CMsgSteamLearnWardPlacement) GetTeam() uint32 { - if x != nil && x.Team != nil { - return *x.Team - } - return 0 -} - -type CMsgSignOutMuertaMinigame struct { +type CMsgSteamLearnLateGameItemPurchases struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - EventGameData []byte `protobuf:"bytes,1,opt,name=event_game_data,json=eventGameData" json:"event_game_data,omitempty"` + ItemIds []int32 `protobuf:"varint,1,rep,name=item_ids,json=itemIds" json:"item_ids,omitempty"` } -func (x *CMsgSignOutMuertaMinigame) Reset() { - *x = CMsgSignOutMuertaMinigame{} +func (x *CMsgSteamLearnLateGameItemPurchases) Reset() { + *x = CMsgSteamLearnLateGameItemPurchases{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[116] + mi := &file_dota_gcmessages_server_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CMsgSignOutMuertaMinigame) String() string { +func (x *CMsgSteamLearnLateGameItemPurchases) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CMsgSignOutMuertaMinigame) ProtoMessage() {} +func (*CMsgSteamLearnLateGameItemPurchases) ProtoMessage() {} -func (x *CMsgSignOutMuertaMinigame) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[116] +func (x *CMsgSteamLearnLateGameItemPurchases) ProtoReflect() protoreflect.Message { + mi := &file_dota_gcmessages_server_proto_msgTypes[113] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8974,14 +8689,124 @@ func (x *CMsgSignOutMuertaMinigame) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CMsgSignOutMuertaMinigame.ProtoReflect.Descriptor instead. -func (*CMsgSignOutMuertaMinigame) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{116} +// Deprecated: Use CMsgSteamLearnLateGameItemPurchases.ProtoReflect.Descriptor instead. +func (*CMsgSteamLearnLateGameItemPurchases) Descriptor() ([]byte, []int) { + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{113} } -func (x *CMsgSignOutMuertaMinigame) GetEventGameData() []byte { +func (x *CMsgSteamLearnLateGameItemPurchases) GetItemIds() []int32 { if x != nil { - return x.EventGameData + return x.ItemIds + } + return nil +} + +type CMsgSteamLearnWardPlacement struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WardLoc *CMsgSteamLearnWardPlacement_Location `protobuf:"bytes,1,opt,name=ward_loc,json=wardLoc" json:"ward_loc,omitempty"` + ExistingWardLocs []*CMsgSteamLearnWardPlacement_Location `protobuf:"bytes,2,rep,name=existing_ward_locs,json=existingWardLocs" json:"existing_ward_locs,omitempty"` + Team *uint32 `protobuf:"varint,3,opt,name=team" json:"team,omitempty"` +} + +func (x *CMsgSteamLearnWardPlacement) Reset() { + *x = CMsgSteamLearnWardPlacement{} + if protoimpl.UnsafeEnabled { + mi := &file_dota_gcmessages_server_proto_msgTypes[114] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgSteamLearnWardPlacement) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgSteamLearnWardPlacement) ProtoMessage() {} + +func (x *CMsgSteamLearnWardPlacement) ProtoReflect() protoreflect.Message { + mi := &file_dota_gcmessages_server_proto_msgTypes[114] + 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 CMsgSteamLearnWardPlacement.ProtoReflect.Descriptor instead. +func (*CMsgSteamLearnWardPlacement) Descriptor() ([]byte, []int) { + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{114} +} + +func (x *CMsgSteamLearnWardPlacement) GetWardLoc() *CMsgSteamLearnWardPlacement_Location { + if x != nil { + return x.WardLoc + } + return nil +} + +func (x *CMsgSteamLearnWardPlacement) GetExistingWardLocs() []*CMsgSteamLearnWardPlacement_Location { + if x != nil { + return x.ExistingWardLocs + } + return nil +} + +func (x *CMsgSteamLearnWardPlacement) GetTeam() uint32 { + if x != nil && x.Team != nil { + return *x.Team + } + return 0 +} + +type CMsgSignOutMuertaMinigame struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EventGameData []byte `protobuf:"bytes,1,opt,name=event_game_data,json=eventGameData" json:"event_game_data,omitempty"` +} + +func (x *CMsgSignOutMuertaMinigame) Reset() { + *x = CMsgSignOutMuertaMinigame{} + if protoimpl.UnsafeEnabled { + mi := &file_dota_gcmessages_server_proto_msgTypes[115] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgSignOutMuertaMinigame) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgSignOutMuertaMinigame) ProtoMessage() {} + +func (x *CMsgSignOutMuertaMinigame) ProtoReflect() protoreflect.Message { + mi := &file_dota_gcmessages_server_proto_msgTypes[115] + 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 CMsgSignOutMuertaMinigame.ProtoReflect.Descriptor instead. +func (*CMsgSignOutMuertaMinigame) Descriptor() ([]byte, []int) { + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{115} +} + +func (x *CMsgSignOutMuertaMinigame) GetEventGameData() []byte { + if x != nil { + return x.EventGameData } return nil } @@ -8998,7 +8823,7 @@ type CMsgSignOutMapStats struct { func (x *CMsgSignOutMapStats) Reset() { *x = CMsgSignOutMapStats{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[117] + mi := &file_dota_gcmessages_server_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9011,7 +8836,7 @@ func (x *CMsgSignOutMapStats) String() string { func (*CMsgSignOutMapStats) ProtoMessage() {} func (x *CMsgSignOutMapStats) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[117] + mi := &file_dota_gcmessages_server_proto_msgTypes[116] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9024,7 +8849,7 @@ func (x *CMsgSignOutMapStats) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgSignOutMapStats.ProtoReflect.Descriptor instead. func (*CMsgSignOutMapStats) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{117} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{116} } func (x *CMsgSignOutMapStats) GetPlayers() []*CMsgSignOutMapStats_Player { @@ -9054,7 +8879,7 @@ type CMsgServerToGCNewBloomGift struct { func (x *CMsgServerToGCNewBloomGift) Reset() { *x = CMsgServerToGCNewBloomGift{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[118] + mi := &file_dota_gcmessages_server_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9067,7 +8892,7 @@ func (x *CMsgServerToGCNewBloomGift) String() string { func (*CMsgServerToGCNewBloomGift) ProtoMessage() {} func (x *CMsgServerToGCNewBloomGift) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[118] + mi := &file_dota_gcmessages_server_proto_msgTypes[117] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9080,7 +8905,7 @@ func (x *CMsgServerToGCNewBloomGift) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgServerToGCNewBloomGift.ProtoReflect.Descriptor instead. func (*CMsgServerToGCNewBloomGift) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{118} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{117} } func (x *CMsgServerToGCNewBloomGift) GetDefindex() uint32 { @@ -9116,7 +8941,7 @@ type CMsgServerToGCNewBloomGiftResponse struct { func (x *CMsgServerToGCNewBloomGiftResponse) Reset() { *x = CMsgServerToGCNewBloomGiftResponse{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[119] + mi := &file_dota_gcmessages_server_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9129,7 +8954,7 @@ func (x *CMsgServerToGCNewBloomGiftResponse) String() string { func (*CMsgServerToGCNewBloomGiftResponse) ProtoMessage() {} func (x *CMsgServerToGCNewBloomGiftResponse) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[119] + mi := &file_dota_gcmessages_server_proto_msgTypes[118] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9142,7 +8967,7 @@ func (x *CMsgServerToGCNewBloomGiftResponse) ProtoReflect() protoreflect.Message // Deprecated: Use CMsgServerToGCNewBloomGiftResponse.ProtoReflect.Descriptor instead. func (*CMsgServerToGCNewBloomGiftResponse) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{119} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{118} } func (x *CMsgServerToGCNewBloomGiftResponse) GetResult() ENewBloomGiftingResponse { @@ -9171,7 +8996,7 @@ type CMsgSignOutOverworld struct { func (x *CMsgSignOutOverworld) Reset() { *x = CMsgSignOutOverworld{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[120] + mi := &file_dota_gcmessages_server_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9184,7 +9009,7 @@ func (x *CMsgSignOutOverworld) String() string { func (*CMsgSignOutOverworld) ProtoMessage() {} func (x *CMsgSignOutOverworld) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[120] + mi := &file_dota_gcmessages_server_proto_msgTypes[119] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9197,7 +9022,7 @@ func (x *CMsgSignOutOverworld) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgSignOutOverworld.ProtoReflect.Descriptor instead. func (*CMsgSignOutOverworld) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{120} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{119} } func (x *CMsgSignOutOverworld) GetPlayers() []*CMsgSignOutOverworld_Player { @@ -9228,7 +9053,7 @@ type CMsgPoorNetworkConditions_Player struct { func (x *CMsgPoorNetworkConditions_Player) Reset() { *x = CMsgPoorNetworkConditions_Player{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[121] + mi := &file_dota_gcmessages_server_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9241,7 +9066,7 @@ func (x *CMsgPoorNetworkConditions_Player) String() string { func (*CMsgPoorNetworkConditions_Player) ProtoMessage() {} func (x *CMsgPoorNetworkConditions_Player) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[121] + mi := &file_dota_gcmessages_server_proto_msgTypes[120] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9291,7 +9116,7 @@ type CMsgConnectedPlayers_Player struct { unknownFields protoimpl.UnknownFields SteamId *uint64 `protobuf:"fixed64,1,opt,name=steam_id,json=steamId" json:"steam_id,omitempty"` - HeroId *uint32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` LeaverState *CMsgLeaverState `protobuf:"bytes,3,opt,name=leaver_state,json=leaverState" json:"leaver_state,omitempty"` DisconnectReason *ENetworkDisconnectionReason `protobuf:"varint,4,opt,name=disconnect_reason,json=disconnectReason,enum=dota.ENetworkDisconnectionReason" json:"disconnect_reason,omitempty"` } @@ -9299,7 +9124,7 @@ type CMsgConnectedPlayers_Player struct { func (x *CMsgConnectedPlayers_Player) Reset() { *x = CMsgConnectedPlayers_Player{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[122] + mi := &file_dota_gcmessages_server_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9312,7 +9137,7 @@ func (x *CMsgConnectedPlayers_Player) String() string { func (*CMsgConnectedPlayers_Player) ProtoMessage() {} func (x *CMsgConnectedPlayers_Player) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[122] + mi := &file_dota_gcmessages_server_proto_msgTypes[121] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9335,7 +9160,7 @@ func (x *CMsgConnectedPlayers_Player) GetSteamId() uint64 { return 0 } -func (x *CMsgConnectedPlayers_Player) GetHeroId() uint32 { +func (x *CMsgConnectedPlayers_Player) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -9369,7 +9194,7 @@ type CMsgConnectedPlayers_PlayerDraft struct { func (x *CMsgConnectedPlayers_PlayerDraft) Reset() { *x = CMsgConnectedPlayers_PlayerDraft{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[123] + mi := &file_dota_gcmessages_server_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9382,7 +9207,7 @@ func (x *CMsgConnectedPlayers_PlayerDraft) String() string { func (*CMsgConnectedPlayers_PlayerDraft) ProtoMessage() {} func (x *CMsgConnectedPlayers_PlayerDraft) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[123] + mi := &file_dota_gcmessages_server_proto_msgTypes[122] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9426,14 +9251,14 @@ type CMsgSignOutGameplayStats_CPlayer struct { SteamId *uint64 `protobuf:"fixed64,1,opt,name=steam_id,json=steamId" json:"steam_id,omitempty"` PlayerSlot *uint32 `protobuf:"varint,2,opt,name=player_slot,json=playerSlot" json:"player_slot,omitempty"` - HeroId *uint32 `protobuf:"varint,3,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,3,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` TimedPlayerStats []*CMatchPlayerTimedStats `protobuf:"bytes,4,rep,name=timed_player_stats,json=timedPlayerStats" json:"timed_player_stats,omitempty"` } func (x *CMsgSignOutGameplayStats_CPlayer) Reset() { *x = CMsgSignOutGameplayStats_CPlayer{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[124] + mi := &file_dota_gcmessages_server_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9446,7 +9271,7 @@ func (x *CMsgSignOutGameplayStats_CPlayer) String() string { func (*CMsgSignOutGameplayStats_CPlayer) ProtoMessage() {} func (x *CMsgSignOutGameplayStats_CPlayer) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[124] + mi := &file_dota_gcmessages_server_proto_msgTypes[123] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9476,7 +9301,7 @@ func (x *CMsgSignOutGameplayStats_CPlayer) GetPlayerSlot() uint32 { return 0 } -func (x *CMsgSignOutGameplayStats_CPlayer) GetHeroId() uint32 { +func (x *CMsgSignOutGameplayStats_CPlayer) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -9504,7 +9329,7 @@ type CMsgSignOutGameplayStats_CTeam struct { func (x *CMsgSignOutGameplayStats_CTeam) Reset() { *x = CMsgSignOutGameplayStats_CTeam{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[125] + mi := &file_dota_gcmessages_server_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9517,7 +9342,7 @@ func (x *CMsgSignOutGameplayStats_CTeam) String() string { func (*CMsgSignOutGameplayStats_CTeam) ProtoMessage() {} func (x *CMsgSignOutGameplayStats_CTeam) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[125] + mi := &file_dota_gcmessages_server_proto_msgTypes[124] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9573,7 +9398,7 @@ type CMsgGameMatchSignOut_CTeam struct { func (x *CMsgGameMatchSignOut_CTeam) Reset() { *x = CMsgGameMatchSignOut_CTeam{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[126] + mi := &file_dota_gcmessages_server_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9586,7 +9411,7 @@ func (x *CMsgGameMatchSignOut_CTeam) String() string { func (*CMsgGameMatchSignOut_CTeam) ProtoMessage() {} func (x *CMsgGameMatchSignOut_CTeam) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[126] + mi := &file_dota_gcmessages_server_proto_msgTypes[125] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9628,7 +9453,7 @@ type CMsgGameMatchSignOut_CAdditionalSignoutMsg struct { func (x *CMsgGameMatchSignOut_CAdditionalSignoutMsg) Reset() { *x = CMsgGameMatchSignOut_CAdditionalSignoutMsg{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[127] + mi := &file_dota_gcmessages_server_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9641,7 +9466,7 @@ func (x *CMsgGameMatchSignOut_CAdditionalSignoutMsg) String() string { func (*CMsgGameMatchSignOut_CAdditionalSignoutMsg) ProtoMessage() {} func (x *CMsgGameMatchSignOut_CAdditionalSignoutMsg) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[127] + mi := &file_dota_gcmessages_server_proto_msgTypes[126] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9686,7 +9511,7 @@ type CMsgGameMatchSignOut_CSocialFeedMatchEvent struct { func (x *CMsgGameMatchSignOut_CSocialFeedMatchEvent) Reset() { *x = CMsgGameMatchSignOut_CSocialFeedMatchEvent{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[128] + mi := &file_dota_gcmessages_server_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9699,7 +9524,7 @@ func (x *CMsgGameMatchSignOut_CSocialFeedMatchEvent) String() string { func (*CMsgGameMatchSignOut_CSocialFeedMatchEvent) ProtoMessage() {} func (x *CMsgGameMatchSignOut_CSocialFeedMatchEvent) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[128] + mi := &file_dota_gcmessages_server_proto_msgTypes[127] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9761,7 +9586,7 @@ type CMsgGameMatchSignOut_CCustomGameData struct { func (x *CMsgGameMatchSignOut_CCustomGameData) Reset() { *x = CMsgGameMatchSignOut_CCustomGameData{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[129] + mi := &file_dota_gcmessages_server_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9774,7 +9599,7 @@ func (x *CMsgGameMatchSignOut_CCustomGameData) String() string { func (*CMsgGameMatchSignOut_CCustomGameData) ProtoMessage() {} func (x *CMsgGameMatchSignOut_CCustomGameData) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[129] + mi := &file_dota_gcmessages_server_proto_msgTypes[128] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9814,7 +9639,7 @@ type CMsgGameMatchSignOut_EventGameLeaderboardEntry struct { func (x *CMsgGameMatchSignOut_EventGameLeaderboardEntry) Reset() { *x = CMsgGameMatchSignOut_EventGameLeaderboardEntry{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[130] + mi := &file_dota_gcmessages_server_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9827,7 +9652,7 @@ func (x *CMsgGameMatchSignOut_EventGameLeaderboardEntry) String() string { func (*CMsgGameMatchSignOut_EventGameLeaderboardEntry) ProtoMessage() {} func (x *CMsgGameMatchSignOut_EventGameLeaderboardEntry) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[130] + mi := &file_dota_gcmessages_server_proto_msgTypes[129] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9910,7 +9735,7 @@ type CMsgGameMatchSignOut_WardPlacement struct { func (x *CMsgGameMatchSignOut_WardPlacement) Reset() { *x = CMsgGameMatchSignOut_WardPlacement{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[131] + mi := &file_dota_gcmessages_server_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9923,7 +9748,7 @@ func (x *CMsgGameMatchSignOut_WardPlacement) String() string { func (*CMsgGameMatchSignOut_WardPlacement) ProtoMessage() {} func (x *CMsgGameMatchSignOut_WardPlacement) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[131] + mi := &file_dota_gcmessages_server_proto_msgTypes[130] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10001,7 +9826,7 @@ type CMsgGameMatchSignOut_CTeam_CPlayer struct { unknownFields protoimpl.UnknownFields SteamId *uint64 `protobuf:"fixed64,1,opt,name=steam_id,json=steamId" json:"steam_id,omitempty"` - HeroId *uint32 `protobuf:"varint,3,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,3,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` Items []int32 `protobuf:"varint,4,rep,name=items" json:"items,omitempty"` ItemPurchaseTimes []uint32 `protobuf:"varint,63,rep,name=item_purchase_times,json=itemPurchaseTimes" json:"item_purchase_times,omitempty"` Gold *uint32 `protobuf:"varint,5,opt,name=gold" json:"gold,omitempty"` @@ -10077,7 +9902,7 @@ type CMsgGameMatchSignOut_CTeam_CPlayer struct { func (x *CMsgGameMatchSignOut_CTeam_CPlayer) Reset() { *x = CMsgGameMatchSignOut_CTeam_CPlayer{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[132] + mi := &file_dota_gcmessages_server_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10090,7 +9915,7 @@ func (x *CMsgGameMatchSignOut_CTeam_CPlayer) String() string { func (*CMsgGameMatchSignOut_CTeam_CPlayer) ProtoMessage() {} func (x *CMsgGameMatchSignOut_CTeam_CPlayer) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[132] + mi := &file_dota_gcmessages_server_proto_msgTypes[131] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10113,7 +9938,7 @@ func (x *CMsgGameMatchSignOut_CTeam_CPlayer) GetSteamId() uint64 { return 0 } -func (x *CMsgGameMatchSignOut_CTeam_CPlayer) GetHeroId() uint32 { +func (x *CMsgGameMatchSignOut_CTeam_CPlayer) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -10622,7 +10447,7 @@ type CMsgGameMatchSignOut_CTeam_CPlayer_CCustomGameData struct { func (x *CMsgGameMatchSignOut_CTeam_CPlayer_CCustomGameData) Reset() { *x = CMsgGameMatchSignOut_CTeam_CPlayer_CCustomGameData{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[133] + mi := &file_dota_gcmessages_server_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10635,7 +10460,7 @@ func (x *CMsgGameMatchSignOut_CTeam_CPlayer_CCustomGameData) String() string { func (*CMsgGameMatchSignOut_CTeam_CPlayer_CCustomGameData) ProtoMessage() {} func (x *CMsgGameMatchSignOut_CTeam_CPlayer_CCustomGameData) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[133] + mi := &file_dota_gcmessages_server_proto_msgTypes[132] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10678,7 +10503,7 @@ type CMsgGameMatchSignOut_CTeam_CPlayer_HeroDamageReceived struct { func (x *CMsgGameMatchSignOut_CTeam_CPlayer_HeroDamageReceived) Reset() { *x = CMsgGameMatchSignOut_CTeam_CPlayer_HeroDamageReceived{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[134] + mi := &file_dota_gcmessages_server_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10691,7 +10516,7 @@ func (x *CMsgGameMatchSignOut_CTeam_CPlayer_HeroDamageReceived) String() string func (*CMsgGameMatchSignOut_CTeam_CPlayer_HeroDamageReceived) ProtoMessage() {} func (x *CMsgGameMatchSignOut_CTeam_CPlayer_HeroDamageReceived) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[134] + mi := &file_dota_gcmessages_server_proto_msgTypes[133] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10741,7 +10566,7 @@ type CMsgSignOutTextMuteInfo_TextMuteMessage struct { func (x *CMsgSignOutTextMuteInfo_TextMuteMessage) Reset() { *x = CMsgSignOutTextMuteInfo_TextMuteMessage{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[135] + mi := &file_dota_gcmessages_server_proto_msgTypes[134] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10754,7 +10579,7 @@ func (x *CMsgSignOutTextMuteInfo_TextMuteMessage) String() string { func (*CMsgSignOutTextMuteInfo_TextMuteMessage) ProtoMessage() {} func (x *CMsgSignOutTextMuteInfo_TextMuteMessage) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[135] + mi := &file_dota_gcmessages_server_proto_msgTypes[134] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10819,7 +10644,7 @@ type CMsgSignOutCommunicationSummary_PlayerCommunication struct { func (x *CMsgSignOutCommunicationSummary_PlayerCommunication) Reset() { *x = CMsgSignOutCommunicationSummary_PlayerCommunication{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[136] + mi := &file_dota_gcmessages_server_proto_msgTypes[135] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10832,7 +10657,7 @@ func (x *CMsgSignOutCommunicationSummary_PlayerCommunication) String() string { func (*CMsgSignOutCommunicationSummary_PlayerCommunication) ProtoMessage() {} func (x *CMsgSignOutCommunicationSummary_PlayerCommunication) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[136] + mi := &file_dota_gcmessages_server_proto_msgTypes[135] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10986,7 +10811,7 @@ type CMsgSignOutCommunicationSummary_PlayerCommunication_PingDetail struct { func (x *CMsgSignOutCommunicationSummary_PlayerCommunication_PingDetail) Reset() { *x = CMsgSignOutCommunicationSummary_PlayerCommunication_PingDetail{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[137] + mi := &file_dota_gcmessages_server_proto_msgTypes[136] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10999,7 +10824,7 @@ func (x *CMsgSignOutCommunicationSummary_PlayerCommunication_PingDetail) String( func (*CMsgSignOutCommunicationSummary_PlayerCommunication_PingDetail) ProtoMessage() {} func (x *CMsgSignOutCommunicationSummary_PlayerCommunication_PingDetail) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[137] + mi := &file_dota_gcmessages_server_proto_msgTypes[136] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11034,7 +10859,7 @@ type CMsgGameMatchSignoutResponse_PlayerMetadata struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroId *uint32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` AvgKillsX16 *uint32 `protobuf:"varint,2,opt,name=avg_kills_x16,json=avgKillsX16" json:"avg_kills_x16,omitempty"` AvgDeathsX16 *uint32 `protobuf:"varint,3,opt,name=avg_deaths_x16,json=avgDeathsX16" json:"avg_deaths_x16,omitempty"` AvgAssistsX16 *uint32 `protobuf:"varint,4,opt,name=avg_assists_x16,json=avgAssistsX16" json:"avg_assists_x16,omitempty"` @@ -11052,7 +10877,7 @@ type CMsgGameMatchSignoutResponse_PlayerMetadata struct { func (x *CMsgGameMatchSignoutResponse_PlayerMetadata) Reset() { *x = CMsgGameMatchSignoutResponse_PlayerMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[138] + mi := &file_dota_gcmessages_server_proto_msgTypes[137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11065,7 +10890,7 @@ func (x *CMsgGameMatchSignoutResponse_PlayerMetadata) String() string { func (*CMsgGameMatchSignoutResponse_PlayerMetadata) ProtoMessage() {} func (x *CMsgGameMatchSignoutResponse_PlayerMetadata) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[138] + mi := &file_dota_gcmessages_server_proto_msgTypes[137] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11081,7 +10906,7 @@ func (*CMsgGameMatchSignoutResponse_PlayerMetadata) Descriptor() ([]byte, []int) return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{18, 0} } -func (x *CMsgGameMatchSignoutResponse_PlayerMetadata) GetHeroId() uint32 { +func (x *CMsgGameMatchSignoutResponse_PlayerMetadata) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -11181,14 +11006,14 @@ type CMsgDOTALiveScoreboardUpdate_Team struct { Score *uint32 `protobuf:"varint,2,opt,name=score" json:"score,omitempty"` TowerState *uint32 `protobuf:"varint,3,opt,name=tower_state,json=towerState" json:"tower_state,omitempty"` BarracksState *uint32 `protobuf:"varint,4,opt,name=barracks_state,json=barracksState" json:"barracks_state,omitempty"` - HeroPicks []uint32 `protobuf:"varint,5,rep,name=hero_picks,json=heroPicks" json:"hero_picks,omitempty"` - HeroBans []uint32 `protobuf:"varint,6,rep,name=hero_bans,json=heroBans" json:"hero_bans,omitempty"` + HeroPicks []int32 `protobuf:"varint,5,rep,name=hero_picks,json=heroPicks" json:"hero_picks,omitempty"` + HeroBans []int32 `protobuf:"varint,6,rep,name=hero_bans,json=heroBans" json:"hero_bans,omitempty"` } func (x *CMsgDOTALiveScoreboardUpdate_Team) Reset() { *x = CMsgDOTALiveScoreboardUpdate_Team{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[139] + mi := &file_dota_gcmessages_server_proto_msgTypes[138] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11201,7 +11026,7 @@ func (x *CMsgDOTALiveScoreboardUpdate_Team) String() string { func (*CMsgDOTALiveScoreboardUpdate_Team) ProtoMessage() {} func (x *CMsgDOTALiveScoreboardUpdate_Team) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[139] + mi := &file_dota_gcmessages_server_proto_msgTypes[138] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11245,14 +11070,14 @@ func (x *CMsgDOTALiveScoreboardUpdate_Team) GetBarracksState() uint32 { return 0 } -func (x *CMsgDOTALiveScoreboardUpdate_Team) GetHeroPicks() []uint32 { +func (x *CMsgDOTALiveScoreboardUpdate_Team) GetHeroPicks() []int32 { if x != nil { return x.HeroPicks } return nil } -func (x *CMsgDOTALiveScoreboardUpdate_Team) GetHeroBans() []uint32 { +func (x *CMsgDOTALiveScoreboardUpdate_Team) GetHeroBans() []int32 { if x != nil { return x.HeroBans } @@ -11267,7 +11092,7 @@ type CMsgDOTALiveScoreboardUpdate_Team_Player struct { PlayerSlot *uint32 `protobuf:"varint,1,opt,name=player_slot,json=playerSlot" json:"player_slot,omitempty"` PlayerName *string `protobuf:"bytes,2,opt,name=player_name,json=playerName" json:"player_name,omitempty"` HeroName *string `protobuf:"bytes,3,opt,name=hero_name,json=heroName" json:"hero_name,omitempty"` - HeroId *uint32 `protobuf:"varint,4,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,4,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` Kills *uint32 `protobuf:"varint,5,opt,name=kills" json:"kills,omitempty"` Deaths *uint32 `protobuf:"varint,6,opt,name=deaths" json:"deaths,omitempty"` Assists *uint32 `protobuf:"varint,7,opt,name=assists" json:"assists,omitempty"` @@ -11296,7 +11121,7 @@ type CMsgDOTALiveScoreboardUpdate_Team_Player struct { func (x *CMsgDOTALiveScoreboardUpdate_Team_Player) Reset() { *x = CMsgDOTALiveScoreboardUpdate_Team_Player{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[140] + mi := &file_dota_gcmessages_server_proto_msgTypes[139] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11309,7 +11134,7 @@ func (x *CMsgDOTALiveScoreboardUpdate_Team_Player) String() string { func (*CMsgDOTALiveScoreboardUpdate_Team_Player) ProtoMessage() {} func (x *CMsgDOTALiveScoreboardUpdate_Team_Player) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[140] + mi := &file_dota_gcmessages_server_proto_msgTypes[139] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11346,7 +11171,7 @@ func (x *CMsgDOTALiveScoreboardUpdate_Team_Player) GetHeroName() string { return "" } -func (x *CMsgDOTALiveScoreboardUpdate_Team_Player) GetHeroId() uint32 { +func (x *CMsgDOTALiveScoreboardUpdate_Team_Player) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -11526,7 +11351,7 @@ type CMsgDOTALiveScoreboardUpdate_Team_Player_HeroAbility struct { func (x *CMsgDOTALiveScoreboardUpdate_Team_Player_HeroAbility) Reset() { *x = CMsgDOTALiveScoreboardUpdate_Team_Player_HeroAbility{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[141] + mi := &file_dota_gcmessages_server_proto_msgTypes[140] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11539,7 +11364,7 @@ func (x *CMsgDOTALiveScoreboardUpdate_Team_Player_HeroAbility) String() string { func (*CMsgDOTALiveScoreboardUpdate_Team_Player_HeroAbility) ProtoMessage() {} func (x *CMsgDOTALiveScoreboardUpdate_Team_Player_HeroAbility) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[141] + mi := &file_dota_gcmessages_server_proto_msgTypes[140] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11590,7 +11415,7 @@ type CMsgServerToGCRequestBatchPlayerResourcesResponse_Result struct { func (x *CMsgServerToGCRequestBatchPlayerResourcesResponse_Result) Reset() { *x = CMsgServerToGCRequestBatchPlayerResourcesResponse_Result{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[142] + mi := &file_dota_gcmessages_server_proto_msgTypes[141] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11603,7 +11428,7 @@ func (x *CMsgServerToGCRequestBatchPlayerResourcesResponse_Result) String() stri func (*CMsgServerToGCRequestBatchPlayerResourcesResponse_Result) ProtoMessage() {} func (x *CMsgServerToGCRequestBatchPlayerResourcesResponse_Result) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[142] + mi := &file_dota_gcmessages_server_proto_msgTypes[141] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11712,7 +11537,7 @@ type CMsgDOTAAwardEventPoints_AwardPoints struct { func (x *CMsgDOTAAwardEventPoints_AwardPoints) Reset() { *x = CMsgDOTAAwardEventPoints_AwardPoints{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[143] + mi := &file_dota_gcmessages_server_proto_msgTypes[142] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11725,7 +11550,7 @@ func (x *CMsgDOTAAwardEventPoints_AwardPoints) String() string { func (*CMsgDOTAAwardEventPoints_AwardPoints) ProtoMessage() {} func (x *CMsgDOTAAwardEventPoints_AwardPoints) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[143] + mi := &file_dota_gcmessages_server_proto_msgTypes[142] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11799,7 +11624,7 @@ type CMsgServerToGCMatchConnectionStats_Player struct { func (x *CMsgServerToGCMatchConnectionStats_Player) Reset() { *x = CMsgServerToGCMatchConnectionStats_Player{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[144] + mi := &file_dota_gcmessages_server_proto_msgTypes[143] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11812,7 +11637,7 @@ func (x *CMsgServerToGCMatchConnectionStats_Player) String() string { func (*CMsgServerToGCMatchConnectionStats_Player) ProtoMessage() {} func (x *CMsgServerToGCMatchConnectionStats_Player) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[144] + mi := &file_dota_gcmessages_server_proto_msgTypes[143] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11881,7 +11706,7 @@ type CSerializedCombatLog_Dictionary struct { func (x *CSerializedCombatLog_Dictionary) Reset() { *x = CSerializedCombatLog_Dictionary{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[145] + mi := &file_dota_gcmessages_server_proto_msgTypes[144] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11894,7 +11719,7 @@ func (x *CSerializedCombatLog_Dictionary) String() string { func (*CSerializedCombatLog_Dictionary) ProtoMessage() {} func (x *CSerializedCombatLog_Dictionary) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[145] + mi := &file_dota_gcmessages_server_proto_msgTypes[144] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11929,7 +11754,7 @@ type CSerializedCombatLog_Dictionary_DictString struct { func (x *CSerializedCombatLog_Dictionary_DictString) Reset() { *x = CSerializedCombatLog_Dictionary_DictString{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[146] + mi := &file_dota_gcmessages_server_proto_msgTypes[145] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11942,7 +11767,7 @@ func (x *CSerializedCombatLog_Dictionary_DictString) String() string { func (*CSerializedCombatLog_Dictionary_DictString) ProtoMessage() {} func (x *CSerializedCombatLog_Dictionary_DictString) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[146] + mi := &file_dota_gcmessages_server_proto_msgTypes[145] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11972,33 +11797,32 @@ func (x *CSerializedCombatLog_Dictionary_DictString) GetValue() string { return "" } -type CMsgServerToGCVictoryPredictions_Record struct { +type CMsgServerToGCVictoryPredictions_PredictionItem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - AccountId *uint32 `protobuf:"varint,1,opt,name=account_id,json=accountId" json:"account_id,omitempty"` - ItemId *uint64 `protobuf:"varint,2,opt,name=item_id,json=itemId" json:"item_id,omitempty"` - ItemIds []uint64 `protobuf:"varint,5,rep,name=item_ids,json=itemIds" json:"item_ids,omitempty"` + ItemId *uint64 `protobuf:"varint,1,opt,name=item_id,json=itemId" json:"item_id,omitempty"` + ItemDef *uint32 `protobuf:"varint,2,opt,name=item_def,json=itemDef" json:"item_def,omitempty"` } -func (x *CMsgServerToGCVictoryPredictions_Record) Reset() { - *x = CMsgServerToGCVictoryPredictions_Record{} +func (x *CMsgServerToGCVictoryPredictions_PredictionItem) Reset() { + *x = CMsgServerToGCVictoryPredictions_PredictionItem{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[147] + mi := &file_dota_gcmessages_server_proto_msgTypes[146] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CMsgServerToGCVictoryPredictions_Record) String() string { +func (x *CMsgServerToGCVictoryPredictions_PredictionItem) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CMsgServerToGCVictoryPredictions_Record) ProtoMessage() {} +func (*CMsgServerToGCVictoryPredictions_PredictionItem) ProtoMessage() {} -func (x *CMsgServerToGCVictoryPredictions_Record) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[147] +func (x *CMsgServerToGCVictoryPredictions_PredictionItem) ProtoReflect() protoreflect.Message { + mi := &file_dota_gcmessages_server_proto_msgTypes[146] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12009,59 +11833,52 @@ func (x *CMsgServerToGCVictoryPredictions_Record) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use CMsgServerToGCVictoryPredictions_Record.ProtoReflect.Descriptor instead. -func (*CMsgServerToGCVictoryPredictions_Record) Descriptor() ([]byte, []int) { +// Deprecated: Use CMsgServerToGCVictoryPredictions_PredictionItem.ProtoReflect.Descriptor instead. +func (*CMsgServerToGCVictoryPredictions_PredictionItem) Descriptor() ([]byte, []int) { return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{47, 0} } -func (x *CMsgServerToGCVictoryPredictions_Record) GetAccountId() uint32 { - if x != nil && x.AccountId != nil { - return *x.AccountId +func (x *CMsgServerToGCVictoryPredictions_PredictionItem) GetItemId() uint64 { + if x != nil && x.ItemId != nil { + return *x.ItemId } return 0 } -func (x *CMsgServerToGCVictoryPredictions_Record) GetItemId() uint64 { - if x != nil && x.ItemId != nil { - return *x.ItemId +func (x *CMsgServerToGCVictoryPredictions_PredictionItem) GetItemDef() uint32 { + if x != nil && x.ItemDef != nil { + return *x.ItemDef } return 0 } -func (x *CMsgServerToGCVictoryPredictions_Record) GetItemIds() []uint64 { - if x != nil { - return x.ItemIds - } - return nil -} - -type CMsgServerToGCKillSummaries_KillSummary struct { +type CMsgServerToGCVictoryPredictions_Record struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - KillerHeroId *uint32 `protobuf:"varint,1,opt,name=killer_hero_id,json=killerHeroId" json:"killer_hero_id,omitempty"` - VictimHeroId *uint32 `protobuf:"varint,2,opt,name=victim_hero_id,json=victimHeroId" json:"victim_hero_id,omitempty"` - KillCount *uint32 `protobuf:"varint,3,opt,name=kill_count,json=killCount" json:"kill_count,omitempty"` + AccountId *uint32 `protobuf:"varint,1,opt,name=account_id,json=accountId" json:"account_id,omitempty"` + ItemIds []uint64 `protobuf:"varint,5,rep,name=item_ids,json=itemIds" json:"item_ids,omitempty"` + PredictionItems []*CMsgServerToGCVictoryPredictions_PredictionItem `protobuf:"bytes,6,rep,name=prediction_items,json=predictionItems" json:"prediction_items,omitempty"` } -func (x *CMsgServerToGCKillSummaries_KillSummary) Reset() { - *x = CMsgServerToGCKillSummaries_KillSummary{} +func (x *CMsgServerToGCVictoryPredictions_Record) Reset() { + *x = CMsgServerToGCVictoryPredictions_Record{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[148] + mi := &file_dota_gcmessages_server_proto_msgTypes[147] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CMsgServerToGCKillSummaries_KillSummary) String() string { +func (x *CMsgServerToGCVictoryPredictions_Record) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CMsgServerToGCKillSummaries_KillSummary) ProtoMessage() {} +func (*CMsgServerToGCVictoryPredictions_Record) ProtoMessage() {} -func (x *CMsgServerToGCKillSummaries_KillSummary) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[148] +func (x *CMsgServerToGCVictoryPredictions_Record) ProtoReflect() protoreflect.Message { + mi := &file_dota_gcmessages_server_proto_msgTypes[147] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12072,61 +11889,59 @@ func (x *CMsgServerToGCKillSummaries_KillSummary) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use CMsgServerToGCKillSummaries_KillSummary.ProtoReflect.Descriptor instead. -func (*CMsgServerToGCKillSummaries_KillSummary) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{54, 0} +// Deprecated: Use CMsgServerToGCVictoryPredictions_Record.ProtoReflect.Descriptor instead. +func (*CMsgServerToGCVictoryPredictions_Record) Descriptor() ([]byte, []int) { + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{47, 1} } -func (x *CMsgServerToGCKillSummaries_KillSummary) GetKillerHeroId() uint32 { - if x != nil && x.KillerHeroId != nil { - return *x.KillerHeroId +func (x *CMsgServerToGCVictoryPredictions_Record) GetAccountId() uint32 { + if x != nil && x.AccountId != nil { + return *x.AccountId } return 0 } -func (x *CMsgServerToGCKillSummaries_KillSummary) GetVictimHeroId() uint32 { - if x != nil && x.VictimHeroId != nil { - return *x.VictimHeroId +func (x *CMsgServerToGCVictoryPredictions_Record) GetItemIds() []uint64 { + if x != nil { + return x.ItemIds } - return 0 + return nil } -func (x *CMsgServerToGCKillSummaries_KillSummary) GetKillCount() uint32 { - if x != nil && x.KillCount != nil { - return *x.KillCount +func (x *CMsgServerToGCVictoryPredictions_Record) GetPredictionItems() []*CMsgServerToGCVictoryPredictions_PredictionItem { + if x != nil { + return x.PredictionItems } - return 0 + return nil } -type CMsgGCToServerPredictionResult_Prediction struct { +type CMsgServerToGCKillSummaries_KillSummary struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ItemDef *uint32 `protobuf:"varint,1,opt,name=item_def,json=itemDef" json:"item_def,omitempty"` - NumCorrect *uint32 `protobuf:"varint,2,opt,name=num_correct,json=numCorrect" json:"num_correct,omitempty"` - NumFails *uint32 `protobuf:"varint,3,opt,name=num_fails,json=numFails" json:"num_fails,omitempty"` - Result *CMsgGCToServerPredictionResult_Prediction_EResult `protobuf:"varint,4,opt,name=result,enum=dota.CMsgGCToServerPredictionResult_Prediction_EResult" json:"result,omitempty"` - GrantedItemDefs []uint32 `protobuf:"varint,6,rep,name=granted_item_defs,json=grantedItemDefs" json:"granted_item_defs,omitempty"` + KillerHeroId *uint32 `protobuf:"varint,1,opt,name=killer_hero_id,json=killerHeroId" json:"killer_hero_id,omitempty"` + VictimHeroId *uint32 `protobuf:"varint,2,opt,name=victim_hero_id,json=victimHeroId" json:"victim_hero_id,omitempty"` + KillCount *uint32 `protobuf:"varint,3,opt,name=kill_count,json=killCount" json:"kill_count,omitempty"` } -func (x *CMsgGCToServerPredictionResult_Prediction) Reset() { - *x = CMsgGCToServerPredictionResult_Prediction{} +func (x *CMsgServerToGCKillSummaries_KillSummary) Reset() { + *x = CMsgServerToGCKillSummaries_KillSummary{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[149] + mi := &file_dota_gcmessages_server_proto_msgTypes[148] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CMsgGCToServerPredictionResult_Prediction) String() string { +func (x *CMsgServerToGCKillSummaries_KillSummary) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CMsgGCToServerPredictionResult_Prediction) ProtoMessage() {} +func (*CMsgServerToGCKillSummaries_KillSummary) ProtoMessage() {} -func (x *CMsgGCToServerPredictionResult_Prediction) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[149] +func (x *CMsgServerToGCKillSummaries_KillSummary) ProtoReflect() protoreflect.Message { + mi := &file_dota_gcmessages_server_proto_msgTypes[148] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12137,46 +11952,32 @@ func (x *CMsgGCToServerPredictionResult_Prediction) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use CMsgGCToServerPredictionResult_Prediction.ProtoReflect.Descriptor instead. -func (*CMsgGCToServerPredictionResult_Prediction) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{55, 0} +// Deprecated: Use CMsgServerToGCKillSummaries_KillSummary.ProtoReflect.Descriptor instead. +func (*CMsgServerToGCKillSummaries_KillSummary) Descriptor() ([]byte, []int) { + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{54, 0} } -func (x *CMsgGCToServerPredictionResult_Prediction) GetItemDef() uint32 { - if x != nil && x.ItemDef != nil { - return *x.ItemDef +func (x *CMsgServerToGCKillSummaries_KillSummary) GetKillerHeroId() uint32 { + if x != nil && x.KillerHeroId != nil { + return *x.KillerHeroId } return 0 } -func (x *CMsgGCToServerPredictionResult_Prediction) GetNumCorrect() uint32 { - if x != nil && x.NumCorrect != nil { - return *x.NumCorrect +func (x *CMsgServerToGCKillSummaries_KillSummary) GetVictimHeroId() uint32 { + if x != nil && x.VictimHeroId != nil { + return *x.VictimHeroId } return 0 } -func (x *CMsgGCToServerPredictionResult_Prediction) GetNumFails() uint32 { - if x != nil && x.NumFails != nil { - return *x.NumFails +func (x *CMsgServerToGCKillSummaries_KillSummary) GetKillCount() uint32 { + if x != nil && x.KillCount != nil { + return *x.KillCount } return 0 } -func (x *CMsgGCToServerPredictionResult_Prediction) GetResult() CMsgGCToServerPredictionResult_Prediction_EResult { - if x != nil && x.Result != nil { - return *x.Result - } - return CMsgGCToServerPredictionResult_Prediction_k_eResult_ItemGranted -} - -func (x *CMsgGCToServerPredictionResult_Prediction) GetGrantedItemDefs() []uint32 { - if x != nil { - return x.GrantedItemDefs - } - return nil -} - type CMsgSignOutUpdatePlayerChallenge_Challenge struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -12192,7 +11993,7 @@ type CMsgSignOutUpdatePlayerChallenge_Challenge struct { func (x *CMsgSignOutUpdatePlayerChallenge_Challenge) Reset() { *x = CMsgSignOutUpdatePlayerChallenge_Challenge{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[150] + mi := &file_dota_gcmessages_server_proto_msgTypes[149] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12205,7 +12006,7 @@ func (x *CMsgSignOutUpdatePlayerChallenge_Challenge) String() string { func (*CMsgSignOutUpdatePlayerChallenge_Challenge) ProtoMessage() {} func (x *CMsgSignOutUpdatePlayerChallenge_Challenge) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[150] + mi := &file_dota_gcmessages_server_proto_msgTypes[149] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12218,7 +12019,7 @@ func (x *CMsgSignOutUpdatePlayerChallenge_Challenge) ProtoReflect() protoreflect // Deprecated: Use CMsgSignOutUpdatePlayerChallenge_Challenge.ProtoReflect.Descriptor instead. func (*CMsgSignOutUpdatePlayerChallenge_Challenge) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{57, 0} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{56, 0} } func (x *CMsgSignOutUpdatePlayerChallenge_Challenge) GetEventId() EEvent { @@ -12269,7 +12070,7 @@ type CMsgSpendWager_Player struct { func (x *CMsgSpendWager_Player) Reset() { *x = CMsgSpendWager_Player{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[151] + mi := &file_dota_gcmessages_server_proto_msgTypes[150] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12282,7 +12083,7 @@ func (x *CMsgSpendWager_Player) String() string { func (*CMsgSpendWager_Player) ProtoMessage() {} func (x *CMsgSpendWager_Player) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[151] + mi := &file_dota_gcmessages_server_proto_msgTypes[150] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12295,7 +12096,7 @@ func (x *CMsgSpendWager_Player) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgSpendWager_Player.ProtoReflect.Descriptor instead. func (*CMsgSpendWager_Player) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{59, 0} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{58, 0} } func (x *CMsgSpendWager_Player) GetAccountId() uint32 { @@ -12335,7 +12136,7 @@ type CMsgSignOutXPCoins_Player struct { func (x *CMsgSignOutXPCoins_Player) Reset() { *x = CMsgSignOutXPCoins_Player{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[152] + mi := &file_dota_gcmessages_server_proto_msgTypes[151] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12348,7 +12149,7 @@ func (x *CMsgSignOutXPCoins_Player) String() string { func (*CMsgSignOutXPCoins_Player) ProtoMessage() {} func (x *CMsgSignOutXPCoins_Player) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[152] + mi := &file_dota_gcmessages_server_proto_msgTypes[151] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12361,7 +12162,7 @@ func (x *CMsgSignOutXPCoins_Player) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgSignOutXPCoins_Player.ProtoReflect.Descriptor instead. func (*CMsgSignOutXPCoins_Player) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{60, 0} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{59, 0} } func (x *CMsgSignOutXPCoins_Player) GetAccountId() uint32 { @@ -12419,7 +12220,7 @@ type CMsgSignOutBounties_Bounty struct { func (x *CMsgSignOutBounties_Bounty) Reset() { *x = CMsgSignOutBounties_Bounty{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[153] + mi := &file_dota_gcmessages_server_proto_msgTypes[152] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12432,7 +12233,7 @@ func (x *CMsgSignOutBounties_Bounty) String() string { func (*CMsgSignOutBounties_Bounty) ProtoMessage() {} func (x *CMsgSignOutBounties_Bounty) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[153] + mi := &file_dota_gcmessages_server_proto_msgTypes[152] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12445,7 +12246,7 @@ func (x *CMsgSignOutBounties_Bounty) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgSignOutBounties_Bounty.ProtoReflect.Descriptor instead. func (*CMsgSignOutBounties_Bounty) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{61, 0} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{60, 0} } func (x *CMsgSignOutBounties_Bounty) GetIssuerAccountId() uint32 { @@ -12481,7 +12282,7 @@ type CMsgSignOutCommunityGoalProgress_EventGoalIncrement struct { func (x *CMsgSignOutCommunityGoalProgress_EventGoalIncrement) Reset() { *x = CMsgSignOutCommunityGoalProgress_EventGoalIncrement{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[154] + mi := &file_dota_gcmessages_server_proto_msgTypes[153] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12494,7 +12295,7 @@ func (x *CMsgSignOutCommunityGoalProgress_EventGoalIncrement) String() string { func (*CMsgSignOutCommunityGoalProgress_EventGoalIncrement) ProtoMessage() {} func (x *CMsgSignOutCommunityGoalProgress_EventGoalIncrement) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[154] + mi := &file_dota_gcmessages_server_proto_msgTypes[153] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12507,7 +12308,7 @@ func (x *CMsgSignOutCommunityGoalProgress_EventGoalIncrement) ProtoReflect() pro // Deprecated: Use CMsgSignOutCommunityGoalProgress_EventGoalIncrement.ProtoReflect.Descriptor instead. func (*CMsgSignOutCommunityGoalProgress_EventGoalIncrement) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{62, 0} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{61, 0} } func (x *CMsgSignOutCommunityGoalProgress_EventGoalIncrement) GetEventGoalId() uint32 { @@ -12537,7 +12338,7 @@ type CMsgServerToGCCompendiumInGamePredictionResults_PredictionResult struct { func (x *CMsgServerToGCCompendiumInGamePredictionResults_PredictionResult) Reset() { *x = CMsgServerToGCCompendiumInGamePredictionResults_PredictionResult{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[155] + mi := &file_dota_gcmessages_server_proto_msgTypes[154] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12550,7 +12351,7 @@ func (x *CMsgServerToGCCompendiumInGamePredictionResults_PredictionResult) Strin func (*CMsgServerToGCCompendiumInGamePredictionResults_PredictionResult) ProtoMessage() {} func (x *CMsgServerToGCCompendiumInGamePredictionResults_PredictionResult) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[155] + mi := &file_dota_gcmessages_server_proto_msgTypes[154] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12563,7 +12364,7 @@ func (x *CMsgServerToGCCompendiumInGamePredictionResults_PredictionResult) Proto // Deprecated: Use CMsgServerToGCCompendiumInGamePredictionResults_PredictionResult.ProtoReflect.Descriptor instead. func (*CMsgServerToGCCompendiumInGamePredictionResults_PredictionResult) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{65, 0} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{64, 0} } func (x *CMsgServerToGCCompendiumInGamePredictionResults_PredictionResult) GetPredictionId() uint32 { @@ -12598,7 +12399,7 @@ type CMsgServerToGCCompendiumChosenInGamePredictions_Prediction struct { func (x *CMsgServerToGCCompendiumChosenInGamePredictions_Prediction) Reset() { *x = CMsgServerToGCCompendiumChosenInGamePredictions_Prediction{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[156] + mi := &file_dota_gcmessages_server_proto_msgTypes[155] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12611,7 +12412,7 @@ func (x *CMsgServerToGCCompendiumChosenInGamePredictions_Prediction) String() st func (*CMsgServerToGCCompendiumChosenInGamePredictions_Prediction) ProtoMessage() {} func (x *CMsgServerToGCCompendiumChosenInGamePredictions_Prediction) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[156] + mi := &file_dota_gcmessages_server_proto_msgTypes[155] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12624,7 +12425,7 @@ func (x *CMsgServerToGCCompendiumChosenInGamePredictions_Prediction) ProtoReflec // Deprecated: Use CMsgServerToGCCompendiumChosenInGamePredictions_Prediction.ProtoReflect.Descriptor instead. func (*CMsgServerToGCCompendiumChosenInGamePredictions_Prediction) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{66, 0} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{65, 0} } func (x *CMsgServerToGCCompendiumChosenInGamePredictions_Prediction) GetPredictionId() uint32 { @@ -12650,7 +12451,7 @@ type CMsgServerToGCMatchPlayerItemPurchaseHistory_ItemPurchase struct { func (x *CMsgServerToGCMatchPlayerItemPurchaseHistory_ItemPurchase) Reset() { *x = CMsgServerToGCMatchPlayerItemPurchaseHistory_ItemPurchase{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[157] + mi := &file_dota_gcmessages_server_proto_msgTypes[156] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12663,7 +12464,7 @@ func (x *CMsgServerToGCMatchPlayerItemPurchaseHistory_ItemPurchase) String() str func (*CMsgServerToGCMatchPlayerItemPurchaseHistory_ItemPurchase) ProtoMessage() {} func (x *CMsgServerToGCMatchPlayerItemPurchaseHistory_ItemPurchase) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[157] + mi := &file_dota_gcmessages_server_proto_msgTypes[156] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12676,7 +12477,7 @@ func (x *CMsgServerToGCMatchPlayerItemPurchaseHistory_ItemPurchase) ProtoReflect // Deprecated: Use CMsgServerToGCMatchPlayerItemPurchaseHistory_ItemPurchase.ProtoReflect.Descriptor instead. func (*CMsgServerToGCMatchPlayerItemPurchaseHistory_ItemPurchase) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{68, 0} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{67, 0} } func (x *CMsgServerToGCMatchPlayerItemPurchaseHistory_ItemPurchase) GetItem() int32 { @@ -12728,9 +12529,9 @@ type CMsgServerToGCMatchPlayerItemPurchaseHistory_Player struct { PlayerSlot *uint32 `protobuf:"varint,1,opt,name=player_slot,json=playerSlot" json:"player_slot,omitempty"` AccountId *uint32 `protobuf:"varint,2,opt,name=account_id,json=accountId" json:"account_id,omitempty"` - HeroId *uint32 `protobuf:"varint,3,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` - AlliedHeroIds []uint32 `protobuf:"varint,4,rep,name=allied_hero_ids,json=alliedHeroIds" json:"allied_hero_ids,omitempty"` - EnemyHeroIds []uint32 `protobuf:"varint,5,rep,name=enemy_hero_ids,json=enemyHeroIds" json:"enemy_hero_ids,omitempty"` + HeroId *int32 `protobuf:"varint,3,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + AlliedHeroIds []int32 `protobuf:"varint,4,rep,name=allied_hero_ids,json=alliedHeroIds" json:"allied_hero_ids,omitempty"` + EnemyHeroIds []int32 `protobuf:"varint,5,rep,name=enemy_hero_ids,json=enemyHeroIds" json:"enemy_hero_ids,omitempty"` ItemPurchases []*CMsgServerToGCMatchPlayerItemPurchaseHistory_ItemPurchase `protobuf:"bytes,6,rep,name=item_purchases,json=itemPurchases" json:"item_purchases,omitempty"` Lane *uint32 `protobuf:"varint,7,opt,name=lane" json:"lane,omitempty"` IsWinner *bool `protobuf:"varint,8,opt,name=is_winner,json=isWinner" json:"is_winner,omitempty"` @@ -12739,7 +12540,7 @@ type CMsgServerToGCMatchPlayerItemPurchaseHistory_Player struct { func (x *CMsgServerToGCMatchPlayerItemPurchaseHistory_Player) Reset() { *x = CMsgServerToGCMatchPlayerItemPurchaseHistory_Player{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[158] + mi := &file_dota_gcmessages_server_proto_msgTypes[157] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12752,7 +12553,7 @@ func (x *CMsgServerToGCMatchPlayerItemPurchaseHistory_Player) String() string { func (*CMsgServerToGCMatchPlayerItemPurchaseHistory_Player) ProtoMessage() {} func (x *CMsgServerToGCMatchPlayerItemPurchaseHistory_Player) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[158] + mi := &file_dota_gcmessages_server_proto_msgTypes[157] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12765,7 +12566,7 @@ func (x *CMsgServerToGCMatchPlayerItemPurchaseHistory_Player) ProtoReflect() pro // Deprecated: Use CMsgServerToGCMatchPlayerItemPurchaseHistory_Player.ProtoReflect.Descriptor instead. func (*CMsgServerToGCMatchPlayerItemPurchaseHistory_Player) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{68, 1} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{67, 1} } func (x *CMsgServerToGCMatchPlayerItemPurchaseHistory_Player) GetPlayerSlot() uint32 { @@ -12782,21 +12583,21 @@ func (x *CMsgServerToGCMatchPlayerItemPurchaseHistory_Player) GetAccountId() uin return 0 } -func (x *CMsgServerToGCMatchPlayerItemPurchaseHistory_Player) GetHeroId() uint32 { +func (x *CMsgServerToGCMatchPlayerItemPurchaseHistory_Player) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } return 0 } -func (x *CMsgServerToGCMatchPlayerItemPurchaseHistory_Player) GetAlliedHeroIds() []uint32 { +func (x *CMsgServerToGCMatchPlayerItemPurchaseHistory_Player) GetAlliedHeroIds() []int32 { if x != nil { return x.AlliedHeroIds } return nil } -func (x *CMsgServerToGCMatchPlayerItemPurchaseHistory_Player) GetEnemyHeroIds() []uint32 { +func (x *CMsgServerToGCMatchPlayerItemPurchaseHistory_Player) GetEnemyHeroIds() []int32 { if x != nil { return x.EnemyHeroIds } @@ -12839,7 +12640,7 @@ type CMsgServerToGCMatchPlayerNeutralItemEquipHistory_ItemEquip struct { func (x *CMsgServerToGCMatchPlayerNeutralItemEquipHistory_ItemEquip) Reset() { *x = CMsgServerToGCMatchPlayerNeutralItemEquipHistory_ItemEquip{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[159] + mi := &file_dota_gcmessages_server_proto_msgTypes[158] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12852,7 +12653,7 @@ func (x *CMsgServerToGCMatchPlayerNeutralItemEquipHistory_ItemEquip) String() st func (*CMsgServerToGCMatchPlayerNeutralItemEquipHistory_ItemEquip) ProtoMessage() {} func (x *CMsgServerToGCMatchPlayerNeutralItemEquipHistory_ItemEquip) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[159] + mi := &file_dota_gcmessages_server_proto_msgTypes[158] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12865,7 +12666,7 @@ func (x *CMsgServerToGCMatchPlayerNeutralItemEquipHistory_ItemEquip) ProtoReflec // Deprecated: Use CMsgServerToGCMatchPlayerNeutralItemEquipHistory_ItemEquip.ProtoReflect.Descriptor instead. func (*CMsgServerToGCMatchPlayerNeutralItemEquipHistory_ItemEquip) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{69, 0} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{68, 0} } func (x *CMsgServerToGCMatchPlayerNeutralItemEquipHistory_ItemEquip) GetItem() int32 { @@ -12909,8 +12710,8 @@ type CMsgServerToGCMatchPlayerNeutralItemEquipHistory_Player struct { unknownFields protoimpl.UnknownFields AccountId *uint32 `protobuf:"varint,1,opt,name=account_id,json=accountId" json:"account_id,omitempty"` - AlliedHeroIds []uint32 `protobuf:"varint,2,rep,name=allied_hero_ids,json=alliedHeroIds" json:"allied_hero_ids,omitempty"` - EnemyHeroIds []uint32 `protobuf:"varint,3,rep,name=enemy_hero_ids,json=enemyHeroIds" json:"enemy_hero_ids,omitempty"` + AlliedHeroIds []int32 `protobuf:"varint,2,rep,name=allied_hero_ids,json=alliedHeroIds" json:"allied_hero_ids,omitempty"` + EnemyHeroIds []int32 `protobuf:"varint,3,rep,name=enemy_hero_ids,json=enemyHeroIds" json:"enemy_hero_ids,omitempty"` ItemEquips []*CMsgServerToGCMatchPlayerNeutralItemEquipHistory_ItemEquip `protobuf:"bytes,4,rep,name=item_equips,json=itemEquips" json:"item_equips,omitempty"` IsWinner *bool `protobuf:"varint,5,opt,name=is_winner,json=isWinner" json:"is_winner,omitempty"` } @@ -12918,7 +12719,7 @@ type CMsgServerToGCMatchPlayerNeutralItemEquipHistory_Player struct { func (x *CMsgServerToGCMatchPlayerNeutralItemEquipHistory_Player) Reset() { *x = CMsgServerToGCMatchPlayerNeutralItemEquipHistory_Player{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[160] + mi := &file_dota_gcmessages_server_proto_msgTypes[159] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12931,7 +12732,7 @@ func (x *CMsgServerToGCMatchPlayerNeutralItemEquipHistory_Player) String() strin func (*CMsgServerToGCMatchPlayerNeutralItemEquipHistory_Player) ProtoMessage() {} func (x *CMsgServerToGCMatchPlayerNeutralItemEquipHistory_Player) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[160] + mi := &file_dota_gcmessages_server_proto_msgTypes[159] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12944,7 +12745,7 @@ func (x *CMsgServerToGCMatchPlayerNeutralItemEquipHistory_Player) ProtoReflect() // Deprecated: Use CMsgServerToGCMatchPlayerNeutralItemEquipHistory_Player.ProtoReflect.Descriptor instead. func (*CMsgServerToGCMatchPlayerNeutralItemEquipHistory_Player) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{69, 1} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{68, 1} } func (x *CMsgServerToGCMatchPlayerNeutralItemEquipHistory_Player) GetAccountId() uint32 { @@ -12954,14 +12755,14 @@ func (x *CMsgServerToGCMatchPlayerNeutralItemEquipHistory_Player) GetAccountId() return 0 } -func (x *CMsgServerToGCMatchPlayerNeutralItemEquipHistory_Player) GetAlliedHeroIds() []uint32 { +func (x *CMsgServerToGCMatchPlayerNeutralItemEquipHistory_Player) GetAlliedHeroIds() []int32 { if x != nil { return x.AlliedHeroIds } return nil } -func (x *CMsgServerToGCMatchPlayerNeutralItemEquipHistory_Player) GetEnemyHeroIds() []uint32 { +func (x *CMsgServerToGCMatchPlayerNeutralItemEquipHistory_Player) GetEnemyHeroIds() []int32 { if x != nil { return x.EnemyHeroIds } @@ -12987,7 +12788,7 @@ type CMsgServerToGCMatchStateHistory_PlayerState struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroId *uint32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` NetWorth *uint32 `protobuf:"varint,2,opt,name=net_worth,json=netWorth" json:"net_worth,omitempty"` Level *uint32 `protobuf:"varint,3,opt,name=level" json:"level,omitempty"` Deaths *uint32 `protobuf:"varint,4,opt,name=deaths" json:"deaths,omitempty"` @@ -13001,7 +12802,7 @@ type CMsgServerToGCMatchStateHistory_PlayerState struct { func (x *CMsgServerToGCMatchStateHistory_PlayerState) Reset() { *x = CMsgServerToGCMatchStateHistory_PlayerState{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[161] + mi := &file_dota_gcmessages_server_proto_msgTypes[160] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13014,7 +12815,7 @@ func (x *CMsgServerToGCMatchStateHistory_PlayerState) String() string { func (*CMsgServerToGCMatchStateHistory_PlayerState) ProtoMessage() {} func (x *CMsgServerToGCMatchStateHistory_PlayerState) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[161] + mi := &file_dota_gcmessages_server_proto_msgTypes[160] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13027,10 +12828,10 @@ func (x *CMsgServerToGCMatchStateHistory_PlayerState) ProtoReflect() protoreflec // Deprecated: Use CMsgServerToGCMatchStateHistory_PlayerState.ProtoReflect.Descriptor instead. func (*CMsgServerToGCMatchStateHistory_PlayerState) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{70, 0} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{69, 0} } -func (x *CMsgServerToGCMatchStateHistory_PlayerState) GetHeroId() uint32 { +func (x *CMsgServerToGCMatchStateHistory_PlayerState) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -13113,7 +12914,7 @@ type CMsgServerToGCMatchStateHistory_TeamState struct { func (x *CMsgServerToGCMatchStateHistory_TeamState) Reset() { *x = CMsgServerToGCMatchStateHistory_TeamState{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[162] + mi := &file_dota_gcmessages_server_proto_msgTypes[161] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13126,7 +12927,7 @@ func (x *CMsgServerToGCMatchStateHistory_TeamState) String() string { func (*CMsgServerToGCMatchStateHistory_TeamState) ProtoMessage() {} func (x *CMsgServerToGCMatchStateHistory_TeamState) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[162] + mi := &file_dota_gcmessages_server_proto_msgTypes[161] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13139,7 +12940,7 @@ func (x *CMsgServerToGCMatchStateHistory_TeamState) ProtoReflect() protoreflect. // Deprecated: Use CMsgServerToGCMatchStateHistory_TeamState.ProtoReflect.Descriptor instead. func (*CMsgServerToGCMatchStateHistory_TeamState) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{70, 1} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{69, 1} } func (x *CMsgServerToGCMatchStateHistory_TeamState) GetTeam() uint32 { @@ -13225,7 +13026,7 @@ type CMsgServerToGCMatchStateHistory_MatchState struct { func (x *CMsgServerToGCMatchStateHistory_MatchState) Reset() { *x = CMsgServerToGCMatchStateHistory_MatchState{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[163] + mi := &file_dota_gcmessages_server_proto_msgTypes[162] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13238,7 +13039,7 @@ func (x *CMsgServerToGCMatchStateHistory_MatchState) String() string { func (*CMsgServerToGCMatchStateHistory_MatchState) ProtoMessage() {} func (x *CMsgServerToGCMatchStateHistory_MatchState) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[163] + mi := &file_dota_gcmessages_server_proto_msgTypes[162] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13251,7 +13052,7 @@ func (x *CMsgServerToGCMatchStateHistory_MatchState) ProtoReflect() protoreflect // Deprecated: Use CMsgServerToGCMatchStateHistory_MatchState.ProtoReflect.Descriptor instead. func (*CMsgServerToGCMatchStateHistory_MatchState) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{70, 2} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{69, 2} } func (x *CMsgServerToGCMatchStateHistory_MatchState) GetGameTime() uint32 { @@ -13288,14 +13089,14 @@ type CMsgServerToGCPlayerChallengeHistory_PlayerChallenge struct { ProgressValueEnd *uint32 `protobuf:"varint,6,opt,name=progress_value_end,json=progressValueEnd" json:"progress_value_end,omitempty"` TeamWon *bool `protobuf:"varint,7,opt,name=team_won,json=teamWon" json:"team_won,omitempty"` AuditData *uint64 `protobuf:"varint,8,opt,name=audit_data,json=auditData" json:"audit_data,omitempty"` - HeroId *uint32 `protobuf:"varint,9,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,9,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` RankCompleted *uint32 `protobuf:"varint,10,opt,name=rank_completed,json=rankCompleted" json:"rank_completed,omitempty"` } func (x *CMsgServerToGCPlayerChallengeHistory_PlayerChallenge) Reset() { *x = CMsgServerToGCPlayerChallengeHistory_PlayerChallenge{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[164] + mi := &file_dota_gcmessages_server_proto_msgTypes[163] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13308,7 +13109,7 @@ func (x *CMsgServerToGCPlayerChallengeHistory_PlayerChallenge) String() string { func (*CMsgServerToGCPlayerChallengeHistory_PlayerChallenge) ProtoMessage() {} func (x *CMsgServerToGCPlayerChallengeHistory_PlayerChallenge) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[164] + mi := &file_dota_gcmessages_server_proto_msgTypes[163] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13321,7 +13122,7 @@ func (x *CMsgServerToGCPlayerChallengeHistory_PlayerChallenge) ProtoReflect() pr // Deprecated: Use CMsgServerToGCPlayerChallengeHistory_PlayerChallenge.ProtoReflect.Descriptor instead. func (*CMsgServerToGCPlayerChallengeHistory_PlayerChallenge) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{78, 0} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{77, 0} } func (x *CMsgServerToGCPlayerChallengeHistory_PlayerChallenge) GetAccountId() uint32 { @@ -13380,7 +13181,7 @@ func (x *CMsgServerToGCPlayerChallengeHistory_PlayerChallenge) GetAuditData() ui return 0 } -func (x *CMsgServerToGCPlayerChallengeHistory_PlayerChallenge) GetHeroId() uint32 { +func (x *CMsgServerToGCPlayerChallengeHistory_PlayerChallenge) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -13406,7 +13207,7 @@ type CMsgServerToGCCavernCrawlIsHeroActiveResponse_MapResults struct { func (x *CMsgServerToGCCavernCrawlIsHeroActiveResponse_MapResults) Reset() { *x = CMsgServerToGCCavernCrawlIsHeroActiveResponse_MapResults{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[165] + mi := &file_dota_gcmessages_server_proto_msgTypes[164] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13419,7 +13220,7 @@ func (x *CMsgServerToGCCavernCrawlIsHeroActiveResponse_MapResults) String() stri func (*CMsgServerToGCCavernCrawlIsHeroActiveResponse_MapResults) ProtoMessage() {} func (x *CMsgServerToGCCavernCrawlIsHeroActiveResponse_MapResults) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[165] + mi := &file_dota_gcmessages_server_proto_msgTypes[164] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13432,7 +13233,7 @@ func (x *CMsgServerToGCCavernCrawlIsHeroActiveResponse_MapResults) ProtoReflect( // Deprecated: Use CMsgServerToGCCavernCrawlIsHeroActiveResponse_MapResults.ProtoReflect.Descriptor instead. func (*CMsgServerToGCCavernCrawlIsHeroActiveResponse_MapResults) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{79, 0} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{78, 0} } func (x *CMsgServerToGCCavernCrawlIsHeroActiveResponse_MapResults) GetPathIdCompleted() uint32 { @@ -13465,7 +13266,7 @@ type CMsgNeutralItemStats_NeutralItem struct { func (x *CMsgNeutralItemStats_NeutralItem) Reset() { *x = CMsgNeutralItemStats_NeutralItem{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[166] + mi := &file_dota_gcmessages_server_proto_msgTypes[165] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13478,7 +13279,7 @@ func (x *CMsgNeutralItemStats_NeutralItem) String() string { func (*CMsgNeutralItemStats_NeutralItem) ProtoMessage() {} func (x *CMsgNeutralItemStats_NeutralItem) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[166] + mi := &file_dota_gcmessages_server_proto_msgTypes[165] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13491,7 +13292,7 @@ func (x *CMsgNeutralItemStats_NeutralItem) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgNeutralItemStats_NeutralItem.ProtoReflect.Descriptor instead. func (*CMsgNeutralItemStats_NeutralItem) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{80, 0} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{79, 0} } func (x *CMsgNeutralItemStats_NeutralItem) GetItemId() int32 { @@ -13541,7 +13342,7 @@ type CMsgGCToServerLobbyHeroBanRates_HeroBanEntry struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroId *uint32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` BanCount *uint32 `protobuf:"varint,2,opt,name=ban_count,json=banCount" json:"ban_count,omitempty"` PickCount *uint32 `protobuf:"varint,3,opt,name=pick_count,json=pickCount" json:"pick_count,omitempty"` } @@ -13549,7 +13350,7 @@ type CMsgGCToServerLobbyHeroBanRates_HeroBanEntry struct { func (x *CMsgGCToServerLobbyHeroBanRates_HeroBanEntry) Reset() { *x = CMsgGCToServerLobbyHeroBanRates_HeroBanEntry{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[167] + mi := &file_dota_gcmessages_server_proto_msgTypes[166] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13562,7 +13363,7 @@ func (x *CMsgGCToServerLobbyHeroBanRates_HeroBanEntry) String() string { func (*CMsgGCToServerLobbyHeroBanRates_HeroBanEntry) ProtoMessage() {} func (x *CMsgGCToServerLobbyHeroBanRates_HeroBanEntry) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[167] + mi := &file_dota_gcmessages_server_proto_msgTypes[166] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13575,10 +13376,10 @@ func (x *CMsgGCToServerLobbyHeroBanRates_HeroBanEntry) ProtoReflect() protorefle // Deprecated: Use CMsgGCToServerLobbyHeroBanRates_HeroBanEntry.ProtoReflect.Descriptor instead. func (*CMsgGCToServerLobbyHeroBanRates_HeroBanEntry) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{81, 0} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{80, 0} } -func (x *CMsgGCToServerLobbyHeroBanRates_HeroBanEntry) GetHeroId() uint32 { +func (x *CMsgGCToServerLobbyHeroBanRates_HeroBanEntry) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -13612,7 +13413,7 @@ type CMsgSignOutGuildContractProgress_CompletedGuildEventContracts struct { func (x *CMsgSignOutGuildContractProgress_CompletedGuildEventContracts) Reset() { *x = CMsgSignOutGuildContractProgress_CompletedGuildEventContracts{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[168] + mi := &file_dota_gcmessages_server_proto_msgTypes[167] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13625,7 +13426,7 @@ func (x *CMsgSignOutGuildContractProgress_CompletedGuildEventContracts) String() func (*CMsgSignOutGuildContractProgress_CompletedGuildEventContracts) ProtoMessage() {} func (x *CMsgSignOutGuildContractProgress_CompletedGuildEventContracts) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[168] + mi := &file_dota_gcmessages_server_proto_msgTypes[167] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13638,7 +13439,7 @@ func (x *CMsgSignOutGuildContractProgress_CompletedGuildEventContracts) ProtoRef // Deprecated: Use CMsgSignOutGuildContractProgress_CompletedGuildEventContracts.ProtoReflect.Descriptor instead. func (*CMsgSignOutGuildContractProgress_CompletedGuildEventContracts) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{82, 0} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{81, 0} } func (x *CMsgSignOutGuildContractProgress_CompletedGuildEventContracts) GetGuildId() uint32 { @@ -13674,7 +13475,7 @@ type CMsgSignOutGuildContractProgress_PlayerContract struct { func (x *CMsgSignOutGuildContractProgress_PlayerContract) Reset() { *x = CMsgSignOutGuildContractProgress_PlayerContract{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[169] + mi := &file_dota_gcmessages_server_proto_msgTypes[168] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13687,7 +13488,7 @@ func (x *CMsgSignOutGuildContractProgress_PlayerContract) String() string { func (*CMsgSignOutGuildContractProgress_PlayerContract) ProtoMessage() {} func (x *CMsgSignOutGuildContractProgress_PlayerContract) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[169] + mi := &file_dota_gcmessages_server_proto_msgTypes[168] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13700,7 +13501,7 @@ func (x *CMsgSignOutGuildContractProgress_PlayerContract) ProtoReflect() protore // Deprecated: Use CMsgSignOutGuildContractProgress_PlayerContract.ProtoReflect.Descriptor instead. func (*CMsgSignOutGuildContractProgress_PlayerContract) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{82, 1} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{81, 1} } func (x *CMsgSignOutGuildContractProgress_PlayerContract) GetAccountId() uint32 { @@ -13734,7 +13535,7 @@ type CMsgSignOutGuildChallengeProgress_ChallengeProgress struct { func (x *CMsgSignOutGuildChallengeProgress_ChallengeProgress) Reset() { *x = CMsgSignOutGuildChallengeProgress_ChallengeProgress{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[170] + mi := &file_dota_gcmessages_server_proto_msgTypes[169] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13747,7 +13548,7 @@ func (x *CMsgSignOutGuildChallengeProgress_ChallengeProgress) String() string { func (*CMsgSignOutGuildChallengeProgress_ChallengeProgress) ProtoMessage() {} func (x *CMsgSignOutGuildChallengeProgress_ChallengeProgress) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[170] + mi := &file_dota_gcmessages_server_proto_msgTypes[169] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13760,7 +13561,7 @@ func (x *CMsgSignOutGuildChallengeProgress_ChallengeProgress) ProtoReflect() pro // Deprecated: Use CMsgSignOutGuildChallengeProgress_ChallengeProgress.ProtoReflect.Descriptor instead. func (*CMsgSignOutGuildChallengeProgress_ChallengeProgress) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{83, 0} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{82, 0} } func (x *CMsgSignOutGuildChallengeProgress_ChallengeProgress) GetGuildId() uint32 { @@ -13822,7 +13623,7 @@ type CMsgSignOutMVPStats_Player struct { AccountId *uint32 `protobuf:"varint,3,opt,name=account_id,json=accountId" json:"account_id,omitempty"` PlayerSlot *uint32 `protobuf:"varint,32,opt,name=player_slot,json=playerSlot" json:"player_slot,omitempty"` Rank *uint32 `protobuf:"varint,33,opt,name=rank" json:"rank,omitempty"` - HeroId *uint32 `protobuf:"varint,4,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,4,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` Role *uint32 `protobuf:"varint,5,opt,name=role" json:"role,omitempty"` Kills *int32 `protobuf:"varint,6,opt,name=kills" json:"kills,omitempty"` Deaths *int32 `protobuf:"varint,7,opt,name=deaths" json:"deaths,omitempty"` @@ -13847,7 +13648,7 @@ type CMsgSignOutMVPStats_Player struct { func (x *CMsgSignOutMVPStats_Player) Reset() { *x = CMsgSignOutMVPStats_Player{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[171] + mi := &file_dota_gcmessages_server_proto_msgTypes[170] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13860,7 +13661,7 @@ func (x *CMsgSignOutMVPStats_Player) String() string { func (*CMsgSignOutMVPStats_Player) ProtoMessage() {} func (x *CMsgSignOutMVPStats_Player) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[171] + mi := &file_dota_gcmessages_server_proto_msgTypes[170] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13873,7 +13674,7 @@ func (x *CMsgSignOutMVPStats_Player) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgSignOutMVPStats_Player.ProtoReflect.Descriptor instead. func (*CMsgSignOutMVPStats_Player) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{84, 0} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{83, 0} } func (x *CMsgSignOutMVPStats_Player) GetTeamId() uint32 { @@ -13911,7 +13712,7 @@ func (x *CMsgSignOutMVPStats_Player) GetRank() uint32 { return 0 } -func (x *CMsgSignOutMVPStats_Player) GetHeroId() uint32 { +func (x *CMsgSignOutMVPStats_Player) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -14063,7 +13864,7 @@ type CMsgSignOutMVPStats_Player_KillEaterEvent struct { func (x *CMsgSignOutMVPStats_Player_KillEaterEvent) Reset() { *x = CMsgSignOutMVPStats_Player_KillEaterEvent{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[172] + mi := &file_dota_gcmessages_server_proto_msgTypes[171] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14076,7 +13877,7 @@ func (x *CMsgSignOutMVPStats_Player_KillEaterEvent) String() string { func (*CMsgSignOutMVPStats_Player_KillEaterEvent) ProtoMessage() {} func (x *CMsgSignOutMVPStats_Player_KillEaterEvent) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[172] + mi := &file_dota_gcmessages_server_proto_msgTypes[171] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14089,7 +13890,7 @@ func (x *CMsgSignOutMVPStats_Player_KillEaterEvent) ProtoReflect() protoreflect. // Deprecated: Use CMsgSignOutMVPStats_Player_KillEaterEvent.ProtoReflect.Descriptor instead. func (*CMsgSignOutMVPStats_Player_KillEaterEvent) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{84, 0, 0} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{83, 0, 0} } func (x *CMsgSignOutMVPStats_Player_KillEaterEvent) GetEventType() uint32 { @@ -14121,7 +13922,7 @@ type CMsgServerToGCGetGuildContractsResponse_ContractDetails struct { func (x *CMsgServerToGCGetGuildContractsResponse_ContractDetails) Reset() { *x = CMsgServerToGCGetGuildContractsResponse_ContractDetails{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[173] + mi := &file_dota_gcmessages_server_proto_msgTypes[172] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14134,7 +13935,7 @@ func (x *CMsgServerToGCGetGuildContractsResponse_ContractDetails) String() strin func (*CMsgServerToGCGetGuildContractsResponse_ContractDetails) ProtoMessage() {} func (x *CMsgServerToGCGetGuildContractsResponse_ContractDetails) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[173] + mi := &file_dota_gcmessages_server_proto_msgTypes[172] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14147,7 +13948,7 @@ func (x *CMsgServerToGCGetGuildContractsResponse_ContractDetails) ProtoReflect() // Deprecated: Use CMsgServerToGCGetGuildContractsResponse_ContractDetails.ProtoReflect.Descriptor instead. func (*CMsgServerToGCGetGuildContractsResponse_ContractDetails) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{87, 0} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{86, 0} } func (x *CMsgServerToGCGetGuildContractsResponse_ContractDetails) GetContractId() uint64 { @@ -14199,7 +14000,7 @@ type CMsgServerToGCGetGuildContractsResponse_Player struct { func (x *CMsgServerToGCGetGuildContractsResponse_Player) Reset() { *x = CMsgServerToGCGetGuildContractsResponse_Player{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[174] + mi := &file_dota_gcmessages_server_proto_msgTypes[173] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14212,7 +14013,7 @@ func (x *CMsgServerToGCGetGuildContractsResponse_Player) String() string { func (*CMsgServerToGCGetGuildContractsResponse_Player) ProtoMessage() {} func (x *CMsgServerToGCGetGuildContractsResponse_Player) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[174] + mi := &file_dota_gcmessages_server_proto_msgTypes[173] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14225,7 +14026,7 @@ func (x *CMsgServerToGCGetGuildContractsResponse_Player) ProtoReflect() protoref // Deprecated: Use CMsgServerToGCGetGuildContractsResponse_Player.ProtoReflect.Descriptor instead. func (*CMsgServerToGCGetGuildContractsResponse_Player) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{87, 1} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{86, 1} } func (x *CMsgServerToGCGetGuildContractsResponse_Player) GetAccountId() uint32 { @@ -14268,7 +14069,7 @@ type CMsgMatchDiretideCandy_CandyDetails struct { func (x *CMsgMatchDiretideCandy_CandyDetails) Reset() { *x = CMsgMatchDiretideCandy_CandyDetails{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[175] + mi := &file_dota_gcmessages_server_proto_msgTypes[174] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14281,7 +14082,7 @@ func (x *CMsgMatchDiretideCandy_CandyDetails) String() string { func (*CMsgMatchDiretideCandy_CandyDetails) ProtoMessage() {} func (x *CMsgMatchDiretideCandy_CandyDetails) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[175] + mi := &file_dota_gcmessages_server_proto_msgTypes[174] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14294,7 +14095,7 @@ func (x *CMsgMatchDiretideCandy_CandyDetails) ProtoReflect() protoreflect.Messag // Deprecated: Use CMsgMatchDiretideCandy_CandyDetails.ProtoReflect.Descriptor instead. func (*CMsgMatchDiretideCandy_CandyDetails) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{88, 0} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{87, 0} } func (x *CMsgMatchDiretideCandy_CandyDetails) GetAmount() uint32 { @@ -14325,7 +14126,7 @@ type CMsgMatchDiretideCandy_PlayerCandy struct { func (x *CMsgMatchDiretideCandy_PlayerCandy) Reset() { *x = CMsgMatchDiretideCandy_PlayerCandy{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[176] + mi := &file_dota_gcmessages_server_proto_msgTypes[175] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14338,7 +14139,7 @@ func (x *CMsgMatchDiretideCandy_PlayerCandy) String() string { func (*CMsgMatchDiretideCandy_PlayerCandy) ProtoMessage() {} func (x *CMsgMatchDiretideCandy_PlayerCandy) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[176] + mi := &file_dota_gcmessages_server_proto_msgTypes[175] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14351,7 +14152,7 @@ func (x *CMsgMatchDiretideCandy_PlayerCandy) ProtoReflect() protoreflect.Message // Deprecated: Use CMsgMatchDiretideCandy_PlayerCandy.ProtoReflect.Descriptor instead. func (*CMsgMatchDiretideCandy_PlayerCandy) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{88, 1} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{87, 1} } func (x *CMsgMatchDiretideCandy_PlayerCandy) GetAccountId() uint32 { @@ -14394,7 +14195,7 @@ type CMsgGCToServerCheerData_CheerTypeCount struct { func (x *CMsgGCToServerCheerData_CheerTypeCount) Reset() { *x = CMsgGCToServerCheerData_CheerTypeCount{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[177] + mi := &file_dota_gcmessages_server_proto_msgTypes[176] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14407,7 +14208,7 @@ func (x *CMsgGCToServerCheerData_CheerTypeCount) String() string { func (*CMsgGCToServerCheerData_CheerTypeCount) ProtoMessage() {} func (x *CMsgGCToServerCheerData_CheerTypeCount) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[177] + mi := &file_dota_gcmessages_server_proto_msgTypes[176] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14420,7 +14221,7 @@ func (x *CMsgGCToServerCheerData_CheerTypeCount) ProtoReflect() protoreflect.Mes // Deprecated: Use CMsgGCToServerCheerData_CheerTypeCount.ProtoReflect.Descriptor instead. func (*CMsgGCToServerCheerData_CheerTypeCount) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{89, 0} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{88, 0} } func (x *CMsgGCToServerCheerData_CheerTypeCount) GetCheerType() uint32 { @@ -14449,7 +14250,7 @@ type CMsgServerToGCGetStickerHeroesResponse_Player struct { func (x *CMsgServerToGCGetStickerHeroesResponse_Player) Reset() { *x = CMsgServerToGCGetStickerHeroesResponse_Player{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[178] + mi := &file_dota_gcmessages_server_proto_msgTypes[177] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14462,316 +14263,72 @@ func (x *CMsgServerToGCGetStickerHeroesResponse_Player) String() string { func (*CMsgServerToGCGetStickerHeroesResponse_Player) ProtoMessage() {} func (x *CMsgServerToGCGetStickerHeroesResponse_Player) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[178] - 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 CMsgServerToGCGetStickerHeroesResponse_Player.ProtoReflect.Descriptor instead. -func (*CMsgServerToGCGetStickerHeroesResponse_Player) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{100, 0} -} - -func (x *CMsgServerToGCGetStickerHeroesResponse_Player) GetAccountId() uint32 { - if x != nil && x.AccountId != nil { - return *x.AccountId - } - return 0 -} - -func (x *CMsgServerToGCGetStickerHeroesResponse_Player) GetStickers() *CMsgStickerHeroes { - if x != nil { - return x.Stickers - } - return nil -} - -type CMsgSteamLearnPlayerTimedStats_StatBucket struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GameTime *float32 `protobuf:"fixed32,1,opt,name=game_time,json=gameTime" json:"game_time,omitempty"` - Kills *uint32 `protobuf:"varint,2,opt,name=kills" json:"kills,omitempty"` - Deaths *uint32 `protobuf:"varint,3,opt,name=deaths" json:"deaths,omitempty"` - Assists *uint32 `protobuf:"varint,4,opt,name=assists" json:"assists,omitempty"` - Experience *uint32 `protobuf:"varint,5,opt,name=experience" json:"experience,omitempty"` - LastHits *uint32 `protobuf:"varint,6,opt,name=last_hits,json=lastHits" json:"last_hits,omitempty"` - Denies *uint32 `protobuf:"varint,7,opt,name=denies" json:"denies,omitempty"` - NetWorth *uint32 `protobuf:"varint,8,opt,name=net_worth,json=netWorth" json:"net_worth,omitempty"` - IdleTime *float32 `protobuf:"fixed32,9,opt,name=idle_time,json=idleTime" json:"idle_time,omitempty"` - CommandsIssued *uint32 `protobuf:"varint,10,opt,name=commands_issued,json=commandsIssued" json:"commands_issued,omitempty"` - SentryWardsPlaced *uint32 `protobuf:"varint,11,opt,name=sentry_wards_placed,json=sentryWardsPlaced" json:"sentry_wards_placed,omitempty"` - ObserverWardsPlaced *uint32 `protobuf:"varint,12,opt,name=observer_wards_placed,json=observerWardsPlaced" json:"observer_wards_placed,omitempty"` -} - -func (x *CMsgSteamLearnPlayerTimedStats_StatBucket) Reset() { - *x = CMsgSteamLearnPlayerTimedStats_StatBucket{} - if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[179] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgSteamLearnPlayerTimedStats_StatBucket) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgSteamLearnPlayerTimedStats_StatBucket) ProtoMessage() {} - -func (x *CMsgSteamLearnPlayerTimedStats_StatBucket) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[179] - 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 CMsgSteamLearnPlayerTimedStats_StatBucket.ProtoReflect.Descriptor instead. -func (*CMsgSteamLearnPlayerTimedStats_StatBucket) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{108, 0} -} - -func (x *CMsgSteamLearnPlayerTimedStats_StatBucket) GetGameTime() float32 { - if x != nil && x.GameTime != nil { - return *x.GameTime - } - return 0 -} - -func (x *CMsgSteamLearnPlayerTimedStats_StatBucket) GetKills() uint32 { - if x != nil && x.Kills != nil { - return *x.Kills - } - return 0 -} - -func (x *CMsgSteamLearnPlayerTimedStats_StatBucket) GetDeaths() uint32 { - if x != nil && x.Deaths != nil { - return *x.Deaths - } - return 0 -} - -func (x *CMsgSteamLearnPlayerTimedStats_StatBucket) GetAssists() uint32 { - if x != nil && x.Assists != nil { - return *x.Assists - } - return 0 -} - -func (x *CMsgSteamLearnPlayerTimedStats_StatBucket) GetExperience() uint32 { - if x != nil && x.Experience != nil { - return *x.Experience - } - return 0 -} - -func (x *CMsgSteamLearnPlayerTimedStats_StatBucket) GetLastHits() uint32 { - if x != nil && x.LastHits != nil { - return *x.LastHits - } - return 0 -} - -func (x *CMsgSteamLearnPlayerTimedStats_StatBucket) GetDenies() uint32 { - if x != nil && x.Denies != nil { - return *x.Denies - } - return 0 -} - -func (x *CMsgSteamLearnPlayerTimedStats_StatBucket) GetNetWorth() uint32 { - if x != nil && x.NetWorth != nil { - return *x.NetWorth - } - return 0 -} - -func (x *CMsgSteamLearnPlayerTimedStats_StatBucket) GetIdleTime() float32 { - if x != nil && x.IdleTime != nil { - return *x.IdleTime - } - return 0 -} - -func (x *CMsgSteamLearnPlayerTimedStats_StatBucket) GetCommandsIssued() uint32 { - if x != nil && x.CommandsIssued != nil { - return *x.CommandsIssued - } - return 0 -} - -func (x *CMsgSteamLearnPlayerTimedStats_StatBucket) GetSentryWardsPlaced() uint32 { - if x != nil && x.SentryWardsPlaced != nil { - return *x.SentryWardsPlaced - } - return 0 -} - -func (x *CMsgSteamLearnPlayerTimedStats_StatBucket) GetObserverWardsPlaced() uint32 { - if x != nil && x.ObserverWardsPlaced != nil { - return *x.ObserverWardsPlaced - } - return 0 -} - -type CMsgSteamLearnMatchStateV4_PlayerState struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - HeroId *uint32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` - NetWorth *uint32 `protobuf:"varint,2,opt,name=net_worth,json=netWorth" json:"net_worth,omitempty"` - Level *uint32 `protobuf:"varint,3,opt,name=level" json:"level,omitempty"` - Deaths *uint32 `protobuf:"varint,4,opt,name=deaths" json:"deaths,omitempty"` - RespawnTime *uint32 `protobuf:"varint,5,opt,name=respawn_time,json=respawnTime" json:"respawn_time,omitempty"` - HasBuyback *bool `protobuf:"varint,6,opt,name=has_buyback,json=hasBuyback" json:"has_buyback,omitempty"` - HasAegis *bool `protobuf:"varint,7,opt,name=has_aegis,json=hasAegis" json:"has_aegis,omitempty"` - HasRapier *bool `protobuf:"varint,8,opt,name=has_rapier,json=hasRapier" json:"has_rapier,omitempty"` - Distance *uint32 `protobuf:"varint,9,opt,name=distance" json:"distance,omitempty"` -} - -func (x *CMsgSteamLearnMatchStateV4_PlayerState) Reset() { - *x = CMsgSteamLearnMatchStateV4_PlayerState{} - if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[180] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgSteamLearnMatchStateV4_PlayerState) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgSteamLearnMatchStateV4_PlayerState) ProtoMessage() {} - -func (x *CMsgSteamLearnMatchStateV4_PlayerState) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[180] + mi := &file_dota_gcmessages_server_proto_msgTypes[177] 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 CMsgSteamLearnMatchStateV4_PlayerState.ProtoReflect.Descriptor instead. -func (*CMsgSteamLearnMatchStateV4_PlayerState) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{109, 0} -} - -func (x *CMsgSteamLearnMatchStateV4_PlayerState) GetHeroId() uint32 { - if x != nil && x.HeroId != nil { - return *x.HeroId - } - return 0 -} - -func (x *CMsgSteamLearnMatchStateV4_PlayerState) GetNetWorth() uint32 { - if x != nil && x.NetWorth != nil { - return *x.NetWorth - } - return 0 -} - -func (x *CMsgSteamLearnMatchStateV4_PlayerState) GetLevel() uint32 { - if x != nil && x.Level != nil { - return *x.Level - } - return 0 -} - -func (x *CMsgSteamLearnMatchStateV4_PlayerState) GetDeaths() uint32 { - if x != nil && x.Deaths != nil { - return *x.Deaths - } - return 0 -} - -func (x *CMsgSteamLearnMatchStateV4_PlayerState) GetRespawnTime() uint32 { - if x != nil && x.RespawnTime != nil { - return *x.RespawnTime - } - return 0 -} - -func (x *CMsgSteamLearnMatchStateV4_PlayerState) GetHasBuyback() bool { - if x != nil && x.HasBuyback != nil { - return *x.HasBuyback + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return false + return mi.MessageOf(x) } -func (x *CMsgSteamLearnMatchStateV4_PlayerState) GetHasAegis() bool { - if x != nil && x.HasAegis != nil { - return *x.HasAegis - } - return false +// Deprecated: Use CMsgServerToGCGetStickerHeroesResponse_Player.ProtoReflect.Descriptor instead. +func (*CMsgServerToGCGetStickerHeroesResponse_Player) Descriptor() ([]byte, []int) { + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{99, 0} } -func (x *CMsgSteamLearnMatchStateV4_PlayerState) GetHasRapier() bool { - if x != nil && x.HasRapier != nil { - return *x.HasRapier +func (x *CMsgServerToGCGetStickerHeroesResponse_Player) GetAccountId() uint32 { + if x != nil && x.AccountId != nil { + return *x.AccountId } - return false + return 0 } -func (x *CMsgSteamLearnMatchStateV4_PlayerState) GetDistance() uint32 { - if x != nil && x.Distance != nil { - return *x.Distance +func (x *CMsgServerToGCGetStickerHeroesResponse_Player) GetStickers() *CMsgStickerHeroes { + if x != nil { + return x.Stickers } - return 0 + return nil } -type CMsgSteamLearnMatchStateV4_TeamState struct { +type CMsgSteamLearnPlayerTimedStats_StatBucket struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Team *uint32 `protobuf:"varint,1,opt,name=team" json:"team,omitempty"` - PlayerStates []*CMsgSteamLearnMatchStateV4_PlayerState `protobuf:"bytes,2,rep,name=player_states,json=playerStates" json:"player_states,omitempty"` - TowerHealthPct []uint32 `protobuf:"varint,3,rep,name=tower_health_pct,json=towerHealthPct" json:"tower_health_pct,omitempty"` - BarracksHealthPct []uint32 `protobuf:"varint,4,rep,name=barracks_health_pct,json=barracksHealthPct" json:"barracks_health_pct,omitempty"` - AncientHealthPct *uint32 `protobuf:"varint,5,opt,name=ancient_health_pct,json=ancientHealthPct" json:"ancient_health_pct,omitempty"` - GlyphCooldown *uint32 `protobuf:"varint,6,opt,name=glyph_cooldown,json=glyphCooldown" json:"glyph_cooldown,omitempty"` - Kills *uint32 `protobuf:"varint,7,opt,name=kills" json:"kills,omitempty"` - CreepDistanceSafe *uint32 `protobuf:"varint,8,opt,name=creep_distance_safe,json=creepDistanceSafe" json:"creep_distance_safe,omitempty"` - CreepDistanceMid *uint32 `protobuf:"varint,9,opt,name=creep_distance_mid,json=creepDistanceMid" json:"creep_distance_mid,omitempty"` - CreepDistanceOff *uint32 `protobuf:"varint,10,opt,name=creep_distance_off,json=creepDistanceOff" json:"creep_distance_off,omitempty"` + GameTime *float32 `protobuf:"fixed32,1,opt,name=game_time,json=gameTime" json:"game_time,omitempty"` + Kills *uint32 `protobuf:"varint,2,opt,name=kills" json:"kills,omitempty"` + Deaths *uint32 `protobuf:"varint,3,opt,name=deaths" json:"deaths,omitempty"` + Assists *uint32 `protobuf:"varint,4,opt,name=assists" json:"assists,omitempty"` + Experience *uint32 `protobuf:"varint,5,opt,name=experience" json:"experience,omitempty"` + LastHits *uint32 `protobuf:"varint,6,opt,name=last_hits,json=lastHits" json:"last_hits,omitempty"` + Denies *uint32 `protobuf:"varint,7,opt,name=denies" json:"denies,omitempty"` + NetWorth *uint32 `protobuf:"varint,8,opt,name=net_worth,json=netWorth" json:"net_worth,omitempty"` + IdleTime *float32 `protobuf:"fixed32,9,opt,name=idle_time,json=idleTime" json:"idle_time,omitempty"` + CommandsIssued *uint32 `protobuf:"varint,10,opt,name=commands_issued,json=commandsIssued" json:"commands_issued,omitempty"` + SentryWardsPlaced *uint32 `protobuf:"varint,11,opt,name=sentry_wards_placed,json=sentryWardsPlaced" json:"sentry_wards_placed,omitempty"` + ObserverWardsPlaced *uint32 `protobuf:"varint,12,opt,name=observer_wards_placed,json=observerWardsPlaced" json:"observer_wards_placed,omitempty"` } -func (x *CMsgSteamLearnMatchStateV4_TeamState) Reset() { - *x = CMsgSteamLearnMatchStateV4_TeamState{} +func (x *CMsgSteamLearnPlayerTimedStats_StatBucket) Reset() { + *x = CMsgSteamLearnPlayerTimedStats_StatBucket{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[181] + mi := &file_dota_gcmessages_server_proto_msgTypes[178] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CMsgSteamLearnMatchStateV4_TeamState) String() string { +func (x *CMsgSteamLearnPlayerTimedStats_StatBucket) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CMsgSteamLearnMatchStateV4_TeamState) ProtoMessage() {} +func (*CMsgSteamLearnPlayerTimedStats_StatBucket) ProtoMessage() {} -func (x *CMsgSteamLearnMatchStateV4_TeamState) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[181] +func (x *CMsgSteamLearnPlayerTimedStats_StatBucket) ProtoReflect() protoreflect.Message { + mi := &file_dota_gcmessages_server_proto_msgTypes[178] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14782,77 +14339,91 @@ func (x *CMsgSteamLearnMatchStateV4_TeamState) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use CMsgSteamLearnMatchStateV4_TeamState.ProtoReflect.Descriptor instead. -func (*CMsgSteamLearnMatchStateV4_TeamState) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{109, 1} +// Deprecated: Use CMsgSteamLearnPlayerTimedStats_StatBucket.ProtoReflect.Descriptor instead. +func (*CMsgSteamLearnPlayerTimedStats_StatBucket) Descriptor() ([]byte, []int) { + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{106, 0} } -func (x *CMsgSteamLearnMatchStateV4_TeamState) GetTeam() uint32 { - if x != nil && x.Team != nil { - return *x.Team +func (x *CMsgSteamLearnPlayerTimedStats_StatBucket) GetGameTime() float32 { + if x != nil && x.GameTime != nil { + return *x.GameTime } return 0 } -func (x *CMsgSteamLearnMatchStateV4_TeamState) GetPlayerStates() []*CMsgSteamLearnMatchStateV4_PlayerState { - if x != nil { - return x.PlayerStates +func (x *CMsgSteamLearnPlayerTimedStats_StatBucket) GetKills() uint32 { + if x != nil && x.Kills != nil { + return *x.Kills } - return nil + return 0 } -func (x *CMsgSteamLearnMatchStateV4_TeamState) GetTowerHealthPct() []uint32 { - if x != nil { - return x.TowerHealthPct +func (x *CMsgSteamLearnPlayerTimedStats_StatBucket) GetDeaths() uint32 { + if x != nil && x.Deaths != nil { + return *x.Deaths } - return nil + return 0 } -func (x *CMsgSteamLearnMatchStateV4_TeamState) GetBarracksHealthPct() []uint32 { - if x != nil { - return x.BarracksHealthPct +func (x *CMsgSteamLearnPlayerTimedStats_StatBucket) GetAssists() uint32 { + if x != nil && x.Assists != nil { + return *x.Assists } - return nil + return 0 } -func (x *CMsgSteamLearnMatchStateV4_TeamState) GetAncientHealthPct() uint32 { - if x != nil && x.AncientHealthPct != nil { - return *x.AncientHealthPct +func (x *CMsgSteamLearnPlayerTimedStats_StatBucket) GetExperience() uint32 { + if x != nil && x.Experience != nil { + return *x.Experience } return 0 } -func (x *CMsgSteamLearnMatchStateV4_TeamState) GetGlyphCooldown() uint32 { - if x != nil && x.GlyphCooldown != nil { - return *x.GlyphCooldown +func (x *CMsgSteamLearnPlayerTimedStats_StatBucket) GetLastHits() uint32 { + if x != nil && x.LastHits != nil { + return *x.LastHits } return 0 } -func (x *CMsgSteamLearnMatchStateV4_TeamState) GetKills() uint32 { - if x != nil && x.Kills != nil { - return *x.Kills +func (x *CMsgSteamLearnPlayerTimedStats_StatBucket) GetDenies() uint32 { + if x != nil && x.Denies != nil { + return *x.Denies } return 0 } -func (x *CMsgSteamLearnMatchStateV4_TeamState) GetCreepDistanceSafe() uint32 { - if x != nil && x.CreepDistanceSafe != nil { - return *x.CreepDistanceSafe +func (x *CMsgSteamLearnPlayerTimedStats_StatBucket) GetNetWorth() uint32 { + if x != nil && x.NetWorth != nil { + return *x.NetWorth } return 0 } -func (x *CMsgSteamLearnMatchStateV4_TeamState) GetCreepDistanceMid() uint32 { - if x != nil && x.CreepDistanceMid != nil { - return *x.CreepDistanceMid +func (x *CMsgSteamLearnPlayerTimedStats_StatBucket) GetIdleTime() float32 { + if x != nil && x.IdleTime != nil { + return *x.IdleTime } return 0 } -func (x *CMsgSteamLearnMatchStateV4_TeamState) GetCreepDistanceOff() uint32 { - if x != nil && x.CreepDistanceOff != nil { - return *x.CreepDistanceOff +func (x *CMsgSteamLearnPlayerTimedStats_StatBucket) GetCommandsIssued() uint32 { + if x != nil && x.CommandsIssued != nil { + return *x.CommandsIssued + } + return 0 +} + +func (x *CMsgSteamLearnPlayerTimedStats_StatBucket) GetSentryWardsPlaced() uint32 { + if x != nil && x.SentryWardsPlaced != nil { + return *x.SentryWardsPlaced + } + return 0 +} + +func (x *CMsgSteamLearnPlayerTimedStats_StatBucket) GetObserverWardsPlaced() uint32 { + if x != nil && x.ObserverWardsPlaced != nil { + return *x.ObserverWardsPlaced } return 0 } @@ -14862,7 +14433,7 @@ type CMsgSteamLearnMatchStateV5_PlayerState struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroId *uint32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` NetWorth *uint32 `protobuf:"varint,2,opt,name=net_worth,json=netWorth" json:"net_worth,omitempty"` Level *uint32 `protobuf:"varint,3,opt,name=level" json:"level,omitempty"` Deaths *uint32 `protobuf:"varint,4,opt,name=deaths" json:"deaths,omitempty"` @@ -14877,7 +14448,7 @@ type CMsgSteamLearnMatchStateV5_PlayerState struct { func (x *CMsgSteamLearnMatchStateV5_PlayerState) Reset() { *x = CMsgSteamLearnMatchStateV5_PlayerState{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[182] + mi := &file_dota_gcmessages_server_proto_msgTypes[179] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14890,7 +14461,7 @@ func (x *CMsgSteamLearnMatchStateV5_PlayerState) String() string { func (*CMsgSteamLearnMatchStateV5_PlayerState) ProtoMessage() {} func (x *CMsgSteamLearnMatchStateV5_PlayerState) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[182] + mi := &file_dota_gcmessages_server_proto_msgTypes[179] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14903,10 +14474,10 @@ func (x *CMsgSteamLearnMatchStateV5_PlayerState) ProtoReflect() protoreflect.Mes // Deprecated: Use CMsgSteamLearnMatchStateV5_PlayerState.ProtoReflect.Descriptor instead. func (*CMsgSteamLearnMatchStateV5_PlayerState) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{110, 0} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{107, 0} } -func (x *CMsgSteamLearnMatchStateV5_PlayerState) GetHeroId() uint32 { +func (x *CMsgSteamLearnMatchStateV5_PlayerState) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -14996,7 +14567,7 @@ type CMsgSteamLearnMatchStateV5_TeamState struct { func (x *CMsgSteamLearnMatchStateV5_TeamState) Reset() { *x = CMsgSteamLearnMatchStateV5_TeamState{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[183] + mi := &file_dota_gcmessages_server_proto_msgTypes[180] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15009,7 +14580,7 @@ func (x *CMsgSteamLearnMatchStateV5_TeamState) String() string { func (*CMsgSteamLearnMatchStateV5_TeamState) ProtoMessage() {} func (x *CMsgSteamLearnMatchStateV5_TeamState) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[183] + mi := &file_dota_gcmessages_server_proto_msgTypes[180] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15022,7 +14593,7 @@ func (x *CMsgSteamLearnMatchStateV5_TeamState) ProtoReflect() protoreflect.Messa // Deprecated: Use CMsgSteamLearnMatchStateV5_TeamState.ProtoReflect.Descriptor instead. func (*CMsgSteamLearnMatchStateV5_TeamState) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{110, 1} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{107, 1} } func (x *CMsgSteamLearnMatchStateV5_TeamState) GetTeam() uint32 { @@ -15107,7 +14678,7 @@ type CMsgSteamLearnWardPlacement_Location struct { func (x *CMsgSteamLearnWardPlacement_Location) Reset() { *x = CMsgSteamLearnWardPlacement_Location{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[184] + mi := &file_dota_gcmessages_server_proto_msgTypes[181] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15120,7 +14691,7 @@ func (x *CMsgSteamLearnWardPlacement_Location) String() string { func (*CMsgSteamLearnWardPlacement_Location) ProtoMessage() {} func (x *CMsgSteamLearnWardPlacement_Location) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[184] + mi := &file_dota_gcmessages_server_proto_msgTypes[181] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15133,7 +14704,7 @@ func (x *CMsgSteamLearnWardPlacement_Location) ProtoReflect() protoreflect.Messa // Deprecated: Use CMsgSteamLearnWardPlacement_Location.ProtoReflect.Descriptor instead. func (*CMsgSteamLearnWardPlacement_Location) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{115, 0} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{114, 0} } func (x *CMsgSteamLearnWardPlacement_Location) GetX() float32 { @@ -15162,7 +14733,7 @@ type CMsgSignOutMapStats_Player struct { func (x *CMsgSignOutMapStats_Player) Reset() { *x = CMsgSignOutMapStats_Player{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[185] + mi := &file_dota_gcmessages_server_proto_msgTypes[182] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15175,7 +14746,7 @@ func (x *CMsgSignOutMapStats_Player) String() string { func (*CMsgSignOutMapStats_Player) ProtoMessage() {} func (x *CMsgSignOutMapStats_Player) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[185] + mi := &file_dota_gcmessages_server_proto_msgTypes[182] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15188,7 +14759,7 @@ func (x *CMsgSignOutMapStats_Player) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgSignOutMapStats_Player.ProtoReflect.Descriptor instead. func (*CMsgSignOutMapStats_Player) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{117, 0} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{116, 0} } func (x *CMsgSignOutMapStats_Player) GetAccountId() uint32 { @@ -15218,7 +14789,7 @@ type CMsgSignOutOverworld_Player struct { func (x *CMsgSignOutOverworld_Player) Reset() { *x = CMsgSignOutOverworld_Player{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_server_proto_msgTypes[186] + mi := &file_dota_gcmessages_server_proto_msgTypes[183] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15231,7 +14802,7 @@ func (x *CMsgSignOutOverworld_Player) String() string { func (*CMsgSignOutOverworld_Player) ProtoMessage() {} func (x *CMsgSignOutOverworld_Player) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_server_proto_msgTypes[186] + mi := &file_dota_gcmessages_server_proto_msgTypes[183] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15244,7 +14815,7 @@ func (x *CMsgSignOutOverworld_Player) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgSignOutOverworld_Player.ProtoReflect.Descriptor instead. func (*CMsgSignOutOverworld_Player) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{120, 0} + return file_dota_gcmessages_server_proto_rawDescGZIP(), []int{119, 0} } func (x *CMsgSignOutOverworld_Player) GetAccountId() uint32 { @@ -15391,7 +14962,7 @@ var file_dota_gcmessages_server_proto_rawDesc = []byte{ 0x44, 0x72, 0x61, 0x66, 0x74, 0x1a, 0xc6, 0x01, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, - 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, + 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x0c, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, @@ -15584,7 +15155,7 @@ var file_dota_gcmessages_server_proto_rawDesc = []byte{ 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x4a, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x4a, 0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x64, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x69, @@ -15603,7 +15174,7 @@ var file_dota_gcmessages_server_proto_rawDesc = []byte{ 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x43, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x22, 0xe8, 0x31, 0x0a, + 0x79, 0x65, 0x72, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x22, 0xac, 0x31, 0x0a, 0x14, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, @@ -15628,2272 +15199,1531 @@ var file_dota_gcmessages_server_proto_rawDesc = []byte{ 0x6f, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x66, 0x69, 0x72, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x6f, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x3a, - 0x0a, 0x0a, 0x70, 0x69, 0x63, 0x6b, 0x73, 0x5f, 0x62, 0x61, 0x6e, 0x73, 0x18, 0x0f, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x48, 0x65, 0x72, 0x6f, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, - 0x09, 0x70, 0x69, 0x63, 0x6b, 0x73, 0x42, 0x61, 0x6e, 0x73, 0x12, 0x45, 0x0a, 0x0d, 0x66, 0x61, - 0x6e, 0x74, 0x61, 0x73, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x29, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, - 0x41, 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, - 0x61, 0x74, 0x73, 0x52, 0x0c, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x53, 0x74, 0x61, 0x74, - 0x73, 0x12, 0x73, 0x0a, 0x20, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x64, 0x6f, - 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x45, 0x63, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x6a, - 0x75, 0x73, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x1d, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, - 0x74, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x6a, 0x75, 0x73, - 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2f, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, - 0x74, 0x69, 0x63, 0x5f, 0x73, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x12, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x12, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x53, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x57, - 0x0a, 0x17, 0x70, 0x6f, 0x6f, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x63, - 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x50, 0x6f, 0x6f, 0x72, 0x4e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x15, 0x70, 0x6f, 0x6f, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x59, 0x0a, 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6d, 0x73, 0x67, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x30, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x61, 0x6d, 0x65, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x2e, 0x43, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x6f, 0x75, 0x74, 0x4d, - 0x73, 0x67, 0x52, 0x0e, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x73, - 0x67, 0x73, 0x12, 0x5e, 0x0a, 0x12, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x5f, 0x66, 0x65, 0x65, - 0x64, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x24, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, - 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x2e, 0x43, 0x53, 0x6f, 0x63, 0x69, - 0x61, 0x6c, 0x46, 0x65, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x52, 0x10, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x65, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x74, 0x68, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x16, 0x20, 0x01, - 0x28, 0x11, 0x52, 0x14, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x74, 0x68, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x54, 0x0a, 0x10, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x5f, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x25, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x61, - 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x2e, 0x43, - 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1f, - 0x0a, 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x26, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, - 0x1f, 0x0a, 0x0b, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x27, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x65, 0x61, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, - 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x5f, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x64, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x70, 0x72, 0x65, - 0x47, 0x61, 0x6d, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x79, 0x0a, 0x1e, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x6c, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x2a, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, + 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x45, + 0x0a, 0x0d, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, + 0x29, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, + 0x67, 0x44, 0x4f, 0x54, 0x41, 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0c, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x73, 0x0a, 0x20, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, + 0x6a, 0x75, 0x73, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2a, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x45, 0x63, 0x6f, 0x6e, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x1d, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, + 0x64, 0x6a, 0x75, 0x73, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2f, 0x0a, 0x13, 0x61, 0x75, + 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x5f, 0x73, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, + 0x69, 0x63, 0x53, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x13, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x57, 0x0a, 0x17, 0x70, 0x6f, 0x6f, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x23, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x50, + 0x6f, 0x6f, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x15, 0x70, 0x6f, 0x6f, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x59, 0x0a, 0x0f, 0x61, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6d, 0x73, 0x67, 0x73, 0x18, 0x14, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, - 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x62, 0x6f, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x1b, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x47, 0x61, 0x6d, 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x61, 0x72, 0x64, - 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x51, 0x0a, 0x0f, 0x77, 0x61, 0x72, 0x64, 0x5f, - 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x2b, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x28, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x61, 0x6d, 0x65, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x2e, 0x57, 0x61, 0x72, - 0x64, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0e, 0x77, 0x61, 0x72, 0x64, - 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x45, 0x0a, 0x0e, 0x67, 0x61, - 0x6d, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x2c, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, - 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x74, 0x61, - 0x74, 0x73, 0x52, 0x0d, 0x67, 0x61, 0x6d, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, - 0x73, 0x12, 0x3b, 0x0a, 0x0e, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x73, 0x18, 0x36, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x64, 0x6f, 0x74, 0x61, - 0x2e, 0x43, 0x45, 0x78, 0x74, 0x72, 0x61, 0x4d, 0x73, 0x67, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, - 0x0d, 0x65, 0x78, 0x74, 0x72, 0x61, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x34, - 0x0a, 0x16, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, - 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x65, 0x64, 0x18, 0x37, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, - 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x0c, 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x5f, - 0x74, 0x65, 0x61, 0x6d, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x64, 0x6f, 0x74, - 0x61, 0x2e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x43, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x52, 0x0b, - 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x65, 0x61, 0x6d, 0x12, 0x45, 0x0a, 0x1f, 0x6e, - 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x77, 0x69, 0x6e, 0x5f, 0x70, 0x72, - 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x18, 0x39, - 0x20, 0x01, 0x28, 0x02, 0x52, 0x1c, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, - 0x57, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x44, 0x69, - 0x66, 0x66, 0x12, 0x45, 0x0a, 0x13, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x72, 0x61, 0x63, - 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x3a, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x72, 0x61, 0x63, 0x6b, - 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x52, 0x11, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x72, 0x61, - 0x63, 0x6b, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x1a, 0xe1, 0x1c, 0x0a, 0x05, 0x43, 0x54, - 0x65, 0x61, 0x6d, 0x12, 0x42, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x01, + 0x2e, 0x43, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, + 0x6f, 0x75, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x0e, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x4d, 0x73, 0x67, 0x73, 0x12, 0x5e, 0x0a, 0x12, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x6c, + 0x5f, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x24, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x61, + 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x2e, 0x43, + 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x65, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x52, 0x10, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x65, 0x65, 0x64, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, + 0x65, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x74, 0x68, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, + 0x18, 0x16, 0x20, 0x01, 0x28, 0x11, 0x52, 0x14, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x4e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x74, 0x68, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x54, 0x0a, 0x10, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, + 0x73, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x4f, + 0x75, 0x74, 0x2e, 0x43, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x0e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x66, 0x6c, 0x61, 0x67, + 0x73, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x6c, + 0x61, 0x67, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x73, 0x18, 0x27, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x65, 0x61, 0x6d, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x5f, 0x67, 0x61, 0x6d, 0x65, + 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0f, 0x70, 0x72, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x79, 0x0a, 0x1e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x6c, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, + 0x65, 0x73, 0x18, 0x2a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, + 0x43, 0x4d, 0x73, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x67, + 0x6e, 0x4f, 0x75, 0x74, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x4c, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x1b, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x62, + 0x6f, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x51, 0x0a, 0x0f, 0x77, + 0x61, 0x72, 0x64, 0x5f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x2b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, - 0x2e, 0x43, 0x54, 0x65, 0x61, 0x6d, 0x2e, 0x43, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x07, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x43, 0x0a, 0x12, 0x74, 0x65, 0x61, 0x6d, 0x5f, - 0x74, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x02, 0x20, + 0x2e, 0x57, 0x61, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0e, + 0x77, 0x61, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x45, + 0x0a, 0x0e, 0x67, 0x61, 0x6d, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, + 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, + 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x70, 0x6c, 0x61, + 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0d, 0x67, 0x61, 0x6d, 0x65, 0x70, 0x6c, 0x61, 0x79, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x3b, 0x0a, 0x0e, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x36, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x45, 0x78, 0x74, 0x72, 0x61, 0x4d, 0x73, 0x67, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x52, 0x0d, 0x65, 0x78, 0x74, 0x72, 0x61, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x65, 0x64, 0x18, 0x37, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x14, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x0c, 0x77, 0x69, 0x6e, 0x6e, + 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, + 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x43, 0x5f, 0x54, 0x45, + 0x41, 0x4d, 0x52, 0x0b, 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x65, 0x61, 0x6d, 0x12, + 0x45, 0x0a, 0x1f, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x77, 0x69, + 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x64, 0x69, + 0x66, 0x66, 0x18, 0x39, 0x20, 0x01, 0x28, 0x02, 0x52, 0x1c, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x57, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x44, 0x69, 0x66, 0x66, 0x12, 0x45, 0x0a, 0x13, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, + 0x74, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x3a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x54, - 0x72, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x52, 0x10, 0x74, 0x65, 0x61, 0x6d, - 0x54, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x1a, 0xce, 0x1b, 0x0a, - 0x07, 0x43, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x65, 0x61, - 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, - 0x6d, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, - 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x69, 0x74, 0x65, - 0x6d, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x75, 0x72, 0x63, 0x68, - 0x61, 0x73, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x3f, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x11, 0x69, 0x74, 0x65, 0x6d, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x6f, 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x04, 0x67, 0x6f, 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x12, 0x16, 0x0a, 0x06, - 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x64, 0x65, - 0x61, 0x74, 0x68, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x73, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x73, 0x12, 0x23, - 0x0a, 0x0d, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x73, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x69, 0x74, 0x73, - 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x06, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0c, 0x67, 0x6f, 0x6c, 0x64, - 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, - 0x67, 0x6f, 0x6c, 0x64, 0x50, 0x65, 0x72, 0x4d, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0d, 0x78, 0x70, - 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0b, 0x78, 0x70, 0x50, 0x65, 0x72, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x12, 0x1d, - 0x0a, 0x0a, 0x67, 0x6f, 0x6c, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x09, 0x67, 0x6f, 0x6c, 0x64, 0x53, 0x70, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, - 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x5f, 0x68, 0x65, - 0x72, 0x6f, 0x5f, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x10, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x61, 0x6d, 0x61, 0x67, - 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x77, 0x65, - 0x72, 0x5f, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, - 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x54, 0x6f, 0x77, 0x65, 0x72, 0x44, 0x61, 0x6d, 0x61, 0x67, - 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x5f, 0x68, 0x65, 0x72, 0x6f, - 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, - 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x48, 0x65, 0x72, 0x6f, 0x48, 0x65, 0x61, 0x6c, 0x69, 0x6e, - 0x67, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, - 0x65, 0x65, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x4c, - 0x61, 0x73, 0x74, 0x53, 0x65, 0x65, 0x6e, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x41, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x70, - 0x61, 0x72, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x70, - 0x61, 0x72, 0x74, 0x79, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, - 0x64, 0x5f, 0x66, 0x61, 0x72, 0x6d, 0x5f, 0x67, 0x6f, 0x6c, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x46, 0x61, 0x72, 0x6d, 0x47, 0x6f, - 0x6c, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x67, 0x6f, - 0x6c, 0x64, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x47, 0x6f, 0x6c, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, - 0x5f, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x73, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, - 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x44, 0x65, 0x6e, 0x69, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, - 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x73, 0x18, 0x1e, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x4d, 0x69, 0x73, - 0x73, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x73, 0x18, 0x1f, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6e, - 0x65, 0x74, 0x5f, 0x77, 0x6f, 0x72, 0x74, 0x68, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, - 0x6e, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x65, 0x72, 0x6f, - 0x5f, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x68, - 0x65, 0x72, 0x6f, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x77, - 0x65, 0x72, 0x5f, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0b, 0x74, 0x6f, 0x77, 0x65, 0x72, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x0c, - 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x27, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0b, 0x68, 0x65, 0x72, 0x6f, 0x48, 0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x12, - 0x4b, 0x0a, 0x10, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x75, 0x70, 0x67, 0x72, 0x61, - 0x64, 0x65, 0x73, 0x18, 0x20, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x64, 0x6f, 0x74, 0x61, - 0x2e, 0x43, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x0f, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x61, 0x0a, 0x1a, - 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x73, - 0x5f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x21, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x6e, 0x69, 0x74, 0x49, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x18, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x12, - 0x48, 0x0a, 0x0f, 0x70, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x75, 0x66, - 0x66, 0x73, 0x18, 0x28, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, - 0x43, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x65, 0x72, 0x6d, - 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x42, 0x75, 0x66, 0x66, 0x52, 0x0e, 0x70, 0x65, 0x72, 0x6d, 0x61, - 0x6e, 0x65, 0x6e, 0x74, 0x42, 0x75, 0x66, 0x66, 0x73, 0x12, 0x62, 0x0a, 0x10, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x5f, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x23, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, - 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x2e, - 0x43, 0x54, 0x65, 0x61, 0x6d, 0x2e, 0x43, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x43, 0x43, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2c, 0x0a, - 0x12, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x66, 0x6c, - 0x61, 0x67, 0x73, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x6d, 0x61, 0x74, 0x63, 0x68, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x74, - 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, - 0x73, 0x18, 0x29, 0x20, 0x03, 0x28, 0x05, 0x52, 0x10, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x41, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x68, 0x65, 0x72, - 0x6f, 0x5f, 0x70, 0x69, 0x63, 0x6b, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x2a, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0d, 0x68, 0x65, 0x72, 0x6f, 0x50, 0x69, 0x63, 0x6b, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x12, 0x2a, 0x0a, 0x11, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x77, 0x61, 0x73, 0x5f, 0x72, 0x61, - 0x6e, 0x64, 0x6f, 0x6d, 0x65, 0x64, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x68, 0x65, - 0x72, 0x6f, 0x57, 0x61, 0x73, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x65, 0x64, 0x12, 0x40, 0x0a, - 0x1d, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x77, 0x61, 0x73, 0x5f, 0x64, 0x6f, 0x74, 0x61, 0x5f, 0x70, - 0x6c, 0x75, 0x73, 0x5f, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x32, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x68, 0x65, 0x72, 0x6f, 0x57, 0x61, 0x73, 0x44, 0x6f, 0x74, - 0x61, 0x50, 0x6c, 0x75, 0x73, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x12, 0x0a, 0x04, 0x6c, 0x61, 0x6e, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6c, - 0x61, 0x6e, 0x65, 0x12, 0x2d, 0x0a, 0x13, 0x69, 0x73, 0x5f, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x5f, - 0x70, 0x6c, 0x75, 0x73, 0x5f, 0x67, 0x75, 0x69, 0x64, 0x65, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x10, 0x69, 0x73, 0x55, 0x73, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x75, 0x73, 0x47, 0x75, 0x69, - 0x64, 0x65, 0x12, 0x6d, 0x0a, 0x14, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x64, 0x61, 0x6d, 0x61, 0x67, - 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x30, 0x20, 0x03, 0x28, 0x0b, + 0x72, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x52, 0x11, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x1a, 0xe1, 0x1c, + 0x0a, 0x05, 0x43, 0x54, 0x65, 0x61, 0x6d, 0x12, 0x42, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, + 0x43, 0x4d, 0x73, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x67, + 0x6e, 0x4f, 0x75, 0x74, 0x2e, 0x43, 0x54, 0x65, 0x61, 0x6d, 0x2e, 0x43, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x43, 0x0a, 0x12, 0x74, + 0x65, 0x61, 0x6d, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, + 0x4d, 0x73, 0x67, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x52, 0x10, + 0x74, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, + 0x1a, 0xce, 0x1b, 0x0a, 0x07, 0x43, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, + 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, + 0x73, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, + 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x70, + 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x3f, 0x20, + 0x03, 0x28, 0x0d, 0x52, 0x11, 0x69, 0x74, 0x65, 0x6d, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x6f, 0x6c, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x67, 0x6f, 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6b, 0x69, + 0x6c, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6b, 0x69, 0x6c, 0x6c, 0x73, + 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x06, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x73, 0x73, 0x69, + 0x73, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x61, 0x73, 0x73, 0x69, 0x73, + 0x74, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6c, 0x65, 0x61, 0x76, 0x65, + 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, + 0x68, 0x69, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, + 0x48, 0x69, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x73, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0c, + 0x67, 0x6f, 0x6c, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0a, 0x67, 0x6f, 0x6c, 0x64, 0x50, 0x65, 0x72, 0x4d, 0x69, 0x6e, 0x12, 0x22, + 0x0a, 0x0d, 0x78, 0x70, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x78, 0x70, 0x50, 0x65, 0x72, 0x4d, 0x69, 0x6e, 0x75, + 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x6f, 0x6c, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x74, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x67, 0x6f, 0x6c, 0x64, 0x53, 0x70, 0x65, 0x6e, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x63, 0x61, 0x6c, 0x65, + 0x64, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x10, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x48, 0x65, 0x72, 0x6f, 0x44, + 0x61, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x5f, + 0x74, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x11, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x11, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x54, 0x6f, 0x77, 0x65, 0x72, 0x44, + 0x61, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x5f, + 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x12, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x11, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x48, 0x65, 0x72, 0x6f, 0x48, 0x65, + 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6c, 0x61, + 0x73, 0x74, 0x5f, 0x73, 0x65, 0x65, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, + 0x69, 0x6d, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x65, 0x6e, 0x12, 0x32, 0x0a, 0x15, 0x73, + 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x73, 0x75, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x19, 0x0a, 0x08, 0x70, 0x61, 0x72, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x70, 0x61, 0x72, 0x74, 0x79, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x6c, + 0x61, 0x69, 0x6d, 0x65, 0x64, 0x5f, 0x66, 0x61, 0x72, 0x6d, 0x5f, 0x67, 0x6f, 0x6c, 0x64, 0x18, + 0x1b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x46, 0x61, + 0x72, 0x6d, 0x47, 0x6f, 0x6c, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x67, 0x6f, 0x6c, 0x64, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x75, + 0x70, 0x70, 0x6f, 0x72, 0x74, 0x47, 0x6f, 0x6c, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6c, 0x61, + 0x69, 0x6d, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x73, 0x18, 0x1d, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0d, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x44, 0x65, 0x6e, 0x69, 0x65, 0x73, + 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x5f, 0x6d, 0x69, 0x73, 0x73, + 0x65, 0x73, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, + 0x64, 0x4d, 0x69, 0x73, 0x73, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, + 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x73, 0x12, + 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x74, 0x5f, 0x77, 0x6f, 0x72, 0x74, 0x68, 0x18, 0x22, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x08, 0x6e, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, + 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0a, 0x68, 0x65, 0x72, 0x6f, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x21, 0x0a, + 0x0c, 0x74, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x26, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x74, 0x6f, 0x77, 0x65, 0x72, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, + 0x12, 0x21, 0x0a, 0x0c, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67, + 0x18, 0x27, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x68, 0x65, 0x72, 0x6f, 0x48, 0x65, 0x61, 0x6c, + 0x69, 0x6e, 0x67, 0x12, 0x4b, 0x0a, 0x10, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x75, + 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x20, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, + 0x0f, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x73, + 0x12, 0x61, 0x0a, 0x1a, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, + 0x6e, 0x69, 0x74, 0x73, 0x5f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x21, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x6e, 0x69, 0x74, + 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x18, 0x61, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x12, 0x48, 0x0a, 0x0f, 0x70, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, + 0x5f, 0x62, 0x75, 0x66, 0x66, 0x73, 0x18, 0x28, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x64, + 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x42, 0x75, 0x66, 0x66, 0x52, 0x0e, 0x70, + 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x42, 0x75, 0x66, 0x66, 0x73, 0x12, 0x62, 0x0a, + 0x10, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, + 0x4d, 0x73, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x67, 0x6e, + 0x4f, 0x75, 0x74, 0x2e, 0x43, 0x54, 0x65, 0x61, 0x6d, 0x2e, 0x43, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x2e, 0x43, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x0e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, + 0x2c, 0x0a, 0x12, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x29, 0x20, 0x03, 0x28, 0x05, 0x52, 0x10, 0x74, 0x61, 0x6c, + 0x65, 0x6e, 0x74, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x64, 0x73, 0x12, 0x26, 0x0a, + 0x0f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x70, 0x69, 0x63, 0x6b, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x68, 0x65, 0x72, 0x6f, 0x50, 0x69, 0x63, 0x6b, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x11, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x77, 0x61, + 0x73, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x65, 0x64, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0f, 0x68, 0x65, 0x72, 0x6f, 0x57, 0x61, 0x73, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x65, + 0x64, 0x12, 0x40, 0x0a, 0x1d, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x77, 0x61, 0x73, 0x5f, 0x64, 0x6f, + 0x74, 0x61, 0x5f, 0x70, 0x6c, 0x75, 0x73, 0x5f, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x32, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x68, 0x65, 0x72, 0x6f, 0x57, 0x61, + 0x73, 0x44, 0x6f, 0x74, 0x61, 0x50, 0x6c, 0x75, 0x73, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x61, 0x6e, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x04, 0x6c, 0x61, 0x6e, 0x65, 0x12, 0x2d, 0x0a, 0x13, 0x69, 0x73, 0x5f, 0x75, 0x73, + 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x73, 0x5f, 0x67, 0x75, 0x69, 0x64, 0x65, 0x18, 0x2f, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, 0x55, 0x73, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x75, + 0x73, 0x47, 0x75, 0x69, 0x64, 0x65, 0x12, 0x6d, 0x0a, 0x14, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x64, + 0x61, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x30, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, + 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, + 0x2e, 0x43, 0x54, 0x65, 0x61, 0x6d, 0x2e, 0x43, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x48, + 0x65, 0x72, 0x6f, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x52, 0x12, 0x68, 0x65, 0x72, 0x6f, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x12, 0x67, 0x0a, 0x11, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x64, 0x61, + 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x65, 0x61, 0x6c, 0x74, 0x18, 0x40, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x2e, 0x43, 0x54, 0x65, 0x61, 0x6d, 0x2e, 0x43, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x44, - 0x61, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x52, 0x12, 0x68, - 0x65, 0x72, 0x6f, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x12, 0x67, 0x0a, 0x11, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, - 0x5f, 0x64, 0x65, 0x61, 0x6c, 0x74, 0x18, 0x40, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x64, - 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x2e, 0x43, 0x54, 0x65, 0x61, 0x6d, 0x2e, 0x43, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x61, 0x6d, 0x61, 0x67, - 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x52, 0x0f, 0x68, 0x65, 0x72, 0x6f, 0x44, - 0x61, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x65, 0x61, 0x6c, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, - 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x64, 0x65, 0x61, 0x64, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0b, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x44, 0x65, 0x61, 0x64, 0x12, 0x2b, 0x0a, - 0x12, 0x67, 0x6f, 0x6c, 0x64, 0x5f, 0x6c, 0x6f, 0x73, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x65, - 0x61, 0x74, 0x68, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x67, 0x6f, 0x6c, 0x64, 0x4c, - 0x6f, 0x73, 0x74, 0x54, 0x6f, 0x44, 0x65, 0x61, 0x74, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, - 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x35, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x42, 0x0a, 0x1e, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x5f, 0x63, - 0x61, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1a, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x43, 0x6c, - 0x69, 0x63, 0x6b, 0x43, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x74, 0x65, 0x6c, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x4a, 0x0a, 0x22, 0x63, 0x61, - 0x76, 0x65, 0x72, 0x6e, 0x5f, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x61, 0x70, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, - 0x18, 0x38, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1e, 0x63, 0x61, 0x76, 0x65, 0x72, 0x6e, 0x43, 0x72, - 0x61, 0x77, 0x6c, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x4d, 0x61, 0x70, 0x56, - 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6f, 0x75, 0x6e, 0x74, 0x79, - 0x5f, 0x72, 0x75, 0x6e, 0x65, 0x73, 0x18, 0x39, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x62, 0x6f, - 0x75, 0x6e, 0x74, 0x79, 0x52, 0x75, 0x6e, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x6f, 0x75, 0x74, - 0x70, 0x6f, 0x73, 0x74, 0x73, 0x5f, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x64, 0x18, 0x3a, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x73, 0x74, 0x73, 0x43, 0x61, - 0x70, 0x74, 0x75, 0x72, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x73, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x64, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, - 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, - 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6c, 0x61, - 0x63, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x61, 0x6d, 0x70, 0x73, 0x5f, 0x73, 0x74, 0x61, - 0x63, 0x6b, 0x65, 0x64, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x61, 0x6d, 0x70, - 0x73, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x65, - 0x64, 0x69, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x42, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, 0x64, - 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x61, 0x6e, 0x65, - 0x5f, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x73, 0x18, 0x43, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0c, 0x6c, 0x61, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x73, 0x12, 0x3b, 0x0a, - 0x1a, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x5f, 0x74, 0x31, 0x5f, 0x64, 0x65, 0x73, - 0x74, 0x72, 0x6f, 0x79, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x44, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x17, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x54, 0x31, 0x44, 0x65, 0x73, - 0x74, 0x72, 0x6f, 0x79, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x17, 0x65, 0x6e, - 0x65, 0x6d, 0x79, 0x5f, 0x74, 0x31, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x65, 0x64, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x45, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x65, 0x6e, 0x65, - 0x6d, 0x79, 0x54, 0x31, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x65, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x32, 0x0a, 0x15, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x5f, 0x72, 0x6f, - 0x73, 0x68, 0x61, 0x6e, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x18, 0x46, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x13, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x6f, 0x73, 0x68, 0x61, 0x6e, - 0x4b, 0x69, 0x6c, 0x6c, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x5f, 0x72, - 0x6f, 0x73, 0x68, 0x61, 0x6e, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x18, 0x47, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x10, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x52, 0x6f, 0x73, 0x68, 0x61, 0x6e, 0x4b, 0x69, - 0x6c, 0x6c, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x72, 0x75, 0x6e, - 0x65, 0x73, 0x18, 0x48, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x52, - 0x75, 0x6e, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x61, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x75, - 0x6e, 0x65, 0x73, 0x18, 0x49, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x77, 0x61, 0x74, 0x65, 0x72, - 0x52, 0x75, 0x6e, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x75, 0x6e, 0x5f, 0x64, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x73, 0x74, - 0x75, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x0a, 0x0b, 0x74, 0x65, - 0x61, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x12, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x43, 0x5f, 0x54, - 0x45, 0x41, 0x4d, 0x52, 0x0a, 0x74, 0x65, 0x61, 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x4c, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x08, 0x74, 0x65, 0x61, 0x6d, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x30, 0x0a, 0x14, - 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x64, 0x5f, 0x73, - 0x68, 0x61, 0x72, 0x64, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x74, 0x69, 0x6d, 0x65, - 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x64, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x2e, - 0x0a, 0x13, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x64, - 0x5f, 0x61, 0x67, 0x68, 0x73, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x74, 0x69, 0x6d, - 0x65, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x64, 0x41, 0x67, 0x68, 0x73, 0x12, 0x36, - 0x0a, 0x17, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x64, 0x72, 0x61, 0x66, 0x74, 0x5f, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x4f, 0x20, 0x03, 0x28, 0x05, 0x52, - 0x15, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x44, 0x72, 0x61, 0x66, 0x74, 0x41, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x14, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x50, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, - 0x54, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x52, 0x12, 0x70, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, - 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, - 0x6b, 0x18, 0x51, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, - 0x65, 0x64, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x74, 0x18, 0x52, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, - 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x46, 0x61, 0x63, 0x65, 0x74, 0x1a, 0x46, 0x0a, - 0x0f, 0x43, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x6f, 0x74, 0x61, 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x6f, 0x74, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x12, 0x16, 0x0a, - 0x06, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x77, - 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x1a, 0xba, 0x01, 0x0a, 0x12, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x61, - 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, - 0x70, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x52, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x70, 0x6f, 0x73, 0x74, 0x52, - 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x58, 0x0a, 0x0b, 0x64, 0x61, 0x6d, 0x61, - 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, - 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x2e, 0x43, 0x54, 0x65, 0x61, 0x6d, 0x2e, - 0x43, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x61, 0x6d, 0x61, - 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x59, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x44, 0x41, 0x4d, - 0x41, 0x47, 0x45, 0x5f, 0x50, 0x48, 0x59, 0x53, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x17, - 0x0a, 0x13, 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x44, 0x41, 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x4d, 0x41, - 0x47, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x48, 0x45, 0x52, 0x4f, 0x5f, - 0x44, 0x41, 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x50, 0x55, 0x52, 0x45, 0x10, 0x02, 0x1a, 0x43, 0x0a, - 0x15, 0x43, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, - 0x6f, 0x75, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x73, 0x1a, 0xb1, 0x01, 0x0a, 0x15, 0x43, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x65, - 0x65, 0x64, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x67, 0x61, 0x6d, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6c, - 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x3e, 0x0a, 0x0f, 0x43, 0x43, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x11, 0x70, 0x75, 0x62, - 0x6c, 0x69, 0x73, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x1a, 0xfc, 0x01, 0x0a, 0x19, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x47, 0x61, 0x6d, 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x66, - 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x53, - 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x65, - 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x44, 0x61, 0x74, 0x61, 0x31, 0x12, 0x20, 0x0a, - 0x0c, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x32, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x44, 0x61, 0x74, 0x61, 0x32, 0x12, - 0x20, 0x0a, 0x0c, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x33, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x44, 0x61, 0x74, 0x61, - 0x33, 0x12, 0x20, 0x0a, 0x0c, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, - 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x44, 0x61, - 0x74, 0x61, 0x34, 0x12, 0x20, 0x0a, 0x0c, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, - 0x61, 0x5f, 0x35, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, - 0x44, 0x61, 0x74, 0x61, 0x35, 0x1a, 0x8f, 0x02, 0x0a, 0x0d, 0x57, 0x61, 0x72, 0x64, 0x50, 0x6c, - 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1f, 0x0a, - 0x0b, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, - 0x0a, 0x0e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x65, 0x70, 0x5f, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x65, - 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x6f, 0x73, 0x68, 0x61, 0x6e, - 0x5f, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x72, 0x6f, - 0x73, 0x68, 0x61, 0x6e, 0x41, 0x6c, 0x69, 0x76, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x58, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x59, 0x22, 0xc6, 0x01, 0x0a, 0x14, 0x43, 0x4d, 0x73, 0x67, - 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x44, 0x72, 0x61, 0x66, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x3b, 0x0a, 0x1a, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x63, 0x61, 0x70, 0x74, - 0x61, 0x69, 0x6e, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x43, 0x61, 0x70, - 0x74, 0x61, 0x69, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x35, 0x0a, - 0x17, 0x64, 0x69, 0x72, 0x65, 0x5f, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x5f, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, - 0x64, 0x69, 0x72, 0x65, 0x43, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x0a, 0x70, 0x69, 0x63, 0x6b, 0x73, 0x5f, 0x62, 0x61, - 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, - 0x43, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x09, 0x70, 0x69, 0x63, 0x6b, 0x73, 0x42, 0x61, 0x6e, 0x73, - 0x22, 0xf4, 0x01, 0x0a, 0x12, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, - 0x42, 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x5f, 0x63, 0x68, 0x65, 0x61, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x68, 0x65, 0x61, 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x16, 0x62, 0x6f, - 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x5f, 0x72, 0x61, 0x64, - 0x69, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x64, 0x6f, 0x74, - 0x61, 0x2e, 0x44, 0x4f, 0x54, 0x41, 0x42, 0x6f, 0x74, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, - 0x6c, 0x74, 0x79, 0x52, 0x14, 0x62, 0x6f, 0x74, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, - 0x74, 0x79, 0x52, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x62, 0x62, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x12, 0x47, - 0x0a, 0x13, 0x62, 0x6f, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, - 0x5f, 0x64, 0x69, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x64, 0x6f, - 0x74, 0x61, 0x2e, 0x44, 0x4f, 0x54, 0x41, 0x42, 0x6f, 0x74, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, - 0x75, 0x6c, 0x74, 0x79, 0x52, 0x11, 0x62, 0x6f, 0x74, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, - 0x6c, 0x74, 0x79, 0x44, 0x69, 0x72, 0x65, 0x22, 0xee, 0x01, 0x0a, 0x17, 0x43, 0x4d, 0x73, 0x67, - 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x75, 0x74, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x5b, 0x0a, 0x12, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x6d, 0x75, 0x74, 0x65, - 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x2d, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, - 0x75, 0x74, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x75, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x54, - 0x65, 0x78, 0x74, 0x4d, 0x75, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x10, - 0x74, 0x65, 0x78, 0x74, 0x4d, 0x75, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, - 0x1a, 0x76, 0x0a, 0x0f, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x75, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x63, - 0x61, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x6d, 0x75, 0x74, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x63, 0x61, 0x75, 0x73, 0x65, 0x64, 0x54, 0x65, 0x78, - 0x74, 0x4d, 0x75, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, - 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xd5, 0x07, 0x0a, 0x16, 0x43, 0x4d, 0x73, - 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, - 0x61, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x61, 0x6e, - 0x6b, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x61, - 0x6d, 0x70, 0x61, 0x67, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x61, - 0x6d, 0x70, 0x61, 0x67, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x72, 0x69, 0x70, 0x6c, 0x65, - 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x74, 0x72, - 0x69, 0x70, 0x6c, 0x65, 0x4b, 0x69, 0x6c, 0x6c, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x66, 0x69, 0x72, - 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x66, 0x69, 0x72, 0x73, 0x74, 0x42, 0x6c, 0x6f, - 0x6f, 0x64, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x66, 0x69, 0x72, - 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x6f, 0x64, - 0x47, 0x69, 0x76, 0x65, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x75, 0x72, 0x69, 0x65, 0x72, - 0x73, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, - 0x63, 0x6f, 0x75, 0x72, 0x69, 0x65, 0x72, 0x73, 0x4b, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x29, - 0x0a, 0x10, 0x61, 0x65, 0x67, 0x69, 0x73, 0x65, 0x73, 0x5f, 0x73, 0x6e, 0x61, 0x74, 0x63, 0x68, - 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x61, 0x65, 0x67, 0x69, 0x73, 0x65, - 0x73, 0x53, 0x6e, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x68, 0x65, - 0x65, 0x73, 0x65, 0x73, 0x5f, 0x65, 0x61, 0x74, 0x65, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0c, 0x63, 0x68, 0x65, 0x65, 0x73, 0x65, 0x73, 0x45, 0x61, 0x74, 0x65, 0x6e, 0x12, 0x25, - 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x65, 0x70, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x65, 0x64, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x65, 0x70, 0x73, 0x53, 0x74, - 0x61, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x67, 0x68, - 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x61, 0x72, 0x6d, 0x5f, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x61, 0x72, 0x6d, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x73, 0x75, - 0x70, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, - 0x73, 0x68, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, - 0x70, 0x75, 0x73, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6b, 0x69, 0x6c, - 0x6c, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x12, - 0x16, 0x0a, 0x06, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x06, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x73, 0x73, 0x69, 0x73, - 0x74, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, - 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x73, 0x18, 0x14, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x69, 0x74, 0x73, 0x12, 0x16, - 0x0a, 0x06, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, - 0x64, 0x65, 0x6e, 0x69, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x70, 0x6d, 0x18, 0x16, 0x20, - 0x01, 0x28, 0x02, 0x52, 0x03, 0x67, 0x70, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x78, 0x70, 0x70, 0x6d, - 0x18, 0x17, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x78, 0x70, 0x70, 0x6d, 0x12, 0x1b, 0x0a, 0x09, - 0x6e, 0x65, 0x74, 0x5f, 0x77, 0x6f, 0x72, 0x74, 0x68, 0x18, 0x18, 0x20, 0x01, 0x28, 0x02, 0x52, - 0x08, 0x6e, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x61, 0x6d, - 0x61, 0x67, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x64, 0x61, 0x6d, 0x61, 0x67, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x65, 0x61, 0x6c, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x05, 0x68, 0x65, 0x61, 0x6c, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x61, 0x70, 0x69, 0x65, - 0x72, 0x73, 0x5f, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x64, 0x18, 0x1b, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x10, 0x72, 0x61, 0x70, 0x69, 0x65, 0x72, 0x73, 0x50, 0x75, 0x72, 0x63, 0x68, - 0x61, 0x73, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x5f, 0x77, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x18, 0x1c, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x57, 0x61, 0x72, - 0x64, 0x73, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x77, 0x61, 0x72, 0x64, - 0x73, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x65, 0x64, 0x18, 0x1d, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0e, 0x77, 0x61, 0x72, 0x64, 0x73, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x65, - 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6f, 0x62, 0x62, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x1e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6c, 0x6f, 0x62, 0x62, 0x79, 0x54, 0x79, 0x70, 0x65, - 0x22, 0xc6, 0x07, 0x0a, 0x1f, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, - 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, - 0x6d, 0x61, 0x72, 0x79, 0x12, 0x53, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, - 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x1a, 0xcd, 0x06, 0x0a, 0x13, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x14, 0x0a, 0x05, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x05, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x33, 0x0a, 0x16, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x69, - 0x6e, 0x67, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x50, 0x69, 0x6e, 0x67, 0x73, - 0x50, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x74, - 0x65, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x74, 0x65, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x50, 0x69, 0x6e, - 0x67, 0x73, 0x12, 0x44, 0x0a, 0x1f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x6d, 0x61, - 0x74, 0x65, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x6d, 0x61, 0x78, - 0x54, 0x65, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x50, 0x69, 0x6e, 0x67, 0x73, 0x50, 0x65, 0x72, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x2c, 0x0a, 0x12, 0x74, 0x65, 0x61, 0x6d, - 0x5f, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x74, 0x65, 0x61, 0x6d, 0x43, 0x68, 0x61, 0x74, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x6c, 0x6c, 0x5f, 0x63, 0x68, - 0x61, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0f, 0x61, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x77, 0x68, 0x65, 0x65, 0x6c, - 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x11, 0x63, 0x68, 0x61, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x75, 0x73, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x06, 0x70, 0x61, 0x75, 0x73, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x6e, - 0x70, 0x61, 0x75, 0x73, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x75, 0x6e, - 0x70, 0x61, 0x75, 0x73, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x5f, - 0x64, 0x72, 0x61, 0x77, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x69, 0x6e, - 0x65, 0x73, 0x44, 0x72, 0x61, 0x77, 0x6e, 0x12, 0x2c, 0x0a, 0x12, 0x76, 0x6f, 0x69, 0x63, 0x65, - 0x5f, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x10, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x68, 0x61, 0x74, 0x53, 0x65, - 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x6d, 0x75, - 0x74, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x68, 0x61, 0x74, 0x4d, - 0x75, 0x74, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x6d, 0x75, - 0x74, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x76, 0x6f, 0x69, 0x63, 0x65, - 0x4d, 0x75, 0x74, 0x65, 0x73, 0x12, 0x67, 0x0a, 0x0c, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x64, 0x6f, - 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x43, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, - 0x72, 0x79, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x52, 0x0b, 0x70, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x2a, - 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x6d, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x5f, 0x73, - 0x6f, 0x6c, 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x73, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x53, 0x6f, 0x6c, 0x6f, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x6f, - 0x6d, 0x6d, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x5f, 0x6d, 0x61, 0x73, 0x73, 0x18, - 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x73, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x73, 0x4d, 0x61, 0x73, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x6c, - 0x6f, 0x67, 0x18, 0x12, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x74, 0x4c, 0x6f, - 0x67, 0x1a, 0x36, 0x0a, 0x0a, 0x50, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, - 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8e, 0x09, 0x0a, 0x1c, 0x43, 0x4d, - 0x73, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x6f, - 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, - 0x73, 0x61, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6c, - 0x61, 0x79, 0x53, 0x61, 0x6c, 0x74, 0x12, 0x50, 0x0a, 0x14, 0x74, 0x69, 0x6d, 0x65, 0x64, 0x5f, - 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4c, 0x6f, 0x62, - 0x62, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x52, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x44, 0x0a, 0x11, 0x78, 0x70, 0x5f, 0x72, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x04, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x53, 0x4f, 0x44, 0x4f, - 0x54, 0x41, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0f, 0x78, - 0x70, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1a, - 0x0a, 0x08, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x08, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x69, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, - 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x07, 0x52, 0x12, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x38, 0x0a, 0x0d, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, - 0x4f, 0x54, 0x41, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x0c, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x5c, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x31, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x61, 0x6d, 0x65, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x52, 0x0f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x08, 0x6d, 0x76, 0x70, 0x5f, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, - 0x76, 0x70, 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, 0x6d, 0x76, 0x70, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x24, 0x0a, 0x0e, 0x6f, 0x77, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, - 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0c, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x6f, 0x77, 0x5f, 0x73, 0x61, 0x6c, 0x74, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x07, 0x52, 0x06, 0x6f, 0x77, 0x53, 0x61, 0x6c, 0x74, 0x12, 0x20, - 0x0a, 0x0c, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6f, 0x77, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x49, 0x64, - 0x12, 0x4c, 0x0a, 0x11, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x5f, 0x72, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x64, 0x6f, - 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x10, 0x6f, 0x76, - 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x1a, 0xd9, - 0x03, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x61, 0x76, - 0x67, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x5f, 0x78, 0x31, 0x36, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0b, 0x61, 0x76, 0x67, 0x4b, 0x69, 0x6c, 0x6c, 0x73, 0x58, 0x31, 0x36, 0x12, 0x24, - 0x0a, 0x0e, 0x61, 0x76, 0x67, 0x5f, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x78, 0x31, 0x36, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x61, 0x76, 0x67, 0x44, 0x65, 0x61, 0x74, 0x68, - 0x73, 0x58, 0x31, 0x36, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x76, 0x67, 0x5f, 0x61, 0x73, 0x73, 0x69, - 0x73, 0x74, 0x73, 0x5f, 0x78, 0x31, 0x36, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x61, - 0x76, 0x67, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x73, 0x58, 0x31, 0x36, 0x12, 0x1e, 0x0a, 0x0b, - 0x61, 0x76, 0x67, 0x5f, 0x67, 0x70, 0x6d, 0x5f, 0x78, 0x31, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x09, 0x61, 0x76, 0x67, 0x47, 0x70, 0x6d, 0x58, 0x31, 0x36, 0x12, 0x1e, 0x0a, 0x0b, - 0x61, 0x76, 0x67, 0x5f, 0x78, 0x70, 0x6d, 0x5f, 0x78, 0x31, 0x36, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x09, 0x61, 0x76, 0x67, 0x58, 0x70, 0x6d, 0x58, 0x31, 0x36, 0x12, 0x24, 0x0a, 0x0e, - 0x62, 0x65, 0x73, 0x74, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x5f, 0x78, 0x31, 0x36, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x62, 0x65, 0x73, 0x74, 0x4b, 0x69, 0x6c, 0x6c, 0x73, 0x58, - 0x31, 0x36, 0x12, 0x28, 0x0a, 0x10, 0x62, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x73, 0x73, 0x69, 0x73, - 0x74, 0x73, 0x5f, 0x78, 0x31, 0x36, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x62, 0x65, - 0x73, 0x74, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x73, 0x58, 0x31, 0x36, 0x12, 0x20, 0x0a, 0x0c, - 0x62, 0x65, 0x73, 0x74, 0x5f, 0x67, 0x70, 0x6d, 0x5f, 0x78, 0x31, 0x36, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0a, 0x62, 0x65, 0x73, 0x74, 0x47, 0x70, 0x6d, 0x58, 0x31, 0x36, 0x12, 0x20, - 0x0a, 0x0c, 0x62, 0x65, 0x73, 0x74, 0x5f, 0x78, 0x70, 0x6d, 0x5f, 0x78, 0x31, 0x36, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x62, 0x65, 0x73, 0x74, 0x58, 0x70, 0x6d, 0x58, 0x31, 0x36, - 0x12, 0x1d, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6b, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x77, 0x69, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6b, 0x12, - 0x26, 0x0a, 0x0f, 0x62, 0x65, 0x73, 0x74, 0x5f, 0x77, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x62, 0x65, 0x73, 0x74, 0x57, 0x69, - 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6b, 0x12, 0x21, 0x0a, 0x0c, 0x67, 0x61, 0x6d, 0x65, 0x73, - 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x67, - 0x61, 0x6d, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x22, 0x6c, 0x0a, 0x18, 0x43, 0x4d, - 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x14, 0x74, 0x69, 0x6d, 0x65, 0x64, 0x5f, - 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4c, 0x6f, 0x62, - 0x62, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x52, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0xbf, 0x01, 0x0a, 0x25, 0x43, 0x4d, 0x73, - 0x67, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, - 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x12, 0x23, - 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x74, 0x74, 0x65, - 0x6d, 0x70, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x77, - 0x61, 0x69, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x65, 0x63, - 0x6f, 0x6e, 0x64, 0x73, 0x57, 0x61, 0x69, 0x74, 0x65, 0x64, 0x22, 0xb0, 0x01, 0x0a, 0x26, 0x43, - 0x4d, 0x73, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x67, 0x6e, - 0x4f, 0x75, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x11, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x61, - 0x6e, 0x74, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x5f, - 0x73, 0x69, 0x67, 0x6e, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x61, - 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x6f, 0x75, 0x74, 0x12, 0x2e, 0x0a, - 0x13, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x65, 0x63, - 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x72, 0x65, 0x74, 0x72, - 0x79, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0xcb, 0x01, - 0x0a, 0x21, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, - 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x27, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0c, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x45, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, - 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x67, 0x61, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x70, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x61, 0x70, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x67, 0x61, - 0x6d, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xb4, 0x09, 0x0a, 0x1c, - 0x43, 0x4d, 0x73, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x67, - 0x6e, 0x4f, 0x75, 0x74, 0x50, 0x65, 0x72, 0x66, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x12, - 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x52, 0x10, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, - 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, - 0x78, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x02, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x39, 0x0a, 0x19, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x76, 0x65, 0x72, 0x61, - 0x67, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x02, 0x52, 0x16, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x76, 0x65, 0x72, 0x61, - 0x67, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x15, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x4d, 0x61, 0x78, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x30, - 0x0a, 0x14, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, - 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x02, 0x52, 0x12, 0x61, 0x76, - 0x65, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x43, - 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x61, 0x76, - 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x63, - 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x03, 0x28, 0x02, 0x52, 0x15, 0x61, 0x76, - 0x65, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x03, 0x28, - 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x63, 0x6b, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x1c, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x02, 0x52, 0x19, 0x61, 0x76, 0x65, 0x72, - 0x61, 0x67, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x02, 0x52, 0x15, 0x6d, 0x61, 0x78, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2e, - 0x0a, 0x13, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x02, 0x52, 0x11, 0x61, 0x76, 0x65, - 0x72, 0x61, 0x67, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, - 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x5a, 0x0a, 0x2b, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, - 0x65, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x02, 0x52, 0x25, 0x61, 0x76, 0x65, - 0x72, 0x61, 0x67, 0x65, 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x27, 0x6d, 0x61, 0x78, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x66, - 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x6f, 0x5f, - 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, - 0x03, 0x28, 0x02, 0x52, 0x21, 0x6d, 0x61, 0x78, 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x52, + 0x61, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x52, 0x0f, 0x68, + 0x65, 0x72, 0x6f, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x65, 0x61, 0x6c, 0x74, 0x12, 0x21, + 0x0a, 0x0c, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x64, 0x65, 0x61, 0x64, 0x18, 0x33, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x44, 0x65, 0x61, + 0x64, 0x12, 0x2b, 0x0a, 0x12, 0x67, 0x6f, 0x6c, 0x64, 0x5f, 0x6c, 0x6f, 0x73, 0x74, 0x5f, 0x74, + 0x6f, 0x5f, 0x64, 0x65, 0x61, 0x74, 0x68, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x67, + 0x6f, 0x6c, 0x64, 0x4c, 0x6f, 0x73, 0x74, 0x54, 0x6f, 0x44, 0x65, 0x61, 0x74, 0x68, 0x12, 0x23, + 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x35, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x1e, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x69, + 0x63, 0x6b, 0x5f, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1a, 0x6d, 0x6f, 0x75, + 0x73, 0x65, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x43, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x65, 0x6c, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0d, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x4a, + 0x0a, 0x22, 0x63, 0x61, 0x76, 0x65, 0x72, 0x6e, 0x5f, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x70, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x61, 0x70, 0x5f, 0x76, 0x61, 0x72, + 0x69, 0x61, 0x6e, 0x74, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1e, 0x63, 0x61, 0x76, 0x65, + 0x72, 0x6e, 0x43, 0x72, 0x61, 0x77, 0x6c, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, + 0x4d, 0x61, 0x70, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6f, + 0x75, 0x6e, 0x74, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x65, 0x73, 0x18, 0x39, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0b, 0x62, 0x6f, 0x75, 0x6e, 0x74, 0x79, 0x52, 0x75, 0x6e, 0x65, 0x73, 0x12, 0x2b, 0x0a, + 0x11, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x73, 0x74, 0x73, 0x5f, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, + 0x65, 0x64, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x73, + 0x74, 0x73, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x64, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x70, 0x6c, + 0x61, 0x63, 0x65, 0x64, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x77, 0x61, 0x72, 0x64, + 0x73, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x61, 0x6d, 0x70, 0x73, + 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, + 0x63, 0x61, 0x6d, 0x70, 0x73, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x3e, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x2d, 0x0a, + 0x12, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x42, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x70, 0x72, 0x65, 0x64, 0x69, + 0x63, 0x74, 0x65, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, + 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x73, 0x18, 0x43, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6c, 0x61, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, + 0x73, 0x12, 0x3b, 0x0a, 0x1a, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x5f, 0x74, 0x31, + 0x5f, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x44, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x54, + 0x31, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, + 0x0a, 0x17, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x5f, 0x74, 0x31, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x72, + 0x6f, 0x79, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x45, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x14, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x54, 0x31, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x65, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, + 0x79, 0x5f, 0x72, 0x6f, 0x73, 0x68, 0x61, 0x6e, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x18, 0x46, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x6f, + 0x73, 0x68, 0x61, 0x6e, 0x4b, 0x69, 0x6c, 0x6c, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x65, 0x6e, 0x65, + 0x6d, 0x79, 0x5f, 0x72, 0x6f, 0x73, 0x68, 0x61, 0x6e, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x18, + 0x47, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x52, 0x6f, 0x73, 0x68, + 0x61, 0x6e, 0x4b, 0x69, 0x6c, 0x6c, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x77, 0x65, 0x72, + 0x5f, 0x72, 0x75, 0x6e, 0x65, 0x73, 0x18, 0x48, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6f, + 0x77, 0x65, 0x72, 0x52, 0x75, 0x6e, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x61, 0x74, 0x65, + 0x72, 0x5f, 0x72, 0x75, 0x6e, 0x65, 0x73, 0x18, 0x49, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x77, + 0x61, 0x74, 0x65, 0x72, 0x52, 0x75, 0x6e, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x75, + 0x6e, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x0c, 0x73, 0x74, 0x75, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33, + 0x0a, 0x0b, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x4b, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x47, 0x43, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x52, 0x0a, 0x74, 0x65, 0x61, 0x6d, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x73, 0x6c, 0x6f, 0x74, + 0x18, 0x4c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x74, 0x65, 0x61, 0x6d, 0x53, 0x6c, 0x6f, 0x74, + 0x12, 0x30, 0x0a, 0x14, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, + 0x65, 0x64, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, + 0x74, 0x69, 0x6d, 0x65, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x64, 0x53, 0x68, 0x61, + 0x72, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x75, 0x72, 0x63, 0x68, + 0x61, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x67, 0x68, 0x73, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x11, 0x74, 0x69, 0x6d, 0x65, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x64, 0x41, 0x67, + 0x68, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x64, 0x72, + 0x61, 0x66, 0x74, 0x5f, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x4f, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x15, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x44, 0x72, 0x61, 0x66, + 0x74, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x14, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x73, 0x18, 0x50, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, + 0x43, 0x4d, 0x73, 0x67, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x52, + 0x12, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, 0x64, + 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x51, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x70, 0x72, 0x65, + 0x64, 0x69, 0x63, 0x74, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x74, 0x18, 0x52, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x46, 0x61, 0x63, 0x65, + 0x74, 0x1a, 0x46, 0x0a, 0x0f, 0x43, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x6f, 0x74, 0x61, 0x5f, 0x74, 0x65, 0x61, + 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x6f, 0x74, 0x61, 0x54, 0x65, 0x61, + 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x06, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x1a, 0xba, 0x01, 0x0a, 0x12, 0x48, 0x65, + 0x72, 0x6f, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x52, 0x65, 0x64, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x65, + 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x70, + 0x6f, 0x73, 0x74, 0x52, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x58, 0x0a, 0x0b, + 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x37, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x61, 0x6d, + 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x2e, 0x43, 0x54, + 0x65, 0x61, 0x6d, 0x2e, 0x43, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x72, 0x6f, + 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x64, 0x61, 0x6d, 0x61, + 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x59, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x61, + 0x6d, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x48, 0x45, 0x52, 0x4f, + 0x5f, 0x44, 0x41, 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x50, 0x48, 0x59, 0x53, 0x49, 0x43, 0x41, 0x4c, + 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x44, 0x41, 0x4d, 0x41, 0x47, + 0x45, 0x5f, 0x4d, 0x41, 0x47, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x48, + 0x45, 0x52, 0x4f, 0x5f, 0x44, 0x41, 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x50, 0x55, 0x52, 0x45, 0x10, + 0x02, 0x1a, 0x43, 0x0a, 0x15, 0x43, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x53, 0x69, 0x67, 0x6e, 0x6f, 0x75, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0xb1, 0x01, 0x0a, 0x15, 0x43, 0x53, 0x6f, 0x63, 0x69, + 0x61, 0x6c, 0x46, 0x65, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1d, 0x0a, + 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, + 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x67, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x70, + 0x6c, 0x61, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, + 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x3e, 0x0a, 0x0f, 0x43, 0x43, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, + 0x11, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, + 0x68, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x1a, 0xfc, 0x01, 0x0a, 0x19, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x62, 0x6f, + 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x61, 0x6d, 0x65, + 0x5f, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, + 0x61, 0x6d, 0x65, 0x53, 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, + 0x20, 0x0a, 0x0c, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x31, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x44, 0x61, 0x74, 0x61, + 0x31, 0x12, 0x20, 0x0a, 0x0c, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x44, 0x61, + 0x74, 0x61, 0x32, 0x12, 0x20, 0x0a, 0x0c, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x5f, 0x33, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, + 0x44, 0x61, 0x74, 0x61, 0x33, 0x12, 0x20, 0x0a, 0x0c, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x78, 0x74, + 0x72, 0x61, 0x44, 0x61, 0x74, 0x61, 0x34, 0x12, 0x20, 0x0a, 0x0c, 0x65, 0x78, 0x74, 0x72, 0x61, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x35, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, + 0x78, 0x74, 0x72, 0x61, 0x44, 0x61, 0x74, 0x61, 0x35, 0x1a, 0x8f, 0x02, 0x0a, 0x0d, 0x57, 0x61, + 0x72, 0x64, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, + 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x62, 0x75, 0x69, 0x6c, + 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x72, 0x65, + 0x65, 0x70, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, + 0x63, 0x72, 0x65, 0x65, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x6f, + 0x73, 0x68, 0x61, 0x6e, 0x5f, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0b, 0x72, 0x6f, 0x73, 0x68, 0x61, 0x6e, 0x41, 0x6c, 0x69, 0x76, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x58, 0x12, 0x1d, 0x0a, 0x0a, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x59, 0x22, 0xc6, 0x01, 0x0a, 0x14, + 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x44, 0x72, 0x61, 0x66, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3b, 0x0a, 0x1a, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x5f, + 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, + 0x74, 0x43, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x35, 0x0a, 0x17, 0x64, 0x69, 0x72, 0x65, 0x5f, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, + 0x6e, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x14, 0x64, 0x69, 0x72, 0x65, 0x43, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x0a, 0x70, 0x69, 0x63, 0x6b, + 0x73, 0x5f, 0x62, 0x61, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x64, + 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x09, 0x70, 0x69, 0x63, 0x6b, 0x73, + 0x42, 0x61, 0x6e, 0x73, 0x22, 0xf4, 0x01, 0x0a, 0x12, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, + 0x6e, 0x4f, 0x75, 0x74, 0x42, 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x0c, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x68, 0x65, 0x61, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x68, 0x65, 0x61, 0x74, 0x73, 0x12, 0x4d, + 0x0a, 0x16, 0x62, 0x6f, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, + 0x5f, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, + 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x44, 0x4f, 0x54, 0x41, 0x42, 0x6f, 0x74, 0x44, 0x69, 0x66, + 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, 0x14, 0x62, 0x6f, 0x74, 0x44, 0x69, 0x66, 0x66, + 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x23, 0x0a, + 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x62, 0x62, 0x79, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4c, 0x6f, 0x62, + 0x62, 0x79, 0x12, 0x47, 0x0a, 0x13, 0x62, 0x6f, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, + 0x75, 0x6c, 0x74, 0x79, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x17, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x44, 0x4f, 0x54, 0x41, 0x42, 0x6f, 0x74, 0x44, 0x69, + 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, 0x11, 0x62, 0x6f, 0x74, 0x44, 0x69, 0x66, + 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x44, 0x69, 0x72, 0x65, 0x22, 0xee, 0x01, 0x0a, 0x17, + 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x54, 0x65, 0x78, 0x74, 0x4d, + 0x75, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5b, 0x0a, 0x12, 0x74, 0x65, 0x78, 0x74, 0x5f, + 0x6d, 0x75, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, + 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x75, 0x74, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x75, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x52, 0x10, 0x74, 0x65, 0x78, 0x74, 0x4d, 0x75, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x73, 0x1a, 0x76, 0x0a, 0x0f, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x75, 0x74, 0x65, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, + 0x28, 0x0a, 0x10, 0x63, 0x61, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x6d, + 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x63, 0x61, 0x75, 0x73, 0x65, + 0x64, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x75, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x61, + 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x63, 0x68, 0x61, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xd5, 0x07, 0x0a, + 0x16, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1a, + 0x0a, 0x08, 0x72, 0x61, 0x6d, 0x70, 0x61, 0x67, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x08, 0x72, 0x61, 0x6d, 0x70, 0x61, 0x67, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x72, + 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0b, 0x74, 0x72, 0x69, 0x70, 0x6c, 0x65, 0x4b, 0x69, 0x6c, 0x6c, 0x73, 0x12, 0x2e, 0x0a, + 0x13, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6c, 0x61, + 0x69, 0x6d, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x42, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x12, 0x2a, 0x0a, + 0x11, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x69, 0x76, + 0x65, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x42, + 0x6c, 0x6f, 0x6f, 0x64, 0x47, 0x69, 0x76, 0x65, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x75, + 0x72, 0x69, 0x65, 0x72, 0x73, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0e, 0x63, 0x6f, 0x75, 0x72, 0x69, 0x65, 0x72, 0x73, 0x4b, 0x69, 0x6c, 0x6c, + 0x65, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x65, 0x67, 0x69, 0x73, 0x65, 0x73, 0x5f, 0x73, 0x6e, + 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x61, 0x65, + 0x67, 0x69, 0x73, 0x65, 0x73, 0x53, 0x6e, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x12, 0x23, 0x0a, + 0x0d, 0x63, 0x68, 0x65, 0x65, 0x73, 0x65, 0x73, 0x5f, 0x65, 0x61, 0x74, 0x65, 0x6e, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x68, 0x65, 0x65, 0x73, 0x65, 0x73, 0x45, 0x61, 0x74, + 0x65, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x65, 0x70, 0x73, 0x5f, 0x73, 0x74, 0x61, + 0x63, 0x6b, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x65, + 0x70, 0x73, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x69, 0x67, + 0x68, 0x74, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, + 0x66, 0x69, 0x67, 0x68, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x61, + 0x72, 0x6d, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, + 0x66, 0x61, 0x72, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x0c, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1d, + 0x0a, 0x0a, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x09, 0x70, 0x75, 0x73, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6b, 0x69, + 0x6c, 0x6c, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x06, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, + 0x73, 0x73, 0x69, 0x73, 0x74, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x61, 0x73, + 0x73, 0x69, 0x73, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x69, + 0x74, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x69, + 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x73, 0x18, 0x15, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x06, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x70, + 0x6d, 0x18, 0x16, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x67, 0x70, 0x6d, 0x12, 0x12, 0x0a, 0x04, + 0x78, 0x70, 0x70, 0x6d, 0x18, 0x17, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x78, 0x70, 0x70, 0x6d, + 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x74, 0x5f, 0x77, 0x6f, 0x72, 0x74, 0x68, 0x18, 0x18, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x08, 0x6e, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x74, 0x68, 0x12, 0x16, 0x0a, + 0x06, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x64, + 0x61, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x65, 0x61, 0x6c, 0x73, 0x18, 0x1a, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, 0x65, 0x61, 0x6c, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x72, + 0x61, 0x70, 0x69, 0x65, 0x72, 0x73, 0x5f, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x64, + 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x72, 0x61, 0x70, 0x69, 0x65, 0x72, 0x73, 0x50, + 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x6f, 0x62, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x77, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x70, 0x6c, 0x61, 0x63, 0x65, + 0x64, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x57, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, + 0x77, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x65, 0x64, 0x18, + 0x1d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x77, 0x61, 0x72, 0x64, 0x73, 0x44, 0x65, 0x73, 0x74, + 0x72, 0x6f, 0x79, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6f, 0x62, 0x62, 0x79, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6c, 0x6f, 0x62, 0x62, 0x79, + 0x54, 0x79, 0x70, 0x65, 0x22, 0xc6, 0x07, 0x0a, 0x1f, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, + 0x6e, 0x4f, 0x75, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x53, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x64, 0x6f, 0x74, 0x61, + 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, + 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x1a, 0xcd, 0x06, + 0x0a, 0x13, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x33, 0x0a, 0x16, 0x6d, 0x61, + 0x78, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x50, + 0x69, 0x6e, 0x67, 0x73, 0x50, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, + 0x25, 0x0a, 0x0e, 0x74, 0x65, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x69, 0x6e, 0x67, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x74, 0x65, 0x61, 0x6d, 0x6d, 0x61, 0x74, + 0x65, 0x50, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x44, 0x0a, 0x1f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x65, + 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x70, 0x65, 0x72, + 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x1b, 0x6d, 0x61, 0x78, 0x54, 0x65, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x50, 0x69, 0x6e, 0x67, + 0x73, 0x50, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x2c, 0x0a, 0x12, + 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x74, 0x65, 0x61, 0x6d, 0x43, 0x68, + 0x61, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x6c, + 0x6c, 0x5f, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x61, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x74, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x77, + 0x68, 0x65, 0x65, 0x6c, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x11, 0x63, 0x68, 0x61, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x75, 0x73, 0x65, 0x73, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x70, 0x61, 0x75, 0x73, 0x65, 0x73, 0x12, 0x1a, + 0x0a, 0x08, 0x75, 0x6e, 0x70, 0x61, 0x75, 0x73, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x08, 0x75, 0x6e, 0x70, 0x61, 0x75, 0x73, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, + 0x6e, 0x65, 0x73, 0x5f, 0x64, 0x72, 0x61, 0x77, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0a, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x44, 0x72, 0x61, 0x77, 0x6e, 0x12, 0x2c, 0x0a, 0x12, 0x76, + 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x68, + 0x61, 0x74, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, + 0x74, 0x5f, 0x6d, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, + 0x68, 0x61, 0x74, 0x4d, 0x75, 0x74, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x6f, 0x69, 0x63, + 0x65, 0x5f, 0x6d, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x76, + 0x6f, 0x69, 0x63, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x73, 0x12, 0x67, 0x0a, 0x0c, 0x70, 0x69, 0x6e, + 0x67, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x44, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, + 0x75, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x0b, 0x70, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x6d, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x73, 0x5f, 0x73, 0x6f, 0x6c, 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, + 0x6f, 0x6d, 0x6d, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x53, 0x6f, 0x6c, 0x6f, 0x12, 0x2a, + 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x6d, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x5f, 0x6d, + 0x61, 0x73, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x73, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x4d, 0x61, 0x73, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, + 0x61, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x12, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, + 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x1a, 0x36, 0x0a, 0x0a, 0x50, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8e, 0x09, + 0x0a, 0x1c, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, + 0x69, 0x67, 0x6e, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, + 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x70, + 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x61, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0a, + 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x61, 0x6c, 0x74, 0x12, 0x50, 0x0a, 0x14, 0x74, 0x69, + 0x6d, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, + 0x43, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x64, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x44, 0x0a, 0x11, + 0x78, 0x70, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, + 0x53, 0x4f, 0x44, 0x4f, 0x54, 0x41, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x52, 0x0f, 0x78, 0x70, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x69, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x69, 0x64, 0x12, 0x30, + 0x0a, 0x14, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x07, 0x52, 0x12, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, + 0x12, 0x38, 0x0a, 0x0d, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, + 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, 0x41, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x0c, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x5c, 0x0a, 0x10, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x09, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, + 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x6f, 0x75, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x08, 0x6d, 0x76, 0x70, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6f, 0x74, + 0x61, 0x2e, 0x43, 0x4d, 0x76, 0x70, 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, 0x6d, 0x76, 0x70, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x24, 0x0a, 0x0e, 0x6f, 0x77, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, + 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0c, 0x6f, 0x77, 0x50, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x6f, 0x77, 0x5f, + 0x73, 0x61, 0x6c, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x07, 0x52, 0x06, 0x6f, 0x77, 0x53, 0x61, + 0x6c, 0x74, 0x12, 0x20, 0x0a, 0x0c, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, + 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6f, 0x77, 0x52, 0x65, 0x70, 0x6c, + 0x61, 0x79, 0x49, 0x64, 0x12, 0x4c, 0x0a, 0x11, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, + 0x64, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x77, + 0x6f, 0x72, 0x6c, 0x64, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, + 0x52, 0x10, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x73, 0x1a, 0xd9, 0x03, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x22, + 0x0a, 0x0d, 0x61, 0x76, 0x67, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x5f, 0x78, 0x31, 0x36, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x76, 0x67, 0x4b, 0x69, 0x6c, 0x6c, 0x73, 0x58, + 0x31, 0x36, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x76, 0x67, 0x5f, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, + 0x5f, 0x78, 0x31, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x61, 0x76, 0x67, 0x44, + 0x65, 0x61, 0x74, 0x68, 0x73, 0x58, 0x31, 0x36, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x76, 0x67, 0x5f, + 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x73, 0x5f, 0x78, 0x31, 0x36, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0d, 0x61, 0x76, 0x67, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x73, 0x58, 0x31, 0x36, + 0x12, 0x1e, 0x0a, 0x0b, 0x61, 0x76, 0x67, 0x5f, 0x67, 0x70, 0x6d, 0x5f, 0x78, 0x31, 0x36, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x76, 0x67, 0x47, 0x70, 0x6d, 0x58, 0x31, 0x36, + 0x12, 0x1e, 0x0a, 0x0b, 0x61, 0x76, 0x67, 0x5f, 0x78, 0x70, 0x6d, 0x5f, 0x78, 0x31, 0x36, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x76, 0x67, 0x58, 0x70, 0x6d, 0x58, 0x31, 0x36, + 0x12, 0x24, 0x0a, 0x0e, 0x62, 0x65, 0x73, 0x74, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x5f, 0x78, + 0x31, 0x36, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x62, 0x65, 0x73, 0x74, 0x4b, 0x69, + 0x6c, 0x6c, 0x73, 0x58, 0x31, 0x36, 0x12, 0x28, 0x0a, 0x10, 0x62, 0x65, 0x73, 0x74, 0x5f, 0x61, + 0x73, 0x73, 0x69, 0x73, 0x74, 0x73, 0x5f, 0x78, 0x31, 0x36, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0e, 0x62, 0x65, 0x73, 0x74, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x73, 0x58, 0x31, 0x36, + 0x12, 0x20, 0x0a, 0x0c, 0x62, 0x65, 0x73, 0x74, 0x5f, 0x67, 0x70, 0x6d, 0x5f, 0x78, 0x31, 0x36, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x62, 0x65, 0x73, 0x74, 0x47, 0x70, 0x6d, 0x58, + 0x31, 0x36, 0x12, 0x20, 0x0a, 0x0c, 0x62, 0x65, 0x73, 0x74, 0x5f, 0x78, 0x70, 0x6d, 0x5f, 0x78, + 0x31, 0x36, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x62, 0x65, 0x73, 0x74, 0x58, 0x70, + 0x6d, 0x58, 0x31, 0x36, 0x12, 0x1d, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x77, 0x69, 0x6e, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6b, 0x12, 0x26, 0x0a, 0x0f, 0x62, 0x65, 0x73, 0x74, 0x5f, 0x77, 0x69, 0x6e, 0x5f, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x62, 0x65, + 0x73, 0x74, 0x57, 0x69, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6b, 0x12, 0x21, 0x0a, 0x0c, 0x67, + 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0b, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x22, 0x6c, + 0x0a, 0x18, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x14, 0x74, 0x69, + 0x6d, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, + 0x43, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x64, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0xbf, 0x01, 0x0a, + 0x25, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, + 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, + 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x41, 0x74, 0x74, 0x65, 0x6d, + 0x70, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x61, 0x74, 0x74, 0x65, + 0x6d, 0x70, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x73, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0d, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x57, 0x61, 0x69, 0x74, 0x65, 0x64, 0x22, 0xb0, + 0x01, 0x0a, 0x26, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x65, 0x72, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x62, 0x61, 0x6e, + 0x64, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0e, 0x61, 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x6f, 0x75, + 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, + 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, + 0x72, 0x65, 0x74, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x22, 0xcb, 0x01, 0x0a, 0x21, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x47, + 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x27, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0c, 0x2e, 0x64, 0x6f, 0x74, 0x61, + 0x2e, 0x45, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, + 0x08, 0x6d, 0x61, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6d, 0x61, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x5f, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, + 0xb4, 0x09, 0x0a, 0x1c, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x50, 0x65, 0x72, 0x66, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x52, 0x10, 0x61, 0x76, + 0x65, 0x72, 0x61, 0x67, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, + 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x46, 0x72, 0x61, 0x6d, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x19, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, + 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x16, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, + 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x31, 0x0a, 0x15, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x72, + 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, + 0x6d, 0x70, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x02, + 0x52, 0x12, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6f, 0x6d, 0x70, + 0x75, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0e, + 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x37, + 0x0a, 0x18, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x03, 0x28, 0x02, + 0x52, 0x15, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, + 0x69, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x08, 0x20, 0x03, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x54, 0x69, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x1c, 0x61, 0x76, 0x65, 0x72, + 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x69, 0x6d, 0x75, 0x6c, + 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x02, 0x52, 0x19, + 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x69, 0x6d, + 0x75, 0x6c, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x6d, 0x61, 0x78, + 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x02, 0x52, 0x15, 0x6d, 0x61, 0x78, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x02, 0x52, + 0x11, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0d, 0x6d, 0x61, 0x78, + 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x5a, 0x0a, 0x2b, 0x61, 0x76, + 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x72, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x02, 0x52, + 0x25, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, - 0x65, 0x5f, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x03, 0x28, - 0x02, 0x52, 0x0f, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x53, 0x77, 0x61, 0x70, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x53, 0x77, - 0x61, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x19, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, - 0x65, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x03, 0x28, 0x02, 0x52, 0x16, 0x61, 0x76, 0x65, 0x72, 0x61, - 0x67, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x31, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x03, 0x28, 0x02, - 0x52, 0x12, 0x6d, 0x61, 0x78, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, - 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x03, 0x28, 0x02, 0x52, - 0x0f, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x49, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x14, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x49, 0x64, 0x6c, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x41, 0x0a, 0x1d, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x15, 0x20, 0x03, 0x28, 0x02, 0x52, 0x1a, 0x61, 0x76, 0x65, - 0x72, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, - 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x19, 0x6d, 0x61, 0x78, 0x5f, 0x69, - 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x16, 0x20, 0x03, 0x28, 0x02, 0x52, 0x16, 0x6d, 0x61, 0x78, 0x49, - 0x6e, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x54, 0x69, - 0x6d, 0x65, 0x22, 0x60, 0x0a, 0x1b, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x42, 0x61, 0x6e, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x62, 0x61, 0x6e, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x68, 0x65, 0x72, 0x6f, 0x42, 0x61, 0x6e, 0x73, 0x12, 0x24, - 0x0a, 0x0e, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x62, 0x61, 0x6e, 0x5f, 0x76, 0x6f, 0x74, 0x65, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0c, 0x68, 0x65, 0x72, 0x6f, 0x42, 0x61, 0x6e, 0x56, - 0x6f, 0x74, 0x65, 0x73, 0x22, 0xfb, 0x0d, 0x0a, 0x1c, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, - 0x41, 0x4c, 0x69, 0x76, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, - 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x6f, - 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x74, 0x6f, - 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x74, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, - 0x6e, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x6c, 0x74, 0x76, 0x5f, 0x64, 0x65, 0x6c, - 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x68, 0x6c, 0x74, 0x76, 0x44, 0x65, - 0x6c, 0x61, 0x79, 0x12, 0x44, 0x0a, 0x09, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x67, 0x6f, 0x6f, 0x64, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, - 0x73, 0x67, 0x44, 0x4f, 0x54, 0x41, 0x4c, 0x69, 0x76, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x62, - 0x6f, 0x61, 0x72, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x52, - 0x08, 0x74, 0x65, 0x61, 0x6d, 0x47, 0x6f, 0x6f, 0x64, 0x12, 0x42, 0x0a, 0x08, 0x74, 0x65, 0x61, - 0x6d, 0x5f, 0x62, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x64, 0x6f, - 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, 0x41, 0x4c, 0x69, 0x76, 0x65, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, - 0x54, 0x65, 0x61, 0x6d, 0x52, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x42, 0x61, 0x64, 0x12, 0x30, 0x0a, - 0x14, 0x72, 0x6f, 0x73, 0x68, 0x61, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x72, 0x6f, 0x73, - 0x68, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x12, - 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x1a, 0xd8, 0x0a, 0x0a, 0x04, 0x54, 0x65, 0x61, 0x6d, - 0x12, 0x48, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2e, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, - 0x41, 0x4c, 0x69, 0x76, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x61, 0x72, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x62, 0x61, 0x72, 0x72, 0x61, - 0x63, 0x6b, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x65, 0x72, 0x6f, - 0x5f, 0x70, 0x69, 0x63, 0x6b, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, 0x68, 0x65, - 0x72, 0x6f, 0x50, 0x69, 0x63, 0x6b, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x5f, - 0x62, 0x61, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x68, 0x65, 0x72, 0x6f, - 0x42, 0x61, 0x6e, 0x73, 0x1a, 0xeb, 0x08, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, - 0x1f, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x6c, 0x6f, 0x74, - 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x65, 0x72, 0x6f, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, - 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6b, 0x69, 0x6c, 0x6c, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x12, 0x16, 0x0a, - 0x06, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x64, - 0x65, 0x61, 0x74, 0x68, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x73, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x73, 0x12, - 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x69, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, - 0x64, 0x65, 0x6e, 0x69, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x64, 0x65, - 0x6e, 0x69, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x6f, 0x6c, 0x64, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x04, 0x67, 0x6f, 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, - 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x20, - 0x0a, 0x0c, 0x67, 0x6f, 0x6c, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x67, 0x6f, 0x6c, 0x64, 0x50, 0x65, 0x72, 0x4d, 0x69, 0x6e, - 0x12, 0x1c, 0x0a, 0x0a, 0x78, 0x70, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x78, 0x70, 0x50, 0x65, 0x72, 0x4d, 0x69, 0x6e, 0x12, 0x67, - 0x0a, 0x0e, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x40, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, - 0x73, 0x67, 0x44, 0x4f, 0x54, 0x41, 0x4c, 0x69, 0x76, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x62, - 0x6f, 0x61, 0x72, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x2e, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, - 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x02, 0x52, 0x10, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6f, 0x6c, - 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x30, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x30, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74, - 0x65, 0x6d, 0x31, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x31, - 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x32, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x69, 0x74, 0x65, 0x6d, 0x32, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x33, 0x18, - 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x33, 0x12, 0x14, 0x0a, 0x05, - 0x69, 0x74, 0x65, 0x6d, 0x34, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x74, 0x65, - 0x6d, 0x34, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x35, 0x18, 0x15, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x35, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, - 0x61, 0x77, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0c, 0x72, 0x65, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x12, 0x1d, 0x0a, - 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x78, 0x18, 0x18, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x58, 0x12, 0x1d, 0x0a, 0x0a, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x79, 0x18, 0x19, 0x20, 0x01, 0x28, 0x02, 0x52, - 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x59, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x65, - 0x74, 0x5f, 0x77, 0x6f, 0x72, 0x74, 0x68, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6e, - 0x65, 0x74, 0x57, 0x6f, 0x72, 0x74, 0x68, 0x12, 0x58, 0x0a, 0x09, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x69, 0x65, 0x73, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x64, 0x6f, 0x74, + 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x27, 0x6d, 0x61, 0x78, 0x5f, 0x77, 0x61, + 0x69, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x02, 0x52, 0x21, 0x6d, 0x61, 0x78, 0x57, 0x61, 0x69, 0x74, + 0x46, 0x6f, 0x72, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x43, 0x6f, + 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x76, + 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x0f, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0f, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x53, 0x77, + 0x61, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x77, + 0x61, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0b, 0x6d, + 0x61, 0x78, 0x53, 0x77, 0x61, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x19, 0x61, 0x76, + 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x03, 0x28, 0x02, 0x52, 0x16, 0x61, + 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x72, 0x61, + 0x6d, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x12, + 0x20, 0x03, 0x28, 0x02, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x76, 0x65, 0x72, + 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x13, 0x20, + 0x03, 0x28, 0x02, 0x52, 0x0f, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x49, 0x64, 0x6c, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x64, 0x6c, 0x65, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x14, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0b, 0x6d, 0x61, 0x78, + 0x49, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x41, 0x0a, 0x1d, 0x61, 0x76, 0x65, 0x72, + 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x15, 0x20, 0x03, 0x28, 0x02, 0x52, + 0x1a, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x19, 0x6d, + 0x61, 0x78, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, + 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x16, 0x20, 0x03, 0x28, 0x02, 0x52, 0x16, + 0x6d, 0x61, 0x78, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, + 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x60, 0x0a, 0x1b, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x61, + 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x42, 0x61, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x62, 0x61, + 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x68, 0x65, 0x72, 0x6f, 0x42, 0x61, + 0x6e, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x62, 0x61, 0x6e, 0x5f, 0x76, + 0x6f, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x68, 0x65, 0x72, 0x6f, + 0x42, 0x61, 0x6e, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x22, 0xfb, 0x0d, 0x0a, 0x1c, 0x43, 0x4d, 0x73, + 0x67, 0x44, 0x4f, 0x54, 0x41, 0x4c, 0x69, 0x76, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x62, 0x6f, + 0x61, 0x72, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x6f, 0x75, + 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0c, 0x74, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2c, + 0x0a, 0x12, 0x74, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x67, 0x61, 0x6d, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x74, 0x6f, 0x75, 0x72, + 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, + 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, + 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x6c, 0x74, 0x76, + 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x68, 0x6c, + 0x74, 0x76, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x44, 0x0a, 0x09, 0x74, 0x65, 0x61, 0x6d, 0x5f, + 0x67, 0x6f, 0x6f, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, 0x41, 0x4c, 0x69, 0x76, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x54, - 0x65, 0x61, 0x6d, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x41, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x09, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, - 0x73, 0x1a, 0x51, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, - 0x23, 0x0a, 0x0d, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x22, 0x9b, 0x01, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x6c, 0x74, - 0x69, 0x6d, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x6b, 0x5f, - 0x45, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x10, 0x00, 0x12, 0x20, - 0x0a, 0x1c, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x74, - 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x01, - 0x12, 0x21, 0x0a, 0x1d, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x65, 0x64, 0x73, 0x4d, 0x61, 0x6e, - 0x61, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x6c, - 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x61, 0x64, 0x79, - 0x10, 0x03, 0x22, 0x8a, 0x01, 0x0a, 0x29, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x54, 0x6f, 0x47, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, - 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x61, 0x6e, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x73, - 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6f, 0x62, 0x62, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x6f, 0x62, 0x62, 0x79, 0x54, 0x79, 0x70, 0x65, 0x22, - 0xfc, 0x03, 0x0a, 0x31, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, - 0x47, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, - 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, - 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x1a, - 0xec, 0x02, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, - 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x27, 0x0a, - 0x0f, 0x72, 0x61, 0x6e, 0x6b, 0x5f, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x72, 0x61, 0x6e, 0x6b, 0x43, 0x61, 0x6c, 0x69, - 0x62, 0x72, 0x61, 0x74, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6c, 0x6f, - 0x77, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x73, 0x5f, - 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0b, 0x69, 0x73, 0x4e, 0x65, 0x77, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x26, 0x0a, - 0x0f, 0x69, 0x73, 0x5f, 0x67, 0x75, 0x69, 0x64, 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x47, 0x75, 0x69, 0x64, 0x65, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x5f, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, - 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x62, 0x65, - 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x77, - 0x69, 0x6e, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x77, 0x69, 0x6e, 0x73, 0x12, - 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x73, 0x73, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x6c, 0x6f, 0x73, 0x73, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6d, 0x75, 0x72, 0x66, - 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0d, 0x73, 0x6d, 0x75, 0x72, 0x66, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x22, 0x73, - 0x0a, 0x1d, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, 0x41, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x54, 0x6f, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, - 0x25, 0x0a, 0x0e, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x06, 0x52, 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x4c, - 0x6f, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x62, 0x61, 0x6e, 0x64, 0x6f, - 0x6e, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x06, 0x52, 0x10, 0x61, 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x65, 0x64, 0x4c, 0x6f, 0x61, 0x64, - 0x65, 0x72, 0x73, 0x22, 0xd7, 0x02, 0x0a, 0x14, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x54, 0x6f, - 0x52, 0x65, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x31, 0x0a, 0x15, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x76, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x54, 0x76, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x41, 0x64, 0x64, 0x72, 0x12, - 0x33, 0x0a, 0x16, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x76, 0x5f, 0x70, 0x72, 0x69, - 0x76, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x13, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x76, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, - 0x41, 0x64, 0x64, 0x72, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, - 0x76, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x54, 0x76, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2f, 0x0a, 0x14, 0x67, 0x61, - 0x6d, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, - 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x67, 0x61, 0x6d, 0x65, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x31, - 0x0a, 0x15, 0x74, 0x76, 0x5f, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x72, - 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x06, 0x52, 0x12, 0x74, - 0x76, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, - 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x76, 0x5f, 0x73, - 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0f, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x54, 0x76, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x22, 0x46, 0x0a, - 0x1f, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x47, 0x43, 0x54, 0x6f, 0x4c, 0x41, 0x4e, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x53, 0x74, - 0x65, 0x61, 0x6d, 0x69, 0x64, 0x22, 0x37, 0x0a, 0x16, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x42, - 0x61, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0xaa, - 0x01, 0x0a, 0x17, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x42, 0x61, 0x6e, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6c, 0x6f, 0x77, 0x50, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x68, - 0x61, 0x74, 0x5f, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0e, 0x74, 0x65, 0x78, 0x74, 0x43, 0x68, 0x61, 0x74, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x12, - 0x2a, 0x0a, 0x11, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x62, 0x61, - 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x76, 0x6f, 0x69, 0x63, - 0x65, 0x43, 0x68, 0x61, 0x74, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x22, 0xef, 0x03, 0x0a, 0x17, - 0x43, 0x4d, 0x73, 0x67, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x74, - 0x65, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x6b, 0x69, 0x6c, 0x6c, 0x65, - 0x72, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x07, 0x52, 0x0f, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x76, 0x69, 0x63, 0x74, 0x69, 0x6d, 0x5f, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0f, - 0x76, 0x69, 0x63, 0x74, 0x69, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x3a, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x44, 0x4f, 0x54, 0x41, 0x5f, - 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, - 0x76, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, - 0x76, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x6f, 0x74, 0x61, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x6f, 0x74, 0x61, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x6f, 0x6f, 0x74, 0x5f, 0x6c, 0x69, 0x73, - 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x6f, 0x74, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x65, 0x61, 0x6d, - 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x4b, 0x69, 0x6c, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x69, - 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0b, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1f, 0x0a, - 0x0b, 0x6c, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x3d, - 0x0a, 0x0c, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x65, 0x73, 0x18, 0x0c, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x65, - 0x52, 0x0b, 0x68, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x65, 0x73, 0x22, 0x86, 0x01, - 0x0a, 0x1f, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, - 0x49, 0x74, 0x65, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x3a, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x44, 0x4f, 0x54, - 0x41, 0x5f, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, - 0x0f, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x73, 0x5f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x73, 0x47, - 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x22, 0x2c, 0x0a, 0x0f, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x65, - 0x61, 0x6d, 0x46, 0x61, 0x6e, 0x66, 0x61, 0x72, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x49, 0x64, 0x22, 0x6d, 0x0a, 0x17, 0x43, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x46, 0x61, 0x6e, 0x66, 0x61, 0x72, 0x65, 0x12, - 0x29, 0x0a, 0x10, 0x66, 0x61, 0x6e, 0x66, 0x61, 0x72, 0x65, 0x5f, 0x67, 0x6f, 0x6f, 0x64, 0x67, - 0x75, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x66, 0x61, 0x6e, 0x66, 0x61, - 0x72, 0x65, 0x47, 0x6f, 0x6f, 0x64, 0x67, 0x75, 0x79, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x66, 0x61, - 0x6e, 0x66, 0x61, 0x72, 0x65, 0x5f, 0x62, 0x61, 0x64, 0x67, 0x75, 0x79, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x66, 0x61, 0x6e, 0x66, 0x61, 0x72, 0x65, 0x42, 0x61, 0x64, 0x67, - 0x75, 0x79, 0x73, 0x22, 0xa6, 0x01, 0x0a, 0x1c, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x61, 0x6d, 0x65, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x61, 0x76, 0x65, - 0x47, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x61, 0x76, 0x65, 0x5f, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x73, 0x61, 0x76, 0x65, 0x47, - 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x6f, 0x62, 0x62, 0x79, - 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6c, 0x6f, 0x62, 0x62, 0x79, - 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x65, - 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x70, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x73, 0x22, 0xb3, 0x01, 0x0a, - 0x1c, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, - 0x61, 0x76, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x41, 0x0a, - 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, - 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, + 0x65, 0x61, 0x6d, 0x52, 0x08, 0x74, 0x65, 0x61, 0x6d, 0x47, 0x6f, 0x6f, 0x64, 0x12, 0x42, 0x0a, + 0x08, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x62, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x27, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, 0x41, 0x4c, + 0x69, 0x76, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x52, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x42, 0x61, + 0x64, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x6f, 0x73, 0x68, 0x61, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x70, + 0x61, 0x77, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x12, 0x72, 0x6f, 0x73, 0x68, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x54, 0x69, + 0x6d, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x49, 0x64, + 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x1a, 0xd8, 0x0a, 0x0a, 0x04, + 0x54, 0x65, 0x61, 0x6d, 0x12, 0x48, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, + 0x67, 0x44, 0x4f, 0x54, 0x41, 0x4c, 0x69, 0x76, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x62, 0x6f, + 0x61, 0x72, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x2e, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x14, + 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f, 0x77, 0x65, 0x72, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x61, 0x72, 0x72, 0x61, 0x63, 0x6b, + 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x62, + 0x61, 0x72, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, + 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x70, 0x69, 0x63, 0x6b, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x50, 0x69, 0x63, 0x6b, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x68, + 0x65, 0x72, 0x6f, 0x5f, 0x62, 0x61, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, + 0x68, 0x65, 0x72, 0x6f, 0x42, 0x61, 0x6e, 0x73, 0x1a, 0xeb, 0x08, 0x0a, 0x06, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x6c, + 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x65, 0x72, 0x6f, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6b, + 0x69, 0x6c, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6b, 0x69, 0x6c, 0x6c, + 0x73, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x06, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x73, 0x73, + 0x69, 0x73, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x61, 0x73, 0x73, 0x69, + 0x73, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x73, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x69, 0x74, 0x73, + 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x06, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x6f, 0x6c, 0x64, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x67, 0x6f, 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05, + 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x12, 0x20, 0x0a, 0x0c, 0x67, 0x6f, 0x6c, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6d, + 0x69, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x67, 0x6f, 0x6c, 0x64, 0x50, 0x65, + 0x72, 0x4d, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x0a, 0x78, 0x70, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6d, + 0x69, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x78, 0x70, 0x50, 0x65, 0x72, 0x4d, + 0x69, 0x6e, 0x12, 0x67, 0x0a, 0x0e, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x40, 0x2e, 0x64, 0x6f, 0x74, + 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, 0x41, 0x4c, 0x69, 0x76, 0x65, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x54, + 0x65, 0x61, 0x6d, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x44, 0x4f, 0x54, 0x41, 0x55, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x75, 0x6c, + 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, + 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, + 0x30, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x30, 0x12, 0x14, + 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x31, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, + 0x74, 0x65, 0x6d, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x32, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x32, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74, + 0x65, 0x6d, 0x33, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x33, + 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x34, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x69, 0x74, 0x65, 0x6d, 0x34, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x35, 0x18, + 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x35, 0x12, 0x23, 0x0a, 0x0d, + 0x72, 0x65, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x18, 0x16, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x54, 0x69, 0x6d, 0x65, + 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x17, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x78, 0x18, 0x18, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x58, 0x12, + 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x79, 0x18, 0x19, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x59, 0x12, 0x1b, + 0x0a, 0x09, 0x6e, 0x65, 0x74, 0x5f, 0x77, 0x6f, 0x72, 0x74, 0x68, 0x18, 0x1a, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x08, 0x6e, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x74, 0x68, 0x12, 0x58, 0x0a, 0x09, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, + 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, 0x41, 0x4c, 0x69, + 0x76, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x48, + 0x65, 0x72, 0x6f, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x09, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x51, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x9b, 0x01, 0x0a, 0x11, 0x44, 0x4f, 0x54, + 0x41, 0x55, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x22, + 0x0a, 0x1e, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x74, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x6c, 0x74, + 0x69, 0x6d, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, + 0x77, 0x6e, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x55, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x65, 0x64, + 0x73, 0x4d, 0x61, 0x6e, 0x61, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x6b, 0x5f, 0x45, 0x44, 0x4f, + 0x54, 0x41, 0x55, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x61, 0x64, 0x79, 0x10, 0x03, 0x22, 0x8a, 0x01, 0x0a, 0x29, 0x43, 0x4d, 0x73, 0x67, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x42, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x61, 0x6e, 0x6b, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x61, 0x6e, 0x6b, 0x54, + 0x79, 0x70, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6f, 0x62, 0x62, 0x79, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x6f, 0x62, 0x62, 0x79, 0x54, + 0x79, 0x70, 0x65, 0x22, 0xfc, 0x03, 0x0a, 0x31, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x07, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x64, 0x6f, 0x74, + 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x73, 0x1a, 0xec, 0x02, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1d, + 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x61, 0x6e, + 0x6b, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x61, 0x6e, 0x6b, 0x5f, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, + 0x61, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x72, 0x61, 0x6e, 0x6b, + 0x43, 0x61, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x74, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x6f, + 0x77, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0b, 0x6c, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x22, 0x0a, + 0x0d, 0x69, 0x73, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x4e, 0x65, 0x77, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x73, 0x5f, 0x67, 0x75, 0x69, 0x64, 0x65, 0x5f, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x47, 0x75, + 0x69, 0x64, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, + 0x6d, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, + 0x6f, 0x6d, 0x6d, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x65, 0x68, 0x61, + 0x76, 0x69, 0x6f, 0x72, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0d, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x12, 0x0a, 0x04, 0x77, 0x69, 0x6e, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x77, + 0x69, 0x6e, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x73, 0x73, 0x65, 0x73, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x6f, 0x73, 0x73, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, + 0x6d, 0x75, 0x72, 0x66, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0d, 0x73, 0x6d, 0x75, 0x72, 0x66, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, + 0x72, 0x79, 0x22, 0x73, 0x0a, 0x1d, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, 0x41, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x54, 0x6f, 0x43, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x6c, 0x6f, + 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x06, 0x52, 0x0d, 0x66, 0x61, 0x69, + 0x6c, 0x65, 0x64, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x62, + 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x06, 0x52, 0x10, 0x61, 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x65, 0x64, + 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x73, 0x22, 0xd7, 0x02, 0x0a, 0x14, 0x43, 0x4d, 0x73, 0x67, + 0x47, 0x43, 0x54, 0x6f, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x12, 0x31, 0x0a, 0x15, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x76, 0x5f, 0x70, 0x75, + 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x12, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x76, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x41, + 0x64, 0x64, 0x72, 0x12, 0x33, 0x0a, 0x16, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x76, + 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x13, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x76, 0x50, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x5f, 0x74, 0x76, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x76, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2f, + 0x0a, 0x14, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x74, + 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x67, 0x61, + 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, + 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x15, 0x74, 0x76, 0x5f, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, + 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x06, 0x52, 0x12, 0x74, 0x76, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, + 0x74, 0x76, 0x5f, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x06, + 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x76, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x69, + 0x64, 0x22, 0x46, 0x0a, 0x1f, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x47, 0x43, 0x54, 0x6f, 0x4c, + 0x41, 0x4e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x74, + 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0c, 0x72, 0x65, 0x6c, + 0x61, 0x79, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x22, 0x37, 0x0a, 0x16, 0x43, 0x4d, 0x73, + 0x67, 0x47, 0x43, 0x42, 0x61, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x49, 0x64, 0x22, 0xaa, 0x01, 0x0a, 0x17, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x42, 0x61, 0x6e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6c, 0x6f, + 0x77, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x65, 0x78, + 0x74, 0x5f, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0e, 0x74, 0x65, 0x78, 0x74, 0x43, 0x68, 0x61, 0x74, 0x42, 0x61, 0x6e, + 0x6e, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, + 0x74, 0x5f, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, + 0x76, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x68, 0x61, 0x74, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x22, + 0xef, 0x03, 0x0a, 0x17, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, + 0x6e, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x6b, + 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0f, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x76, 0x69, 0x63, 0x74, 0x69, + 0x6d, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x07, 0x52, 0x0f, 0x76, 0x69, 0x63, 0x74, 0x69, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x44, + 0x4f, 0x54, 0x41, 0x5f, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x19, 0x0a, 0x08, 0x74, 0x76, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x07, 0x74, 0x76, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x6f, + 0x74, 0x61, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, + 0x6f, 0x74, 0x61, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x61, + 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x72, 0x65, + 0x70, 0x6c, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x6f, 0x6f, 0x74, + 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x6f, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, + 0x65, 0x61, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x54, 0x65, 0x61, 0x6d, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x6b, 0x69, + 0x6c, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x4b, 0x69, 0x6c, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, + 0x0a, 0x0c, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x12, 0x3d, 0x0a, 0x0c, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, + 0x43, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x65, 0x52, 0x0b, 0x68, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x65, + 0x73, 0x22, 0x86, 0x01, 0x0a, 0x1f, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x61, + 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x64, 0x6f, 0x74, 0x61, + 0x2e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x73, 0x5f, 0x67, 0x72, 0x61, + 0x6e, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x76, 0x69, 0x65, 0x77, + 0x65, 0x72, 0x73, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x22, 0x2c, 0x0a, 0x0f, 0x43, 0x4d, + 0x73, 0x67, 0x54, 0x65, 0x61, 0x6d, 0x46, 0x61, 0x6e, 0x66, 0x61, 0x72, 0x65, 0x12, 0x19, 0x0a, + 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x22, 0x6d, 0x0a, 0x17, 0x43, 0x4d, 0x73, 0x67, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x46, 0x61, 0x6e, 0x66, + 0x61, 0x72, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x66, 0x61, 0x6e, 0x66, 0x61, 0x72, 0x65, 0x5f, 0x67, + 0x6f, 0x6f, 0x64, 0x67, 0x75, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x66, + 0x61, 0x6e, 0x66, 0x61, 0x72, 0x65, 0x47, 0x6f, 0x6f, 0x64, 0x67, 0x75, 0x79, 0x73, 0x12, 0x27, + 0x0a, 0x0f, 0x66, 0x61, 0x6e, 0x66, 0x61, 0x72, 0x65, 0x5f, 0x62, 0x61, 0x64, 0x67, 0x75, 0x79, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x66, 0x61, 0x6e, 0x66, 0x61, 0x72, 0x65, + 0x42, 0x61, 0x64, 0x67, 0x75, 0x79, 0x73, 0x22, 0xa6, 0x01, 0x0a, 0x1c, 0x43, 0x4d, 0x73, 0x67, + 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, + 0x53, 0x61, 0x76, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x67, 0x61, 0x6d, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x61, 0x76, 0x65, 0x5f, 0x67, 0x61, + 0x6d, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x73, + 0x61, 0x76, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x6c, + 0x6f, 0x62, 0x62, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6c, + 0x6f, 0x62, 0x62, 0x79, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x5f, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x04, + 0x52, 0x0e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x73, + 0x22, 0xb3, 0x01, 0x0a, 0x1c, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x61, 0x76, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x22, 0x50, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x61, - 0x76, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x10, 0x00, 0x12, 0x13, - 0x0a, 0x0f, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, - 0x64, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x6f, 0x6f, 0x42, 0x69, 0x67, - 0x10, 0x03, 0x22, 0x34, 0x0a, 0x19, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x61, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x12, - 0x17, 0x0a, 0x07, 0x73, 0x61, 0x76, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x06, 0x73, 0x61, 0x76, 0x65, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x1f, 0x43, 0x4d, 0x73, 0x67, - 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x61, - 0x64, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x73, - 0x61, 0x76, 0x65, 0x5f, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x73, 0x61, 0x76, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x22, 0x8f, 0x04, 0x0a, 0x18, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, 0x41, 0x41, 0x77, - 0x61, 0x72, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x4d, - 0x0a, 0x0c, 0x61, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, - 0x44, 0x4f, 0x54, 0x41, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x6f, - 0x69, 0x6e, 0x74, 0x73, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, - 0x52, 0x0b, 0x61, 0x77, 0x61, 0x72, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x19, 0x0a, - 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0c, 0x2e, 0x64, 0x6f, 0x74, - 0x61, 0x2e, 0x45, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, - 0x21, 0x0a, 0x0c, 0x61, 0x75, 0x64, 0x69, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x1a, 0x9e, 0x02, 0x0a, 0x0b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x50, 0x6f, 0x69, 0x6e, - 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x65, - 0x6d, 0x69, 0x75, 0x6d, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x6d, 0x69, 0x75, 0x6d, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, - 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x62, 0x61, 0x6e, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x64, 0x65, 0x42, - 0x61, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x20, 0x65, 0x6c, 0x69, 0x67, 0x69, 0x62, - 0x6c, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x5f, - 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x1d, 0x65, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x50, 0x65, 0x72, - 0x69, 0x6f, 0x64, 0x69, 0x63, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x42, 0x0a, 0x1e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x63, 0x61, 0x70, 0x5f, 0x70, 0x65, 0x72, - 0x69, 0x6f, 0x64, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, - 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1a, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x43, 0x61, - 0x70, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x49, 0x64, 0x22, 0x5d, 0x0a, 0x19, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x54, 0x6f, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x06, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, - 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x69, - 0x6d, 0x65, 0x22, 0x78, 0x0a, 0x1a, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x54, 0x6f, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x06, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, - 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x22, 0xa8, 0x03, 0x0a, - 0x22, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, - 0x61, 0x74, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1b, - 0x0a, 0x09, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x08, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6c, - 0x65, 0x61, 0x67, 0x75, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, - 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x64, 0x6f, 0x74, 0x61, - 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, - 0x61, 0x74, 0x73, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x49, 0x64, 0x1a, 0xc2, 0x01, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1d, 0x0a, - 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x07, 0x52, 0x02, 0x69, 0x70, 0x12, 0x1e, 0x0a, 0x0b, - 0x61, 0x76, 0x67, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x09, 0x61, 0x76, 0x67, 0x50, 0x69, 0x6e, 0x67, 0x4d, 0x73, 0x12, 0x1f, 0x0a, 0x0b, - 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x02, 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4c, 0x6f, 0x73, 0x73, 0x12, 0x25, 0x0a, - 0x0e, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x70, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x76, 0x69, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x72, 0x65, 0x73, - 0x65, 0x6e, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x66, 0x75, 0x6c, 0x6c, - 0x52, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x73, 0x22, 0x4b, 0x0a, 0x20, 0x43, 0x4d, 0x73, 0x67, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x43, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x70, 0x65, - 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x73, - 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xbe, 0x02, 0x0a, 0x14, 0x43, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, - 0x69, 0x7a, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x12, 0x18, 0x0a, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x0a, 0x64, 0x69, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x64, 0x6f, - 0x74, 0x61, 0x2e, 0x43, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x6f, - 0x6d, 0x62, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x72, 0x79, 0x52, 0x0a, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x36, - 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, 0x41, 0x43, - 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, - 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x1a, 0x8c, 0x01, 0x0a, 0x0a, 0x44, 0x69, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x4a, 0x0a, 0x07, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x53, - 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x4c, - 0x6f, 0x67, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x2e, 0x44, 0x69, - 0x63, 0x74, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x73, 0x1a, 0x32, 0x0a, 0x0a, 0x44, 0x69, 0x63, 0x74, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x02, 0x28, 0x09, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xc8, 0x01, 0x0a, 0x20, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x56, 0x69, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x50, - 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x47, 0x0a, 0x07, 0x72, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x64, 0x6f, - 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, - 0x43, 0x56, 0x69, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x07, 0x72, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x73, 0x1a, 0x5b, 0x0a, 0x06, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1d, 0x0a, - 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, - 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x69, - 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, - 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x04, 0x52, 0x07, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x73, - 0x22, 0x1d, 0x0a, 0x1b, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, - 0x47, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, - 0x42, 0x0a, 0x24, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, - 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x7d, 0x0a, 0x1f, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x54, 0x6f, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x78, - 0x69, 0x63, 0x43, 0x68, 0x61, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x5f, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x11, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x49, 0x64, 0x22, 0xca, 0x01, 0x0a, 0x1f, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x54, 0x6f, 0x47, 0x43, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x78, - 0x69, 0x63, 0x43, 0x68, 0x61, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x5f, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x11, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1c, 0x0a, - 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6c, - 0x69, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x22, - 0xee, 0x01, 0x0a, 0x27, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, - 0x47, 0x43, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x78, 0x69, 0x63, 0x43, - 0x68, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x74, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x6e, 0x5f, 0x72, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x62, 0x61, 0x6e, - 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x61, 0x6e, 0x5f, 0x64, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x62, 0x61, - 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x6f, 0x78, - 0x69, 0x63, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x02, 0x52, 0x0d, 0x74, 0x6f, 0x78, 0x69, 0x63, 0x69, 0x74, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x22, 0xe8, 0x02, 0x0a, 0x1f, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, - 0x41, 0x73, 0x73, 0x61, 0x73, 0x73, 0x69, 0x6e, 0x4d, 0x69, 0x6e, 0x69, 0x47, 0x61, 0x6d, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x0a, 0x0f, 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x5f, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x06, 0x52, 0x0e, 0x77, - 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x25, 0x0a, - 0x0e, 0x6c, 0x6f, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x06, 0x52, 0x0d, 0x6c, 0x6f, 0x73, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x5f, 0x6f, - 0x77, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x06, 0x52, 0x0c, 0x61, 0x72, 0x63, - 0x61, 0x6e, 0x61, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x73, 0x73, - 0x61, 0x73, 0x73, 0x69, 0x6e, 0x5f, 0x77, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0b, 0x61, 0x73, 0x73, 0x61, 0x73, 0x73, 0x69, 0x6e, 0x57, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0e, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x65, 0x72, 0x6f, - 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x63, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, - 0x64, 0x12, 0x34, 0x0a, 0x16, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x63, 0x6f, - 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x02, 0x52, 0x14, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x61, 0x5f, 0x69, 0x73, - 0x5f, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, - 0x70, 0x61, 0x49, 0x73, 0x52, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x22, 0x8b, 0x02, 0x0a, 0x1b, - 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x4b, 0x69, - 0x6c, 0x6c, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x69, - 0x6e, 0x67, 0x61, 0x6d, 0x65, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x69, 0x6e, 0x67, 0x61, 0x6d, 0x65, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x4b, 0x0a, 0x09, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, - 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x4b, 0x69, 0x6c, 0x6c, 0x53, - 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x2e, 0x4b, 0x69, 0x6c, 0x6c, 0x53, 0x75, 0x6d, - 0x6d, 0x61, 0x72, 0x79, 0x52, 0x09, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x1a, - 0x78, 0x0a, 0x0b, 0x4b, 0x69, 0x6c, 0x6c, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x24, - 0x0a, 0x0e, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x48, 0x65, - 0x72, 0x6f, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x76, 0x69, 0x63, 0x74, 0x69, 0x6d, 0x5f, 0x68, - 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x76, 0x69, - 0x63, 0x74, 0x69, 0x6d, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6b, 0x69, - 0x6c, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, - 0x6b, 0x69, 0x6c, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xeb, 0x03, 0x0a, 0x1e, 0x43, 0x4d, - 0x73, 0x67, 0x47, 0x43, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x72, 0x65, 0x64, - 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1d, 0x0a, 0x0a, + 0x74, 0x12, 0x41, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x29, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x61, 0x6d, + 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x61, 0x76, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x22, 0x50, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, + 0x0a, 0x0e, 0x53, 0x61, 0x76, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, + 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, + 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x6f, + 0x6f, 0x42, 0x69, 0x67, 0x10, 0x03, 0x22, 0x34, 0x0a, 0x19, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x61, + 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x61, 0x64, 0x47, + 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x61, 0x76, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x61, 0x76, 0x65, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x1f, + 0x43, 0x4d, 0x73, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x65, + 0x74, 0x4c, 0x6f, 0x61, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, + 0x24, 0x0a, 0x0e, 0x73, 0x61, 0x76, 0x65, 0x5f, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x73, 0x61, 0x76, 0x65, 0x47, 0x61, 0x6d, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x22, 0x8f, 0x04, 0x0a, 0x18, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x4f, + 0x54, 0x41, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, + 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x0c, 0x61, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, + 0x43, 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, 0x41, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x50, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x52, 0x0b, 0x61, 0x77, 0x61, 0x72, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, + 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x08, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0c, + 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x45, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x75, 0x64, 0x69, 0x74, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x9e, 0x02, 0x0a, 0x0b, 0x41, 0x77, 0x61, 0x72, 0x64, + 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x25, 0x0a, + 0x0e, 0x70, 0x72, 0x65, 0x6d, 0x69, 0x75, 0x6d, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x6d, 0x69, 0x75, 0x6d, 0x50, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x62, 0x61, + 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x72, + 0x61, 0x64, 0x65, 0x42, 0x61, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x20, 0x65, 0x6c, + 0x69, 0x67, 0x69, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, + 0x64, 0x69, 0x63, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x1d, 0x65, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x6c, 0x65, 0x46, 0x6f, + 0x72, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x1e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x63, 0x61, 0x70, + 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1a, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x43, 0x61, 0x70, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x22, 0x5d, 0x0a, 0x19, 0x43, 0x4d, 0x73, 0x67, 0x47, + 0x43, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x78, 0x0a, 0x1a, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, + 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x22, 0xa8, 0x03, 0x0a, 0x22, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, + 0x6f, 0x47, 0x43, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, + 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x07, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, + 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, + 0x6f, 0x47, 0x43, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x07, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x1a, 0xc2, 0x01, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x07, 0x52, 0x02, 0x69, 0x70, + 0x12, 0x1e, 0x0a, 0x0b, 0x61, 0x76, 0x67, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x76, 0x67, 0x50, 0x69, 0x6e, 0x67, 0x4d, 0x73, + 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4c, 0x6f, 0x73, + 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x70, 0x69, 0x6e, 0x67, 0x44, + 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x75, 0x6c, 0x6c, + 0x5f, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, + 0x66, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x73, 0x22, 0x4b, 0x0a, 0x20, 0x43, + 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x43, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x53, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x27, 0x0a, 0x0f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x61, + 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xbe, 0x02, 0x0a, 0x14, 0x43, 0x53, 0x65, + 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x4c, 0x6f, + 0x67, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x0a, 0x64, + 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x2e, 0x44, 0x69, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x52, 0x0a, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x72, 0x79, 0x12, 0x36, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, + 0x4f, 0x54, 0x41, 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x1a, 0x8c, 0x01, 0x0a, 0x0a, 0x44, + 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x4a, 0x0a, 0x07, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x64, 0x6f, 0x74, + 0x61, 0x2e, 0x43, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x6f, 0x6d, + 0x62, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, + 0x79, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x73, 0x1a, 0x32, 0x0a, 0x0a, 0x44, 0x69, 0x63, 0x74, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x02, + 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xd8, 0x02, 0x0a, 0x20, 0x43, 0x4d, + 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x56, 0x69, 0x63, 0x74, + 0x6f, 0x72, 0x79, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x47, + 0x0a, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2d, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x54, 0x6f, 0x47, 0x43, 0x56, 0x69, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x65, 0x64, + 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x07, + 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x1a, 0x44, 0x0a, 0x0e, 0x50, 0x72, 0x65, 0x64, 0x69, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x74, 0x65, + 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, + 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x66, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x69, 0x74, 0x65, 0x6d, 0x44, 0x65, 0x66, 0x1a, 0xa4, 0x01, + 0x0a, 0x06, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x5f, + 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x04, 0x52, 0x07, 0x69, 0x74, 0x65, 0x6d, 0x49, + 0x64, 0x73, 0x12, 0x60, 0x0a, 0x10, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x64, + 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, + 0x47, 0x43, 0x56, 0x69, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x74, 0x65, 0x6d, 0x52, 0x0f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x74, 0x65, 0x6d, 0x73, 0x22, 0x1d, 0x0a, 0x1b, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x22, 0x42, 0x0a, 0x24, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x54, 0x6f, 0x47, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7d, 0x0a, 0x1f, 0x43, 0x4d, 0x73, 0x67, 0x47, + 0x43, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, + 0x65, 0x54, 0x6f, 0x78, 0x69, 0x63, 0x43, 0x68, 0x61, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x11, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0xca, 0x01, 0x0a, 0x1f, 0x43, 0x4d, 0x73, 0x67, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, + 0x65, 0x54, 0x6f, 0x78, 0x69, 0x63, 0x43, 0x68, 0x61, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x11, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, + 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, + 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6c, + 0x69, 0x6e, 0x65, 0x22, 0xee, 0x01, 0x0a, 0x27, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x54, 0x6f, + 0x78, 0x69, 0x63, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x2a, 0x0a, 0x11, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x62, + 0x61, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x09, 0x62, 0x61, 0x6e, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x61, + 0x6e, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0b, 0x62, 0x61, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, + 0x0e, 0x74, 0x6f, 0x78, 0x69, 0x63, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x74, 0x6f, 0x78, 0x69, 0x63, 0x69, 0x74, 0x79, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x22, 0xe8, 0x02, 0x0a, 0x1f, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, + 0x6e, 0x4f, 0x75, 0x74, 0x41, 0x73, 0x73, 0x61, 0x73, 0x73, 0x69, 0x6e, 0x4d, 0x69, 0x6e, 0x69, + 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x0a, 0x0f, 0x77, 0x69, 0x6e, 0x6e, + 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x06, 0x52, 0x0e, 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x6f, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x06, 0x52, 0x0d, 0x6c, 0x6f, 0x73, 0x69, 0x6e, + 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x72, 0x63, 0x61, + 0x6e, 0x61, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x06, 0x52, + 0x0c, 0x61, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x21, 0x0a, + 0x0c, 0x61, 0x73, 0x73, 0x61, 0x73, 0x73, 0x69, 0x6e, 0x5f, 0x77, 0x6f, 0x6e, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0b, 0x61, 0x73, 0x73, 0x61, 0x73, 0x73, 0x69, 0x6e, 0x57, 0x6f, 0x6e, + 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, + 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x14, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x43, + 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x70, + 0x61, 0x5f, 0x69, 0x73, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0b, 0x70, 0x61, 0x49, 0x73, 0x52, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x22, + 0x8b, 0x02, 0x0a, 0x1b, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, + 0x47, 0x43, 0x4b, 0x69, 0x6c, 0x6c, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x12, + 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x67, 0x61, 0x6d, 0x65, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x69, 0x6e, 0x67, 0x61, 0x6d, 0x65, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x4b, 0x0a, 0x09, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, + 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x64, 0x6f, 0x74, 0x61, + 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x4b, + 0x69, 0x6c, 0x6c, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x2e, 0x4b, 0x69, 0x6c, + 0x6c, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x09, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, + 0x69, 0x65, 0x73, 0x1a, 0x78, 0x0a, 0x0b, 0x4b, 0x69, 0x6c, 0x6c, 0x53, 0x75, 0x6d, 0x6d, 0x61, + 0x72, 0x79, 0x12, 0x24, 0x0a, 0x0e, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x68, 0x65, 0x72, + 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6b, 0x69, 0x6c, 0x6c, + 0x65, 0x72, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x76, 0x69, 0x63, 0x74, + 0x69, 0x6d, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0c, 0x76, 0x69, 0x63, 0x74, 0x69, 0x6d, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1d, + 0x0a, 0x0a, 0x6b, 0x69, 0x6c, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x6b, 0x69, 0x6c, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x58, 0x0a, + 0x1e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x4c, + 0x6f, 0x63, 0x6b, 0x43, 0x68, 0x61, 0x72, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x12, + 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, + 0x0a, 0x07, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x22, 0xc7, 0x03, 0x0a, 0x20, 0x43, 0x4d, 0x73, 0x67, + 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, - 0x12, 0x51, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, - 0x67, 0x47, 0x43, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x72, 0x65, 0x64, 0x69, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x50, 0x72, 0x65, 0x64, - 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x1a, 0xa1, 0x02, 0x0a, 0x0a, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x66, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x69, 0x74, 0x65, 0x6d, 0x44, 0x65, 0x66, 0x12, 0x1f, 0x0a, - 0x0b, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x12, 0x1b, - 0x0a, 0x09, 0x6e, 0x75, 0x6d, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x46, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x4f, 0x0a, 0x06, 0x72, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x64, 0x6f, - 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2a, 0x0a, 0x11, - 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x66, - 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, - 0x49, 0x74, 0x65, 0x6d, 0x44, 0x65, 0x66, 0x73, 0x22, 0x3d, 0x0a, 0x07, 0x45, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x12, 0x19, 0x0a, 0x15, 0x6b, 0x5f, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x17, - 0x0a, 0x13, 0x6b, 0x5f, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x44, 0x65, 0x73, 0x74, - 0x72, 0x6f, 0x79, 0x65, 0x64, 0x10, 0x02, 0x22, 0x58, 0x0a, 0x1e, 0x43, 0x4d, 0x73, 0x67, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x4c, 0x6f, 0x63, 0x6b, 0x43, 0x68, 0x61, - 0x72, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x74, 0x65, 0x6d, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, - 0x64, 0x22, 0xc7, 0x03, 0x0a, 0x20, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, + 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x4e, 0x0a, 0x09, 0x63, + 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, + 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x61, - 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x4e, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, - 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, - 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, - 0x2e, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x4c, 0x0a, 0x08, 0x72, 0x65, 0x72, 0x6f, 0x6c, 0x6c, 0x65, - 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, - 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x2e, - 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x08, 0x72, 0x65, 0x72, 0x6f, 0x6c, - 0x6c, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x17, - 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x1a, 0xb1, 0x01, 0x0a, 0x09, 0x43, 0x68, 0x61, 0x6c, - 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x12, 0x27, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0c, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x45, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, - 0x0a, 0x07, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x06, 0x73, 0x6c, 0x6f, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, - 0x65, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x68, - 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x6e, 0x6b, 0x22, 0x8e, 0x01, 0x0a, 0x23, - 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x52, 0x65, - 0x72, 0x6f, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, - 0x6e, 0x67, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x48, 0x0a, 0x0a, 0x72, 0x65, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x6d, 0x73, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, - 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x52, 0x65, 0x72, 0x6f, - 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, - 0x65, 0x52, 0x09, 0x72, 0x65, 0x72, 0x6f, 0x6c, 0x6c, 0x4d, 0x73, 0x67, 0x22, 0xbf, 0x02, 0x0a, - 0x0e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x57, 0x61, 0x67, 0x65, 0x72, 0x12, - 0x35, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x70, 0x65, 0x6e, - 0x64, 0x57, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x07, 0x70, + 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, + 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x4c, 0x0a, 0x08, 0x72, + 0x65, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, + 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6c, + 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, + 0x08, 0x72, 0x65, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x1a, 0xb1, 0x01, + 0x0a, 0x09, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x12, 0x27, 0x0a, 0x08, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0c, 0x2e, + 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x45, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x6c, 0x6f, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, + 0x0b, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1a, + 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x68, + 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x6e, + 0x6b, 0x22, 0x8e, 0x01, 0x0a, 0x23, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x54, 0x6f, 0x47, 0x43, 0x52, 0x65, 0x72, 0x6f, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x0a, 0x72, 0x65, 0x72, 0x6f, + 0x6c, 0x6c, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x64, + 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, + 0x47, 0x43, 0x52, 0x65, 0x72, 0x6f, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, + 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x09, 0x72, 0x65, 0x72, 0x6f, 0x6c, 0x6c, 0x4d, + 0x73, 0x67, 0x22, 0xbf, 0x02, 0x0a, 0x0e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x70, 0x65, 0x6e, 0x64, + 0x57, 0x61, 0x67, 0x65, 0x72, 0x12, 0x35, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, + 0x73, 0x67, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x57, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x27, 0x0a, 0x08, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0c, + 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x45, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x26, + 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, + 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x1a, 0x6c, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x14, 0x0a, 0x05, 0x77, 0x61, 0x67, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x77, 0x61, 0x67, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x13, 0x77, 0x61, 0x67, 0x65, 0x72, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x10, 0x77, 0x61, 0x67, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x74, + 0x65, 0x6d, 0x49, 0x64, 0x22, 0x8a, 0x03, 0x0a, 0x12, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, + 0x6e, 0x4f, 0x75, 0x74, 0x58, 0x50, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x12, 0x39, 0x0a, 0x07, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x64, + 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x58, + 0x50, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x27, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0c, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x45, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x19, 0x0a, - 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x5f, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, - 0x1a, 0x6c, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x61, 0x67, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x77, 0x61, 0x67, 0x65, 0x72, 0x12, - 0x2d, 0x0a, 0x13, 0x77, 0x61, 0x67, 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, - 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x77, 0x61, - 0x67, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x22, 0x8a, - 0x03, 0x0a, 0x12, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x58, 0x50, - 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x12, 0x39, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, - 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x58, 0x50, 0x43, 0x6f, 0x69, 0x6e, 0x73, - 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, - 0x12, 0x27, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x0c, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x45, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x1a, 0xd6, 0x01, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1d, 0x0a, - 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, - 0x78, 0x70, 0x5f, 0x67, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x08, 0x78, 0x70, 0x47, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x69, - 0x6e, 0x73, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, - 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x53, 0x70, 0x65, 0x6e, 0x74, 0x12, 0x2d, 0x0a, 0x13, 0x77, 0x61, - 0x67, 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x77, 0x61, 0x67, 0x65, 0x72, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x61, 0x6e, - 0x6b, 0x5f, 0x77, 0x61, 0x67, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, - 0x61, 0x6e, 0x6b, 0x57, 0x61, 0x67, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x61, 0x67, 0x65, - 0x72, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, - 0x77, 0x61, 0x67, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6b, 0x22, 0xca, 0x02, 0x0a, 0x13, - 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x74, - 0x69, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x08, 0x62, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, - 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x65, 0x73, - 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x74, 0x79, 0x52, 0x08, 0x62, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x65, - 0x73, 0x12, 0x27, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x0c, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x45, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x1a, 0x92, 0x01, 0x0a, 0x06, 0x42, 0x6f, 0x75, 0x6e, 0x74, 0x79, 0x12, 0x2a, - 0x0a, 0x11, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x69, 0x73, 0x73, 0x75, 0x65, - 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x63, 0x6f, - 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x96, 0x02, 0x0a, 0x20, 0x43, 0x4d, 0x73, - 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, - 0x79, 0x47, 0x6f, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x27, 0x0a, - 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x0c, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x45, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x64, 0x0a, 0x10, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x39, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, - 0x4f, 0x75, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x47, 0x6f, 0x61, 0x6c, - 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x47, 0x6f, - 0x61, 0x6c, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0f, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x63, 0x0a, 0x12, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x47, 0x6f, 0x61, 0x6c, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x67, 0x6f, 0x61, 0x6c, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x47, 0x6f, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x33, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x54, 0x6f, 0x47, 0x43, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x64, - 0x69, 0x75, 0x6d, 0x49, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x56, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x6c, 0x74, 0x76, 0x5f, 0x64, 0x65, 0x6c, - 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x68, 0x6c, 0x74, 0x76, 0x44, 0x65, - 0x6c, 0x61, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x49, 0x64, - 0x22, 0x55, 0x0a, 0x3b, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, - 0x47, 0x43, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x75, - 0x6d, 0x49, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x56, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x8f, 0x03, 0x0a, 0x2f, 0x43, 0x4d, 0x73, 0x67, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x6e, - 0x64, 0x69, 0x75, 0x6d, 0x49, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x60, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, - 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x43, 0x6f, 0x6d, + 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x1a, 0xd6, 0x01, 0x0a, 0x06, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x78, 0x70, 0x5f, 0x67, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x78, 0x70, 0x47, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x12, + 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x53, 0x70, 0x65, 0x6e, 0x74, + 0x12, 0x2d, 0x0a, 0x13, 0x77, 0x61, 0x67, 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, + 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x77, + 0x61, 0x67, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, + 0x1d, 0x0a, 0x0a, 0x72, 0x61, 0x6e, 0x6b, 0x5f, 0x77, 0x61, 0x67, 0x65, 0x72, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x61, 0x6e, 0x6b, 0x57, 0x61, 0x67, 0x65, 0x72, 0x12, 0x21, + 0x0a, 0x0c, 0x77, 0x61, 0x67, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6b, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x77, 0x61, 0x67, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6b, 0x22, 0xca, 0x02, 0x0a, 0x13, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, + 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x08, 0x62, 0x6f, 0x75, + 0x6e, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x64, 0x6f, + 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x42, 0x6f, + 0x75, 0x6e, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x74, 0x79, 0x52, 0x08, 0x62, + 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0c, 0x2e, 0x64, 0x6f, 0x74, 0x61, + 0x2e, 0x45, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x1a, 0x92, 0x01, 0x0a, 0x06, 0x42, 0x6f, + 0x75, 0x6e, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x5f, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x30, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, + 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x96, + 0x02, 0x0a, 0x20, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x43, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x47, 0x6f, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x27, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0c, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x45, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x64, 0x0a, 0x10, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, + 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, + 0x74, 0x79, 0x47, 0x6f, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x47, 0x6f, 0x61, 0x6c, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x0f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x1a, 0x63, 0x0a, 0x12, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x47, 0x6f, 0x61, 0x6c, 0x49, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x5f, 0x67, 0x6f, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x47, 0x6f, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x33, 0x43, 0x4d, 0x73, 0x67, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, + 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x75, 0x6d, 0x49, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x50, + 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x12, + 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x6c, + 0x74, 0x76, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, + 0x68, 0x6c, 0x74, 0x76, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x61, + 0x67, 0x75, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x65, + 0x61, 0x67, 0x75, 0x65, 0x49, 0x64, 0x22, 0x55, 0x0a, 0x3b, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x75, 0x6d, 0x49, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, - 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x2e, 0x50, - 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, - 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x61, 0x67, - 0x75, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x65, 0x61, - 0x67, 0x75, 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x5f, - 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6c, - 0x65, 0x61, 0x67, 0x75, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x1a, 0x9b, 0x01, 0x0a, 0x10, + 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x8f, 0x03, + 0x0a, 0x2f, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, + 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x75, 0x6d, 0x49, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x12, 0x37, 0x0a, 0x18, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x69, 0x73, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x15, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x49, 0x73, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x8d, 0x02, 0x0a, 0x2f, 0x43, 0x4d, - 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x43, 0x6f, 0x6d, 0x70, - 0x65, 0x6e, 0x64, 0x69, 0x75, 0x6d, 0x43, 0x68, 0x6f, 0x73, 0x65, 0x6e, 0x49, 0x6e, 0x47, 0x61, - 0x6d, 0x65, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x19, 0x0a, - 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x6f, 0x0a, 0x12, 0x70, 0x72, 0x65, 0x64, - 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x68, 0x6f, 0x73, 0x65, 0x6e, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x6e, - 0x64, 0x69, 0x75, 0x6d, 0x43, 0x68, 0x6f, 0x73, 0x65, 0x6e, 0x49, 0x6e, 0x47, 0x61, 0x6d, 0x65, - 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x50, 0x72, 0x65, 0x64, - 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x43, 0x68, 0x6f, 0x73, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x61, - 0x67, 0x75, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x65, - 0x61, 0x67, 0x75, 0x65, 0x49, 0x64, 0x1a, 0x31, 0x0a, 0x0a, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x72, 0x65, - 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x7e, 0x0a, 0x2b, 0x43, 0x4d, 0x73, - 0x67, 0x47, 0x43, 0x54, 0x6f, 0x47, 0x43, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x75, - 0x6d, 0x49, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x4f, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x64, 0x6f, 0x74, 0x61, - 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x43, - 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x75, 0x6d, 0x49, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x50, - 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, - 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0xc0, 0x05, 0x0a, 0x2c, 0x43, 0x4d, - 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x75, 0x72, 0x63, 0x68, - 0x61, 0x73, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x6d, 0x72, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x03, 0x6d, 0x6d, 0x72, 0x12, 0x53, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, - 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x75, 0x72, - 0x63, 0x68, 0x61, 0x73, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x1a, 0xc2, 0x01, 0x0a, - 0x0c, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x69, 0x74, 0x65, - 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x04, 0x67, 0x6f, 0x6c, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x74, 0x5f, 0x77, 0x6f, 0x72, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6e, 0x65, 0x74, 0x57, 0x6f, 0x72, - 0x74, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x74, 0x65, - 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x61, 0x6c, 0x65, - 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x08, 0x52, 0x0e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x65, - 0x64, 0x1a, 0xc8, 0x02, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x1d, 0x0a, - 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, - 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, - 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x5f, - 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0d, - 0x61, 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x12, 0x24, 0x0a, - 0x0e, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x48, 0x65, 0x72, 0x6f, - 0x49, 0x64, 0x73, 0x12, 0x66, 0x0a, 0x0e, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x75, 0x72, 0x63, - 0x68, 0x61, 0x73, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x64, 0x6f, - 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, - 0x43, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, - 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x49, 0x74, 0x65, 0x6d, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x52, 0x0d, 0x69, 0x74, - 0x65, 0x6d, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6c, - 0x61, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6c, 0x61, 0x6e, 0x65, 0x12, - 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x57, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x22, 0xe7, 0x04, 0x0a, - 0x30, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x65, 0x75, 0x74, 0x72, 0x61, - 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x71, 0x75, 0x69, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, - 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x57, 0x0a, 0x07, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, + 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x60, 0x0a, 0x07, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, - 0x6f, 0x47, 0x43, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x65, - 0x75, 0x74, 0x72, 0x61, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x71, 0x75, 0x69, 0x70, 0x48, 0x69, - 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x07, 0x70, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x73, 0x1a, 0xc6, 0x01, 0x0a, 0x09, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x71, - 0x75, 0x69, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x27, 0x0a, - 0x0f, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x64, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x08, 0x52, 0x0e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x73, 0x53, - 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x17, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x65, 0x75, 0x74, 0x72, 0x61, 0x6c, 0x5f, 0x69, 0x74, 0x65, 0x6d, - 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x15, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x4e, 0x65, 0x75, 0x74, 0x72, 0x61, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0xf5, - 0x01, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x6c, 0x6c, 0x69, - 0x65, 0x64, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, - 0x12, 0x24, 0x0a, 0x0e, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, - 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x48, - 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x12, 0x61, 0x0a, 0x0b, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x65, - 0x71, 0x75, 0x69, 0x70, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x64, 0x6f, - 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, - 0x43, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x65, 0x75, 0x74, - 0x72, 0x61, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x71, 0x75, 0x69, 0x70, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x71, 0x75, 0x69, 0x70, 0x52, 0x0a, 0x69, - 0x74, 0x65, 0x6d, 0x45, 0x71, 0x75, 0x69, 0x70, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, - 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, - 0x57, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x22, 0xf1, 0x08, 0x0a, 0x1f, 0x43, 0x4d, 0x73, 0x67, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, - 0x5f, 0x77, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x72, 0x61, 0x64, 0x69, - 0x61, 0x6e, 0x74, 0x57, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x6d, 0x72, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6d, 0x6d, 0x72, 0x12, 0x53, 0x0a, 0x0c, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, - 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x54, 0x6f, 0x47, 0x43, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x69, - 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x1a, 0x8d, 0x02, - 0x0a, 0x0b, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x17, 0x0a, - 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, - 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x74, 0x5f, 0x77, 0x6f, - 0x72, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6e, 0x65, 0x74, 0x57, 0x6f, - 0x72, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x61, - 0x74, 0x68, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x64, 0x65, 0x61, 0x74, 0x68, - 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x70, 0x61, 0x77, 0x6e, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x61, 0x73, 0x5f, 0x62, 0x75, 0x79, 0x62, - 0x61, 0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x68, 0x61, 0x73, 0x42, 0x75, - 0x79, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x61, 0x65, 0x67, - 0x69, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, 0x61, 0x73, 0x41, 0x65, 0x67, - 0x69, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x5f, 0x72, 0x61, 0x70, 0x69, 0x65, 0x72, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68, 0x61, 0x73, 0x52, 0x61, 0x70, 0x69, 0x65, - 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x1a, 0xc8, 0x03, - 0x0a, 0x09, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, - 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x12, - 0x56, 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, - 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x6f, 0x77, 0x65, 0x72, - 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x70, 0x63, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x0e, 0x74, 0x6f, 0x77, 0x65, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x50, 0x63, - 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x62, 0x61, 0x72, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x68, 0x65, - 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x70, 0x63, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x11, - 0x62, 0x61, 0x72, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x50, 0x63, - 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x6e, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x61, - 0x6c, 0x74, 0x68, 0x5f, 0x70, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x61, - 0x6e, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x50, 0x63, 0x74, 0x12, - 0x25, 0x0a, 0x0e, 0x67, 0x6c, 0x79, 0x70, 0x68, 0x5f, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, - 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x67, 0x6c, 0x79, 0x70, 0x68, 0x43, 0x6f, - 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x12, 0x2e, 0x0a, 0x13, - 0x63, 0x72, 0x65, 0x65, 0x70, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x73, - 0x61, 0x66, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x63, 0x72, 0x65, 0x65, 0x70, - 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x61, 0x66, 0x65, 0x12, 0x2c, 0x0a, 0x12, - 0x63, 0x72, 0x65, 0x65, 0x70, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6d, - 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x63, 0x72, 0x65, 0x65, 0x70, 0x44, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x72, - 0x65, 0x65, 0x70, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6f, 0x66, 0x66, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x63, 0x72, 0x65, 0x65, 0x70, 0x44, 0x69, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4f, 0x66, 0x66, 0x1a, 0xcf, 0x01, 0x0a, 0x0a, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x54, 0x0a, 0x0d, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x64, 0x6f, - 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, - 0x43, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x72, 0x61, - 0x64, 0x69, 0x61, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x4e, 0x0a, 0x0a, 0x64, 0x69, - 0x72, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, - 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x54, 0x6f, 0x47, 0x43, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x69, - 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, - 0x09, 0x64, 0x69, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0xa2, 0x01, 0x0a, 0x1a, 0x43, - 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x74, 0x65, - 0x61, 0x6d, 0x4d, 0x4c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x51, 0x0a, 0x0b, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, + 0x6f, 0x47, 0x43, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x75, 0x6d, 0x49, 0x6e, 0x47, + 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x73, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x1b, + 0x0a, 0x09, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x08, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x6c, + 0x65, 0x61, 0x67, 0x75, 0x65, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, + 0x64, 0x1a, 0x9b, 0x01, 0x0a, 0x10, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, + 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x70, + 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x69, 0x73, 0x5f, 0x6d, 0x61, + 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x49, 0x73, 0x4d, 0x61, 0x73, 0x6b, 0x22, + 0x8d, 0x02, 0x0a, 0x2f, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, + 0x47, 0x43, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x75, 0x6d, 0x43, 0x68, 0x6f, 0x73, + 0x65, 0x6e, 0x49, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x6f, + 0x0a, 0x12, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x68, + 0x6f, 0x73, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x64, 0x6f, 0x74, + 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, + 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x75, 0x6d, 0x43, 0x68, 0x6f, 0x73, 0x65, 0x6e, + 0x49, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x70, 0x72, + 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x68, 0x6f, 0x73, 0x65, 0x6e, 0x12, + 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x49, 0x64, 0x1a, 0x31, 0x0a, 0x0a, + 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, + 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, + 0x7e, 0x0a, 0x2b, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x54, 0x6f, 0x47, 0x43, 0x43, 0x6f, 0x6d, + 0x70, 0x65, 0x6e, 0x64, 0x69, 0x75, 0x6d, 0x49, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, + 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x4f, + 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x35, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x54, 0x6f, 0x47, 0x43, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x75, 0x6d, 0x49, + 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, + 0xc0, 0x05, 0x0a, 0x2c, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, + 0x47, 0x43, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, + 0x6d, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6d, + 0x6d, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6d, 0x6d, 0x72, 0x12, 0x53, 0x0a, + 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x54, 0x6f, 0x47, 0x43, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x69, - 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x0a, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x6d, 0x6d, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6d, 0x6d, 0x72, 0x12, 0x1f, - 0x0a, 0x0b, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x77, 0x6f, 0x6e, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0a, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x57, 0x6f, 0x6e, 0x22, - 0x50, 0x0a, 0x1d, 0x43, 0x4d, 0x73, 0x67, 0x4c, 0x61, 0x6e, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4d, 0x4c, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x19, 0x0a, 0x08, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6c, - 0x61, 0x6e, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x61, 0x6e, 0x65, - 0x73, 0x22, 0xd0, 0x01, 0x0a, 0x20, 0x43, 0x4d, 0x73, 0x67, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4d, - 0x4c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x6d, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6d, 0x6d, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, - 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, - 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x6e, 0x65, 0x6d, 0x79, - 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x61, 0x6e, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6c, 0x61, 0x6e, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x22, 0xe2, 0x01, 0x0a, 0x23, 0x43, 0x4d, 0x73, 0x67, 0x49, 0x74, 0x65, - 0x6d, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x50, 0x72, 0x65, 0x67, 0x61, 0x6d, 0x65, - 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4d, 0x4c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6d, 0x6d, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6d, 0x6d, 0x72, 0x12, 0x12, - 0x0a, 0x04, 0x6c, 0x61, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6c, 0x61, - 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x02, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x17, 0x0a, 0x07, - 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, - 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x5f, - 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0d, - 0x61, 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x12, 0x24, 0x0a, - 0x0e, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, - 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x48, 0x65, 0x72, 0x6f, - 0x49, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0xf4, 0x01, 0x0a, 0x1c, 0x43, 0x4d, - 0x73, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x53, 0x74, - 0x65, 0x61, 0x6d, 0x4d, 0x4c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x6d, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6d, 0x6d, 0x72, 0x12, 0x12, 0x0a, 0x04, - 0x6c, 0x61, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6c, 0x61, 0x6e, 0x65, - 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x6c, 0x6c, - 0x69, 0x65, 0x64, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, - 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, - 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x6e, 0x65, 0x6d, 0x79, - 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, - 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x31, 0x0a, - 0x15, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x62, 0x65, 0x5f, 0x70, 0x75, 0x72, - 0x63, 0x68, 0x61, 0x73, 0x65, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x12, 0x69, 0x74, - 0x65, 0x6d, 0x73, 0x54, 0x6f, 0x42, 0x65, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x64, - 0x22, 0xfa, 0x01, 0x0a, 0x24, 0x43, 0x4d, 0x73, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x75, 0x72, - 0x63, 0x68, 0x61, 0x73, 0x65, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x65, - 0x61, 0x6d, 0x4d, 0x4c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x6d, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6d, 0x6d, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6c, - 0x61, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6c, 0x61, 0x6e, 0x65, 0x12, - 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x6c, 0x6c, 0x69, - 0x65, 0x64, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, - 0x12, 0x24, 0x0a, 0x0e, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, - 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x48, - 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, - 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2f, 0x0a, 0x14, - 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x74, 0x6f, 0x5f, 0x62, 0x65, 0x5f, 0x70, 0x75, 0x72, 0x63, 0x68, - 0x61, 0x73, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x69, 0x74, 0x65, 0x6d, - 0x54, 0x6f, 0x42, 0x65, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x64, 0x22, 0xcd, 0x01, - 0x0a, 0x25, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, - 0x43, 0x61, 0x76, 0x65, 0x72, 0x6e, 0x43, 0x72, 0x61, 0x77, 0x6c, 0x49, 0x73, 0x48, 0x65, 0x72, - 0x6f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x6d, - 0x61, 0x70, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x13, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x4d, 0x61, 0x70, 0x56, 0x61, - 0x72, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1d, - 0x0a, 0x0a, 0x74, 0x75, 0x72, 0x62, 0x6f, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x09, 0x74, 0x75, 0x72, 0x62, 0x6f, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0xee, 0x04, - 0x0a, 0x24, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, - 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x61, 0x6e, - 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, - 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x67, 0x0a, 0x11, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, - 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x3a, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x54, 0x6f, 0x47, 0x43, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6c, 0x6c, - 0x65, 0x6e, 0x67, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x10, 0x63, 0x68, 0x61, - 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x1a, 0x9e, 0x03, - 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, - 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x48, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, - 0x45, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x63, 0x68, 0x61, - 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x68, - 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x49, 0x64, 0x31, 0x12, - 0x23, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x32, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, - 0x65, 0x49, 0x64, 0x32, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x45, 0x6e, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x77, 0x6f, 0x6e, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x57, 0x6f, 0x6e, 0x12, - 0x1d, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x17, - 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x61, 0x6e, 0x6b, 0x5f, - 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0d, 0x72, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x22, 0x9d, - 0x03, 0x0a, 0x2d, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, - 0x43, 0x43, 0x61, 0x76, 0x65, 0x72, 0x6e, 0x43, 0x72, 0x61, 0x77, 0x6c, 0x49, 0x73, 0x48, 0x65, - 0x72, 0x6f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x70, 0x5f, - 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, - 0x61, 0x70, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x6f, 0x74, - 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, - 0x57, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x5f, 0x0a, 0x0b, 0x6d, 0x61, 0x70, 0x5f, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, - 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, - 0x6f, 0x47, 0x43, 0x43, 0x61, 0x76, 0x65, 0x72, 0x6e, 0x43, 0x72, 0x61, 0x77, 0x6c, 0x49, 0x73, - 0x48, 0x65, 0x72, 0x6f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x2e, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x0a, 0x6d, - 0x61, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x41, 0x0a, 0x1d, 0x70, 0x6f, 0x74, - 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x70, 0x6c, 0x75, 0x73, 0x5f, 0x73, 0x68, 0x61, 0x72, - 0x64, 0x5f, 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x1a, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x50, 0x6c, 0x75, 0x73, 0x53, - 0x68, 0x61, 0x72, 0x64, 0x57, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x0a, - 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x61, - 0x74, 0x68, 0x5f, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x43, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x69, - 0x64, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0d, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x22, 0xd0, - 0x02, 0x0a, 0x14, 0x43, 0x4d, 0x73, 0x67, 0x4e, 0x65, 0x75, 0x74, 0x72, 0x61, 0x6c, 0x49, 0x74, - 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x0d, 0x6e, 0x65, 0x75, 0x74, 0x72, - 0x61, 0x6c, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, - 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x4e, 0x65, 0x75, 0x74, 0x72, 0x61, - 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x4e, 0x65, 0x75, 0x74, 0x72, - 0x61, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0c, 0x6e, 0x65, 0x75, 0x74, 0x72, 0x61, 0x6c, 0x49, - 0x74, 0x65, 0x6d, 0x73, 0x1a, 0xea, 0x01, 0x0a, 0x0b, 0x4e, 0x65, 0x75, 0x74, 0x72, 0x61, 0x6c, - 0x49, 0x74, 0x65, 0x6d, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x21, 0x0a, - 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, - 0x74, 0x65, 0x61, 0x6d, 0x12, 0x2c, 0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6c, 0x61, 0x73, - 0x74, 0x5f, 0x65, 0x71, 0x75, 0x69, 0x70, 0x70, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x10, 0x74, 0x69, 0x6d, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x45, 0x71, 0x75, 0x69, 0x70, 0x70, - 0x65, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, - 0x75, 0x6e, 0x65, 0x71, 0x75, 0x69, 0x70, 0x70, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x55, 0x6e, 0x65, 0x71, 0x75, 0x69, - 0x70, 0x70, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x65, 0x71, 0x75, 0x69, 0x70, 0x70, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x10, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x71, 0x75, 0x69, 0x70, 0x70, 0x65, - 0x64, 0x22, 0xd5, 0x01, 0x0a, 0x1f, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x54, 0x6f, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x48, 0x65, 0x72, 0x6f, 0x42, 0x61, 0x6e, - 0x52, 0x61, 0x74, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x08, 0x62, 0x61, 0x6e, 0x5f, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, - 0x4d, 0x73, 0x67, 0x47, 0x43, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4c, 0x6f, 0x62, - 0x62, 0x79, 0x48, 0x65, 0x72, 0x6f, 0x42, 0x61, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x48, - 0x65, 0x72, 0x6f, 0x42, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x62, 0x61, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x1a, 0x63, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x42, 0x61, 0x6e, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1b, 0x0a, - 0x09, 0x62, 0x61, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x08, 0x62, 0x61, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x69, - 0x63, 0x6b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, - 0x70, 0x69, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa0, 0x03, 0x0a, 0x20, 0x43, 0x4d, - 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x60, - 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, - 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, - 0x0f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, - 0x1a, 0x72, 0x0a, 0x1c, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x47, 0x75, 0x69, - 0x6c, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, - 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x73, 0x1a, 0xa5, 0x01, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x74, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, - 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x65, 0x64, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x22, 0xe5, 0x03, 0x0a, - 0x21, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x47, 0x75, 0x69, 0x6c, - 0x64, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x79, 0x0a, 0x1b, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6c, - 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, - 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, - 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x2e, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x52, 0x19, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, - 0x67, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x1a, 0xc4, 0x02, - 0x0a, 0x11, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x19, - 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x68, 0x61, - 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, - 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x40, 0x0a, - 0x1c, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x1a, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x49, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, - 0x36, 0x0a, 0x17, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x70, 0x65, 0x72, - 0x69, 0x6f, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x15, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, - 0x64, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x2f, 0x0a, 0x13, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, - 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x12, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x22, 0xfc, 0x08, 0x0a, 0x13, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, - 0x6e, 0x4f, 0x75, 0x74, 0x4d, 0x56, 0x50, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x19, 0x0a, 0x08, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, - 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, - 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x5f, - 0x74, 0x65, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x77, 0x69, 0x6e, 0x6e, - 0x69, 0x6e, 0x67, 0x54, 0x65, 0x61, 0x6d, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, - 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x4d, 0x56, 0x50, 0x53, 0x74, 0x61, 0x74, 0x73, - 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, - 0x1a, 0xb0, 0x07, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x74, - 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x65, - 0x61, 0x6d, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x6e, 0x65, 0x74, - 0x77, 0x6f, 0x72, 0x74, 0x68, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x10, 0x74, 0x65, 0x61, 0x6d, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x74, 0x68, 0x52, 0x61, - 0x6e, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x6f, 0x74, - 0x18, 0x20, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x6c, - 0x6f, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, - 0x6f, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x61, - 0x74, 0x68, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x64, 0x65, 0x61, 0x74, 0x68, - 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x07, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x78, - 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x78, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x6e, - 0x65, 0x74, 0x5f, 0x77, 0x6f, 0x72, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x6e, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x74, 0x68, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x5f, 0x67, 0x6f, 0x6c, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x47, 0x6f, 0x6c, - 0x64, 0x53, 0x70, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x61, 0x72, 0x64, 0x73, 0x5f, - 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x77, 0x61, - 0x72, 0x64, 0x73, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x12, 0x3d, 0x0a, 0x1b, 0x77, 0x61, 0x72, - 0x64, 0x73, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x64, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, - 0x77, 0x61, 0x72, 0x64, 0x73, 0x53, 0x70, 0x6f, 0x74, 0x74, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x44, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x61, 0x6d, 0x70, - 0x73, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0c, 0x63, 0x61, 0x6d, 0x70, 0x73, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x1b, 0x0a, - 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x69, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, - 0x6e, 0x69, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x64, 0x65, 0x6e, 0x69, - 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, - 0x61, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x62, 0x75, 0x69, - 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0b, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x21, - 0x0a, 0x0c, 0x74, 0x72, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x18, 0x1a, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x72, 0x69, 0x70, 0x6c, 0x65, 0x4b, 0x69, 0x6c, 0x6c, - 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x61, 0x6d, 0x70, 0x61, 0x67, 0x65, 0x73, 0x18, 0x1c, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x61, 0x6d, 0x70, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1f, 0x0a, - 0x0b, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x64, 0x18, 0x1f, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x6f, 0x64, 0x12, 0x5b, - 0x0a, 0x11, 0x6b, 0x69, 0x6c, 0x6c, 0x5f, 0x65, 0x61, 0x74, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x18, 0x22, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x64, 0x6f, 0x74, 0x61, - 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x4d, 0x56, 0x50, 0x53, - 0x74, 0x61, 0x74, 0x73, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x4b, 0x69, 0x6c, 0x6c, - 0x45, 0x61, 0x74, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x0f, 0x6b, 0x69, 0x6c, 0x6c, - 0x45, 0x61, 0x74, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x68, - 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x74, 0x72, 0x65, 0x61, - 0x6b, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x68, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, - 0x4b, 0x69, 0x6c, 0x6c, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6b, 0x1a, 0x47, 0x0a, 0x0e, 0x4b, 0x69, - 0x6c, 0x6c, 0x45, 0x61, 0x74, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, - 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x06, 0x61, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0x3a, 0x0a, 0x20, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x54, 0x6f, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x72, 0x61, 0x69, 0x6e, - 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, - 0x42, 0x0a, 0x1f, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, - 0x43, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x49, 0x64, 0x73, 0x22, 0xbb, 0x04, 0x0a, 0x27, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x5f, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x64, 0x6f, 0x74, 0x61, - 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x47, - 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, - 0x0f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, - 0x1a, 0xe3, 0x01, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, - 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x49, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x63, 0x68, 0x61, - 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, - 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x53, 0x74, 0x61, 0x72, - 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x73, 0x6c, - 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x53, 0x6c, 0x6f, 0x74, 0x1a, 0xc8, 0x01, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x08, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0c, 0x2e, - 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x45, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x49, 0x64, 0x12, 0x5b, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, - 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x47, 0x65, 0x74, - 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x73, 0x22, 0xb9, 0x03, 0x0a, 0x16, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, - 0x69, 0x72, 0x65, 0x74, 0x69, 0x64, 0x65, 0x43, 0x61, 0x6e, 0x64, 0x79, 0x12, 0x54, 0x0a, 0x11, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x63, 0x61, 0x6e, 0x64, 0x79, 0x5f, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, - 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, 0x69, 0x72, 0x65, 0x74, 0x69, 0x64, 0x65, - 0x43, 0x61, 0x6e, 0x64, 0x79, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x61, 0x6e, 0x64, - 0x79, 0x52, 0x0f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x61, 0x6e, 0x64, 0x79, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x27, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0c, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x45, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x1a, 0x3c, 0x0a, 0x0c, 0x43, - 0x61, 0x6e, 0x64, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x61, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x75, 0x64, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x05, 0x61, 0x75, 0x64, 0x69, 0x74, 0x1a, 0xe1, 0x01, 0x0a, 0x0b, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x43, 0x61, 0x6e, 0x64, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x61, 0x6e, 0x64, - 0x79, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, - 0x63, 0x61, 0x6e, 0x64, 0x79, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x1a, 0x63, - 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, - 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x18, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x73, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, - 0x63, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x52, 0x0a, 0x0f, 0x63, 0x61, 0x6e, - 0x64, 0x79, 0x5f, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x44, 0x69, 0x72, 0x65, 0x74, 0x69, 0x64, 0x65, 0x43, 0x61, 0x6e, 0x64, 0x79, - 0x2e, 0x43, 0x61, 0x6e, 0x64, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0e, 0x63, - 0x61, 0x6e, 0x64, 0x79, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x22, 0xba, 0x01, - 0x0a, 0x17, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x43, 0x68, 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4d, 0x0a, 0x0b, 0x63, 0x68, 0x65, - 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, - 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x54, 0x6f, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x43, 0x68, 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, - 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0a, 0x63, 0x68, - 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x1a, 0x50, 0x0a, 0x0e, 0x43, 0x68, 0x65, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, - 0x65, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, - 0x63, 0x68, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x68, 0x65, - 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, - 0x63, 0x68, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x82, 0x07, 0x0a, 0x0f, 0x43, - 0x4d, 0x73, 0x67, 0x43, 0x68, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, - 0x0a, 0x0e, 0x63, 0x68, 0x65, 0x65, 0x72, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x63, 0x68, 0x65, 0x65, 0x72, 0x73, 0x45, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x12, 0x69, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x5f, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0f, 0x69, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x4c, 0x65, 0x61, 0x67, 0x75, 0x65, - 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x64, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x15, 0x63, - 0x72, 0x6f, 0x77, 0x64, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x63, 0x72, 0x6f, 0x77, - 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x50, 0x75, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, - 0x0a, 0x0f, 0x63, 0x72, 0x6f, 0x77, 0x64, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x6c, 0x6f, - 0x77, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x72, 0x6f, 0x77, 0x64, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x4c, 0x6f, 0x77, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x72, 0x6f, 0x77, 0x64, 0x5f, - 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x10, 0x63, 0x72, 0x6f, 0x77, 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4d, 0x65, - 0x64, 0x69, 0x75, 0x6d, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x72, 0x6f, 0x77, 0x64, 0x5f, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x5f, 0x68, 0x69, 0x67, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, - 0x63, 0x72, 0x6f, 0x77, 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x48, 0x69, 0x67, 0x68, 0x12, 0x2a, - 0x0a, 0x11, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x63, 0x68, 0x65, 0x65, 0x72, - 0x53, 0x63, 0x61, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x68, - 0x65, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x63, 0x68, 0x65, 0x65, 0x72, 0x53, 0x63, 0x61, 0x6c, - 0x65, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x15, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, - 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x63, 0x68, 0x65, 0x65, 0x72, 0x53, 0x63, 0x61, 0x6c, - 0x65, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x31, 0x0a, 0x15, 0x63, 0x68, 0x65, - 0x65, 0x72, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x70, 0x75, 0x6c, 0x6c, 0x5f, 0x6d, 0x61, - 0x72, 0x6b, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x63, 0x68, 0x65, 0x65, 0x72, 0x53, - 0x63, 0x61, 0x6c, 0x65, 0x50, 0x75, 0x6c, 0x6c, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x44, 0x0a, 0x20, - 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x70, 0x63, 0x74, 0x5f, - 0x6f, 0x66, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x70, 0x73, 0x5f, 0x63, 0x6c, 0x61, 0x6d, 0x70, - 0x18, 0x11, 0x20, 0x01, 0x28, 0x02, 0x52, 0x1a, 0x63, 0x68, 0x65, 0x65, 0x72, 0x53, 0x63, 0x61, - 0x6c, 0x65, 0x50, 0x63, 0x74, 0x4f, 0x66, 0x4d, 0x61, 0x78, 0x43, 0x70, 0x73, 0x43, 0x6c, 0x61, - 0x6d, 0x70, 0x12, 0x3b, 0x0a, 0x1a, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x61, 0x6c, - 0x65, 0x5f, 0x64, 0x61, 0x6d, 0x70, 0x65, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x15, 0x20, 0x01, 0x28, 0x02, 0x52, 0x17, 0x63, 0x68, 0x65, 0x65, 0x72, 0x53, 0x63, 0x61, - 0x6c, 0x65, 0x44, 0x61, 0x6d, 0x70, 0x65, 0x6e, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, - 0x42, 0x0a, 0x1e, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x64, - 0x61, 0x6d, 0x70, 0x65, 0x6e, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x72, 0x70, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1a, 0x63, 0x68, 0x65, 0x65, 0x72, 0x53, 0x63, - 0x61, 0x6c, 0x65, 0x44, 0x61, 0x6d, 0x70, 0x65, 0x6e, 0x65, 0x72, 0x4c, 0x65, 0x72, 0x70, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x66, 0x61, 0x63, - 0x74, 0x6f, 0x72, 0x5f, 0x62, 0x72, 0x6f, 0x6e, 0x7a, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x11, 0x63, 0x68, 0x65, 0x65, 0x72, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x72, 0x6f, - 0x6e, 0x7a, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x66, 0x61, 0x63, - 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x69, 0x6c, 0x76, 0x65, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x11, 0x63, 0x68, 0x65, 0x65, 0x72, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x69, 0x6c, - 0x76, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x66, 0x61, 0x63, - 0x74, 0x6f, 0x72, 0x5f, 0x67, 0x6f, 0x6c, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, - 0x63, 0x68, 0x65, 0x65, 0x72, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x47, 0x6f, 0x6c, 0x64, 0x22, - 0x55, 0x0a, 0x19, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x43, 0x68, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x38, 0x0a, 0x0c, - 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x68, - 0x65, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0b, 0x63, 0x68, 0x65, 0x65, 0x72, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x3b, 0x0a, 0x1c, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x65, 0x72, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x65, 0x61, 0x67, 0x75, - 0x65, 0x49, 0x64, 0x22, 0x60, 0x0a, 0x24, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x54, 0x6f, 0x47, 0x43, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x0c, 0x63, - 0x68, 0x65, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x68, 0x65, - 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0b, 0x63, 0x68, 0x65, 0x65, 0x72, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x3b, 0x0a, 0x21, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x54, - 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x68, 0x65, 0x65, 0x72, 0x53, 0x63, 0x61, 0x6c, - 0x65, 0x73, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, - 0x61, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x52, 0x06, 0x73, 0x63, 0x61, 0x6c, - 0x65, 0x73, 0x22, 0x1d, 0x0a, 0x1b, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x54, 0x6f, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x22, 0xa5, 0x01, 0x0a, 0x12, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x68, 0x65, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x65, 0x65, - 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0b, - 0x63, 0x68, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x6d, - 0x61, 0x78, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x02, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, - 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x63, 0x68, 0x65, 0x65, 0x72, 0x53, 0x63, 0x61, - 0x6c, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x73, - 0x63, 0x61, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6f, 0x76, 0x65, 0x72, - 0x72, 0x69, 0x64, 0x65, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x22, 0xa5, 0x01, 0x0a, 0x0e, 0x43, 0x4d, - 0x73, 0x67, 0x43, 0x68, 0x65, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x39, 0x0a, 0x0b, - 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x18, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x68, 0x65, - 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, 0x68, 0x65, - 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x61, 0x64, 0x69, 0x61, - 0x6e, 0x74, 0x5f, 0x63, 0x72, 0x6f, 0x77, 0x64, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x43, 0x72, 0x6f, - 0x77, 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x10, 0x64, 0x69, 0x72, 0x65, 0x5f, - 0x63, 0x72, 0x6f, 0x77, 0x64, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0e, 0x64, 0x69, 0x72, 0x65, 0x43, 0x72, 0x6f, 0x77, 0x64, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x22, 0x91, 0x01, 0x0a, 0x1e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x54, 0x6f, 0x47, 0x43, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x68, 0x65, 0x65, 0x72, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x0c, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x64, 0x6f, 0x74, - 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x68, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x0b, 0x63, 0x68, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x35, - 0x0a, 0x0b, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x43, - 0x68, 0x65, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, 0x68, 0x65, 0x65, 0x72, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x41, 0x0a, 0x1e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x47, 0x65, 0x74, 0x53, 0x74, 0x69, 0x63, 0x6b, 0x65, - 0x72, 0x48, 0x65, 0x72, 0x6f, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x22, 0xd5, 0x01, 0x0a, 0x26, 0x43, 0x4d, 0x73, - 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x47, 0x65, 0x74, 0x53, 0x74, - 0x69, 0x63, 0x6b, 0x65, 0x72, 0x48, 0x65, 0x72, 0x6f, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x47, 0x65, 0x74, 0x53, 0x74, 0x69, - 0x63, 0x6b, 0x65, 0x72, 0x48, 0x65, 0x72, 0x6f, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x73, 0x1a, 0x5c, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x08, 0x73, - 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, - 0x48, 0x65, 0x72, 0x6f, 0x65, 0x73, 0x52, 0x08, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, - 0x22, 0x74, 0x0a, 0x2b, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x41, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, - 0x45, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, - 0x73, 0x67, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x41, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0xb3, 0x01, 0x0a, 0x17, 0x43, 0x4d, 0x73, 0x67, 0x53, - 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6d, 0x6d, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, - 0x4d, 0x6d, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x77, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, - 0x74, 0x57, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1d, 0x0a, - 0x0a, 0x6c, 0x6f, 0x62, 0x62, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x09, 0x6c, 0x6f, 0x62, 0x62, 0x79, 0x54, 0x79, 0x70, 0x65, 0x22, 0xd2, 0x01, 0x0a, - 0x1d, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1f, - 0x0a, 0x0b, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6d, 0x6d, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x4d, 0x6d, 0x72, 0x12, - 0x19, 0x0a, 0x08, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x77, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x57, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x6d, - 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x4d, - 0x6f, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6f, 0x62, 0x62, 0x79, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6c, 0x6f, 0x62, 0x62, 0x79, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6d, 0x6d, 0x72, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x6d, - 0x72, 0x22, 0xaf, 0x01, 0x0a, 0x1b, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4c, - 0x65, 0x61, 0x72, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x48, 0x65, 0x72, 0x6f, 0x65, 0x73, 0x56, - 0x31, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x72, - 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x61, 0x64, - 0x69, 0x61, 0x6e, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x64, - 0x69, 0x72, 0x65, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x0b, 0x64, 0x69, 0x72, 0x65, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x12, - 0x23, 0x0a, 0x0d, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x6c, 0x61, 0x6e, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0c, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x4c, - 0x61, 0x6e, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x69, 0x72, 0x65, 0x5f, 0x6c, 0x61, 0x6e, - 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x4c, 0x61, - 0x6e, 0x65, 0x73, 0x22, 0x89, 0x02, 0x0a, 0x1b, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x74, 0x65, 0x61, - 0x6d, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x48, 0x65, 0x72, 0x6f, 0x65, - 0x73, 0x56, 0x32, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x68, - 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x72, - 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x12, 0x22, 0x0a, - 0x0d, 0x64, 0x69, 0x72, 0x65, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0b, 0x64, 0x69, 0x72, 0x65, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, - 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x6c, 0x61, 0x6e, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0c, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, - 0x74, 0x4c, 0x61, 0x6e, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x69, 0x72, 0x65, 0x5f, 0x6c, - 0x61, 0x6e, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, - 0x4c, 0x61, 0x6e, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, - 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x11, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x46, - 0x61, 0x63, 0x65, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x64, 0x69, 0x72, 0x65, 0x5f, 0x68, 0x65, - 0x72, 0x6f, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x0e, 0x64, 0x69, 0x72, 0x65, 0x48, 0x65, 0x72, 0x6f, 0x46, 0x61, 0x63, 0x65, 0x74, 0x73, 0x22, - 0x96, 0x01, 0x0a, 0x19, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x65, 0x61, - 0x72, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x48, 0x65, 0x72, 0x6f, 0x56, 0x31, 0x12, 0x17, 0x0a, - 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, - 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x61, 0x6e, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6c, 0x61, 0x6e, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x6c, - 0x6c, 0x69, 0x65, 0x64, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x48, 0x65, 0x72, 0x6f, 0x49, - 0x64, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x5f, 0x68, 0x65, 0x72, 0x6f, - 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x6e, 0x65, 0x6d, - 0x79, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x22, 0x8e, 0x02, 0x0a, 0x19, 0x43, 0x4d, 0x73, - 0x67, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x48, 0x65, 0x72, 0x6f, 0x56, 0x32, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x6c, 0x61, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6c, - 0x61, 0x6e, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x5f, 0x68, 0x65, - 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0d, 0x61, 0x6c, - 0x6c, 0x69, 0x65, 0x64, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x65, - 0x6e, 0x65, 0x6d, 0x79, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, - 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x46, 0x61, 0x63, 0x65, 0x74, - 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, - 0x66, 0x61, 0x63, 0x65, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x10, 0x61, 0x6c, - 0x6c, 0x69, 0x65, 0x64, 0x48, 0x65, 0x72, 0x6f, 0x46, 0x61, 0x63, 0x65, 0x74, 0x73, 0x12, 0x29, - 0x0a, 0x10, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x66, 0x61, 0x63, 0x65, - 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0f, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x48, - 0x65, 0x72, 0x6f, 0x66, 0x61, 0x63, 0x65, 0x74, 0x73, 0x22, 0x84, 0x04, 0x0a, 0x1e, 0x43, 0x4d, - 0x73, 0x67, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x52, 0x0a, 0x0c, - 0x73, 0x74, 0x61, 0x74, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x74, - 0x65, 0x61, 0x6d, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x69, - 0x6d, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x42, 0x75, 0x63, - 0x6b, 0x65, 0x74, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, - 0x1a, 0x8d, 0x03, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, - 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x02, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6b, 0x69, 0x6c, - 0x6c, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x06, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x73, - 0x73, 0x69, 0x73, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x65, 0x6e, - 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, - 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, - 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x69, 0x74, - 0x73, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x06, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x74, - 0x5f, 0x77, 0x6f, 0x72, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6e, 0x65, - 0x74, 0x57, 0x6f, 0x72, 0x74, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x69, 0x64, 0x6c, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x5f, - 0x69, 0x73, 0x73, 0x75, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x63, 0x6f, - 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x49, 0x73, 0x73, 0x75, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x13, - 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x77, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x70, 0x6c, 0x61, - 0x63, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x73, 0x65, 0x6e, 0x74, 0x72, - 0x79, 0x57, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x15, - 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x77, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x70, - 0x6c, 0x61, 0x63, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6f, 0x62, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x57, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x64, - 0x22, 0xab, 0x07, 0x0a, 0x1a, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x65, - 0x61, 0x72, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, 0x34, 0x12, - 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x02, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4f, 0x0a, 0x0d, - 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, - 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x56, 0x34, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, - 0x0c, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x49, 0x0a, - 0x0a, 0x64, 0x69, 0x72, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2a, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x74, 0x65, - 0x61, 0x6d, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x56, 0x34, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x09, 0x64, - 0x69, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x8d, 0x02, 0x0a, 0x0b, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, - 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x74, 0x5f, 0x77, 0x6f, 0x72, 0x74, 0x68, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6e, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x74, 0x68, 0x12, 0x14, - 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, - 0x65, 0x76, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x12, 0x21, 0x0a, 0x0c, - 0x72, 0x65, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x1f, 0x0a, 0x0b, 0x68, 0x61, 0x73, 0x5f, 0x62, 0x75, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x68, 0x61, 0x73, 0x42, 0x75, 0x79, 0x62, 0x61, 0x63, 0x6b, - 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x61, 0x65, 0x67, 0x69, 0x73, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, 0x61, 0x73, 0x41, 0x65, 0x67, 0x69, 0x73, 0x12, 0x1d, 0x0a, - 0x0a, 0x68, 0x61, 0x73, 0x5f, 0x72, 0x61, 0x70, 0x69, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x09, 0x68, 0x61, 0x73, 0x52, 0x61, 0x70, 0x69, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, - 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, - 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x1a, 0xc3, 0x03, 0x0a, 0x09, 0x54, 0x65, 0x61, - 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x12, 0x51, 0x0a, 0x0d, 0x70, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2c, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x74, 0x65, - 0x61, 0x6d, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x56, 0x34, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x54, 0x6f, 0x47, 0x43, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, + 0x74, 0x65, 0x6d, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x73, 0x1a, 0xc2, 0x01, 0x0a, 0x0c, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x75, 0x72, 0x63, 0x68, + 0x61, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x6f, 0x6c, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x67, 0x6f, 0x6c, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6e, + 0x65, 0x74, 0x5f, 0x77, 0x6f, 0x72, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, + 0x6e, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x74, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x67, 0x61, 0x6d, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x27, + 0x0a, 0x0f, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x65, + 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x08, 0x52, 0x0e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x73, + 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x1a, 0xc8, 0x02, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x6f, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, + 0x6c, 0x6f, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x61, + 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x48, 0x65, 0x72, 0x6f, + 0x49, 0x64, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x5f, 0x68, 0x65, 0x72, + 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x65, 0x6e, 0x65, + 0x6d, 0x79, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x12, 0x66, 0x0a, 0x0e, 0x69, 0x74, 0x65, + 0x6d, 0x5f, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x3f, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x48, 0x69, + 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, + 0x73, 0x65, 0x52, 0x0d, 0x69, 0x74, 0x65, 0x6d, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, + 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x61, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x04, 0x6c, 0x61, 0x6e, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x77, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x57, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x22, 0xe7, 0x04, 0x0a, 0x30, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x54, 0x6f, 0x47, 0x43, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x4e, 0x65, 0x75, 0x74, 0x72, 0x61, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x71, 0x75, 0x69, 0x70, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x49, 0x64, 0x12, 0x57, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x4e, 0x65, 0x75, 0x74, 0x72, 0x61, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x45, + 0x71, 0x75, 0x69, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x1a, 0xc6, 0x01, 0x0a, 0x09, + 0x49, 0x74, 0x65, 0x6d, 0x45, 0x71, 0x75, 0x69, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x74, 0x65, + 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x12, 0x1b, 0x0a, + 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x0e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x74, + 0x65, 0x6d, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x73, + 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x08, 0x52, 0x0e, 0x74, 0x61, + 0x6c, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x17, + 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x65, 0x75, 0x74, 0x72, 0x61, + 0x6c, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x15, 0x61, + 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x65, 0x75, 0x74, 0x72, 0x61, 0x6c, 0x49, + 0x74, 0x65, 0x6d, 0x73, 0x1a, 0xf5, 0x01, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, + 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, + 0x0a, 0x0f, 0x61, 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x48, + 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x5f, + 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, + 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x12, 0x61, 0x0a, 0x0b, + 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x65, 0x71, 0x75, 0x69, 0x70, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x40, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x4e, 0x65, 0x75, 0x74, 0x72, 0x61, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x71, 0x75, + 0x69, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x71, + 0x75, 0x69, 0x70, 0x52, 0x0a, 0x69, 0x74, 0x65, 0x6d, 0x45, 0x71, 0x75, 0x69, 0x70, 0x73, 0x12, + 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x57, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x22, 0xf1, 0x08, 0x0a, + 0x1f, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x72, + 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x77, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0a, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x57, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, + 0x6d, 0x6d, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6d, 0x6d, 0x72, 0x12, 0x53, + 0x0a, 0x0c, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x73, 0x1a, 0x8d, 0x02, 0x0a, 0x0b, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, + 0x6e, 0x65, 0x74, 0x5f, 0x77, 0x6f, 0x72, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x08, 0x6e, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x16, 0x0a, 0x06, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x06, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x61, + 0x77, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x72, + 0x65, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x61, + 0x73, 0x5f, 0x62, 0x75, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0a, 0x68, 0x61, 0x73, 0x42, 0x75, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x1b, 0x0a, 0x09, 0x68, + 0x61, 0x73, 0x5f, 0x61, 0x65, 0x67, 0x69, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, + 0x68, 0x61, 0x73, 0x41, 0x65, 0x67, 0x69, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x5f, + 0x72, 0x61, 0x70, 0x69, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68, 0x61, + 0x73, 0x52, 0x61, 0x70, 0x69, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x1a, 0xc8, 0x03, 0x0a, 0x09, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x04, 0x74, 0x65, 0x61, 0x6d, 0x12, 0x56, 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x64, + 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, + 0x47, 0x43, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x70, 0x63, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x74, 0x6f, 0x77, 0x65, 0x72, 0x48, 0x65, @@ -17915,118 +16745,773 @@ var file_dota_gcmessages_server_proto_rawDesc = []byte{ 0x63, 0x72, 0x65, 0x65, 0x70, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x65, 0x70, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x63, 0x72, - 0x65, 0x65, 0x70, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4f, 0x66, 0x66, 0x22, 0xca, - 0x07, 0x0a, 0x1a, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x65, 0x61, 0x72, - 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, 0x35, 0x12, 0x1b, 0x0a, - 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4f, 0x0a, 0x0d, 0x72, 0x61, + 0x65, 0x65, 0x70, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4f, 0x66, 0x66, 0x1a, 0xcf, + 0x01, 0x0a, 0x0a, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, + 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x54, 0x0a, 0x0d, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2a, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x74, 0x65, - 0x61, 0x6d, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x56, 0x35, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x72, - 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x49, 0x0a, 0x0a, 0x64, - 0x69, 0x72, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2a, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x74, 0x65, 0x61, 0x6d, - 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, - 0x35, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x09, 0x64, 0x69, 0x72, - 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x1a, 0xac, 0x02, 0x0a, 0x0b, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, - 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x74, 0x5f, 0x77, 0x6f, 0x72, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x08, 0x6e, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, - 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x06, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, - 0x73, 0x70, 0x61, 0x77, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0b, 0x72, 0x65, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, - 0x0b, 0x68, 0x61, 0x73, 0x5f, 0x62, 0x75, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0a, 0x68, 0x61, 0x73, 0x42, 0x75, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x1b, - 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x61, 0x65, 0x67, 0x69, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x08, 0x68, 0x61, 0x73, 0x41, 0x65, 0x67, 0x69, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x68, - 0x61, 0x73, 0x5f, 0x72, 0x61, 0x70, 0x69, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x09, 0x68, 0x61, 0x73, 0x52, 0x61, 0x70, 0x69, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x66, - 0x61, 0x63, 0x65, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x68, 0x65, 0x72, 0x6f, - 0x46, 0x61, 0x63, 0x65, 0x74, 0x1a, 0xc3, 0x03, 0x0a, 0x09, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x12, 0x51, 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, - 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4c, - 0x65, 0x61, 0x72, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, 0x35, - 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x70, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x6f, - 0x77, 0x65, 0x72, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x70, 0x63, 0x74, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x74, 0x6f, 0x77, 0x65, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, - 0x68, 0x50, 0x63, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x62, 0x61, 0x72, 0x72, 0x61, 0x63, 0x6b, 0x73, - 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x70, 0x63, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x11, 0x62, 0x61, 0x72, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, - 0x68, 0x50, 0x63, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x6e, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x5f, - 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x70, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x10, 0x61, 0x6e, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x50, - 0x63, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x67, 0x6c, 0x79, 0x70, 0x68, 0x5f, 0x63, 0x6f, 0x6f, 0x6c, - 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x67, 0x6c, 0x79, 0x70, - 0x68, 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6b, 0x69, 0x6c, - 0x6c, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x12, - 0x2e, 0x0a, 0x13, 0x63, 0x72, 0x65, 0x65, 0x70, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x5f, 0x73, 0x61, 0x66, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x63, 0x72, - 0x65, 0x65, 0x70, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x61, 0x66, 0x65, 0x12, - 0x2c, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x65, 0x70, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x5f, 0x6d, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x63, 0x72, 0x65, - 0x65, 0x70, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x69, 0x64, 0x12, 0x2c, 0x0a, - 0x12, 0x63, 0x72, 0x65, 0x65, 0x70, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, - 0x6f, 0x66, 0x66, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x63, 0x72, 0x65, 0x65, 0x70, - 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4f, 0x66, 0x66, 0x22, 0xac, 0x02, 0x0a, 0x1a, - 0x43, 0x4d, 0x73, 0x67, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x49, 0x74, - 0x65, 0x6d, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x74, + 0x0b, 0x32, 0x2f, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x52, 0x0c, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x4e, 0x0a, 0x0a, 0x64, 0x69, 0x72, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x54, 0x65, 0x61, 0x6d, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x22, 0xa2, 0x01, 0x0a, 0x1a, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4d, 0x4c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x51, 0x0a, 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x6d, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x03, 0x6d, 0x6d, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x5f, + 0x77, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x72, 0x61, 0x64, 0x69, 0x61, + 0x6e, 0x74, 0x57, 0x6f, 0x6e, 0x22, 0x50, 0x0a, 0x1d, 0x43, 0x4d, 0x73, 0x67, 0x4c, 0x61, 0x6e, + 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4d, + 0x4c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, + 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, + 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x6e, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x05, 0x6c, 0x61, 0x6e, 0x65, 0x73, 0x22, 0xd0, 0x01, 0x0a, 0x20, 0x43, 0x4d, 0x73, 0x67, + 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4d, 0x4c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6d, 0x6d, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6d, 0x6d, 0x72, 0x12, 0x17, + 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x65, 0x6e, 0x65, 0x6d, 0x79, + 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x0c, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x12, 0x12, 0x0a, + 0x04, 0x6c, 0x61, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6c, 0x61, 0x6e, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, + 0x29, 0x0a, 0x10, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x22, 0xe2, 0x01, 0x0a, 0x23, 0x43, + 0x4d, 0x73, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x50, + 0x72, 0x65, 0x67, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4d, 0x4c, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x6d, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x03, 0x6d, 0x6d, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x61, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x04, 0x6c, 0x61, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x61, + 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x48, 0x65, 0x72, 0x6f, + 0x49, 0x64, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x5f, 0x68, 0x65, 0x72, + 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x65, 0x6e, 0x65, + 0x6d, 0x79, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74, 0x65, + 0x6d, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, + 0xf4, 0x01, 0x0a, 0x1c, 0x43, 0x4d, 0x73, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x75, 0x72, 0x63, + 0x68, 0x61, 0x73, 0x65, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4d, 0x4c, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x6d, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6d, + 0x6d, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x61, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x04, 0x6c, 0x61, 0x6e, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, + 0x26, 0x0a, 0x0f, 0x61, 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, + 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x69, 0x65, 0x64, + 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x65, 0x6e, 0x65, 0x6d, 0x79, + 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x0c, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x12, 0x14, 0x0a, + 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x69, 0x74, + 0x65, 0x6d, 0x73, 0x12, 0x31, 0x0a, 0x15, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x5f, 0x74, 0x6f, 0x5f, + 0x62, 0x65, 0x5f, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x64, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x12, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x54, 0x6f, 0x42, 0x65, 0x50, 0x75, 0x72, + 0x63, 0x68, 0x61, 0x73, 0x65, 0x64, 0x22, 0xfa, 0x01, 0x0a, 0x24, 0x43, 0x4d, 0x73, 0x67, 0x49, + 0x74, 0x65, 0x6d, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x53, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4d, 0x4c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6d, 0x6d, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6d, 0x6d, + 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x61, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x04, 0x6c, 0x61, 0x6e, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x26, + 0x0a, 0x0f, 0x61, 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x48, + 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x5f, + 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, + 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x69, 0x74, 0x65, + 0x6d, 0x73, 0x12, 0x2f, 0x0a, 0x14, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x74, 0x6f, 0x5f, 0x62, 0x65, + 0x5f, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x11, 0x69, 0x74, 0x65, 0x6d, 0x54, 0x6f, 0x42, 0x65, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, + 0x73, 0x65, 0x64, 0x22, 0xcd, 0x01, 0x0a, 0x25, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x43, 0x61, 0x76, 0x65, 0x72, 0x6e, 0x43, 0x72, 0x61, 0x77, + 0x6c, 0x49, 0x73, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x19, 0x0a, + 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x61, 0x70, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, + 0x64, 0x4d, 0x61, 0x70, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x68, + 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, + 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x75, 0x72, 0x62, 0x6f, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x74, 0x75, 0x72, 0x62, 0x6f, 0x4d, + 0x6f, 0x64, 0x65, 0x22, 0xee, 0x04, 0x0a, 0x24, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6c, + 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x76, 0x65, 0x72, 0x61, + 0x67, 0x65, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, + 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x67, 0x0a, 0x11, 0x63, 0x68, + 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, + 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, + 0x65, 0x52, 0x10, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x73, 0x1a, 0x9e, 0x03, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, + 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, + 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, + 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x45, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x61, + 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x64, + 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, + 0x67, 0x65, 0x49, 0x64, 0x31, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, + 0x67, 0x65, 0x5f, 0x69, 0x64, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x68, + 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x49, 0x64, 0x32, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x72, + 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2c, 0x0a, 0x12, + 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x65, + 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x65, + 0x61, 0x6d, 0x5f, 0x77, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x74, 0x65, + 0x61, 0x6d, 0x57, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x25, 0x0a, + 0x0e, 0x72, 0x61, 0x6e, 0x6b, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x6d, 0x70, 0x6c, + 0x65, 0x74, 0x65, 0x64, 0x22, 0x9d, 0x03, 0x0a, 0x2d, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x43, 0x61, 0x76, 0x65, 0x72, 0x6e, 0x43, 0x72, 0x61, + 0x77, 0x6c, 0x49, 0x73, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1f, + 0x0a, 0x0b, 0x6d, 0x61, 0x70, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x61, 0x70, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x12, + 0x2d, 0x0a, 0x12, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x77, 0x69, 0x6e, + 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x70, 0x6f, 0x74, + 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x57, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x5f, + 0x0a, 0x0b, 0x6d, 0x61, 0x70, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x43, 0x61, 0x76, 0x65, 0x72, 0x6e, 0x43, + 0x72, 0x61, 0x77, 0x6c, 0x49, 0x73, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x73, 0x52, 0x0a, 0x6d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, + 0x41, 0x0a, 0x1d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x70, 0x6c, 0x75, + 0x73, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x73, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1a, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, + 0x6c, 0x50, 0x6c, 0x75, 0x73, 0x53, 0x68, 0x61, 0x72, 0x64, 0x57, 0x69, 0x6e, 0x6e, 0x69, 0x6e, + 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x0a, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, + 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x70, 0x61, 0x74, + 0x68, 0x49, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0f, + 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x69, 0x64, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x43, 0x6c, 0x61, + 0x69, 0x6d, 0x65, 0x64, 0x22, 0xd0, 0x02, 0x0a, 0x14, 0x43, 0x4d, 0x73, 0x67, 0x4e, 0x65, 0x75, + 0x74, 0x72, 0x61, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x4b, 0x0a, + 0x0d, 0x6e, 0x65, 0x75, 0x74, 0x72, 0x61, 0x6c, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, + 0x4e, 0x65, 0x75, 0x74, 0x72, 0x61, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x73, + 0x2e, 0x4e, 0x65, 0x75, 0x74, 0x72, 0x61, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0c, 0x6e, 0x65, + 0x75, 0x74, 0x72, 0x61, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0xea, 0x01, 0x0a, 0x0b, 0x4e, + 0x65, 0x75, 0x74, 0x72, 0x61, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x69, 0x74, 0x65, - 0x6d, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x10, - 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x6f, 0x6c, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x67, 0x6f, 0x6c, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6e, - 0x65, 0x74, 0x5f, 0x77, 0x6f, 0x72, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, - 0x6e, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x74, 0x68, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x73, 0x5f, 0x72, - 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0d, 0x69, 0x73, 0x52, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x54, 0x65, 0x61, 0x6d, - 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x02, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2b, 0x0a, - 0x12, 0x69, 0x73, 0x5f, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x6f, 0x74, 0x61, 0x5f, 0x70, - 0x6c, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x55, 0x73, 0x69, - 0x6e, 0x67, 0x44, 0x6f, 0x74, 0x61, 0x50, 0x6c, 0x75, 0x73, 0x22, 0x94, 0x01, 0x0a, 0x22, 0x43, - 0x4d, 0x73, 0x67, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x50, 0x72, 0x65, - 0x47, 0x61, 0x6d, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, - 0x73, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x07, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0f, - 0x69, 0x73, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x69, 0x73, 0x52, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, - 0x54, 0x65, 0x61, 0x6d, 0x12, 0x2b, 0x0a, 0x12, 0x69, 0x73, 0x5f, 0x75, 0x73, 0x69, 0x6e, 0x67, - 0x5f, 0x64, 0x6f, 0x74, 0x61, 0x5f, 0x70, 0x6c, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0f, 0x69, 0x73, 0x55, 0x73, 0x69, 0x6e, 0x67, 0x44, 0x6f, 0x74, 0x61, 0x50, 0x6c, 0x75, - 0x73, 0x22, 0xa5, 0x01, 0x0a, 0x21, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4c, - 0x65, 0x61, 0x72, 0x6e, 0x4e, 0x65, 0x75, 0x74, 0x72, 0x61, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x50, - 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x74, 0x65, 0x6d, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, - 0x74, 0x69, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x73, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x61, - 0x6e, 0x74, 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x69, - 0x73, 0x52, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x12, 0x2b, 0x0a, 0x12, + 0x6d, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x64, 0x72, 0x6f, 0x70, + 0x70, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x44, + 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x12, 0x2c, 0x0a, 0x12, 0x74, 0x69, + 0x6d, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x71, 0x75, 0x69, 0x70, 0x70, 0x65, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x74, 0x69, 0x6d, 0x65, 0x4c, 0x61, 0x73, 0x74, + 0x45, 0x71, 0x75, 0x69, 0x70, 0x70, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x69, 0x6d, 0x65, + 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x6e, 0x65, 0x71, 0x75, 0x69, 0x70, 0x70, 0x65, 0x64, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x4c, 0x61, 0x73, 0x74, + 0x55, 0x6e, 0x65, 0x71, 0x75, 0x69, 0x70, 0x70, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x71, 0x75, 0x69, 0x70, 0x70, 0x65, 0x64, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, + 0x71, 0x75, 0x69, 0x70, 0x70, 0x65, 0x64, 0x22, 0xd5, 0x01, 0x0a, 0x1f, 0x43, 0x4d, 0x73, 0x67, + 0x47, 0x43, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x48, + 0x65, 0x72, 0x6f, 0x42, 0x61, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x08, 0x62, + 0x61, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, + 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x54, 0x6f, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x48, 0x65, 0x72, 0x6f, 0x42, 0x61, 0x6e, 0x52, + 0x61, 0x74, 0x65, 0x73, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x42, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x07, 0x62, 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x63, 0x0a, 0x0c, 0x48, 0x65, + 0x72, 0x6f, 0x42, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, + 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, + 0x6f, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x61, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x62, 0x61, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x69, 0x63, 0x6b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x69, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0xa0, 0x03, 0x0a, 0x20, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x60, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, + 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, + 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, 0x72, + 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x0f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x1a, 0x72, 0x0a, 0x1c, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x74, 0x65, 0x64, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, + 0x64, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, + 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x1a, 0xa5, 0x01, 0x0a, 0x0e, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x1d, 0x0a, + 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x74, 0x0a, 0x13, + 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x64, 0x6f, 0x74, 0x61, + 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x12, + 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x73, 0x22, 0xe5, 0x03, 0x0a, 0x21, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, + 0x75, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, + 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x79, 0x0a, 0x1b, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x73, 0x5f, 0x70, 0x72, 0x6f, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, + 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, + 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x50, 0x72, + 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, + 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x19, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x43, + 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x73, 0x1a, 0xc4, 0x02, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, + 0x65, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, + 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x67, 0x75, 0x69, + 0x6c, 0x64, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x32, 0x0a, 0x15, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, + 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x1c, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, + 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1a, 0x63, 0x68, 0x61, 0x6c, 0x6c, + 0x65, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x36, 0x0a, 0x17, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, + 0x67, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, + 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2f, 0x0a, 0x13, 0x63, 0x68, 0x61, + 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, + 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x22, 0xfc, 0x08, 0x0a, 0x13, 0x43, + 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x4d, 0x56, 0x50, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1b, 0x0a, + 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x69, + 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0b, 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x65, 0x61, 0x6d, 0x12, 0x1b, 0x0a, + 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x64, 0x6f, + 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x4d, 0x56, + 0x50, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x07, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x1a, 0xb0, 0x07, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x74, 0x65, + 0x61, 0x6d, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x74, 0x68, 0x5f, 0x72, 0x61, 0x6e, 0x6b, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x74, 0x65, 0x61, 0x6d, 0x4e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x74, 0x68, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, + 0x18, 0x21, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x17, 0x0a, 0x07, + 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, + 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6b, 0x69, 0x6c, + 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x12, + 0x16, 0x0a, 0x06, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x73, 0x73, 0x69, 0x73, + 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, + 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x78, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x78, + 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x74, 0x5f, 0x77, 0x6f, 0x72, 0x74, 0x68, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6e, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x74, 0x68, 0x12, 0x2c, + 0x0a, 0x12, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x67, 0x6f, 0x6c, 0x64, 0x5f, 0x73, + 0x70, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x73, 0x75, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x47, 0x6f, 0x6c, 0x64, 0x53, 0x70, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, + 0x77, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0b, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x12, + 0x3d, 0x0a, 0x1b, 0x77, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x74, 0x65, 0x64, + 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x64, 0x65, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x77, 0x61, 0x72, 0x64, 0x73, 0x53, 0x70, 0x6f, 0x74, 0x74, + 0x65, 0x64, 0x46, 0x6f, 0x72, 0x44, 0x65, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x23, + 0x0a, 0x0d, 0x63, 0x61, 0x6d, 0x70, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x61, 0x6d, 0x70, 0x73, 0x53, 0x74, 0x61, 0x63, + 0x6b, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x73, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x69, 0x74, 0x73, + 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x75, 0x69, 0x6c, + 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x6d, 0x61, 0x67, + 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x6d, 0x61, 0x67, + 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x44, 0x61, + 0x6d, 0x61, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x72, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x6b, + 0x69, 0x6c, 0x6c, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x72, 0x69, 0x70, + 0x6c, 0x65, 0x4b, 0x69, 0x6c, 0x6c, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x61, 0x6d, 0x70, 0x61, + 0x67, 0x65, 0x73, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x61, 0x6d, 0x70, 0x61, + 0x67, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, + 0x6f, 0x64, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x42, + 0x6c, 0x6f, 0x6f, 0x64, 0x12, 0x5b, 0x0a, 0x11, 0x6b, 0x69, 0x6c, 0x6c, 0x5f, 0x65, 0x61, 0x74, + 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x22, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2f, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x4f, + 0x75, 0x74, 0x4d, 0x56, 0x50, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x2e, 0x4b, 0x69, 0x6c, 0x6c, 0x45, 0x61, 0x74, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x52, 0x0f, 0x6b, 0x69, 0x6c, 0x6c, 0x45, 0x61, 0x74, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x68, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x5f, 0x6b, 0x69, 0x6c, + 0x6c, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6b, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x68, + 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x4b, 0x69, 0x6c, 0x6c, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6b, + 0x1a, 0x47, 0x0a, 0x0e, 0x4b, 0x69, 0x6c, 0x6c, 0x45, 0x61, 0x74, 0x65, 0x72, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x02, 0x28, + 0x0d, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x3a, 0x0a, 0x20, 0x43, 0x4d, 0x73, + 0x67, 0x47, 0x43, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, + 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x42, 0x0a, 0x1f, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x22, 0xbb, 0x04, 0x0a, 0x27, 0x43, 0x4d, + 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x47, 0x65, 0x74, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x34, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x54, 0x6f, 0x47, 0x43, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x0f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x1a, 0xe3, 0x01, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x63, + 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x63, 0x68, 0x61, 0x6c, + 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, + 0x2f, 0x0a, 0x13, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x63, 0x68, + 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x53, 0x74, 0x61, 0x72, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x53, 0x6c, 0x6f, 0x74, 0x1a, 0xc8, 0x01, 0x0a, + 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, + 0x64, 0x12, 0x27, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x0c, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x45, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x5b, 0x0a, 0x09, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, + 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, + 0x6f, 0x47, 0x43, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x09, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x22, 0xb9, 0x03, 0x0a, 0x16, 0x43, 0x4d, 0x73, 0x67, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, 0x69, 0x72, 0x65, 0x74, 0x69, 0x64, 0x65, 0x43, 0x61, 0x6e, + 0x64, 0x79, 0x12, 0x54, 0x0a, 0x11, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x63, 0x61, 0x6e, + 0x64, 0x79, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, 0x69, + 0x72, 0x65, 0x74, 0x69, 0x64, 0x65, 0x43, 0x61, 0x6e, 0x64, 0x79, 0x2e, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x43, 0x61, 0x6e, 0x64, 0x79, 0x52, 0x0f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, + 0x61, 0x6e, 0x64, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x27, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0c, 0x2e, 0x64, 0x6f, 0x74, + 0x61, 0x2e, 0x45, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, + 0x64, 0x1a, 0x3c, 0x0a, 0x0c, 0x43, 0x61, 0x6e, 0x64, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x75, 0x64, + 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x75, 0x64, 0x69, 0x74, 0x1a, + 0xe1, 0x01, 0x0a, 0x0b, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x61, 0x6e, 0x64, 0x79, 0x12, + 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x21, + 0x0a, 0x0c, 0x63, 0x61, 0x6e, 0x64, 0x79, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x61, 0x6e, 0x64, 0x79, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x3c, 0x0a, 0x1a, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x73, 0x5f, 0x70, 0x65, + 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x73, 0x50, + 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, + 0x52, 0x0a, 0x0f, 0x63, 0x61, 0x6e, 0x64, 0x79, 0x5f, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x64, 0x6f, + 0x77, 0x6e, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, + 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, 0x69, 0x72, 0x65, 0x74, 0x69, 0x64, + 0x65, 0x43, 0x61, 0x6e, 0x64, 0x79, 0x2e, 0x43, 0x61, 0x6e, 0x64, 0x79, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x52, 0x0e, 0x63, 0x61, 0x6e, 0x64, 0x79, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x64, + 0x6f, 0x77, 0x6e, 0x22, 0xba, 0x01, 0x0a, 0x17, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x54, 0x6f, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x68, 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x4d, 0x0a, 0x0b, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, + 0x47, 0x43, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x68, 0x65, 0x65, 0x72, 0x44, + 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x52, 0x0a, 0x63, 0x68, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x1a, 0x50, + 0x0a, 0x0e, 0x43, 0x68, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x68, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1f, 0x0a, 0x0b, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x68, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0x82, 0x07, 0x0a, 0x0f, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x68, 0x65, 0x65, 0x72, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x68, 0x65, 0x65, 0x72, 0x73, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x63, 0x68, + 0x65, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x12, 0x69, + 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x4c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x0e, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x62, 0x75, 0x63, 0x6b, + 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x31, 0x0a, 0x15, 0x63, 0x72, 0x6f, 0x77, 0x64, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, + 0x5f, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x12, 0x63, 0x72, 0x6f, 0x77, 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x50, 0x75, 0x73, 0x68, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x63, 0x72, 0x6f, 0x77, 0x64, 0x5f, 0x6c, 0x65, + 0x76, 0x65, 0x6c, 0x5f, 0x6c, 0x6f, 0x77, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, + 0x72, 0x6f, 0x77, 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4c, 0x6f, 0x77, 0x12, 0x2c, 0x0a, 0x12, + 0x63, 0x72, 0x6f, 0x77, 0x64, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x6d, 0x65, 0x64, 0x69, + 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x63, 0x72, 0x6f, 0x77, 0x64, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x4d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x72, + 0x6f, 0x77, 0x64, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x68, 0x69, 0x67, 0x68, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x63, 0x72, 0x6f, 0x77, 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x48, 0x69, 0x67, 0x68, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x73, 0x63, + 0x61, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x0f, 0x63, 0x68, 0x65, 0x65, 0x72, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, + 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x63, 0x68, 0x65, + 0x65, 0x72, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x15, + 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x70, 0x75, 0x73, 0x68, + 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x63, 0x68, 0x65, + 0x65, 0x72, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x61, 0x72, 0x6b, 0x12, + 0x31, 0x0a, 0x15, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x70, + 0x75, 0x6c, 0x6c, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, + 0x63, 0x68, 0x65, 0x65, 0x72, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x50, 0x75, 0x6c, 0x6c, 0x4d, 0x61, + 0x72, 0x6b, 0x12, 0x44, 0x0a, 0x20, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x61, 0x6c, + 0x65, 0x5f, 0x70, 0x63, 0x74, 0x5f, 0x6f, 0x66, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x70, 0x73, + 0x5f, 0x63, 0x6c, 0x61, 0x6d, 0x70, 0x18, 0x11, 0x20, 0x01, 0x28, 0x02, 0x52, 0x1a, 0x63, 0x68, + 0x65, 0x65, 0x72, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x50, 0x63, 0x74, 0x4f, 0x66, 0x4d, 0x61, 0x78, + 0x43, 0x70, 0x73, 0x43, 0x6c, 0x61, 0x6d, 0x70, 0x12, 0x3b, 0x0a, 0x1a, 0x63, 0x68, 0x65, 0x65, + 0x72, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x64, 0x61, 0x6d, 0x70, 0x65, 0x6e, 0x65, 0x72, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x02, 0x52, 0x17, 0x63, 0x68, + 0x65, 0x65, 0x72, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x44, 0x61, 0x6d, 0x70, 0x65, 0x6e, 0x65, 0x72, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x42, 0x0a, 0x1e, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x73, + 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x64, 0x61, 0x6d, 0x70, 0x65, 0x6e, 0x65, 0x72, 0x5f, 0x6c, 0x65, + 0x72, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1a, 0x63, + 0x68, 0x65, 0x65, 0x72, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x44, 0x61, 0x6d, 0x70, 0x65, 0x6e, 0x65, + 0x72, 0x4c, 0x65, 0x72, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x68, 0x65, + 0x65, 0x72, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x62, 0x72, 0x6f, 0x6e, 0x7a, 0x65, + 0x18, 0x12, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x63, 0x68, 0x65, 0x65, 0x72, 0x46, 0x61, 0x63, + 0x74, 0x6f, 0x72, 0x42, 0x72, 0x6f, 0x6e, 0x7a, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x68, 0x65, + 0x65, 0x72, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x69, 0x6c, 0x76, 0x65, 0x72, + 0x18, 0x13, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x63, 0x68, 0x65, 0x65, 0x72, 0x46, 0x61, 0x63, + 0x74, 0x6f, 0x72, 0x53, 0x69, 0x6c, 0x76, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x68, 0x65, + 0x65, 0x72, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x67, 0x6f, 0x6c, 0x64, 0x18, 0x14, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x63, 0x68, 0x65, 0x65, 0x72, 0x46, 0x61, 0x63, 0x74, 0x6f, + 0x72, 0x47, 0x6f, 0x6c, 0x64, 0x22, 0x55, 0x0a, 0x19, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x54, + 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x68, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x38, 0x0a, 0x0c, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, + 0x43, 0x4d, 0x73, 0x67, 0x43, 0x68, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x0b, 0x63, 0x68, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x3b, 0x0a, 0x1c, + 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x47, 0x65, + 0x74, 0x43, 0x68, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1b, 0x0a, 0x09, + 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x08, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x49, 0x64, 0x22, 0x60, 0x0a, 0x24, 0x43, 0x4d, 0x73, + 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x47, 0x65, 0x74, 0x43, 0x68, + 0x65, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x38, 0x0a, 0x0c, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, + 0x4d, 0x73, 0x67, 0x43, 0x68, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0b, + 0x63, 0x68, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x3b, 0x0a, 0x21, 0x43, + 0x4d, 0x73, 0x67, 0x47, 0x43, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x68, 0x65, + 0x65, 0x72, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x73, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, + 0x52, 0x06, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x73, 0x22, 0x1d, 0x0a, 0x1b, 0x43, 0x4d, 0x73, 0x67, + 0x47, 0x43, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, + 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0xa5, 0x01, 0x0a, 0x12, 0x43, 0x4d, 0x73, 0x67, + 0x43, 0x68, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, + 0x0a, 0x0c, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x68, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x50, 0x65, + 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x68, 0x65, 0x65, 0x72, + 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x63, 0x68, + 0x65, 0x65, 0x72, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x76, 0x65, 0x72, + 0x72, 0x69, 0x64, 0x65, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x0d, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x22, + 0xa5, 0x01, 0x0a, 0x0e, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x68, 0x65, 0x65, 0x72, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x39, 0x0a, 0x0b, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, + 0x4d, 0x73, 0x67, 0x43, 0x68, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x0a, 0x63, 0x68, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x2e, 0x0a, + 0x13, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x63, 0x72, 0x6f, 0x77, 0x64, 0x5f, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x72, 0x61, 0x64, 0x69, + 0x61, 0x6e, 0x74, 0x43, 0x72, 0x6f, 0x77, 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x28, 0x0a, + 0x10, 0x64, 0x69, 0x72, 0x65, 0x5f, 0x63, 0x72, 0x6f, 0x77, 0x64, 0x5f, 0x6c, 0x65, 0x76, 0x65, + 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x64, 0x69, 0x72, 0x65, 0x43, 0x72, 0x6f, + 0x77, 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x91, 0x01, 0x0a, 0x1e, 0x43, 0x4d, 0x73, 0x67, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x43, 0x68, 0x65, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x0c, 0x63, 0x68, + 0x65, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x68, 0x65, 0x65, + 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0b, 0x63, 0x68, 0x65, 0x65, 0x72, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x12, 0x35, 0x0a, 0x0b, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x64, 0x6f, 0x74, 0x61, + 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x68, 0x65, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x0a, 0x63, 0x68, 0x65, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x41, 0x0a, 0x1e, 0x43, + 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, 0x47, 0x65, 0x74, + 0x53, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x48, 0x65, 0x72, 0x6f, 0x65, 0x73, 0x12, 0x1f, 0x0a, + 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x22, 0xd5, + 0x01, 0x0a, 0x26, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, + 0x43, 0x47, 0x65, 0x74, 0x53, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x48, 0x65, 0x72, 0x6f, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x07, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x64, 0x6f, 0x74, + 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x43, + 0x47, 0x65, 0x74, 0x53, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x48, 0x65, 0x72, 0x6f, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, + 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x1a, 0x5c, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x33, 0x0a, 0x08, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, + 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x48, 0x65, 0x72, 0x6f, 0x65, 0x73, 0x52, 0x08, 0x73, 0x74, + 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x22, 0x74, 0x0a, 0x2b, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, + 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x65, 0x61, + 0x72, 0x6e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x64, + 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x65, 0x61, + 0x72, 0x6e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x0c, + 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3c, 0x0a, 0x1f, + 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, + 0x65, 0x61, 0x6d, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x55, 0x73, 0x65, 0x48, 0x54, 0x54, 0x50, 0x12, + 0x19, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x07, 0x75, 0x73, 0x65, 0x48, 0x74, 0x74, 0x70, 0x22, 0xb3, 0x01, 0x0a, 0x17, 0x43, + 0x4d, 0x73, 0x67, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, + 0x65, 0x5f, 0x6d, 0x6d, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x61, 0x76, 0x65, + 0x72, 0x61, 0x67, 0x65, 0x4d, 0x6d, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x61, 0x64, 0x69, 0x61, + 0x6e, 0x74, 0x5f, 0x77, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x72, 0x61, + 0x64, 0x69, 0x61, 0x6e, 0x74, 0x57, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x4d, 0x6f, 0x64, + 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6f, 0x62, 0x62, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6c, 0x6f, 0x62, 0x62, 0x79, 0x54, 0x79, 0x70, 0x65, + 0x22, 0xd2, 0x01, 0x0a, 0x1d, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x65, + 0x61, 0x72, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6d, 0x6d, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, + 0x4d, 0x6d, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x77, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x57, 0x6f, 0x6e, 0x12, 0x1a, + 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, + 0x6d, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x67, + 0x61, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6f, 0x62, 0x62, 0x79, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6c, 0x6f, 0x62, + 0x62, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x5f, 0x6d, 0x6d, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x4d, 0x6d, 0x72, 0x22, 0xdd, 0x02, 0x0a, 0x1b, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x74, + 0x65, 0x61, 0x6d, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x48, 0x65, 0x72, + 0x6f, 0x65, 0x73, 0x56, 0x33, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, + 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x0e, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x12, + 0x22, 0x0a, 0x0d, 0x64, 0x69, 0x72, 0x65, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x64, 0x69, 0x72, 0x65, 0x48, 0x65, 0x72, 0x6f, + 0x49, 0x64, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x6c, + 0x61, 0x6e, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0c, 0x72, 0x61, 0x64, 0x69, + 0x61, 0x6e, 0x74, 0x4c, 0x61, 0x6e, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x69, 0x72, 0x65, + 0x5f, 0x6c, 0x61, 0x6e, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, 0x64, 0x69, + 0x72, 0x65, 0x4c, 0x61, 0x6e, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x61, 0x64, 0x69, 0x61, + 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x74, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x11, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x48, 0x65, 0x72, + 0x6f, 0x46, 0x61, 0x63, 0x65, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x64, 0x69, 0x72, 0x65, 0x5f, + 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x0e, 0x64, 0x69, 0x72, 0x65, 0x48, 0x65, 0x72, 0x6f, 0x46, 0x61, 0x63, 0x65, 0x74, + 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x10, 0x72, 0x61, + 0x64, 0x69, 0x61, 0x6e, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, + 0x0a, 0x0e, 0x64, 0x69, 0x72, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x08, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0d, 0x64, 0x69, 0x72, 0x65, 0x50, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xaa, 0x02, 0x0a, 0x19, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x74, + 0x65, 0x61, 0x6d, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x48, 0x65, 0x72, + 0x6f, 0x56, 0x33, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x6c, 0x61, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6c, 0x61, 0x6e, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0f, + 0x61, 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x48, 0x65, 0x72, + 0x6f, 0x49, 0x64, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x5f, 0x68, 0x65, + 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x65, 0x6e, + 0x65, 0x6d, 0x79, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x65, + 0x72, 0x6f, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, + 0x68, 0x65, 0x72, 0x6f, 0x46, 0x61, 0x63, 0x65, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x6c, 0x6c, + 0x69, 0x65, 0x64, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x74, 0x73, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x10, 0x61, 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x48, 0x65, 0x72, + 0x6f, 0x46, 0x61, 0x63, 0x65, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x6e, 0x65, 0x6d, 0x79, + 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x66, 0x61, 0x63, 0x65, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x0f, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x48, 0x65, 0x72, 0x6f, 0x66, 0x61, 0x63, 0x65, + 0x74, 0x73, 0x22, 0x84, 0x04, 0x0a, 0x1e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x74, 0x65, 0x61, 0x6d, + 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x64, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x52, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x62, 0x75, + 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x64, 0x6f, + 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x65, 0x61, 0x72, + 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, + 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x0b, 0x73, 0x74, + 0x61, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x1a, 0x8d, 0x03, 0x0a, 0x0a, 0x53, 0x74, + 0x61, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x67, 0x61, 0x6d, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x64, + 0x65, 0x61, 0x74, 0x68, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x64, 0x65, 0x61, + 0x74, 0x68, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x73, 0x12, 0x1e, 0x0a, + 0x0a, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1b, 0x0a, + 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x69, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, + 0x6e, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x64, 0x65, 0x6e, 0x69, + 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x74, 0x5f, 0x77, 0x6f, 0x72, 0x74, 0x68, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6e, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x74, 0x68, 0x12, + 0x1b, 0x0a, 0x09, 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x08, 0x69, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, + 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x5f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x64, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x49, + 0x73, 0x73, 0x75, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, + 0x77, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x11, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x57, 0x61, 0x72, 0x64, 0x73, 0x50, + 0x6c, 0x61, 0x63, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x77, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x57, 0x61, + 0x72, 0x64, 0x73, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x22, 0xca, 0x07, 0x0a, 0x1a, 0x43, 0x4d, + 0x73, 0x67, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, 0x35, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x67, 0x61, 0x6d, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4f, 0x0a, 0x0d, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x64, + 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x65, 0x61, + 0x72, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, 0x35, 0x2e, 0x54, + 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x49, 0x0a, 0x0a, 0x64, 0x69, 0x72, 0x65, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x64, 0x6f, 0x74, + 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x65, 0x61, 0x72, 0x6e, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, 0x35, 0x2e, 0x54, 0x65, 0x61, + 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x1a, 0xac, 0x02, 0x0a, 0x0b, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x65, + 0x74, 0x5f, 0x77, 0x6f, 0x72, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6e, + 0x65, 0x74, 0x57, 0x6f, 0x72, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x16, 0x0a, + 0x06, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x64, + 0x65, 0x61, 0x74, 0x68, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x61, 0x77, 0x6e, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x72, 0x65, 0x73, + 0x70, 0x61, 0x77, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x61, 0x73, 0x5f, + 0x62, 0x75, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x68, + 0x61, 0x73, 0x42, 0x75, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, + 0x5f, 0x61, 0x65, 0x67, 0x69, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, 0x61, + 0x73, 0x41, 0x65, 0x67, 0x69, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x5f, 0x72, 0x61, + 0x70, 0x69, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68, 0x61, 0x73, 0x52, + 0x61, 0x70, 0x69, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x74, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x46, 0x61, 0x63, 0x65, 0x74, + 0x1a, 0xc3, 0x03, 0x0a, 0x09, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x65, + 0x61, 0x6d, 0x12, 0x51, 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x64, 0x6f, 0x74, 0x61, + 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, 0x35, 0x2e, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x68, + 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x70, 0x63, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x0e, 0x74, 0x6f, 0x77, 0x65, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x50, 0x63, 0x74, 0x12, + 0x2e, 0x0a, 0x13, 0x62, 0x61, 0x72, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x6c, + 0x74, 0x68, 0x5f, 0x70, 0x63, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x11, 0x62, 0x61, + 0x72, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x50, 0x63, 0x74, 0x12, + 0x2c, 0x0a, 0x12, 0x61, 0x6e, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, + 0x68, 0x5f, 0x70, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x61, 0x6e, 0x63, + 0x69, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x50, 0x63, 0x74, 0x12, 0x25, 0x0a, + 0x0e, 0x67, 0x6c, 0x79, 0x70, 0x68, 0x5f, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x67, 0x6c, 0x79, 0x70, 0x68, 0x43, 0x6f, 0x6f, 0x6c, + 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x72, + 0x65, 0x65, 0x70, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x61, 0x66, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x63, 0x72, 0x65, 0x65, 0x70, 0x44, 0x69, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x61, 0x66, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x72, + 0x65, 0x65, 0x70, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x69, 0x64, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x63, 0x72, 0x65, 0x65, 0x70, 0x44, 0x69, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x65, + 0x70, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x63, 0x72, 0x65, 0x65, 0x70, 0x44, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x4f, 0x66, 0x66, 0x22, 0xac, 0x02, 0x0a, 0x1a, 0x43, 0x4d, 0x73, 0x67, 0x53, + 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x75, 0x72, + 0x63, 0x68, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x27, + 0x0a, 0x0f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x74, 0x65, 0x6d, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x75, 0x72, 0x63, 0x68, + 0x61, 0x73, 0x65, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x0f, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x6f, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x04, 0x67, 0x6f, 0x6c, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x74, 0x5f, 0x77, 0x6f, + 0x72, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6e, 0x65, 0x74, 0x57, 0x6f, + 0x72, 0x74, 0x68, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x73, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, + 0x74, 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x69, 0x73, + 0x52, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x12, 0x1b, 0x0a, 0x09, 0x67, + 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, + 0x67, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x12, 0x69, 0x73, 0x5f, 0x75, + 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x6f, 0x74, 0x61, 0x5f, 0x70, 0x6c, 0x75, 0x73, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x55, 0x73, 0x69, 0x6e, 0x67, 0x44, 0x6f, 0x74, + 0x61, 0x50, 0x6c, 0x75, 0x73, 0x22, 0x94, 0x01, 0x0a, 0x22, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x74, + 0x65, 0x61, 0x6d, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x50, 0x72, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x49, + 0x74, 0x65, 0x6d, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, + 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, + 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x73, 0x5f, 0x72, 0x61, + 0x64, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0d, 0x69, 0x73, 0x52, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x12, + 0x2b, 0x0a, 0x12, 0x69, 0x73, 0x5f, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x6f, 0x74, 0x61, + 0x5f, 0x70, 0x6c, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x55, + 0x73, 0x69, 0x6e, 0x67, 0x44, 0x6f, 0x74, 0x61, 0x50, 0x6c, 0x75, 0x73, 0x22, 0xa5, 0x01, 0x0a, + 0x21, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x4e, + 0x65, 0x75, 0x74, 0x72, 0x61, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, + 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, + 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x69, 0x65, 0x72, 0x12, + 0x26, 0x0a, 0x0f, 0x69, 0x73, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x74, 0x65, + 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x69, 0x73, 0x52, 0x61, 0x64, 0x69, + 0x61, 0x6e, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x12, 0x2b, 0x0a, 0x12, 0x69, 0x73, 0x5f, 0x75, 0x73, + 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x6f, 0x74, 0x61, 0x5f, 0x70, 0x6c, 0x75, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x55, 0x73, 0x69, 0x6e, 0x67, 0x44, 0x6f, 0x74, 0x61, + 0x50, 0x6c, 0x75, 0x73, 0x22, 0xb2, 0x01, 0x0a, 0x1a, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x74, 0x65, + 0x61, 0x6d, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x6b, + 0x69, 0x6c, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x10, 0x73, + 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, + 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x12, 0x69, 0x73, 0x5f, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x6f, 0x74, 0x61, 0x5f, 0x70, 0x6c, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x55, 0x73, 0x69, 0x6e, - 0x67, 0x44, 0x6f, 0x74, 0x61, 0x50, 0x6c, 0x75, 0x73, 0x22, 0xb2, 0x01, 0x0a, 0x1a, 0x43, 0x4d, - 0x73, 0x67, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x41, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x6b, 0x69, 0x6c, 0x6c, - 0x65, 0x64, 0x5f, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x10, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x41, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x69, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x2b, 0x0a, 0x12, 0x69, 0x73, 0x5f, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x6f, - 0x74, 0x61, 0x5f, 0x70, 0x6c, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, - 0x73, 0x55, 0x73, 0x69, 0x6e, 0x67, 0x44, 0x6f, 0x74, 0x61, 0x50, 0x6c, 0x75, 0x73, 0x22, 0xfa, + 0x67, 0x44, 0x6f, 0x74, 0x61, 0x50, 0x6c, 0x75, 0x73, 0x22, 0x41, 0x0a, 0x24, 0x43, 0x4d, 0x73, + 0x67, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x45, 0x61, 0x72, 0x6c, 0x79, + 0x47, 0x61, 0x6d, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, + 0x73, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x07, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x73, 0x22, 0x40, 0x0a, 0x23, + 0x43, 0x4d, 0x73, 0x67, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x4c, 0x61, + 0x74, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, + 0x73, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x73, 0x22, 0xfa, 0x01, 0x0a, 0x1b, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x57, 0x61, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x08, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x6c, 0x6f, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, @@ -18127,8 +17612,8 @@ func file_dota_gcmessages_server_proto_rawDescGZIP() []byte { return file_dota_gcmessages_server_proto_rawDescData } -var file_dota_gcmessages_server_proto_enumTypes = make([]protoimpl.EnumInfo, 8) -var file_dota_gcmessages_server_proto_msgTypes = make([]protoimpl.MessageInfo, 187) +var file_dota_gcmessages_server_proto_enumTypes = make([]protoimpl.EnumInfo, 7) +var file_dota_gcmessages_server_proto_msgTypes = make([]protoimpl.MessageInfo, 184) var file_dota_gcmessages_server_proto_goTypes = []interface{}{ (EPoorNetworkConditionsType)(0), // 0: dota.EPoorNetworkConditionsType (CMsgConnectedPlayers_SendReason)(0), // 1: dota.CMsgConnectedPlayers.SendReason @@ -18137,382 +17622,373 @@ var file_dota_gcmessages_server_proto_goTypes = []interface{}{ (CMsgGameMatchSignOut_CTeam_CPlayer_HeroDamageType)(0), // 4: dota.CMsgGameMatchSignOut.CTeam.CPlayer.HeroDamageType (CMsgDOTALiveScoreboardUpdate_Team_Player_DOTAUltimateState)(0), // 5: dota.CMsgDOTALiveScoreboardUpdate.Team.Player.DOTAUltimateState (CMsgGameServerSaveGameResult_Result)(0), // 6: dota.CMsgGameServerSaveGameResult.Result - (CMsgGCToServerPredictionResult_Prediction_EResult)(0), // 7: dota.CMsgGCToServerPredictionResult.Prediction.EResult - (*CMsgPoorNetworkConditions)(nil), // 8: dota.CMsgPoorNetworkConditions - (*CMsgGameserverCrash)(nil), // 9: dota.CMsgGameserverCrash - (*CMsgConnectedPlayers)(nil), // 10: dota.CMsgConnectedPlayers - (*CMsgGameServerInfo)(nil), // 11: dota.CMsgGameServerInfo - (*CMsgLeaverDetected)(nil), // 12: dota.CMsgLeaverDetected - (*CMsgLeaverDetectedResponse)(nil), // 13: dota.CMsgLeaverDetectedResponse - (*CMsgDOTAFantasyFinalPlayerStats)(nil), // 14: dota.CMsgDOTAFantasyFinalPlayerStats - (*CMsgDOTAFantasyLivePlayerStats)(nil), // 15: dota.CMsgDOTAFantasyLivePlayerStats - (*CMsgServerToGCRealtimeStats)(nil), // 16: dota.CMsgServerToGCRealtimeStats - (*CMsgGCToServerRealtimeStatsStartStop)(nil), // 17: dota.CMsgGCToServerRealtimeStatsStartStop - (*CMsgGCToServerUpdateSteamBroadcasting)(nil), // 18: dota.CMsgGCToServerUpdateSteamBroadcasting - (*CMsgSignOutGameplayStats)(nil), // 19: dota.CMsgSignOutGameplayStats - (*CMsgGameMatchSignOut)(nil), // 20: dota.CMsgGameMatchSignOut - (*CMsgSignOutDraftInfo)(nil), // 21: dota.CMsgSignOutDraftInfo - (*CMsgSignOutBotInfo)(nil), // 22: dota.CMsgSignOutBotInfo - (*CMsgSignOutTextMuteInfo)(nil), // 23: dota.CMsgSignOutTextMuteInfo - (*CMsgSignOutPlayerStats)(nil), // 24: dota.CMsgSignOutPlayerStats - (*CMsgSignOutCommunicationSummary)(nil), // 25: dota.CMsgSignOutCommunicationSummary - (*CMsgGameMatchSignoutResponse)(nil), // 26: dota.CMsgGameMatchSignoutResponse - (*CMsgTimedRewardContainer)(nil), // 27: dota.CMsgTimedRewardContainer - (*CMsgGameMatchSignOutPermissionRequest)(nil), // 28: dota.CMsgGameMatchSignOutPermissionRequest - (*CMsgGameMatchSignOutPermissionResponse)(nil), // 29: dota.CMsgGameMatchSignOutPermissionResponse - (*CMsgGameMatchSignOutEventGameData)(nil), // 30: dota.CMsgGameMatchSignOutEventGameData - (*CMsgGameMatchSignOutPerfData)(nil), // 31: dota.CMsgGameMatchSignOutPerfData - (*CMsgGameMatchSignOutBanData)(nil), // 32: dota.CMsgGameMatchSignOutBanData - (*CMsgDOTALiveScoreboardUpdate)(nil), // 33: dota.CMsgDOTALiveScoreboardUpdate - (*CMsgServerToGCRequestBatchPlayerResources)(nil), // 34: dota.CMsgServerToGCRequestBatchPlayerResources - (*CMsgServerToGCRequestBatchPlayerResourcesResponse)(nil), // 35: dota.CMsgServerToGCRequestBatchPlayerResourcesResponse - (*CMsgDOTAPlayerFailedToConnect)(nil), // 36: dota.CMsgDOTAPlayerFailedToConnect - (*CMsgGCToRelayConnect)(nil), // 37: dota.CMsgGCToRelayConnect - (*CMsgGCGCToLANServerRelayConnect)(nil), // 38: dota.CMsgGCGCToLANServerRelayConnect - (*CMsgGCBanStatusRequest)(nil), // 39: dota.CMsgGCBanStatusRequest - (*CMsgGCBanStatusResponse)(nil), // 40: dota.CMsgGCBanStatusResponse - (*CMsgTournamentItemEvent)(nil), // 41: dota.CMsgTournamentItemEvent - (*CMsgTournamentItemEventResponse)(nil), // 42: dota.CMsgTournamentItemEventResponse - (*CMsgTeamFanfare)(nil), // 43: dota.CMsgTeamFanfare - (*CMsgResponseTeamFanfare)(nil), // 44: dota.CMsgResponseTeamFanfare - (*CMsgGameServerUploadSaveGame)(nil), // 45: dota.CMsgGameServerUploadSaveGame - (*CMsgGameServerSaveGameResult)(nil), // 46: dota.CMsgGameServerSaveGameResult - (*CMsgGameServerGetLoadGame)(nil), // 47: dota.CMsgGameServerGetLoadGame - (*CMsgGameServerGetLoadGameResult)(nil), // 48: dota.CMsgGameServerGetLoadGameResult - (*CMsgDOTAAwardEventPoints)(nil), // 49: dota.CMsgDOTAAwardEventPoints - (*CMsgGCToServerPingRequest)(nil), // 50: dota.CMsgGCToServerPingRequest - (*CMsgGCToServerPingResponse)(nil), // 51: dota.CMsgGCToServerPingResponse - (*CMsgServerToGCMatchConnectionStats)(nil), // 52: dota.CMsgServerToGCMatchConnectionStats - (*CMsgServerGCUpdateSpectatorCount)(nil), // 53: dota.CMsgServerGCUpdateSpectatorCount - (*CSerializedCombatLog)(nil), // 54: dota.CSerializedCombatLog - (*CMsgServerToGCVictoryPredictions)(nil), // 55: dota.CMsgServerToGCVictoryPredictions - (*CMsgServerToGCRequestStatus)(nil), // 56: dota.CMsgServerToGCRequestStatus - (*CMsgServerToGCRequestStatus_Response)(nil), // 57: dota.CMsgServerToGCRequestStatus_Response - (*CMsgGCToServerEvaluateToxicChat)(nil), // 58: dota.CMsgGCToServerEvaluateToxicChat - (*CMsgServerToGCEvaluateToxicChat)(nil), // 59: dota.CMsgServerToGCEvaluateToxicChat - (*CMsgServerToGCEvaluateToxicChatResponse)(nil), // 60: dota.CMsgServerToGCEvaluateToxicChatResponse - (*CMsgSignOutAssassinMiniGameInfo)(nil), // 61: dota.CMsgSignOutAssassinMiniGameInfo - (*CMsgServerToGCKillSummaries)(nil), // 62: dota.CMsgServerToGCKillSummaries - (*CMsgGCToServerPredictionResult)(nil), // 63: dota.CMsgGCToServerPredictionResult - (*CMsgServerToGCLockCharmTrading)(nil), // 64: dota.CMsgServerToGCLockCharmTrading - (*CMsgSignOutUpdatePlayerChallenge)(nil), // 65: dota.CMsgSignOutUpdatePlayerChallenge - (*CMsgServerToGCRerollPlayerChallenge)(nil), // 66: dota.CMsgServerToGCRerollPlayerChallenge - (*CMsgSpendWager)(nil), // 67: dota.CMsgSpendWager - (*CMsgSignOutXPCoins)(nil), // 68: dota.CMsgSignOutXPCoins - (*CMsgSignOutBounties)(nil), // 69: dota.CMsgSignOutBounties - (*CMsgSignOutCommunityGoalProgress)(nil), // 70: dota.CMsgSignOutCommunityGoalProgress - (*CMsgServerToGCCloseCompendiumInGamePredictionVoting)(nil), // 71: dota.CMsgServerToGCCloseCompendiumInGamePredictionVoting - (*CMsgServerToGCCloseCompendiumInGamePredictionVotingResponse)(nil), // 72: dota.CMsgServerToGCCloseCompendiumInGamePredictionVotingResponse - (*CMsgServerToGCCompendiumInGamePredictionResults)(nil), // 73: dota.CMsgServerToGCCompendiumInGamePredictionResults - (*CMsgServerToGCCompendiumChosenInGamePredictions)(nil), // 74: dota.CMsgServerToGCCompendiumChosenInGamePredictions - (*CMsgGCToGCCompendiumInGamePredictionResults)(nil), // 75: dota.CMsgGCToGCCompendiumInGamePredictionResults - (*CMsgServerToGCMatchPlayerItemPurchaseHistory)(nil), // 76: dota.CMsgServerToGCMatchPlayerItemPurchaseHistory - (*CMsgServerToGCMatchPlayerNeutralItemEquipHistory)(nil), // 77: dota.CMsgServerToGCMatchPlayerNeutralItemEquipHistory - (*CMsgServerToGCMatchStateHistory)(nil), // 78: dota.CMsgServerToGCMatchStateHistory - (*CMsgMatchStateSteamMLEntry)(nil), // 79: dota.CMsgMatchStateSteamMLEntry - (*CMsgLaneSelectionSteamMLEntry)(nil), // 80: dota.CMsgLaneSelectionSteamMLEntry - (*CMsgAbilitySelectionSteamMLEntry)(nil), // 81: dota.CMsgAbilitySelectionSteamMLEntry - (*CMsgItemPurchasePregameSteamMLEntry)(nil), // 82: dota.CMsgItemPurchasePregameSteamMLEntry - (*CMsgItemPurchaseSteamMLEntry)(nil), // 83: dota.CMsgItemPurchaseSteamMLEntry - (*CMsgItemPurchaseSequenceSteamMLEntry)(nil), // 84: dota.CMsgItemPurchaseSequenceSteamMLEntry - (*CMsgServerToGCCavernCrawlIsHeroActive)(nil), // 85: dota.CMsgServerToGCCavernCrawlIsHeroActive - (*CMsgServerToGCPlayerChallengeHistory)(nil), // 86: dota.CMsgServerToGCPlayerChallengeHistory - (*CMsgServerToGCCavernCrawlIsHeroActiveResponse)(nil), // 87: dota.CMsgServerToGCCavernCrawlIsHeroActiveResponse - (*CMsgNeutralItemStats)(nil), // 88: dota.CMsgNeutralItemStats - (*CMsgGCToServerLobbyHeroBanRates)(nil), // 89: dota.CMsgGCToServerLobbyHeroBanRates - (*CMsgSignOutGuildContractProgress)(nil), // 90: dota.CMsgSignOutGuildContractProgress - (*CMsgSignOutGuildChallengeProgress)(nil), // 91: dota.CMsgSignOutGuildChallengeProgress - (*CMsgSignOutMVPStats)(nil), // 92: dota.CMsgSignOutMVPStats - (*CMsgGCToServerRecordTrainingData)(nil), // 93: dota.CMsgGCToServerRecordTrainingData - (*CMsgServerToGCGetGuildContracts)(nil), // 94: dota.CMsgServerToGCGetGuildContracts - (*CMsgServerToGCGetGuildContractsResponse)(nil), // 95: dota.CMsgServerToGCGetGuildContractsResponse - (*CMsgMatchDiretideCandy)(nil), // 96: dota.CMsgMatchDiretideCandy - (*CMsgGCToServerCheerData)(nil), // 97: dota.CMsgGCToServerCheerData - (*CMsgCheerConfig)(nil), // 98: dota.CMsgCheerConfig - (*CMsgGCToServerCheerConfig)(nil), // 99: dota.CMsgGCToServerCheerConfig - (*CMsgServerToGCGetCheerConfig)(nil), // 100: dota.CMsgServerToGCGetCheerConfig - (*CMsgServerToGCGetCheerConfigResponse)(nil), // 101: dota.CMsgServerToGCGetCheerConfigResponse - (*CMsgGCToServerCheerScalesOverride)(nil), // 102: dota.CMsgGCToServerCheerScalesOverride - (*CMsgGCToServerGetCheerState)(nil), // 103: dota.CMsgGCToServerGetCheerState - (*CMsgCheerTypeState)(nil), // 104: dota.CMsgCheerTypeState - (*CMsgCheerState)(nil), // 105: dota.CMsgCheerState - (*CMsgServerToGCReportCheerState)(nil), // 106: dota.CMsgServerToGCReportCheerState - (*CMsgServerToGCGetStickerHeroes)(nil), // 107: dota.CMsgServerToGCGetStickerHeroes - (*CMsgServerToGCGetStickerHeroesResponse)(nil), // 108: dota.CMsgServerToGCGetStickerHeroesResponse - (*CMsgGCToServerSteamLearnAccessTokensChanged)(nil), // 109: dota.CMsgGCToServerSteamLearnAccessTokensChanged - (*CMsgSteamLearnMatchInfo)(nil), // 110: dota.CMsgSteamLearnMatchInfo - (*CMsgSteamLearnMatchInfoPlayer)(nil), // 111: dota.CMsgSteamLearnMatchInfoPlayer - (*CMsgSteamLearnMatchHeroesV1)(nil), // 112: dota.CMsgSteamLearnMatchHeroesV1 - (*CMsgSteamLearnMatchHeroesV2)(nil), // 113: dota.CMsgSteamLearnMatchHeroesV2 - (*CMsgSteamLearnMatchHeroV1)(nil), // 114: dota.CMsgSteamLearnMatchHeroV1 - (*CMsgSteamLearnMatchHeroV2)(nil), // 115: dota.CMsgSteamLearnMatchHeroV2 - (*CMsgSteamLearnPlayerTimedStats)(nil), // 116: dota.CMsgSteamLearnPlayerTimedStats - (*CMsgSteamLearnMatchStateV4)(nil), // 117: dota.CMsgSteamLearnMatchStateV4 - (*CMsgSteamLearnMatchStateV5)(nil), // 118: dota.CMsgSteamLearnMatchStateV5 - (*CMsgSteamLearnItemPurchase)(nil), // 119: dota.CMsgSteamLearnItemPurchase - (*CMsgSteamLearnPreGameItemPurchases)(nil), // 120: dota.CMsgSteamLearnPreGameItemPurchases - (*CMsgSteamLearnNeutralItemPurchase)(nil), // 121: dota.CMsgSteamLearnNeutralItemPurchase - (*CMsgSteamLearnAbilitySkill)(nil), // 122: dota.CMsgSteamLearnAbilitySkill - (*CMsgSteamLearnWardPlacement)(nil), // 123: dota.CMsgSteamLearnWardPlacement - (*CMsgSignOutMuertaMinigame)(nil), // 124: dota.CMsgSignOutMuertaMinigame - (*CMsgSignOutMapStats)(nil), // 125: dota.CMsgSignOutMapStats - (*CMsgServerToGCNewBloomGift)(nil), // 126: dota.CMsgServerToGCNewBloomGift - (*CMsgServerToGCNewBloomGiftResponse)(nil), // 127: dota.CMsgServerToGCNewBloomGiftResponse - (*CMsgSignOutOverworld)(nil), // 128: dota.CMsgSignOutOverworld - (*CMsgPoorNetworkConditions_Player)(nil), // 129: dota.CMsgPoorNetworkConditions.Player - (*CMsgConnectedPlayers_Player)(nil), // 130: dota.CMsgConnectedPlayers.Player - (*CMsgConnectedPlayers_PlayerDraft)(nil), // 131: dota.CMsgConnectedPlayers.PlayerDraft - (*CMsgSignOutGameplayStats_CPlayer)(nil), // 132: dota.CMsgSignOutGameplayStats.CPlayer - (*CMsgSignOutGameplayStats_CTeam)(nil), // 133: dota.CMsgSignOutGameplayStats.CTeam - (*CMsgGameMatchSignOut_CTeam)(nil), // 134: dota.CMsgGameMatchSignOut.CTeam - (*CMsgGameMatchSignOut_CAdditionalSignoutMsg)(nil), // 135: dota.CMsgGameMatchSignOut.CAdditionalSignoutMsg - (*CMsgGameMatchSignOut_CSocialFeedMatchEvent)(nil), // 136: dota.CMsgGameMatchSignOut.CSocialFeedMatchEvent - (*CMsgGameMatchSignOut_CCustomGameData)(nil), // 137: dota.CMsgGameMatchSignOut.CCustomGameData - (*CMsgGameMatchSignOut_EventGameLeaderboardEntry)(nil), // 138: dota.CMsgGameMatchSignOut.EventGameLeaderboardEntry - (*CMsgGameMatchSignOut_WardPlacement)(nil), // 139: dota.CMsgGameMatchSignOut.WardPlacement - (*CMsgGameMatchSignOut_CTeam_CPlayer)(nil), // 140: dota.CMsgGameMatchSignOut.CTeam.CPlayer - (*CMsgGameMatchSignOut_CTeam_CPlayer_CCustomGameData)(nil), // 141: dota.CMsgGameMatchSignOut.CTeam.CPlayer.CCustomGameData - (*CMsgGameMatchSignOut_CTeam_CPlayer_HeroDamageReceived)(nil), // 142: dota.CMsgGameMatchSignOut.CTeam.CPlayer.HeroDamageReceived - (*CMsgSignOutTextMuteInfo_TextMuteMessage)(nil), // 143: dota.CMsgSignOutTextMuteInfo.TextMuteMessage - (*CMsgSignOutCommunicationSummary_PlayerCommunication)(nil), // 144: dota.CMsgSignOutCommunicationSummary.PlayerCommunication - (*CMsgSignOutCommunicationSummary_PlayerCommunication_PingDetail)(nil), // 145: dota.CMsgSignOutCommunicationSummary.PlayerCommunication.PingDetail - (*CMsgGameMatchSignoutResponse_PlayerMetadata)(nil), // 146: dota.CMsgGameMatchSignoutResponse.PlayerMetadata - (*CMsgDOTALiveScoreboardUpdate_Team)(nil), // 147: dota.CMsgDOTALiveScoreboardUpdate.Team - (*CMsgDOTALiveScoreboardUpdate_Team_Player)(nil), // 148: dota.CMsgDOTALiveScoreboardUpdate.Team.Player - (*CMsgDOTALiveScoreboardUpdate_Team_Player_HeroAbility)(nil), // 149: dota.CMsgDOTALiveScoreboardUpdate.Team.Player.HeroAbility - (*CMsgServerToGCRequestBatchPlayerResourcesResponse_Result)(nil), // 150: dota.CMsgServerToGCRequestBatchPlayerResourcesResponse.Result - (*CMsgDOTAAwardEventPoints_AwardPoints)(nil), // 151: dota.CMsgDOTAAwardEventPoints.AwardPoints - (*CMsgServerToGCMatchConnectionStats_Player)(nil), // 152: dota.CMsgServerToGCMatchConnectionStats.Player - (*CSerializedCombatLog_Dictionary)(nil), // 153: dota.CSerializedCombatLog.Dictionary - (*CSerializedCombatLog_Dictionary_DictString)(nil), // 154: dota.CSerializedCombatLog.Dictionary.DictString - (*CMsgServerToGCVictoryPredictions_Record)(nil), // 155: dota.CMsgServerToGCVictoryPredictions.Record - (*CMsgServerToGCKillSummaries_KillSummary)(nil), // 156: dota.CMsgServerToGCKillSummaries.KillSummary - (*CMsgGCToServerPredictionResult_Prediction)(nil), // 157: dota.CMsgGCToServerPredictionResult.Prediction - (*CMsgSignOutUpdatePlayerChallenge_Challenge)(nil), // 158: dota.CMsgSignOutUpdatePlayerChallenge.Challenge - (*CMsgSpendWager_Player)(nil), // 159: dota.CMsgSpendWager.Player - (*CMsgSignOutXPCoins_Player)(nil), // 160: dota.CMsgSignOutXPCoins.Player - (*CMsgSignOutBounties_Bounty)(nil), // 161: dota.CMsgSignOutBounties.Bounty - (*CMsgSignOutCommunityGoalProgress_EventGoalIncrement)(nil), // 162: dota.CMsgSignOutCommunityGoalProgress.EventGoalIncrement - (*CMsgServerToGCCompendiumInGamePredictionResults_PredictionResult)(nil), // 163: dota.CMsgServerToGCCompendiumInGamePredictionResults.PredictionResult - (*CMsgServerToGCCompendiumChosenInGamePredictions_Prediction)(nil), // 164: dota.CMsgServerToGCCompendiumChosenInGamePredictions.Prediction - (*CMsgServerToGCMatchPlayerItemPurchaseHistory_ItemPurchase)(nil), // 165: dota.CMsgServerToGCMatchPlayerItemPurchaseHistory.ItemPurchase - (*CMsgServerToGCMatchPlayerItemPurchaseHistory_Player)(nil), // 166: dota.CMsgServerToGCMatchPlayerItemPurchaseHistory.Player - (*CMsgServerToGCMatchPlayerNeutralItemEquipHistory_ItemEquip)(nil), // 167: dota.CMsgServerToGCMatchPlayerNeutralItemEquipHistory.ItemEquip - (*CMsgServerToGCMatchPlayerNeutralItemEquipHistory_Player)(nil), // 168: dota.CMsgServerToGCMatchPlayerNeutralItemEquipHistory.Player - (*CMsgServerToGCMatchStateHistory_PlayerState)(nil), // 169: dota.CMsgServerToGCMatchStateHistory.PlayerState - (*CMsgServerToGCMatchStateHistory_TeamState)(nil), // 170: dota.CMsgServerToGCMatchStateHistory.TeamState - (*CMsgServerToGCMatchStateHistory_MatchState)(nil), // 171: dota.CMsgServerToGCMatchStateHistory.MatchState - (*CMsgServerToGCPlayerChallengeHistory_PlayerChallenge)(nil), // 172: dota.CMsgServerToGCPlayerChallengeHistory.PlayerChallenge - (*CMsgServerToGCCavernCrawlIsHeroActiveResponse_MapResults)(nil), // 173: dota.CMsgServerToGCCavernCrawlIsHeroActiveResponse.MapResults - (*CMsgNeutralItemStats_NeutralItem)(nil), // 174: dota.CMsgNeutralItemStats.NeutralItem - (*CMsgGCToServerLobbyHeroBanRates_HeroBanEntry)(nil), // 175: dota.CMsgGCToServerLobbyHeroBanRates.HeroBanEntry - (*CMsgSignOutGuildContractProgress_CompletedGuildEventContracts)(nil), // 176: dota.CMsgSignOutGuildContractProgress.CompletedGuildEventContracts - (*CMsgSignOutGuildContractProgress_PlayerContract)(nil), // 177: dota.CMsgSignOutGuildContractProgress.PlayerContract - (*CMsgSignOutGuildChallengeProgress_ChallengeProgress)(nil), // 178: dota.CMsgSignOutGuildChallengeProgress.ChallengeProgress - (*CMsgSignOutMVPStats_Player)(nil), // 179: dota.CMsgSignOutMVPStats.Player - (*CMsgSignOutMVPStats_Player_KillEaterEvent)(nil), // 180: dota.CMsgSignOutMVPStats.Player.KillEaterEvent - (*CMsgServerToGCGetGuildContractsResponse_ContractDetails)(nil), // 181: dota.CMsgServerToGCGetGuildContractsResponse.ContractDetails - (*CMsgServerToGCGetGuildContractsResponse_Player)(nil), // 182: dota.CMsgServerToGCGetGuildContractsResponse.Player - (*CMsgMatchDiretideCandy_CandyDetails)(nil), // 183: dota.CMsgMatchDiretideCandy.CandyDetails - (*CMsgMatchDiretideCandy_PlayerCandy)(nil), // 184: dota.CMsgMatchDiretideCandy.PlayerCandy - (*CMsgGCToServerCheerData_CheerTypeCount)(nil), // 185: dota.CMsgGCToServerCheerData.CheerTypeCount - (*CMsgServerToGCGetStickerHeroesResponse_Player)(nil), // 186: dota.CMsgServerToGCGetStickerHeroesResponse.Player - (*CMsgSteamLearnPlayerTimedStats_StatBucket)(nil), // 187: dota.CMsgSteamLearnPlayerTimedStats.StatBucket - (*CMsgSteamLearnMatchStateV4_PlayerState)(nil), // 188: dota.CMsgSteamLearnMatchStateV4.PlayerState - (*CMsgSteamLearnMatchStateV4_TeamState)(nil), // 189: dota.CMsgSteamLearnMatchStateV4.TeamState - (*CMsgSteamLearnMatchStateV5_PlayerState)(nil), // 190: dota.CMsgSteamLearnMatchStateV5.PlayerState - (*CMsgSteamLearnMatchStateV5_TeamState)(nil), // 191: dota.CMsgSteamLearnMatchStateV5.TeamState - (*CMsgSteamLearnWardPlacement_Location)(nil), // 192: dota.CMsgSteamLearnWardPlacement.Location - (*CMsgSignOutMapStats_Player)(nil), // 193: dota.CMsgSignOutMapStats.Player - (*CMsgSignOutOverworld_Player)(nil), // 194: dota.CMsgSignOutOverworld.Player - (DOTA_GameState)(0), // 195: dota.DOTA_GameState - (DOTALeaverStatusT)(0), // 196: dota.DOTALeaverStatus_t - (*CMsgLeaverState)(nil), // 197: dota.CMsgLeaverState - (ENetworkDisconnectionReason)(0), // 198: dota.ENetworkDisconnectionReason - (*CMsgDOTAFantasyPlayerStats)(nil), // 199: dota.CMsgDOTAFantasyPlayerStats - (*CMsgDOTARealtimeGameStatsTerse)(nil), // 200: dota.CMsgDOTARealtimeGameStatsTerse + (*CMsgPoorNetworkConditions)(nil), // 7: dota.CMsgPoorNetworkConditions + (*CMsgGameserverCrash)(nil), // 8: dota.CMsgGameserverCrash + (*CMsgConnectedPlayers)(nil), // 9: dota.CMsgConnectedPlayers + (*CMsgGameServerInfo)(nil), // 10: dota.CMsgGameServerInfo + (*CMsgLeaverDetected)(nil), // 11: dota.CMsgLeaverDetected + (*CMsgLeaverDetectedResponse)(nil), // 12: dota.CMsgLeaverDetectedResponse + (*CMsgDOTAFantasyFinalPlayerStats)(nil), // 13: dota.CMsgDOTAFantasyFinalPlayerStats + (*CMsgDOTAFantasyLivePlayerStats)(nil), // 14: dota.CMsgDOTAFantasyLivePlayerStats + (*CMsgServerToGCRealtimeStats)(nil), // 15: dota.CMsgServerToGCRealtimeStats + (*CMsgGCToServerRealtimeStatsStartStop)(nil), // 16: dota.CMsgGCToServerRealtimeStatsStartStop + (*CMsgGCToServerUpdateSteamBroadcasting)(nil), // 17: dota.CMsgGCToServerUpdateSteamBroadcasting + (*CMsgSignOutGameplayStats)(nil), // 18: dota.CMsgSignOutGameplayStats + (*CMsgGameMatchSignOut)(nil), // 19: dota.CMsgGameMatchSignOut + (*CMsgSignOutDraftInfo)(nil), // 20: dota.CMsgSignOutDraftInfo + (*CMsgSignOutBotInfo)(nil), // 21: dota.CMsgSignOutBotInfo + (*CMsgSignOutTextMuteInfo)(nil), // 22: dota.CMsgSignOutTextMuteInfo + (*CMsgSignOutPlayerStats)(nil), // 23: dota.CMsgSignOutPlayerStats + (*CMsgSignOutCommunicationSummary)(nil), // 24: dota.CMsgSignOutCommunicationSummary + (*CMsgGameMatchSignoutResponse)(nil), // 25: dota.CMsgGameMatchSignoutResponse + (*CMsgTimedRewardContainer)(nil), // 26: dota.CMsgTimedRewardContainer + (*CMsgGameMatchSignOutPermissionRequest)(nil), // 27: dota.CMsgGameMatchSignOutPermissionRequest + (*CMsgGameMatchSignOutPermissionResponse)(nil), // 28: dota.CMsgGameMatchSignOutPermissionResponse + (*CMsgGameMatchSignOutEventGameData)(nil), // 29: dota.CMsgGameMatchSignOutEventGameData + (*CMsgGameMatchSignOutPerfData)(nil), // 30: dota.CMsgGameMatchSignOutPerfData + (*CMsgGameMatchSignOutBanData)(nil), // 31: dota.CMsgGameMatchSignOutBanData + (*CMsgDOTALiveScoreboardUpdate)(nil), // 32: dota.CMsgDOTALiveScoreboardUpdate + (*CMsgServerToGCRequestBatchPlayerResources)(nil), // 33: dota.CMsgServerToGCRequestBatchPlayerResources + (*CMsgServerToGCRequestBatchPlayerResourcesResponse)(nil), // 34: dota.CMsgServerToGCRequestBatchPlayerResourcesResponse + (*CMsgDOTAPlayerFailedToConnect)(nil), // 35: dota.CMsgDOTAPlayerFailedToConnect + (*CMsgGCToRelayConnect)(nil), // 36: dota.CMsgGCToRelayConnect + (*CMsgGCGCToLANServerRelayConnect)(nil), // 37: dota.CMsgGCGCToLANServerRelayConnect + (*CMsgGCBanStatusRequest)(nil), // 38: dota.CMsgGCBanStatusRequest + (*CMsgGCBanStatusResponse)(nil), // 39: dota.CMsgGCBanStatusResponse + (*CMsgTournamentItemEvent)(nil), // 40: dota.CMsgTournamentItemEvent + (*CMsgTournamentItemEventResponse)(nil), // 41: dota.CMsgTournamentItemEventResponse + (*CMsgTeamFanfare)(nil), // 42: dota.CMsgTeamFanfare + (*CMsgResponseTeamFanfare)(nil), // 43: dota.CMsgResponseTeamFanfare + (*CMsgGameServerUploadSaveGame)(nil), // 44: dota.CMsgGameServerUploadSaveGame + (*CMsgGameServerSaveGameResult)(nil), // 45: dota.CMsgGameServerSaveGameResult + (*CMsgGameServerGetLoadGame)(nil), // 46: dota.CMsgGameServerGetLoadGame + (*CMsgGameServerGetLoadGameResult)(nil), // 47: dota.CMsgGameServerGetLoadGameResult + (*CMsgDOTAAwardEventPoints)(nil), // 48: dota.CMsgDOTAAwardEventPoints + (*CMsgGCToServerPingRequest)(nil), // 49: dota.CMsgGCToServerPingRequest + (*CMsgGCToServerPingResponse)(nil), // 50: dota.CMsgGCToServerPingResponse + (*CMsgServerToGCMatchConnectionStats)(nil), // 51: dota.CMsgServerToGCMatchConnectionStats + (*CMsgServerGCUpdateSpectatorCount)(nil), // 52: dota.CMsgServerGCUpdateSpectatorCount + (*CSerializedCombatLog)(nil), // 53: dota.CSerializedCombatLog + (*CMsgServerToGCVictoryPredictions)(nil), // 54: dota.CMsgServerToGCVictoryPredictions + (*CMsgServerToGCRequestStatus)(nil), // 55: dota.CMsgServerToGCRequestStatus + (*CMsgServerToGCRequestStatus_Response)(nil), // 56: dota.CMsgServerToGCRequestStatus_Response + (*CMsgGCToServerEvaluateToxicChat)(nil), // 57: dota.CMsgGCToServerEvaluateToxicChat + (*CMsgServerToGCEvaluateToxicChat)(nil), // 58: dota.CMsgServerToGCEvaluateToxicChat + (*CMsgServerToGCEvaluateToxicChatResponse)(nil), // 59: dota.CMsgServerToGCEvaluateToxicChatResponse + (*CMsgSignOutAssassinMiniGameInfo)(nil), // 60: dota.CMsgSignOutAssassinMiniGameInfo + (*CMsgServerToGCKillSummaries)(nil), // 61: dota.CMsgServerToGCKillSummaries + (*CMsgServerToGCLockCharmTrading)(nil), // 62: dota.CMsgServerToGCLockCharmTrading + (*CMsgSignOutUpdatePlayerChallenge)(nil), // 63: dota.CMsgSignOutUpdatePlayerChallenge + (*CMsgServerToGCRerollPlayerChallenge)(nil), // 64: dota.CMsgServerToGCRerollPlayerChallenge + (*CMsgSpendWager)(nil), // 65: dota.CMsgSpendWager + (*CMsgSignOutXPCoins)(nil), // 66: dota.CMsgSignOutXPCoins + (*CMsgSignOutBounties)(nil), // 67: dota.CMsgSignOutBounties + (*CMsgSignOutCommunityGoalProgress)(nil), // 68: dota.CMsgSignOutCommunityGoalProgress + (*CMsgServerToGCCloseCompendiumInGamePredictionVoting)(nil), // 69: dota.CMsgServerToGCCloseCompendiumInGamePredictionVoting + (*CMsgServerToGCCloseCompendiumInGamePredictionVotingResponse)(nil), // 70: dota.CMsgServerToGCCloseCompendiumInGamePredictionVotingResponse + (*CMsgServerToGCCompendiumInGamePredictionResults)(nil), // 71: dota.CMsgServerToGCCompendiumInGamePredictionResults + (*CMsgServerToGCCompendiumChosenInGamePredictions)(nil), // 72: dota.CMsgServerToGCCompendiumChosenInGamePredictions + (*CMsgGCToGCCompendiumInGamePredictionResults)(nil), // 73: dota.CMsgGCToGCCompendiumInGamePredictionResults + (*CMsgServerToGCMatchPlayerItemPurchaseHistory)(nil), // 74: dota.CMsgServerToGCMatchPlayerItemPurchaseHistory + (*CMsgServerToGCMatchPlayerNeutralItemEquipHistory)(nil), // 75: dota.CMsgServerToGCMatchPlayerNeutralItemEquipHistory + (*CMsgServerToGCMatchStateHistory)(nil), // 76: dota.CMsgServerToGCMatchStateHistory + (*CMsgMatchStateSteamMLEntry)(nil), // 77: dota.CMsgMatchStateSteamMLEntry + (*CMsgLaneSelectionSteamMLEntry)(nil), // 78: dota.CMsgLaneSelectionSteamMLEntry + (*CMsgAbilitySelectionSteamMLEntry)(nil), // 79: dota.CMsgAbilitySelectionSteamMLEntry + (*CMsgItemPurchasePregameSteamMLEntry)(nil), // 80: dota.CMsgItemPurchasePregameSteamMLEntry + (*CMsgItemPurchaseSteamMLEntry)(nil), // 81: dota.CMsgItemPurchaseSteamMLEntry + (*CMsgItemPurchaseSequenceSteamMLEntry)(nil), // 82: dota.CMsgItemPurchaseSequenceSteamMLEntry + (*CMsgServerToGCCavernCrawlIsHeroActive)(nil), // 83: dota.CMsgServerToGCCavernCrawlIsHeroActive + (*CMsgServerToGCPlayerChallengeHistory)(nil), // 84: dota.CMsgServerToGCPlayerChallengeHistory + (*CMsgServerToGCCavernCrawlIsHeroActiveResponse)(nil), // 85: dota.CMsgServerToGCCavernCrawlIsHeroActiveResponse + (*CMsgNeutralItemStats)(nil), // 86: dota.CMsgNeutralItemStats + (*CMsgGCToServerLobbyHeroBanRates)(nil), // 87: dota.CMsgGCToServerLobbyHeroBanRates + (*CMsgSignOutGuildContractProgress)(nil), // 88: dota.CMsgSignOutGuildContractProgress + (*CMsgSignOutGuildChallengeProgress)(nil), // 89: dota.CMsgSignOutGuildChallengeProgress + (*CMsgSignOutMVPStats)(nil), // 90: dota.CMsgSignOutMVPStats + (*CMsgGCToServerRecordTrainingData)(nil), // 91: dota.CMsgGCToServerRecordTrainingData + (*CMsgServerToGCGetGuildContracts)(nil), // 92: dota.CMsgServerToGCGetGuildContracts + (*CMsgServerToGCGetGuildContractsResponse)(nil), // 93: dota.CMsgServerToGCGetGuildContractsResponse + (*CMsgMatchDiretideCandy)(nil), // 94: dota.CMsgMatchDiretideCandy + (*CMsgGCToServerCheerData)(nil), // 95: dota.CMsgGCToServerCheerData + (*CMsgCheerConfig)(nil), // 96: dota.CMsgCheerConfig + (*CMsgGCToServerCheerConfig)(nil), // 97: dota.CMsgGCToServerCheerConfig + (*CMsgServerToGCGetCheerConfig)(nil), // 98: dota.CMsgServerToGCGetCheerConfig + (*CMsgServerToGCGetCheerConfigResponse)(nil), // 99: dota.CMsgServerToGCGetCheerConfigResponse + (*CMsgGCToServerCheerScalesOverride)(nil), // 100: dota.CMsgGCToServerCheerScalesOverride + (*CMsgGCToServerGetCheerState)(nil), // 101: dota.CMsgGCToServerGetCheerState + (*CMsgCheerTypeState)(nil), // 102: dota.CMsgCheerTypeState + (*CMsgCheerState)(nil), // 103: dota.CMsgCheerState + (*CMsgServerToGCReportCheerState)(nil), // 104: dota.CMsgServerToGCReportCheerState + (*CMsgServerToGCGetStickerHeroes)(nil), // 105: dota.CMsgServerToGCGetStickerHeroes + (*CMsgServerToGCGetStickerHeroesResponse)(nil), // 106: dota.CMsgServerToGCGetStickerHeroesResponse + (*CMsgGCToServerSteamLearnAccessTokensChanged)(nil), // 107: dota.CMsgGCToServerSteamLearnAccessTokensChanged + (*CMsgGCToServerSteamLearnUseHTTP)(nil), // 108: dota.CMsgGCToServerSteamLearnUseHTTP + (*CMsgSteamLearnMatchInfo)(nil), // 109: dota.CMsgSteamLearnMatchInfo + (*CMsgSteamLearnMatchInfoPlayer)(nil), // 110: dota.CMsgSteamLearnMatchInfoPlayer + (*CMsgSteamLearnMatchHeroesV3)(nil), // 111: dota.CMsgSteamLearnMatchHeroesV3 + (*CMsgSteamLearnMatchHeroV3)(nil), // 112: dota.CMsgSteamLearnMatchHeroV3 + (*CMsgSteamLearnPlayerTimedStats)(nil), // 113: dota.CMsgSteamLearnPlayerTimedStats + (*CMsgSteamLearnMatchStateV5)(nil), // 114: dota.CMsgSteamLearnMatchStateV5 + (*CMsgSteamLearnItemPurchase)(nil), // 115: dota.CMsgSteamLearnItemPurchase + (*CMsgSteamLearnPreGameItemPurchases)(nil), // 116: dota.CMsgSteamLearnPreGameItemPurchases + (*CMsgSteamLearnNeutralItemPurchase)(nil), // 117: dota.CMsgSteamLearnNeutralItemPurchase + (*CMsgSteamLearnAbilitySkill)(nil), // 118: dota.CMsgSteamLearnAbilitySkill + (*CMsgSteamLearnEarlyGameItemPurchases)(nil), // 119: dota.CMsgSteamLearnEarlyGameItemPurchases + (*CMsgSteamLearnLateGameItemPurchases)(nil), // 120: dota.CMsgSteamLearnLateGameItemPurchases + (*CMsgSteamLearnWardPlacement)(nil), // 121: dota.CMsgSteamLearnWardPlacement + (*CMsgSignOutMuertaMinigame)(nil), // 122: dota.CMsgSignOutMuertaMinigame + (*CMsgSignOutMapStats)(nil), // 123: dota.CMsgSignOutMapStats + (*CMsgServerToGCNewBloomGift)(nil), // 124: dota.CMsgServerToGCNewBloomGift + (*CMsgServerToGCNewBloomGiftResponse)(nil), // 125: dota.CMsgServerToGCNewBloomGiftResponse + (*CMsgSignOutOverworld)(nil), // 126: dota.CMsgSignOutOverworld + (*CMsgPoorNetworkConditions_Player)(nil), // 127: dota.CMsgPoorNetworkConditions.Player + (*CMsgConnectedPlayers_Player)(nil), // 128: dota.CMsgConnectedPlayers.Player + (*CMsgConnectedPlayers_PlayerDraft)(nil), // 129: dota.CMsgConnectedPlayers.PlayerDraft + (*CMsgSignOutGameplayStats_CPlayer)(nil), // 130: dota.CMsgSignOutGameplayStats.CPlayer + (*CMsgSignOutGameplayStats_CTeam)(nil), // 131: dota.CMsgSignOutGameplayStats.CTeam + (*CMsgGameMatchSignOut_CTeam)(nil), // 132: dota.CMsgGameMatchSignOut.CTeam + (*CMsgGameMatchSignOut_CAdditionalSignoutMsg)(nil), // 133: dota.CMsgGameMatchSignOut.CAdditionalSignoutMsg + (*CMsgGameMatchSignOut_CSocialFeedMatchEvent)(nil), // 134: dota.CMsgGameMatchSignOut.CSocialFeedMatchEvent + (*CMsgGameMatchSignOut_CCustomGameData)(nil), // 135: dota.CMsgGameMatchSignOut.CCustomGameData + (*CMsgGameMatchSignOut_EventGameLeaderboardEntry)(nil), // 136: dota.CMsgGameMatchSignOut.EventGameLeaderboardEntry + (*CMsgGameMatchSignOut_WardPlacement)(nil), // 137: dota.CMsgGameMatchSignOut.WardPlacement + (*CMsgGameMatchSignOut_CTeam_CPlayer)(nil), // 138: dota.CMsgGameMatchSignOut.CTeam.CPlayer + (*CMsgGameMatchSignOut_CTeam_CPlayer_CCustomGameData)(nil), // 139: dota.CMsgGameMatchSignOut.CTeam.CPlayer.CCustomGameData + (*CMsgGameMatchSignOut_CTeam_CPlayer_HeroDamageReceived)(nil), // 140: dota.CMsgGameMatchSignOut.CTeam.CPlayer.HeroDamageReceived + (*CMsgSignOutTextMuteInfo_TextMuteMessage)(nil), // 141: dota.CMsgSignOutTextMuteInfo.TextMuteMessage + (*CMsgSignOutCommunicationSummary_PlayerCommunication)(nil), // 142: dota.CMsgSignOutCommunicationSummary.PlayerCommunication + (*CMsgSignOutCommunicationSummary_PlayerCommunication_PingDetail)(nil), // 143: dota.CMsgSignOutCommunicationSummary.PlayerCommunication.PingDetail + (*CMsgGameMatchSignoutResponse_PlayerMetadata)(nil), // 144: dota.CMsgGameMatchSignoutResponse.PlayerMetadata + (*CMsgDOTALiveScoreboardUpdate_Team)(nil), // 145: dota.CMsgDOTALiveScoreboardUpdate.Team + (*CMsgDOTALiveScoreboardUpdate_Team_Player)(nil), // 146: dota.CMsgDOTALiveScoreboardUpdate.Team.Player + (*CMsgDOTALiveScoreboardUpdate_Team_Player_HeroAbility)(nil), // 147: dota.CMsgDOTALiveScoreboardUpdate.Team.Player.HeroAbility + (*CMsgServerToGCRequestBatchPlayerResourcesResponse_Result)(nil), // 148: dota.CMsgServerToGCRequestBatchPlayerResourcesResponse.Result + (*CMsgDOTAAwardEventPoints_AwardPoints)(nil), // 149: dota.CMsgDOTAAwardEventPoints.AwardPoints + (*CMsgServerToGCMatchConnectionStats_Player)(nil), // 150: dota.CMsgServerToGCMatchConnectionStats.Player + (*CSerializedCombatLog_Dictionary)(nil), // 151: dota.CSerializedCombatLog.Dictionary + (*CSerializedCombatLog_Dictionary_DictString)(nil), // 152: dota.CSerializedCombatLog.Dictionary.DictString + (*CMsgServerToGCVictoryPredictions_PredictionItem)(nil), // 153: dota.CMsgServerToGCVictoryPredictions.PredictionItem + (*CMsgServerToGCVictoryPredictions_Record)(nil), // 154: dota.CMsgServerToGCVictoryPredictions.Record + (*CMsgServerToGCKillSummaries_KillSummary)(nil), // 155: dota.CMsgServerToGCKillSummaries.KillSummary + (*CMsgSignOutUpdatePlayerChallenge_Challenge)(nil), // 156: dota.CMsgSignOutUpdatePlayerChallenge.Challenge + (*CMsgSpendWager_Player)(nil), // 157: dota.CMsgSpendWager.Player + (*CMsgSignOutXPCoins_Player)(nil), // 158: dota.CMsgSignOutXPCoins.Player + (*CMsgSignOutBounties_Bounty)(nil), // 159: dota.CMsgSignOutBounties.Bounty + (*CMsgSignOutCommunityGoalProgress_EventGoalIncrement)(nil), // 160: dota.CMsgSignOutCommunityGoalProgress.EventGoalIncrement + (*CMsgServerToGCCompendiumInGamePredictionResults_PredictionResult)(nil), // 161: dota.CMsgServerToGCCompendiumInGamePredictionResults.PredictionResult + (*CMsgServerToGCCompendiumChosenInGamePredictions_Prediction)(nil), // 162: dota.CMsgServerToGCCompendiumChosenInGamePredictions.Prediction + (*CMsgServerToGCMatchPlayerItemPurchaseHistory_ItemPurchase)(nil), // 163: dota.CMsgServerToGCMatchPlayerItemPurchaseHistory.ItemPurchase + (*CMsgServerToGCMatchPlayerItemPurchaseHistory_Player)(nil), // 164: dota.CMsgServerToGCMatchPlayerItemPurchaseHistory.Player + (*CMsgServerToGCMatchPlayerNeutralItemEquipHistory_ItemEquip)(nil), // 165: dota.CMsgServerToGCMatchPlayerNeutralItemEquipHistory.ItemEquip + (*CMsgServerToGCMatchPlayerNeutralItemEquipHistory_Player)(nil), // 166: dota.CMsgServerToGCMatchPlayerNeutralItemEquipHistory.Player + (*CMsgServerToGCMatchStateHistory_PlayerState)(nil), // 167: dota.CMsgServerToGCMatchStateHistory.PlayerState + (*CMsgServerToGCMatchStateHistory_TeamState)(nil), // 168: dota.CMsgServerToGCMatchStateHistory.TeamState + (*CMsgServerToGCMatchStateHistory_MatchState)(nil), // 169: dota.CMsgServerToGCMatchStateHistory.MatchState + (*CMsgServerToGCPlayerChallengeHistory_PlayerChallenge)(nil), // 170: dota.CMsgServerToGCPlayerChallengeHistory.PlayerChallenge + (*CMsgServerToGCCavernCrawlIsHeroActiveResponse_MapResults)(nil), // 171: dota.CMsgServerToGCCavernCrawlIsHeroActiveResponse.MapResults + (*CMsgNeutralItemStats_NeutralItem)(nil), // 172: dota.CMsgNeutralItemStats.NeutralItem + (*CMsgGCToServerLobbyHeroBanRates_HeroBanEntry)(nil), // 173: dota.CMsgGCToServerLobbyHeroBanRates.HeroBanEntry + (*CMsgSignOutGuildContractProgress_CompletedGuildEventContracts)(nil), // 174: dota.CMsgSignOutGuildContractProgress.CompletedGuildEventContracts + (*CMsgSignOutGuildContractProgress_PlayerContract)(nil), // 175: dota.CMsgSignOutGuildContractProgress.PlayerContract + (*CMsgSignOutGuildChallengeProgress_ChallengeProgress)(nil), // 176: dota.CMsgSignOutGuildChallengeProgress.ChallengeProgress + (*CMsgSignOutMVPStats_Player)(nil), // 177: dota.CMsgSignOutMVPStats.Player + (*CMsgSignOutMVPStats_Player_KillEaterEvent)(nil), // 178: dota.CMsgSignOutMVPStats.Player.KillEaterEvent + (*CMsgServerToGCGetGuildContractsResponse_ContractDetails)(nil), // 179: dota.CMsgServerToGCGetGuildContractsResponse.ContractDetails + (*CMsgServerToGCGetGuildContractsResponse_Player)(nil), // 180: dota.CMsgServerToGCGetGuildContractsResponse.Player + (*CMsgMatchDiretideCandy_CandyDetails)(nil), // 181: dota.CMsgMatchDiretideCandy.CandyDetails + (*CMsgMatchDiretideCandy_PlayerCandy)(nil), // 182: dota.CMsgMatchDiretideCandy.PlayerCandy + (*CMsgGCToServerCheerData_CheerTypeCount)(nil), // 183: dota.CMsgGCToServerCheerData.CheerTypeCount + (*CMsgServerToGCGetStickerHeroesResponse_Player)(nil), // 184: dota.CMsgServerToGCGetStickerHeroesResponse.Player + (*CMsgSteamLearnPlayerTimedStats_StatBucket)(nil), // 185: dota.CMsgSteamLearnPlayerTimedStats.StatBucket + (*CMsgSteamLearnMatchStateV5_PlayerState)(nil), // 186: dota.CMsgSteamLearnMatchStateV5.PlayerState + (*CMsgSteamLearnMatchStateV5_TeamState)(nil), // 187: dota.CMsgSteamLearnMatchStateV5.TeamState + (*CMsgSteamLearnWardPlacement_Location)(nil), // 188: dota.CMsgSteamLearnWardPlacement.Location + (*CMsgSignOutMapStats_Player)(nil), // 189: dota.CMsgSignOutMapStats.Player + (*CMsgSignOutOverworld_Player)(nil), // 190: dota.CMsgSignOutOverworld.Player + (DOTA_GameState)(0), // 191: dota.DOTA_GameState + (DOTALeaverStatusT)(0), // 192: dota.DOTALeaverStatus_t + (*CMsgLeaverState)(nil), // 193: dota.CMsgLeaverState + (ENetworkDisconnectionReason)(0), // 194: dota.ENetworkDisconnectionReason + (*CMsgDOTAFantasyPlayerStats)(nil), // 195: dota.CMsgDOTAFantasyPlayerStats + (*CMsgDOTARealtimeGameStatsTerse)(nil), // 196: dota.CMsgDOTARealtimeGameStatsTerse + (*CMsgEconPlayerStrangeCountAdjustment)(nil), // 197: dota.CMsgEconPlayerStrangeCountAdjustment + (*CExtraMsgBlock)(nil), // 198: dota.CExtraMsgBlock + (DOTA_GC_TEAM)(0), // 199: dota.DOTA_GC_TEAM + (*CMsgTrackedStat)(nil), // 200: dota.CMsgTrackedStat (*CMatchHeroSelectEvent)(nil), // 201: dota.CMatchHeroSelectEvent - (*CMsgEconPlayerStrangeCountAdjustment)(nil), // 202: dota.CMsgEconPlayerStrangeCountAdjustment - (*CExtraMsgBlock)(nil), // 203: dota.CExtraMsgBlock - (DOTA_GC_TEAM)(0), // 204: dota.DOTA_GC_TEAM - (*CMsgTrackedStat)(nil), // 205: dota.CMsgTrackedStat - (DOTABotDifficulty)(0), // 206: dota.DOTABotDifficulty - (*CLobbyTimedRewardDetails)(nil), // 207: dota.CLobbyTimedRewardDetails - (*CSODOTALobbyMember)(nil), // 208: dota.CSODOTALobbyMember - (*CMsgDOTAMatch)(nil), // 209: dota.CMsgDOTAMatch - (*CMvpData)(nil), // 210: dota.CMvpData - (*CMsgOverworldMatchRewards)(nil), // 211: dota.CMsgOverworldMatchRewards - (EEvent)(0), // 212: dota.EEvent - (DOTA_TournamentEvents)(0), // 213: dota.DOTA_TournamentEvents - (*CProtoItemHeroStatue)(nil), // 214: dota.CProtoItemHeroStatue - (*CMsgDOTACombatLogEntry)(nil), // 215: dota.CMsgDOTACombatLogEntry - (*CMsgClientToGCRerollPlayerChallenge)(nil), // 216: dota.CMsgClientToGCRerollPlayerChallenge - (*CMsgSteamLearnAccessTokens)(nil), // 217: dota.CMsgSteamLearnAccessTokens - (*CMsgMapStatsSnapshot)(nil), // 218: dota.CMsgMapStatsSnapshot - (ENewBloomGiftingResponse)(0), // 219: dota.ENewBloomGiftingResponse - (*CMatchPlayerTimedStats)(nil), // 220: dota.CMatchPlayerTimedStats - (*CMatchTeamTimedStats)(nil), // 221: dota.CMatchTeamTimedStats - (*CMatchPlayerAbilityUpgrade)(nil), // 222: dota.CMatchPlayerAbilityUpgrade - (*CMatchAdditionalUnitInventory)(nil), // 223: dota.CMatchAdditionalUnitInventory - (*CMatchPlayerPermanentBuff)(nil), // 224: dota.CMatchPlayerPermanentBuff - (EPlayerChallengeHistoryType)(0), // 225: dota.EPlayerChallengeHistoryType - (*CMsgStickerHeroes)(nil), // 226: dota.CMsgStickerHeroes + (DOTABotDifficulty)(0), // 202: dota.DOTABotDifficulty + (*CLobbyTimedRewardDetails)(nil), // 203: dota.CLobbyTimedRewardDetails + (*CSODOTALobbyMember)(nil), // 204: dota.CSODOTALobbyMember + (*CMsgDOTAMatch)(nil), // 205: dota.CMsgDOTAMatch + (*CMvpData)(nil), // 206: dota.CMvpData + (*CMsgOverworldMatchRewards)(nil), // 207: dota.CMsgOverworldMatchRewards + (EEvent)(0), // 208: dota.EEvent + (DOTA_TournamentEvents)(0), // 209: dota.DOTA_TournamentEvents + (*CProtoItemHeroStatue)(nil), // 210: dota.CProtoItemHeroStatue + (*CMsgDOTACombatLogEntry)(nil), // 211: dota.CMsgDOTACombatLogEntry + (*CMsgClientToGCRerollPlayerChallenge)(nil), // 212: dota.CMsgClientToGCRerollPlayerChallenge + (*CMsgSteamLearnAccessTokens)(nil), // 213: dota.CMsgSteamLearnAccessTokens + (*CMsgMapStatsSnapshot)(nil), // 214: dota.CMsgMapStatsSnapshot + (ENewBloomGiftingResponse)(0), // 215: dota.ENewBloomGiftingResponse + (*CMatchPlayerTimedStats)(nil), // 216: dota.CMatchPlayerTimedStats + (*CMatchTeamTimedStats)(nil), // 217: dota.CMatchTeamTimedStats + (*CMatchPlayerAbilityUpgrade)(nil), // 218: dota.CMatchPlayerAbilityUpgrade + (*CMatchAdditionalUnitInventory)(nil), // 219: dota.CMatchAdditionalUnitInventory + (*CMatchPlayerPermanentBuff)(nil), // 220: dota.CMatchPlayerPermanentBuff + (EPlayerChallengeHistoryType)(0), // 221: dota.EPlayerChallengeHistoryType + (*CMsgStickerHeroes)(nil), // 222: dota.CMsgStickerHeroes } var file_dota_gcmessages_server_proto_depIdxs = []int32{ 0, // 0: dota.CMsgPoorNetworkConditions.detection_type:type_name -> dota.EPoorNetworkConditionsType - 129, // 1: dota.CMsgPoorNetworkConditions.players:type_name -> dota.CMsgPoorNetworkConditions.Player - 195, // 2: dota.CMsgGameserverCrash.game_state:type_name -> dota.DOTA_GameState - 130, // 3: dota.CMsgConnectedPlayers.connected_players:type_name -> dota.CMsgConnectedPlayers.Player - 130, // 4: dota.CMsgConnectedPlayers.disconnected_players:type_name -> dota.CMsgConnectedPlayers.Player - 195, // 5: dota.CMsgConnectedPlayers.game_state:type_name -> dota.DOTA_GameState - 8, // 6: dota.CMsgConnectedPlayers.poor_network_conditions:type_name -> dota.CMsgPoorNetworkConditions + 127, // 1: dota.CMsgPoorNetworkConditions.players:type_name -> dota.CMsgPoorNetworkConditions.Player + 191, // 2: dota.CMsgGameserverCrash.game_state:type_name -> dota.DOTA_GameState + 128, // 3: dota.CMsgConnectedPlayers.connected_players:type_name -> dota.CMsgConnectedPlayers.Player + 128, // 4: dota.CMsgConnectedPlayers.disconnected_players:type_name -> dota.CMsgConnectedPlayers.Player + 191, // 5: dota.CMsgConnectedPlayers.game_state:type_name -> dota.DOTA_GameState + 7, // 6: dota.CMsgConnectedPlayers.poor_network_conditions:type_name -> dota.CMsgPoorNetworkConditions 1, // 7: dota.CMsgConnectedPlayers.send_reason:type_name -> dota.CMsgConnectedPlayers.SendReason - 131, // 8: dota.CMsgConnectedPlayers.player_draft:type_name -> dota.CMsgConnectedPlayers.PlayerDraft + 129, // 8: dota.CMsgConnectedPlayers.player_draft:type_name -> dota.CMsgConnectedPlayers.PlayerDraft 2, // 9: dota.CMsgGameServerInfo.server_type:type_name -> dota.CMsgGameServerInfo.ServerType 3, // 10: dota.CMsgGameServerInfo.allow_custom_games:type_name -> dota.CMsgGameServerInfo.CustomGames - 196, // 11: dota.CMsgLeaverDetected.leaver_status:type_name -> dota.DOTALeaverStatus_t - 197, // 12: dota.CMsgLeaverDetected.leaver_state:type_name -> dota.CMsgLeaverState - 198, // 13: dota.CMsgLeaverDetected.disconnect_reason:type_name -> dota.ENetworkDisconnectionReason - 8, // 14: dota.CMsgLeaverDetected.poor_network_conditions:type_name -> dota.CMsgPoorNetworkConditions - 199, // 15: dota.CMsgDOTAFantasyFinalPlayerStats.stats:type_name -> dota.CMsgDOTAFantasyPlayerStats - 199, // 16: dota.CMsgDOTAFantasyLivePlayerStats.stats:type_name -> dota.CMsgDOTAFantasyPlayerStats - 200, // 17: dota.CMsgServerToGCRealtimeStats.delayed:type_name -> dota.CMsgDOTARealtimeGameStatsTerse - 133, // 18: dota.CMsgSignOutGameplayStats.teams:type_name -> dota.CMsgSignOutGameplayStats.CTeam - 134, // 19: dota.CMsgGameMatchSignOut.teams:type_name -> dota.CMsgGameMatchSignOut.CTeam - 201, // 20: dota.CMsgGameMatchSignOut.picks_bans:type_name -> dota.CMatchHeroSelectEvent - 199, // 21: dota.CMsgGameMatchSignOut.fantasy_stats:type_name -> dota.CMsgDOTAFantasyPlayerStats - 202, // 22: dota.CMsgGameMatchSignOut.player_strange_count_adjustments:type_name -> dota.CMsgEconPlayerStrangeCountAdjustment - 8, // 23: dota.CMsgGameMatchSignOut.poor_network_conditions:type_name -> dota.CMsgPoorNetworkConditions - 135, // 24: dota.CMsgGameMatchSignOut.additional_msgs:type_name -> dota.CMsgGameMatchSignOut.CAdditionalSignoutMsg - 136, // 25: dota.CMsgGameMatchSignOut.social_feed_events:type_name -> dota.CMsgGameMatchSignOut.CSocialFeedMatchEvent - 137, // 26: dota.CMsgGameMatchSignOut.custom_game_data:type_name -> dota.CMsgGameMatchSignOut.CCustomGameData - 138, // 27: dota.CMsgGameMatchSignOut.event_game_leaderboard_entries:type_name -> dota.CMsgGameMatchSignOut.EventGameLeaderboardEntry - 139, // 28: dota.CMsgGameMatchSignOut.ward_placements:type_name -> dota.CMsgGameMatchSignOut.WardPlacement - 19, // 29: dota.CMsgGameMatchSignOut.gameplay_stats:type_name -> dota.CMsgSignOutGameplayStats - 203, // 30: dota.CMsgGameMatchSignOut.extra_messages:type_name -> dota.CExtraMsgBlock - 204, // 31: dota.CMsgGameMatchSignOut.winning_team:type_name -> dota.DOTA_GC_TEAM - 205, // 32: dota.CMsgGameMatchSignOut.match_tracked_stats:type_name -> dota.CMsgTrackedStat - 201, // 33: dota.CMsgSignOutDraftInfo.picks_bans:type_name -> dota.CMatchHeroSelectEvent - 206, // 34: dota.CMsgSignOutBotInfo.bot_difficulty_radiant:type_name -> dota.DOTABotDifficulty - 206, // 35: dota.CMsgSignOutBotInfo.bot_difficulty_dire:type_name -> dota.DOTABotDifficulty - 143, // 36: dota.CMsgSignOutTextMuteInfo.text_mute_messages:type_name -> dota.CMsgSignOutTextMuteInfo.TextMuteMessage - 144, // 37: dota.CMsgSignOutCommunicationSummary.players:type_name -> dota.CMsgSignOutCommunicationSummary.PlayerCommunication - 207, // 38: dota.CMsgGameMatchSignoutResponse.timed_reward_details:type_name -> dota.CLobbyTimedRewardDetails - 208, // 39: dota.CMsgGameMatchSignoutResponse.xp_reward_details:type_name -> dota.CSODOTALobbyMember - 209, // 40: dota.CMsgGameMatchSignoutResponse.match_details:type_name -> dota.CMsgDOTAMatch - 146, // 41: dota.CMsgGameMatchSignoutResponse.players_metadata:type_name -> dota.CMsgGameMatchSignoutResponse.PlayerMetadata - 210, // 42: dota.CMsgGameMatchSignoutResponse.mvp_data:type_name -> dota.CMvpData - 211, // 43: dota.CMsgGameMatchSignoutResponse.overworld_rewards:type_name -> dota.CMsgOverworldMatchRewards - 207, // 44: dota.CMsgTimedRewardContainer.timed_reward_details:type_name -> dota.CLobbyTimedRewardDetails - 212, // 45: dota.CMsgGameMatchSignOutEventGameData.event_id:type_name -> dota.EEvent - 147, // 46: dota.CMsgDOTALiveScoreboardUpdate.team_good:type_name -> dota.CMsgDOTALiveScoreboardUpdate.Team - 147, // 47: dota.CMsgDOTALiveScoreboardUpdate.team_bad:type_name -> dota.CMsgDOTALiveScoreboardUpdate.Team - 150, // 48: dota.CMsgServerToGCRequestBatchPlayerResourcesResponse.results:type_name -> dota.CMsgServerToGCRequestBatchPlayerResourcesResponse.Result - 213, // 49: dota.CMsgTournamentItemEvent.event_type:type_name -> dota.DOTA_TournamentEvents - 214, // 50: dota.CMsgTournamentItemEvent.hero_statues:type_name -> dota.CProtoItemHeroStatue - 213, // 51: dota.CMsgTournamentItemEventResponse.event_type:type_name -> dota.DOTA_TournamentEvents - 6, // 52: dota.CMsgGameServerSaveGameResult.result:type_name -> dota.CMsgGameServerSaveGameResult.Result - 151, // 53: dota.CMsgDOTAAwardEventPoints.award_points:type_name -> dota.CMsgDOTAAwardEventPoints.AwardPoints - 212, // 54: dota.CMsgDOTAAwardEventPoints.event_id:type_name -> dota.EEvent - 152, // 55: dota.CMsgServerToGCMatchConnectionStats.players:type_name -> dota.CMsgServerToGCMatchConnectionStats.Player - 153, // 56: dota.CSerializedCombatLog.dictionary:type_name -> dota.CSerializedCombatLog.Dictionary - 215, // 57: dota.CSerializedCombatLog.entries:type_name -> dota.CMsgDOTACombatLogEntry - 155, // 58: dota.CMsgServerToGCVictoryPredictions.records:type_name -> dota.CMsgServerToGCVictoryPredictions.Record - 156, // 59: dota.CMsgServerToGCKillSummaries.summaries:type_name -> dota.CMsgServerToGCKillSummaries.KillSummary - 157, // 60: dota.CMsgGCToServerPredictionResult.predictions:type_name -> dota.CMsgGCToServerPredictionResult.Prediction - 158, // 61: dota.CMsgSignOutUpdatePlayerChallenge.completed:type_name -> dota.CMsgSignOutUpdatePlayerChallenge.Challenge - 158, // 62: dota.CMsgSignOutUpdatePlayerChallenge.rerolled:type_name -> dota.CMsgSignOutUpdatePlayerChallenge.Challenge - 216, // 63: dota.CMsgServerToGCRerollPlayerChallenge.reroll_msg:type_name -> dota.CMsgClientToGCRerollPlayerChallenge - 159, // 64: dota.CMsgSpendWager.players:type_name -> dota.CMsgSpendWager.Player - 212, // 65: dota.CMsgSpendWager.event_id:type_name -> dota.EEvent - 160, // 66: dota.CMsgSignOutXPCoins.players:type_name -> dota.CMsgSignOutXPCoins.Player - 212, // 67: dota.CMsgSignOutXPCoins.event_id:type_name -> dota.EEvent - 161, // 68: dota.CMsgSignOutBounties.bounties:type_name -> dota.CMsgSignOutBounties.Bounty - 212, // 69: dota.CMsgSignOutBounties.event_id:type_name -> dota.EEvent - 212, // 70: dota.CMsgSignOutCommunityGoalProgress.event_id:type_name -> dota.EEvent - 162, // 71: dota.CMsgSignOutCommunityGoalProgress.event_increments:type_name -> dota.CMsgSignOutCommunityGoalProgress.EventGoalIncrement - 163, // 72: dota.CMsgServerToGCCompendiumInGamePredictionResults.results:type_name -> dota.CMsgServerToGCCompendiumInGamePredictionResults.PredictionResult - 164, // 73: dota.CMsgServerToGCCompendiumChosenInGamePredictions.predictions_chosen:type_name -> dota.CMsgServerToGCCompendiumChosenInGamePredictions.Prediction - 73, // 74: dota.CMsgGCToGCCompendiumInGamePredictionResults.results:type_name -> dota.CMsgServerToGCCompendiumInGamePredictionResults - 166, // 75: dota.CMsgServerToGCMatchPlayerItemPurchaseHistory.players:type_name -> dota.CMsgServerToGCMatchPlayerItemPurchaseHistory.Player - 168, // 76: dota.CMsgServerToGCMatchPlayerNeutralItemEquipHistory.players:type_name -> dota.CMsgServerToGCMatchPlayerNeutralItemEquipHistory.Player - 171, // 77: dota.CMsgServerToGCMatchStateHistory.match_states:type_name -> dota.CMsgServerToGCMatchStateHistory.MatchState - 171, // 78: dota.CMsgMatchStateSteamMLEntry.match_state:type_name -> dota.CMsgServerToGCMatchStateHistory.MatchState - 172, // 79: dota.CMsgServerToGCPlayerChallengeHistory.challenge_records:type_name -> dota.CMsgServerToGCPlayerChallengeHistory.PlayerChallenge - 173, // 80: dota.CMsgServerToGCCavernCrawlIsHeroActiveResponse.map_results:type_name -> dota.CMsgServerToGCCavernCrawlIsHeroActiveResponse.MapResults - 174, // 81: dota.CMsgNeutralItemStats.neutral_items:type_name -> dota.CMsgNeutralItemStats.NeutralItem - 175, // 82: dota.CMsgGCToServerLobbyHeroBanRates.ban_data:type_name -> dota.CMsgGCToServerLobbyHeroBanRates.HeroBanEntry - 177, // 83: dota.CMsgSignOutGuildContractProgress.player_contracts:type_name -> dota.CMsgSignOutGuildContractProgress.PlayerContract - 178, // 84: dota.CMsgSignOutGuildChallengeProgress.guild_challenges_progresses:type_name -> dota.CMsgSignOutGuildChallengeProgress.ChallengeProgress - 179, // 85: dota.CMsgSignOutMVPStats.players:type_name -> dota.CMsgSignOutMVPStats.Player - 182, // 86: dota.CMsgServerToGCGetGuildContractsResponse.player_contracts:type_name -> dota.CMsgServerToGCGetGuildContractsResponse.Player - 184, // 87: dota.CMsgMatchDiretideCandy.player_candy_data:type_name -> dota.CMsgMatchDiretideCandy.PlayerCandy - 212, // 88: dota.CMsgMatchDiretideCandy.event_id:type_name -> dota.EEvent - 185, // 89: dota.CMsgGCToServerCheerData.cheer_types:type_name -> dota.CMsgGCToServerCheerData.CheerTypeCount - 98, // 90: dota.CMsgGCToServerCheerConfig.cheer_config:type_name -> dota.CMsgCheerConfig - 98, // 91: dota.CMsgServerToGCGetCheerConfigResponse.cheer_config:type_name -> dota.CMsgCheerConfig - 104, // 92: dota.CMsgCheerState.cheer_types:type_name -> dota.CMsgCheerTypeState - 98, // 93: dota.CMsgServerToGCReportCheerState.cheer_config:type_name -> dota.CMsgCheerConfig - 105, // 94: dota.CMsgServerToGCReportCheerState.cheer_state:type_name -> dota.CMsgCheerState - 186, // 95: dota.CMsgServerToGCGetStickerHeroesResponse.players:type_name -> dota.CMsgServerToGCGetStickerHeroesResponse.Player - 217, // 96: dota.CMsgGCToServerSteamLearnAccessTokensChanged.access_tokens:type_name -> dota.CMsgSteamLearnAccessTokens - 187, // 97: dota.CMsgSteamLearnPlayerTimedStats.stat_buckets:type_name -> dota.CMsgSteamLearnPlayerTimedStats.StatBucket - 189, // 98: dota.CMsgSteamLearnMatchStateV4.radiant_state:type_name -> dota.CMsgSteamLearnMatchStateV4.TeamState - 189, // 99: dota.CMsgSteamLearnMatchStateV4.dire_state:type_name -> dota.CMsgSteamLearnMatchStateV4.TeamState - 191, // 100: dota.CMsgSteamLearnMatchStateV5.radiant_state:type_name -> dota.CMsgSteamLearnMatchStateV5.TeamState - 191, // 101: dota.CMsgSteamLearnMatchStateV5.dire_state:type_name -> dota.CMsgSteamLearnMatchStateV5.TeamState - 192, // 102: dota.CMsgSteamLearnWardPlacement.ward_loc:type_name -> dota.CMsgSteamLearnWardPlacement.Location - 192, // 103: dota.CMsgSteamLearnWardPlacement.existing_ward_locs:type_name -> dota.CMsgSteamLearnWardPlacement.Location - 193, // 104: dota.CMsgSignOutMapStats.players:type_name -> dota.CMsgSignOutMapStats.Player - 218, // 105: dota.CMsgSignOutMapStats.global_stats:type_name -> dota.CMsgMapStatsSnapshot - 219, // 106: dota.CMsgServerToGCNewBloomGiftResponse.result:type_name -> dota.ENewBloomGiftingResponse - 194, // 107: dota.CMsgSignOutOverworld.players:type_name -> dota.CMsgSignOutOverworld.Player - 212, // 108: dota.CMsgSignOutOverworld.event_id:type_name -> dota.EEvent - 198, // 109: dota.CMsgPoorNetworkConditions.Player.disconnect_reason:type_name -> dota.ENetworkDisconnectionReason - 197, // 110: dota.CMsgConnectedPlayers.Player.leaver_state:type_name -> dota.CMsgLeaverState - 198, // 111: dota.CMsgConnectedPlayers.Player.disconnect_reason:type_name -> dota.ENetworkDisconnectionReason - 204, // 112: dota.CMsgConnectedPlayers.PlayerDraft.team:type_name -> dota.DOTA_GC_TEAM - 220, // 113: dota.CMsgSignOutGameplayStats.CPlayer.timed_player_stats:type_name -> dota.CMatchPlayerTimedStats - 221, // 114: dota.CMsgSignOutGameplayStats.CTeam.timed_team_stats:type_name -> dota.CMatchTeamTimedStats - 132, // 115: dota.CMsgSignOutGameplayStats.CTeam.players:type_name -> dota.CMsgSignOutGameplayStats.CPlayer - 140, // 116: dota.CMsgGameMatchSignOut.CTeam.players:type_name -> dota.CMsgGameMatchSignOut.CTeam.CPlayer - 205, // 117: dota.CMsgGameMatchSignOut.CTeam.team_tracked_stats:type_name -> dota.CMsgTrackedStat - 222, // 118: dota.CMsgGameMatchSignOut.CTeam.CPlayer.ability_upgrades:type_name -> dota.CMatchPlayerAbilityUpgrade - 223, // 119: dota.CMsgGameMatchSignOut.CTeam.CPlayer.additional_units_inventory:type_name -> dota.CMatchAdditionalUnitInventory - 224, // 120: dota.CMsgGameMatchSignOut.CTeam.CPlayer.permanent_buffs:type_name -> dota.CMatchPlayerPermanentBuff - 141, // 121: dota.CMsgGameMatchSignOut.CTeam.CPlayer.custom_game_data:type_name -> dota.CMsgGameMatchSignOut.CTeam.CPlayer.CCustomGameData - 142, // 122: dota.CMsgGameMatchSignOut.CTeam.CPlayer.hero_damage_received:type_name -> dota.CMsgGameMatchSignOut.CTeam.CPlayer.HeroDamageReceived - 142, // 123: dota.CMsgGameMatchSignOut.CTeam.CPlayer.hero_damage_dealt:type_name -> dota.CMsgGameMatchSignOut.CTeam.CPlayer.HeroDamageReceived - 204, // 124: dota.CMsgGameMatchSignOut.CTeam.CPlayer.team_number:type_name -> dota.DOTA_GC_TEAM - 205, // 125: dota.CMsgGameMatchSignOut.CTeam.CPlayer.player_tracked_stats:type_name -> dota.CMsgTrackedStat - 4, // 126: dota.CMsgGameMatchSignOut.CTeam.CPlayer.HeroDamageReceived.damage_type:type_name -> dota.CMsgGameMatchSignOut.CTeam.CPlayer.HeroDamageType - 145, // 127: dota.CMsgSignOutCommunicationSummary.PlayerCommunication.ping_details:type_name -> dota.CMsgSignOutCommunicationSummary.PlayerCommunication.PingDetail - 148, // 128: dota.CMsgDOTALiveScoreboardUpdate.Team.players:type_name -> dota.CMsgDOTALiveScoreboardUpdate.Team.Player - 5, // 129: dota.CMsgDOTALiveScoreboardUpdate.Team.Player.ultimate_state:type_name -> dota.CMsgDOTALiveScoreboardUpdate.Team.Player.DOTAUltimateState - 149, // 130: dota.CMsgDOTALiveScoreboardUpdate.Team.Player.abilities:type_name -> dota.CMsgDOTALiveScoreboardUpdate.Team.Player.HeroAbility - 154, // 131: dota.CSerializedCombatLog.Dictionary.strings:type_name -> dota.CSerializedCombatLog.Dictionary.DictString - 7, // 132: dota.CMsgGCToServerPredictionResult.Prediction.result:type_name -> dota.CMsgGCToServerPredictionResult.Prediction.EResult - 212, // 133: dota.CMsgSignOutUpdatePlayerChallenge.Challenge.event_id:type_name -> dota.EEvent - 165, // 134: dota.CMsgServerToGCMatchPlayerItemPurchaseHistory.Player.item_purchases:type_name -> dota.CMsgServerToGCMatchPlayerItemPurchaseHistory.ItemPurchase - 167, // 135: dota.CMsgServerToGCMatchPlayerNeutralItemEquipHistory.Player.item_equips:type_name -> dota.CMsgServerToGCMatchPlayerNeutralItemEquipHistory.ItemEquip - 169, // 136: dota.CMsgServerToGCMatchStateHistory.TeamState.player_states:type_name -> dota.CMsgServerToGCMatchStateHistory.PlayerState - 170, // 137: dota.CMsgServerToGCMatchStateHistory.MatchState.radiant_state:type_name -> dota.CMsgServerToGCMatchStateHistory.TeamState - 170, // 138: dota.CMsgServerToGCMatchStateHistory.MatchState.dire_state:type_name -> dota.CMsgServerToGCMatchStateHistory.TeamState - 225, // 139: dota.CMsgServerToGCPlayerChallengeHistory.PlayerChallenge.challenge_type:type_name -> dota.EPlayerChallengeHistoryType - 176, // 140: dota.CMsgSignOutGuildContractProgress.PlayerContract.completed_contracts:type_name -> dota.CMsgSignOutGuildContractProgress.CompletedGuildEventContracts - 180, // 141: dota.CMsgSignOutMVPStats.Player.kill_eater_events:type_name -> dota.CMsgSignOutMVPStats.Player.KillEaterEvent - 212, // 142: dota.CMsgServerToGCGetGuildContractsResponse.Player.event_id:type_name -> dota.EEvent - 181, // 143: dota.CMsgServerToGCGetGuildContractsResponse.Player.contracts:type_name -> dota.CMsgServerToGCGetGuildContractsResponse.ContractDetails - 183, // 144: dota.CMsgMatchDiretideCandy.PlayerCandy.candy_breakdown:type_name -> dota.CMsgMatchDiretideCandy.CandyDetails - 226, // 145: dota.CMsgServerToGCGetStickerHeroesResponse.Player.stickers:type_name -> dota.CMsgStickerHeroes - 188, // 146: dota.CMsgSteamLearnMatchStateV4.TeamState.player_states:type_name -> dota.CMsgSteamLearnMatchStateV4.PlayerState - 190, // 147: dota.CMsgSteamLearnMatchStateV5.TeamState.player_states:type_name -> dota.CMsgSteamLearnMatchStateV5.PlayerState - 218, // 148: dota.CMsgSignOutMapStats.Player.personal_stats:type_name -> dota.CMsgMapStatsSnapshot - 149, // [149:149] is the sub-list for method output_type - 149, // [149:149] is the sub-list for method input_type - 149, // [149:149] is the sub-list for extension type_name - 149, // [149:149] is the sub-list for extension extendee - 0, // [0:149] is the sub-list for field type_name + 192, // 11: dota.CMsgLeaverDetected.leaver_status:type_name -> dota.DOTALeaverStatus_t + 193, // 12: dota.CMsgLeaverDetected.leaver_state:type_name -> dota.CMsgLeaverState + 194, // 13: dota.CMsgLeaverDetected.disconnect_reason:type_name -> dota.ENetworkDisconnectionReason + 7, // 14: dota.CMsgLeaverDetected.poor_network_conditions:type_name -> dota.CMsgPoorNetworkConditions + 195, // 15: dota.CMsgDOTAFantasyFinalPlayerStats.stats:type_name -> dota.CMsgDOTAFantasyPlayerStats + 195, // 16: dota.CMsgDOTAFantasyLivePlayerStats.stats:type_name -> dota.CMsgDOTAFantasyPlayerStats + 196, // 17: dota.CMsgServerToGCRealtimeStats.delayed:type_name -> dota.CMsgDOTARealtimeGameStatsTerse + 131, // 18: dota.CMsgSignOutGameplayStats.teams:type_name -> dota.CMsgSignOutGameplayStats.CTeam + 132, // 19: dota.CMsgGameMatchSignOut.teams:type_name -> dota.CMsgGameMatchSignOut.CTeam + 195, // 20: dota.CMsgGameMatchSignOut.fantasy_stats:type_name -> dota.CMsgDOTAFantasyPlayerStats + 197, // 21: dota.CMsgGameMatchSignOut.player_strange_count_adjustments:type_name -> dota.CMsgEconPlayerStrangeCountAdjustment + 7, // 22: dota.CMsgGameMatchSignOut.poor_network_conditions:type_name -> dota.CMsgPoorNetworkConditions + 133, // 23: dota.CMsgGameMatchSignOut.additional_msgs:type_name -> dota.CMsgGameMatchSignOut.CAdditionalSignoutMsg + 134, // 24: dota.CMsgGameMatchSignOut.social_feed_events:type_name -> dota.CMsgGameMatchSignOut.CSocialFeedMatchEvent + 135, // 25: dota.CMsgGameMatchSignOut.custom_game_data:type_name -> dota.CMsgGameMatchSignOut.CCustomGameData + 136, // 26: dota.CMsgGameMatchSignOut.event_game_leaderboard_entries:type_name -> dota.CMsgGameMatchSignOut.EventGameLeaderboardEntry + 137, // 27: dota.CMsgGameMatchSignOut.ward_placements:type_name -> dota.CMsgGameMatchSignOut.WardPlacement + 18, // 28: dota.CMsgGameMatchSignOut.gameplay_stats:type_name -> dota.CMsgSignOutGameplayStats + 198, // 29: dota.CMsgGameMatchSignOut.extra_messages:type_name -> dota.CExtraMsgBlock + 199, // 30: dota.CMsgGameMatchSignOut.winning_team:type_name -> dota.DOTA_GC_TEAM + 200, // 31: dota.CMsgGameMatchSignOut.match_tracked_stats:type_name -> dota.CMsgTrackedStat + 201, // 32: dota.CMsgSignOutDraftInfo.picks_bans:type_name -> dota.CMatchHeroSelectEvent + 202, // 33: dota.CMsgSignOutBotInfo.bot_difficulty_radiant:type_name -> dota.DOTABotDifficulty + 202, // 34: dota.CMsgSignOutBotInfo.bot_difficulty_dire:type_name -> dota.DOTABotDifficulty + 141, // 35: dota.CMsgSignOutTextMuteInfo.text_mute_messages:type_name -> dota.CMsgSignOutTextMuteInfo.TextMuteMessage + 142, // 36: dota.CMsgSignOutCommunicationSummary.players:type_name -> dota.CMsgSignOutCommunicationSummary.PlayerCommunication + 203, // 37: dota.CMsgGameMatchSignoutResponse.timed_reward_details:type_name -> dota.CLobbyTimedRewardDetails + 204, // 38: dota.CMsgGameMatchSignoutResponse.xp_reward_details:type_name -> dota.CSODOTALobbyMember + 205, // 39: dota.CMsgGameMatchSignoutResponse.match_details:type_name -> dota.CMsgDOTAMatch + 144, // 40: dota.CMsgGameMatchSignoutResponse.players_metadata:type_name -> dota.CMsgGameMatchSignoutResponse.PlayerMetadata + 206, // 41: dota.CMsgGameMatchSignoutResponse.mvp_data:type_name -> dota.CMvpData + 207, // 42: dota.CMsgGameMatchSignoutResponse.overworld_rewards:type_name -> dota.CMsgOverworldMatchRewards + 203, // 43: dota.CMsgTimedRewardContainer.timed_reward_details:type_name -> dota.CLobbyTimedRewardDetails + 208, // 44: dota.CMsgGameMatchSignOutEventGameData.event_id:type_name -> dota.EEvent + 145, // 45: dota.CMsgDOTALiveScoreboardUpdate.team_good:type_name -> dota.CMsgDOTALiveScoreboardUpdate.Team + 145, // 46: dota.CMsgDOTALiveScoreboardUpdate.team_bad:type_name -> dota.CMsgDOTALiveScoreboardUpdate.Team + 148, // 47: dota.CMsgServerToGCRequestBatchPlayerResourcesResponse.results:type_name -> dota.CMsgServerToGCRequestBatchPlayerResourcesResponse.Result + 209, // 48: dota.CMsgTournamentItemEvent.event_type:type_name -> dota.DOTA_TournamentEvents + 210, // 49: dota.CMsgTournamentItemEvent.hero_statues:type_name -> dota.CProtoItemHeroStatue + 209, // 50: dota.CMsgTournamentItemEventResponse.event_type:type_name -> dota.DOTA_TournamentEvents + 6, // 51: dota.CMsgGameServerSaveGameResult.result:type_name -> dota.CMsgGameServerSaveGameResult.Result + 149, // 52: dota.CMsgDOTAAwardEventPoints.award_points:type_name -> dota.CMsgDOTAAwardEventPoints.AwardPoints + 208, // 53: dota.CMsgDOTAAwardEventPoints.event_id:type_name -> dota.EEvent + 150, // 54: dota.CMsgServerToGCMatchConnectionStats.players:type_name -> dota.CMsgServerToGCMatchConnectionStats.Player + 151, // 55: dota.CSerializedCombatLog.dictionary:type_name -> dota.CSerializedCombatLog.Dictionary + 211, // 56: dota.CSerializedCombatLog.entries:type_name -> dota.CMsgDOTACombatLogEntry + 154, // 57: dota.CMsgServerToGCVictoryPredictions.records:type_name -> dota.CMsgServerToGCVictoryPredictions.Record + 155, // 58: dota.CMsgServerToGCKillSummaries.summaries:type_name -> dota.CMsgServerToGCKillSummaries.KillSummary + 156, // 59: dota.CMsgSignOutUpdatePlayerChallenge.completed:type_name -> dota.CMsgSignOutUpdatePlayerChallenge.Challenge + 156, // 60: dota.CMsgSignOutUpdatePlayerChallenge.rerolled:type_name -> dota.CMsgSignOutUpdatePlayerChallenge.Challenge + 212, // 61: dota.CMsgServerToGCRerollPlayerChallenge.reroll_msg:type_name -> dota.CMsgClientToGCRerollPlayerChallenge + 157, // 62: dota.CMsgSpendWager.players:type_name -> dota.CMsgSpendWager.Player + 208, // 63: dota.CMsgSpendWager.event_id:type_name -> dota.EEvent + 158, // 64: dota.CMsgSignOutXPCoins.players:type_name -> dota.CMsgSignOutXPCoins.Player + 208, // 65: dota.CMsgSignOutXPCoins.event_id:type_name -> dota.EEvent + 159, // 66: dota.CMsgSignOutBounties.bounties:type_name -> dota.CMsgSignOutBounties.Bounty + 208, // 67: dota.CMsgSignOutBounties.event_id:type_name -> dota.EEvent + 208, // 68: dota.CMsgSignOutCommunityGoalProgress.event_id:type_name -> dota.EEvent + 160, // 69: dota.CMsgSignOutCommunityGoalProgress.event_increments:type_name -> dota.CMsgSignOutCommunityGoalProgress.EventGoalIncrement + 161, // 70: dota.CMsgServerToGCCompendiumInGamePredictionResults.results:type_name -> dota.CMsgServerToGCCompendiumInGamePredictionResults.PredictionResult + 162, // 71: dota.CMsgServerToGCCompendiumChosenInGamePredictions.predictions_chosen:type_name -> dota.CMsgServerToGCCompendiumChosenInGamePredictions.Prediction + 71, // 72: dota.CMsgGCToGCCompendiumInGamePredictionResults.results:type_name -> dota.CMsgServerToGCCompendiumInGamePredictionResults + 164, // 73: dota.CMsgServerToGCMatchPlayerItemPurchaseHistory.players:type_name -> dota.CMsgServerToGCMatchPlayerItemPurchaseHistory.Player + 166, // 74: dota.CMsgServerToGCMatchPlayerNeutralItemEquipHistory.players:type_name -> dota.CMsgServerToGCMatchPlayerNeutralItemEquipHistory.Player + 169, // 75: dota.CMsgServerToGCMatchStateHistory.match_states:type_name -> dota.CMsgServerToGCMatchStateHistory.MatchState + 169, // 76: dota.CMsgMatchStateSteamMLEntry.match_state:type_name -> dota.CMsgServerToGCMatchStateHistory.MatchState + 170, // 77: dota.CMsgServerToGCPlayerChallengeHistory.challenge_records:type_name -> dota.CMsgServerToGCPlayerChallengeHistory.PlayerChallenge + 171, // 78: dota.CMsgServerToGCCavernCrawlIsHeroActiveResponse.map_results:type_name -> dota.CMsgServerToGCCavernCrawlIsHeroActiveResponse.MapResults + 172, // 79: dota.CMsgNeutralItemStats.neutral_items:type_name -> dota.CMsgNeutralItemStats.NeutralItem + 173, // 80: dota.CMsgGCToServerLobbyHeroBanRates.ban_data:type_name -> dota.CMsgGCToServerLobbyHeroBanRates.HeroBanEntry + 175, // 81: dota.CMsgSignOutGuildContractProgress.player_contracts:type_name -> dota.CMsgSignOutGuildContractProgress.PlayerContract + 176, // 82: dota.CMsgSignOutGuildChallengeProgress.guild_challenges_progresses:type_name -> dota.CMsgSignOutGuildChallengeProgress.ChallengeProgress + 177, // 83: dota.CMsgSignOutMVPStats.players:type_name -> dota.CMsgSignOutMVPStats.Player + 180, // 84: dota.CMsgServerToGCGetGuildContractsResponse.player_contracts:type_name -> dota.CMsgServerToGCGetGuildContractsResponse.Player + 182, // 85: dota.CMsgMatchDiretideCandy.player_candy_data:type_name -> dota.CMsgMatchDiretideCandy.PlayerCandy + 208, // 86: dota.CMsgMatchDiretideCandy.event_id:type_name -> dota.EEvent + 183, // 87: dota.CMsgGCToServerCheerData.cheer_types:type_name -> dota.CMsgGCToServerCheerData.CheerTypeCount + 96, // 88: dota.CMsgGCToServerCheerConfig.cheer_config:type_name -> dota.CMsgCheerConfig + 96, // 89: dota.CMsgServerToGCGetCheerConfigResponse.cheer_config:type_name -> dota.CMsgCheerConfig + 102, // 90: dota.CMsgCheerState.cheer_types:type_name -> dota.CMsgCheerTypeState + 96, // 91: dota.CMsgServerToGCReportCheerState.cheer_config:type_name -> dota.CMsgCheerConfig + 103, // 92: dota.CMsgServerToGCReportCheerState.cheer_state:type_name -> dota.CMsgCheerState + 184, // 93: dota.CMsgServerToGCGetStickerHeroesResponse.players:type_name -> dota.CMsgServerToGCGetStickerHeroesResponse.Player + 213, // 94: dota.CMsgGCToServerSteamLearnAccessTokensChanged.access_tokens:type_name -> dota.CMsgSteamLearnAccessTokens + 185, // 95: dota.CMsgSteamLearnPlayerTimedStats.stat_buckets:type_name -> dota.CMsgSteamLearnPlayerTimedStats.StatBucket + 187, // 96: dota.CMsgSteamLearnMatchStateV5.radiant_state:type_name -> dota.CMsgSteamLearnMatchStateV5.TeamState + 187, // 97: dota.CMsgSteamLearnMatchStateV5.dire_state:type_name -> dota.CMsgSteamLearnMatchStateV5.TeamState + 188, // 98: dota.CMsgSteamLearnWardPlacement.ward_loc:type_name -> dota.CMsgSteamLearnWardPlacement.Location + 188, // 99: dota.CMsgSteamLearnWardPlacement.existing_ward_locs:type_name -> dota.CMsgSteamLearnWardPlacement.Location + 189, // 100: dota.CMsgSignOutMapStats.players:type_name -> dota.CMsgSignOutMapStats.Player + 214, // 101: dota.CMsgSignOutMapStats.global_stats:type_name -> dota.CMsgMapStatsSnapshot + 215, // 102: dota.CMsgServerToGCNewBloomGiftResponse.result:type_name -> dota.ENewBloomGiftingResponse + 190, // 103: dota.CMsgSignOutOverworld.players:type_name -> dota.CMsgSignOutOverworld.Player + 208, // 104: dota.CMsgSignOutOverworld.event_id:type_name -> dota.EEvent + 194, // 105: dota.CMsgPoorNetworkConditions.Player.disconnect_reason:type_name -> dota.ENetworkDisconnectionReason + 193, // 106: dota.CMsgConnectedPlayers.Player.leaver_state:type_name -> dota.CMsgLeaverState + 194, // 107: dota.CMsgConnectedPlayers.Player.disconnect_reason:type_name -> dota.ENetworkDisconnectionReason + 199, // 108: dota.CMsgConnectedPlayers.PlayerDraft.team:type_name -> dota.DOTA_GC_TEAM + 216, // 109: dota.CMsgSignOutGameplayStats.CPlayer.timed_player_stats:type_name -> dota.CMatchPlayerTimedStats + 217, // 110: dota.CMsgSignOutGameplayStats.CTeam.timed_team_stats:type_name -> dota.CMatchTeamTimedStats + 130, // 111: dota.CMsgSignOutGameplayStats.CTeam.players:type_name -> dota.CMsgSignOutGameplayStats.CPlayer + 138, // 112: dota.CMsgGameMatchSignOut.CTeam.players:type_name -> dota.CMsgGameMatchSignOut.CTeam.CPlayer + 200, // 113: dota.CMsgGameMatchSignOut.CTeam.team_tracked_stats:type_name -> dota.CMsgTrackedStat + 218, // 114: dota.CMsgGameMatchSignOut.CTeam.CPlayer.ability_upgrades:type_name -> dota.CMatchPlayerAbilityUpgrade + 219, // 115: dota.CMsgGameMatchSignOut.CTeam.CPlayer.additional_units_inventory:type_name -> dota.CMatchAdditionalUnitInventory + 220, // 116: dota.CMsgGameMatchSignOut.CTeam.CPlayer.permanent_buffs:type_name -> dota.CMatchPlayerPermanentBuff + 139, // 117: dota.CMsgGameMatchSignOut.CTeam.CPlayer.custom_game_data:type_name -> dota.CMsgGameMatchSignOut.CTeam.CPlayer.CCustomGameData + 140, // 118: dota.CMsgGameMatchSignOut.CTeam.CPlayer.hero_damage_received:type_name -> dota.CMsgGameMatchSignOut.CTeam.CPlayer.HeroDamageReceived + 140, // 119: dota.CMsgGameMatchSignOut.CTeam.CPlayer.hero_damage_dealt:type_name -> dota.CMsgGameMatchSignOut.CTeam.CPlayer.HeroDamageReceived + 199, // 120: dota.CMsgGameMatchSignOut.CTeam.CPlayer.team_number:type_name -> dota.DOTA_GC_TEAM + 200, // 121: dota.CMsgGameMatchSignOut.CTeam.CPlayer.player_tracked_stats:type_name -> dota.CMsgTrackedStat + 4, // 122: dota.CMsgGameMatchSignOut.CTeam.CPlayer.HeroDamageReceived.damage_type:type_name -> dota.CMsgGameMatchSignOut.CTeam.CPlayer.HeroDamageType + 143, // 123: dota.CMsgSignOutCommunicationSummary.PlayerCommunication.ping_details:type_name -> dota.CMsgSignOutCommunicationSummary.PlayerCommunication.PingDetail + 146, // 124: dota.CMsgDOTALiveScoreboardUpdate.Team.players:type_name -> dota.CMsgDOTALiveScoreboardUpdate.Team.Player + 5, // 125: dota.CMsgDOTALiveScoreboardUpdate.Team.Player.ultimate_state:type_name -> dota.CMsgDOTALiveScoreboardUpdate.Team.Player.DOTAUltimateState + 147, // 126: dota.CMsgDOTALiveScoreboardUpdate.Team.Player.abilities:type_name -> dota.CMsgDOTALiveScoreboardUpdate.Team.Player.HeroAbility + 152, // 127: dota.CSerializedCombatLog.Dictionary.strings:type_name -> dota.CSerializedCombatLog.Dictionary.DictString + 153, // 128: dota.CMsgServerToGCVictoryPredictions.Record.prediction_items:type_name -> dota.CMsgServerToGCVictoryPredictions.PredictionItem + 208, // 129: dota.CMsgSignOutUpdatePlayerChallenge.Challenge.event_id:type_name -> dota.EEvent + 163, // 130: dota.CMsgServerToGCMatchPlayerItemPurchaseHistory.Player.item_purchases:type_name -> dota.CMsgServerToGCMatchPlayerItemPurchaseHistory.ItemPurchase + 165, // 131: dota.CMsgServerToGCMatchPlayerNeutralItemEquipHistory.Player.item_equips:type_name -> dota.CMsgServerToGCMatchPlayerNeutralItemEquipHistory.ItemEquip + 167, // 132: dota.CMsgServerToGCMatchStateHistory.TeamState.player_states:type_name -> dota.CMsgServerToGCMatchStateHistory.PlayerState + 168, // 133: dota.CMsgServerToGCMatchStateHistory.MatchState.radiant_state:type_name -> dota.CMsgServerToGCMatchStateHistory.TeamState + 168, // 134: dota.CMsgServerToGCMatchStateHistory.MatchState.dire_state:type_name -> dota.CMsgServerToGCMatchStateHistory.TeamState + 221, // 135: dota.CMsgServerToGCPlayerChallengeHistory.PlayerChallenge.challenge_type:type_name -> dota.EPlayerChallengeHistoryType + 174, // 136: dota.CMsgSignOutGuildContractProgress.PlayerContract.completed_contracts:type_name -> dota.CMsgSignOutGuildContractProgress.CompletedGuildEventContracts + 178, // 137: dota.CMsgSignOutMVPStats.Player.kill_eater_events:type_name -> dota.CMsgSignOutMVPStats.Player.KillEaterEvent + 208, // 138: dota.CMsgServerToGCGetGuildContractsResponse.Player.event_id:type_name -> dota.EEvent + 179, // 139: dota.CMsgServerToGCGetGuildContractsResponse.Player.contracts:type_name -> dota.CMsgServerToGCGetGuildContractsResponse.ContractDetails + 181, // 140: dota.CMsgMatchDiretideCandy.PlayerCandy.candy_breakdown:type_name -> dota.CMsgMatchDiretideCandy.CandyDetails + 222, // 141: dota.CMsgServerToGCGetStickerHeroesResponse.Player.stickers:type_name -> dota.CMsgStickerHeroes + 186, // 142: dota.CMsgSteamLearnMatchStateV5.TeamState.player_states:type_name -> dota.CMsgSteamLearnMatchStateV5.PlayerState + 214, // 143: dota.CMsgSignOutMapStats.Player.personal_stats:type_name -> dota.CMsgMapStatsSnapshot + 144, // [144:144] is the sub-list for method output_type + 144, // [144:144] is the sub-list for method input_type + 144, // [144:144] is the sub-list for extension type_name + 144, // [144:144] is the sub-list for extension extendee + 0, // [0:144] is the sub-list for field type_name } func init() { file_dota_gcmessages_server_proto_init() } @@ -19193,7 +18669,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCToServerPredictionResult); i { + switch v := v.(*CMsgServerToGCLockCharmTrading); i { case 0: return &v.state case 1: @@ -19205,7 +18681,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgServerToGCLockCharmTrading); i { + switch v := v.(*CMsgSignOutUpdatePlayerChallenge); i { case 0: return &v.state case 1: @@ -19217,7 +18693,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgSignOutUpdatePlayerChallenge); i { + switch v := v.(*CMsgServerToGCRerollPlayerChallenge); i { case 0: return &v.state case 1: @@ -19229,7 +18705,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgServerToGCRerollPlayerChallenge); i { + switch v := v.(*CMsgSpendWager); i { case 0: return &v.state case 1: @@ -19241,7 +18717,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgSpendWager); i { + switch v := v.(*CMsgSignOutXPCoins); i { case 0: return &v.state case 1: @@ -19253,7 +18729,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgSignOutXPCoins); i { + switch v := v.(*CMsgSignOutBounties); i { case 0: return &v.state case 1: @@ -19265,7 +18741,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgSignOutBounties); i { + switch v := v.(*CMsgSignOutCommunityGoalProgress); i { case 0: return &v.state case 1: @@ -19277,7 +18753,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgSignOutCommunityGoalProgress); i { + switch v := v.(*CMsgServerToGCCloseCompendiumInGamePredictionVoting); i { case 0: return &v.state case 1: @@ -19289,7 +18765,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgServerToGCCloseCompendiumInGamePredictionVoting); i { + switch v := v.(*CMsgServerToGCCloseCompendiumInGamePredictionVotingResponse); i { case 0: return &v.state case 1: @@ -19301,7 +18777,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgServerToGCCloseCompendiumInGamePredictionVotingResponse); i { + switch v := v.(*CMsgServerToGCCompendiumInGamePredictionResults); i { case 0: return &v.state case 1: @@ -19313,7 +18789,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgServerToGCCompendiumInGamePredictionResults); i { + switch v := v.(*CMsgServerToGCCompendiumChosenInGamePredictions); i { case 0: return &v.state case 1: @@ -19325,7 +18801,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgServerToGCCompendiumChosenInGamePredictions); i { + switch v := v.(*CMsgGCToGCCompendiumInGamePredictionResults); i { case 0: return &v.state case 1: @@ -19337,7 +18813,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCToGCCompendiumInGamePredictionResults); i { + switch v := v.(*CMsgServerToGCMatchPlayerItemPurchaseHistory); i { case 0: return &v.state case 1: @@ -19349,7 +18825,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgServerToGCMatchPlayerItemPurchaseHistory); i { + switch v := v.(*CMsgServerToGCMatchPlayerNeutralItemEquipHistory); i { case 0: return &v.state case 1: @@ -19361,7 +18837,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgServerToGCMatchPlayerNeutralItemEquipHistory); i { + switch v := v.(*CMsgServerToGCMatchStateHistory); i { case 0: return &v.state case 1: @@ -19373,7 +18849,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgServerToGCMatchStateHistory); i { + switch v := v.(*CMsgMatchStateSteamMLEntry); i { case 0: return &v.state case 1: @@ -19385,7 +18861,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgMatchStateSteamMLEntry); i { + switch v := v.(*CMsgLaneSelectionSteamMLEntry); i { case 0: return &v.state case 1: @@ -19397,7 +18873,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgLaneSelectionSteamMLEntry); i { + switch v := v.(*CMsgAbilitySelectionSteamMLEntry); i { case 0: return &v.state case 1: @@ -19409,7 +18885,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgAbilitySelectionSteamMLEntry); i { + switch v := v.(*CMsgItemPurchasePregameSteamMLEntry); i { case 0: return &v.state case 1: @@ -19421,7 +18897,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgItemPurchasePregameSteamMLEntry); i { + switch v := v.(*CMsgItemPurchaseSteamMLEntry); i { case 0: return &v.state case 1: @@ -19433,7 +18909,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgItemPurchaseSteamMLEntry); i { + switch v := v.(*CMsgItemPurchaseSequenceSteamMLEntry); i { case 0: return &v.state case 1: @@ -19445,7 +18921,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgItemPurchaseSequenceSteamMLEntry); i { + switch v := v.(*CMsgServerToGCCavernCrawlIsHeroActive); i { case 0: return &v.state case 1: @@ -19457,7 +18933,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgServerToGCCavernCrawlIsHeroActive); i { + switch v := v.(*CMsgServerToGCPlayerChallengeHistory); i { case 0: return &v.state case 1: @@ -19469,7 +18945,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgServerToGCPlayerChallengeHistory); i { + switch v := v.(*CMsgServerToGCCavernCrawlIsHeroActiveResponse); i { case 0: return &v.state case 1: @@ -19481,7 +18957,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgServerToGCCavernCrawlIsHeroActiveResponse); i { + switch v := v.(*CMsgNeutralItemStats); i { case 0: return &v.state case 1: @@ -19493,7 +18969,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgNeutralItemStats); i { + switch v := v.(*CMsgGCToServerLobbyHeroBanRates); i { case 0: return &v.state case 1: @@ -19505,7 +18981,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCToServerLobbyHeroBanRates); i { + switch v := v.(*CMsgSignOutGuildContractProgress); i { case 0: return &v.state case 1: @@ -19517,7 +18993,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgSignOutGuildContractProgress); i { + switch v := v.(*CMsgSignOutGuildChallengeProgress); i { case 0: return &v.state case 1: @@ -19529,7 +19005,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgSignOutGuildChallengeProgress); i { + switch v := v.(*CMsgSignOutMVPStats); i { case 0: return &v.state case 1: @@ -19541,7 +19017,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgSignOutMVPStats); i { + switch v := v.(*CMsgGCToServerRecordTrainingData); i { case 0: return &v.state case 1: @@ -19553,7 +19029,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCToServerRecordTrainingData); i { + switch v := v.(*CMsgServerToGCGetGuildContracts); i { case 0: return &v.state case 1: @@ -19565,7 +19041,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgServerToGCGetGuildContracts); i { + switch v := v.(*CMsgServerToGCGetGuildContractsResponse); i { case 0: return &v.state case 1: @@ -19577,7 +19053,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgServerToGCGetGuildContractsResponse); i { + switch v := v.(*CMsgMatchDiretideCandy); i { case 0: return &v.state case 1: @@ -19589,7 +19065,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgMatchDiretideCandy); i { + switch v := v.(*CMsgGCToServerCheerData); i { case 0: return &v.state case 1: @@ -19601,7 +19077,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCToServerCheerData); i { + switch v := v.(*CMsgCheerConfig); i { case 0: return &v.state case 1: @@ -19613,7 +19089,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgCheerConfig); i { + switch v := v.(*CMsgGCToServerCheerConfig); i { case 0: return &v.state case 1: @@ -19625,7 +19101,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCToServerCheerConfig); i { + switch v := v.(*CMsgServerToGCGetCheerConfig); i { case 0: return &v.state case 1: @@ -19637,7 +19113,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgServerToGCGetCheerConfig); i { + switch v := v.(*CMsgServerToGCGetCheerConfigResponse); i { case 0: return &v.state case 1: @@ -19649,7 +19125,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgServerToGCGetCheerConfigResponse); i { + switch v := v.(*CMsgGCToServerCheerScalesOverride); i { case 0: return &v.state case 1: @@ -19661,7 +19137,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCToServerCheerScalesOverride); i { + switch v := v.(*CMsgGCToServerGetCheerState); i { case 0: return &v.state case 1: @@ -19673,7 +19149,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCToServerGetCheerState); i { + switch v := v.(*CMsgCheerTypeState); i { case 0: return &v.state case 1: @@ -19685,7 +19161,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgCheerTypeState); i { + switch v := v.(*CMsgCheerState); i { case 0: return &v.state case 1: @@ -19697,7 +19173,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgCheerState); i { + switch v := v.(*CMsgServerToGCReportCheerState); i { case 0: return &v.state case 1: @@ -19709,7 +19185,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgServerToGCReportCheerState); i { + switch v := v.(*CMsgServerToGCGetStickerHeroes); i { case 0: return &v.state case 1: @@ -19721,7 +19197,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgServerToGCGetStickerHeroes); i { + switch v := v.(*CMsgServerToGCGetStickerHeroesResponse); i { case 0: return &v.state case 1: @@ -19733,7 +19209,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgServerToGCGetStickerHeroesResponse); i { + switch v := v.(*CMsgGCToServerSteamLearnAccessTokensChanged); i { case 0: return &v.state case 1: @@ -19745,7 +19221,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCToServerSteamLearnAccessTokensChanged); i { + switch v := v.(*CMsgGCToServerSteamLearnUseHTTP); i { case 0: return &v.state case 1: @@ -19781,7 +19257,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgSteamLearnMatchHeroesV1); i { + switch v := v.(*CMsgSteamLearnMatchHeroesV3); i { case 0: return &v.state case 1: @@ -19793,7 +19269,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgSteamLearnMatchHeroesV2); i { + switch v := v.(*CMsgSteamLearnMatchHeroV3); i { case 0: return &v.state case 1: @@ -19805,7 +19281,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgSteamLearnMatchHeroV1); i { + switch v := v.(*CMsgSteamLearnPlayerTimedStats); i { case 0: return &v.state case 1: @@ -19817,7 +19293,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgSteamLearnMatchHeroV2); i { + switch v := v.(*CMsgSteamLearnMatchStateV5); i { case 0: return &v.state case 1: @@ -19829,7 +19305,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgSteamLearnPlayerTimedStats); i { + switch v := v.(*CMsgSteamLearnItemPurchase); i { case 0: return &v.state case 1: @@ -19841,7 +19317,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgSteamLearnMatchStateV4); i { + switch v := v.(*CMsgSteamLearnPreGameItemPurchases); i { case 0: return &v.state case 1: @@ -19853,7 +19329,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgSteamLearnMatchStateV5); i { + switch v := v.(*CMsgSteamLearnNeutralItemPurchase); i { case 0: return &v.state case 1: @@ -19865,7 +19341,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgSteamLearnItemPurchase); i { + switch v := v.(*CMsgSteamLearnAbilitySkill); i { case 0: return &v.state case 1: @@ -19877,7 +19353,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgSteamLearnPreGameItemPurchases); i { + switch v := v.(*CMsgSteamLearnEarlyGameItemPurchases); i { case 0: return &v.state case 1: @@ -19889,7 +19365,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgSteamLearnNeutralItemPurchase); i { + switch v := v.(*CMsgSteamLearnLateGameItemPurchases); i { case 0: return &v.state case 1: @@ -19901,7 +19377,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgSteamLearnAbilitySkill); i { + switch v := v.(*CMsgSteamLearnWardPlacement); i { case 0: return &v.state case 1: @@ -19913,7 +19389,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgSteamLearnWardPlacement); i { + switch v := v.(*CMsgSignOutMuertaMinigame); i { case 0: return &v.state case 1: @@ -19925,7 +19401,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgSignOutMuertaMinigame); i { + switch v := v.(*CMsgSignOutMapStats); i { case 0: return &v.state case 1: @@ -19937,7 +19413,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgSignOutMapStats); i { + switch v := v.(*CMsgServerToGCNewBloomGift); i { case 0: return &v.state case 1: @@ -19949,7 +19425,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgServerToGCNewBloomGift); i { + switch v := v.(*CMsgServerToGCNewBloomGiftResponse); i { case 0: return &v.state case 1: @@ -19961,7 +19437,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgServerToGCNewBloomGiftResponse); i { + switch v := v.(*CMsgSignOutOverworld); i { case 0: return &v.state case 1: @@ -19973,7 +19449,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgSignOutOverworld); i { + switch v := v.(*CMsgPoorNetworkConditions_Player); i { case 0: return &v.state case 1: @@ -19985,7 +19461,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgPoorNetworkConditions_Player); i { + switch v := v.(*CMsgConnectedPlayers_Player); i { case 0: return &v.state case 1: @@ -19997,7 +19473,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgConnectedPlayers_Player); i { + switch v := v.(*CMsgConnectedPlayers_PlayerDraft); i { case 0: return &v.state case 1: @@ -20009,7 +19485,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgConnectedPlayers_PlayerDraft); i { + switch v := v.(*CMsgSignOutGameplayStats_CPlayer); i { case 0: return &v.state case 1: @@ -20021,7 +19497,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgSignOutGameplayStats_CPlayer); i { + switch v := v.(*CMsgSignOutGameplayStats_CTeam); i { case 0: return &v.state case 1: @@ -20033,7 +19509,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgSignOutGameplayStats_CTeam); i { + switch v := v.(*CMsgGameMatchSignOut_CTeam); i { case 0: return &v.state case 1: @@ -20045,7 +19521,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGameMatchSignOut_CTeam); i { + switch v := v.(*CMsgGameMatchSignOut_CAdditionalSignoutMsg); i { case 0: return &v.state case 1: @@ -20057,7 +19533,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGameMatchSignOut_CAdditionalSignoutMsg); i { + switch v := v.(*CMsgGameMatchSignOut_CSocialFeedMatchEvent); i { case 0: return &v.state case 1: @@ -20069,7 +19545,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGameMatchSignOut_CSocialFeedMatchEvent); i { + switch v := v.(*CMsgGameMatchSignOut_CCustomGameData); i { case 0: return &v.state case 1: @@ -20081,7 +19557,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGameMatchSignOut_CCustomGameData); i { + switch v := v.(*CMsgGameMatchSignOut_EventGameLeaderboardEntry); i { case 0: return &v.state case 1: @@ -20093,7 +19569,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGameMatchSignOut_EventGameLeaderboardEntry); i { + switch v := v.(*CMsgGameMatchSignOut_WardPlacement); i { case 0: return &v.state case 1: @@ -20105,7 +19581,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGameMatchSignOut_WardPlacement); i { + switch v := v.(*CMsgGameMatchSignOut_CTeam_CPlayer); i { case 0: return &v.state case 1: @@ -20117,7 +19593,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGameMatchSignOut_CTeam_CPlayer); i { + switch v := v.(*CMsgGameMatchSignOut_CTeam_CPlayer_CCustomGameData); i { case 0: return &v.state case 1: @@ -20129,7 +19605,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGameMatchSignOut_CTeam_CPlayer_CCustomGameData); i { + switch v := v.(*CMsgGameMatchSignOut_CTeam_CPlayer_HeroDamageReceived); i { case 0: return &v.state case 1: @@ -20141,7 +19617,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGameMatchSignOut_CTeam_CPlayer_HeroDamageReceived); i { + switch v := v.(*CMsgSignOutTextMuteInfo_TextMuteMessage); i { case 0: return &v.state case 1: @@ -20153,7 +19629,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgSignOutTextMuteInfo_TextMuteMessage); i { + switch v := v.(*CMsgSignOutCommunicationSummary_PlayerCommunication); i { case 0: return &v.state case 1: @@ -20165,7 +19641,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgSignOutCommunicationSummary_PlayerCommunication); i { + switch v := v.(*CMsgSignOutCommunicationSummary_PlayerCommunication_PingDetail); i { case 0: return &v.state case 1: @@ -20177,7 +19653,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgSignOutCommunicationSummary_PlayerCommunication_PingDetail); i { + switch v := v.(*CMsgGameMatchSignoutResponse_PlayerMetadata); i { case 0: return &v.state case 1: @@ -20189,7 +19665,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGameMatchSignoutResponse_PlayerMetadata); i { + switch v := v.(*CMsgDOTALiveScoreboardUpdate_Team); i { case 0: return &v.state case 1: @@ -20201,7 +19677,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTALiveScoreboardUpdate_Team); i { + switch v := v.(*CMsgDOTALiveScoreboardUpdate_Team_Player); i { case 0: return &v.state case 1: @@ -20213,7 +19689,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTALiveScoreboardUpdate_Team_Player); i { + switch v := v.(*CMsgDOTALiveScoreboardUpdate_Team_Player_HeroAbility); i { case 0: return &v.state case 1: @@ -20225,7 +19701,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTALiveScoreboardUpdate_Team_Player_HeroAbility); i { + switch v := v.(*CMsgServerToGCRequestBatchPlayerResourcesResponse_Result); i { case 0: return &v.state case 1: @@ -20237,7 +19713,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgServerToGCRequestBatchPlayerResourcesResponse_Result); i { + switch v := v.(*CMsgDOTAAwardEventPoints_AwardPoints); i { case 0: return &v.state case 1: @@ -20249,7 +19725,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTAAwardEventPoints_AwardPoints); i { + switch v := v.(*CMsgServerToGCMatchConnectionStats_Player); i { case 0: return &v.state case 1: @@ -20261,7 +19737,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgServerToGCMatchConnectionStats_Player); i { + switch v := v.(*CSerializedCombatLog_Dictionary); i { case 0: return &v.state case 1: @@ -20273,7 +19749,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSerializedCombatLog_Dictionary); i { + switch v := v.(*CSerializedCombatLog_Dictionary_DictString); i { case 0: return &v.state case 1: @@ -20285,7 +19761,7 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSerializedCombatLog_Dictionary_DictString); i { + switch v := v.(*CMsgServerToGCVictoryPredictions_PredictionItem); i { case 0: return &v.state case 1: @@ -20321,18 +19797,6 @@ func file_dota_gcmessages_server_proto_init() { } } file_dota_gcmessages_server_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCToServerPredictionResult_Prediction); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_dota_gcmessages_server_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgSignOutUpdatePlayerChallenge_Challenge); i { case 0: return &v.state @@ -20344,7 +19808,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgSpendWager_Player); i { case 0: return &v.state @@ -20356,7 +19820,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgSignOutXPCoins_Player); i { case 0: return &v.state @@ -20368,7 +19832,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgSignOutBounties_Bounty); i { case 0: return &v.state @@ -20380,7 +19844,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgSignOutCommunityGoalProgress_EventGoalIncrement); i { case 0: return &v.state @@ -20392,7 +19856,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgServerToGCCompendiumInGamePredictionResults_PredictionResult); i { case 0: return &v.state @@ -20404,7 +19868,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgServerToGCCompendiumChosenInGamePredictions_Prediction); i { case 0: return &v.state @@ -20416,7 +19880,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgServerToGCMatchPlayerItemPurchaseHistory_ItemPurchase); i { case 0: return &v.state @@ -20428,7 +19892,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgServerToGCMatchPlayerItemPurchaseHistory_Player); i { case 0: return &v.state @@ -20440,7 +19904,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgServerToGCMatchPlayerNeutralItemEquipHistory_ItemEquip); i { case 0: return &v.state @@ -20452,7 +19916,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[160].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgServerToGCMatchPlayerNeutralItemEquipHistory_Player); i { case 0: return &v.state @@ -20464,7 +19928,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[161].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[160].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgServerToGCMatchStateHistory_PlayerState); i { case 0: return &v.state @@ -20476,7 +19940,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[162].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[161].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgServerToGCMatchStateHistory_TeamState); i { case 0: return &v.state @@ -20488,7 +19952,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[163].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[162].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgServerToGCMatchStateHistory_MatchState); i { case 0: return &v.state @@ -20500,7 +19964,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[164].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[163].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgServerToGCPlayerChallengeHistory_PlayerChallenge); i { case 0: return &v.state @@ -20512,7 +19976,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[165].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[164].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgServerToGCCavernCrawlIsHeroActiveResponse_MapResults); i { case 0: return &v.state @@ -20524,7 +19988,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[166].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[165].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgNeutralItemStats_NeutralItem); i { case 0: return &v.state @@ -20536,7 +20000,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[167].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[166].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgGCToServerLobbyHeroBanRates_HeroBanEntry); i { case 0: return &v.state @@ -20548,7 +20012,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[168].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[167].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgSignOutGuildContractProgress_CompletedGuildEventContracts); i { case 0: return &v.state @@ -20560,7 +20024,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[169].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[168].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgSignOutGuildContractProgress_PlayerContract); i { case 0: return &v.state @@ -20572,7 +20036,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[170].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[169].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgSignOutGuildChallengeProgress_ChallengeProgress); i { case 0: return &v.state @@ -20584,7 +20048,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[171].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[170].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgSignOutMVPStats_Player); i { case 0: return &v.state @@ -20596,7 +20060,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[172].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[171].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgSignOutMVPStats_Player_KillEaterEvent); i { case 0: return &v.state @@ -20608,7 +20072,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[173].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[172].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgServerToGCGetGuildContractsResponse_ContractDetails); i { case 0: return &v.state @@ -20620,7 +20084,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[174].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[173].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgServerToGCGetGuildContractsResponse_Player); i { case 0: return &v.state @@ -20632,7 +20096,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[175].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[174].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgMatchDiretideCandy_CandyDetails); i { case 0: return &v.state @@ -20644,7 +20108,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[176].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[175].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgMatchDiretideCandy_PlayerCandy); i { case 0: return &v.state @@ -20656,7 +20120,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[177].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[176].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgGCToServerCheerData_CheerTypeCount); i { case 0: return &v.state @@ -20668,7 +20132,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[178].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[177].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgServerToGCGetStickerHeroesResponse_Player); i { case 0: return &v.state @@ -20680,7 +20144,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[179].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[178].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgSteamLearnPlayerTimedStats_StatBucket); i { case 0: return &v.state @@ -20692,31 +20156,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[180].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgSteamLearnMatchStateV4_PlayerState); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_dota_gcmessages_server_proto_msgTypes[181].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgSteamLearnMatchStateV4_TeamState); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_dota_gcmessages_server_proto_msgTypes[182].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[179].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgSteamLearnMatchStateV5_PlayerState); i { case 0: return &v.state @@ -20728,7 +20168,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[183].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[180].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgSteamLearnMatchStateV5_TeamState); i { case 0: return &v.state @@ -20740,7 +20180,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[184].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[181].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgSteamLearnWardPlacement_Location); i { case 0: return &v.state @@ -20752,7 +20192,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[185].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[182].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgSignOutMapStats_Player); i { case 0: return &v.state @@ -20764,7 +20204,7 @@ func file_dota_gcmessages_server_proto_init() { return nil } } - file_dota_gcmessages_server_proto_msgTypes[186].Exporter = func(v interface{}, i int) interface{} { + file_dota_gcmessages_server_proto_msgTypes[183].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgSignOutOverworld_Player); i { case 0: return &v.state @@ -20782,8 +20222,8 @@ func file_dota_gcmessages_server_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_dota_gcmessages_server_proto_rawDesc, - NumEnums: 8, - NumMessages: 187, + NumEnums: 7, + NumMessages: 184, NumExtensions: 0, NumServices: 0, }, diff --git a/dota/dota_gcmessages_server.proto b/dota/dota_gcmessages_server.proto index a176a1f..15ce7e7 100644 --- a/dota/dota_gcmessages_server.proto +++ b/dota/dota_gcmessages_server.proto @@ -52,7 +52,7 @@ message CMsgGameserverCrash { message CMsgConnectedPlayers { message Player { optional fixed64 steam_id = 1; - optional uint32 hero_id = 2; + optional int32 hero_id = 2; optional CMsgLeaverState leaver_state = 3; optional ENetworkDisconnectionReason disconnect_reason = 4; } @@ -174,7 +174,7 @@ message CMsgSignOutGameplayStats { message CPlayer { optional fixed64 steam_id = 1; optional uint32 player_slot = 2; - optional uint32 hero_id = 3; + optional int32 hero_id = 3; repeated CMatchPlayerTimedStats timed_player_stats = 4; } @@ -209,7 +209,7 @@ message CMsgGameMatchSignOut { } optional fixed64 steam_id = 1; - optional uint32 hero_id = 3; + optional int32 hero_id = 3; repeated int32 items = 4; repeated uint32 item_purchase_times = 63; optional uint32 gold = 5; @@ -335,7 +335,6 @@ message CMsgGameMatchSignOut { optional string server_addr = 11; optional uint32 first_blood_time = 12; optional uint32 event_score = 14; - repeated CMatchHeroSelectEvent picks_bans = 15; repeated CMsgDOTAFantasyPlayerStats fantasy_stats = 41; repeated CMsgEconPlayerStrangeCountAdjustment player_strange_count_adjustments = 17; optional bool automatic_surrender = 18; @@ -385,7 +384,7 @@ message CMsgSignOutPlayerStats { optional int32 account_id = 1; optional uint64 match_id = 2; optional uint32 rank = 3; - optional uint32 hero_id = 4; + optional int32 hero_id = 4; optional uint32 rampages = 5; optional uint32 triple_kills = 6; optional uint32 first_blood_claimed = 7; @@ -446,7 +445,7 @@ message CMsgSignOutCommunicationSummary { message CMsgGameMatchSignoutResponse { message PlayerMetadata { - optional uint32 hero_id = 1; + optional int32 hero_id = 1; optional uint32 avg_kills_x16 = 2; optional uint32 avg_deaths_x16 = 3; optional uint32 avg_assists_x16 = 4; @@ -527,8 +526,8 @@ message CMsgGameMatchSignOutPerfData { } message CMsgGameMatchSignOutBanData { - repeated uint32 hero_bans = 1; - repeated uint32 hero_ban_votes = 2; + repeated int32 hero_bans = 1; + repeated int32 hero_ban_votes = 2; } message CMsgDOTALiveScoreboardUpdate { @@ -549,7 +548,7 @@ message CMsgDOTALiveScoreboardUpdate { optional uint32 player_slot = 1; optional string player_name = 2; optional string hero_name = 3; - optional uint32 hero_id = 4; + optional int32 hero_id = 4; optional uint32 kills = 5; optional uint32 deaths = 6; optional uint32 assists = 7; @@ -579,8 +578,8 @@ message CMsgDOTALiveScoreboardUpdate { optional uint32 score = 2; optional uint32 tower_state = 3; optional uint32 barracks_state = 4; - repeated uint32 hero_picks = 5; - repeated uint32 hero_bans = 6; + repeated int32 hero_picks = 5; + repeated int32 hero_bans = 6; } optional uint32 tournament_id = 1; @@ -768,10 +767,15 @@ message CSerializedCombatLog { } message CMsgServerToGCVictoryPredictions { + message PredictionItem { + optional uint64 item_id = 1; + optional uint32 item_def = 2; + } + message Record { optional uint32 account_id = 1; - optional uint64 item_id = 2; repeated uint64 item_ids = 5; + repeated CMsgServerToGCVictoryPredictions.PredictionItem prediction_items = 6; } repeated CMsgServerToGCVictoryPredictions.Record records = 1; @@ -810,7 +814,7 @@ message CMsgSignOutAssassinMiniGameInfo { repeated fixed64 losing_players = 2; repeated fixed64 arcana_owners = 3; optional bool assassin_won = 4; - optional uint32 target_hero_id = 5; + optional int32 target_hero_id = 5; optional bool contract_completed = 6; optional float contract_complete_time = 7; optional bool pa_is_radiant = 8; @@ -827,26 +831,6 @@ message CMsgServerToGCKillSummaries { repeated CMsgServerToGCKillSummaries.KillSummary summaries = 2; } -message CMsgGCToServerPredictionResult { - message Prediction { - enum EResult { - k_eResult_ItemGranted = 1; - k_eResult_Destroyed = 2; - } - - optional uint32 item_def = 1; - optional uint32 num_correct = 2; - optional uint32 num_fails = 3; - optional CMsgGCToServerPredictionResult.Prediction.EResult result = 4; - repeated uint32 granted_item_defs = 6; - } - - optional uint32 account_id = 1; - optional uint64 match_id = 2; - optional bool correct = 3; - repeated CMsgGCToServerPredictionResult.Prediction predictions = 4; -} - message CMsgServerToGCLockCharmTrading { optional uint32 account_id = 1; optional uint64 item_id = 2; @@ -865,7 +849,7 @@ message CMsgSignOutUpdatePlayerChallenge { repeated CMsgSignOutUpdatePlayerChallenge.Challenge completed = 2; repeated CMsgSignOutUpdatePlayerChallenge.Challenge rerolled = 3; optional uint64 match_id = 4; - optional uint32 hero_id = 5; + optional int32 hero_id = 5; } message CMsgServerToGCRerollPlayerChallenge { @@ -976,9 +960,9 @@ message CMsgServerToGCMatchPlayerItemPurchaseHistory { message Player { optional uint32 player_slot = 1; optional uint32 account_id = 2; - optional uint32 hero_id = 3; - repeated uint32 allied_hero_ids = 4; - repeated uint32 enemy_hero_ids = 5; + optional int32 hero_id = 3; + repeated int32 allied_hero_ids = 4; + repeated int32 enemy_hero_ids = 5; repeated CMsgServerToGCMatchPlayerItemPurchaseHistory.ItemPurchase item_purchases = 6; optional uint32 lane = 7; optional bool is_winner = 8; @@ -1000,8 +984,8 @@ message CMsgServerToGCMatchPlayerNeutralItemEquipHistory { message Player { optional uint32 account_id = 1; - repeated uint32 allied_hero_ids = 2; - repeated uint32 enemy_hero_ids = 3; + repeated int32 allied_hero_ids = 2; + repeated int32 enemy_hero_ids = 3; repeated CMsgServerToGCMatchPlayerNeutralItemEquipHistory.ItemEquip item_equips = 4; optional bool is_winner = 5; } @@ -1012,7 +996,7 @@ message CMsgServerToGCMatchPlayerNeutralItemEquipHistory { message CMsgServerToGCMatchStateHistory { message PlayerState { - optional uint32 hero_id = 1; + optional int32 hero_id = 1; optional uint32 net_worth = 2; optional uint32 level = 3; optional uint32 deaths = 4; @@ -1055,14 +1039,14 @@ message CMsgMatchStateSteamMLEntry { } message CMsgLaneSelectionSteamMLEntry { - repeated uint32 hero_ids = 1; + repeated int32 hero_ids = 1; repeated uint32 lanes = 2; } message CMsgAbilitySelectionSteamMLEntry { optional uint32 mmr = 1; - optional uint32 hero_id = 2; - repeated uint32 enemy_hero_ids = 3; + optional int32 hero_id = 2; + repeated int32 enemy_hero_ids = 3; optional uint32 lane = 4; repeated int32 abilities = 5; optional int32 selected_ability = 6; @@ -1072,18 +1056,18 @@ message CMsgItemPurchasePregameSteamMLEntry { optional uint32 mmr = 1; optional uint32 lane = 2; optional float balance = 3; - optional uint32 hero_id = 4; - repeated uint32 allied_hero_ids = 5; - repeated uint32 enemy_hero_ids = 6; + optional int32 hero_id = 4; + repeated int32 allied_hero_ids = 5; + repeated int32 enemy_hero_ids = 6; repeated int32 items = 7; } message CMsgItemPurchaseSteamMLEntry { optional uint32 mmr = 1; optional uint32 lane = 2; - optional uint32 hero_id = 3; - repeated uint32 allied_hero_ids = 4; - repeated uint32 enemy_hero_ids = 5; + optional int32 hero_id = 3; + repeated int32 allied_hero_ids = 4; + repeated int32 enemy_hero_ids = 5; repeated int32 items = 6; repeated int32 items_to_be_purchased = 7; } @@ -1091,9 +1075,9 @@ message CMsgItemPurchaseSteamMLEntry { message CMsgItemPurchaseSequenceSteamMLEntry { optional uint32 mmr = 1; optional uint32 lane = 2; - optional uint32 hero_id = 3; - repeated uint32 allied_hero_ids = 4; - repeated uint32 enemy_hero_ids = 5; + optional int32 hero_id = 3; + repeated int32 allied_hero_ids = 4; + repeated int32 enemy_hero_ids = 5; repeated int32 items = 6; optional int32 item_to_be_purchased = 7; } @@ -1102,7 +1086,7 @@ message CMsgServerToGCCavernCrawlIsHeroActive { optional uint32 event_id = 1; optional uint32 account_id = 2; optional uint32 preferred_map_variant = 3; - optional uint32 hero_id = 4; + optional int32 hero_id = 4; optional bool turbo_mode = 5; } @@ -1116,7 +1100,7 @@ message CMsgServerToGCPlayerChallengeHistory { optional uint32 progress_value_end = 6; optional bool team_won = 7; optional uint64 audit_data = 8; - optional uint32 hero_id = 9; + optional int32 hero_id = 9; optional uint32 rank_completed = 10; } @@ -1153,7 +1137,7 @@ message CMsgNeutralItemStats { message CMsgGCToServerLobbyHeroBanRates { message HeroBanEntry { - optional uint32 hero_id = 1; + optional int32 hero_id = 1; optional uint32 ban_count = 2; optional uint32 pick_count = 3; } @@ -1202,7 +1186,7 @@ message CMsgSignOutMVPStats { optional uint32 account_id = 3; optional uint32 player_slot = 32; optional uint32 rank = 33; - optional uint32 hero_id = 4; + optional int32 hero_id = 4; optional uint32 role = 5; optional int32 kills = 6; optional int32 deaths = 7; @@ -1359,6 +1343,10 @@ message CMsgGCToServerSteamLearnAccessTokensChanged { optional CMsgSteamLearnAccessTokens access_tokens = 1; } +message CMsgGCToServerSteamLearnUseHTTP { + optional bool use_http = 1; +} + message CMsgSteamLearnMatchInfo { optional uint32 average_mmr = 1; optional bool radiant_won = 2; @@ -1376,34 +1364,23 @@ message CMsgSteamLearnMatchInfoPlayer { optional uint32 player_mmr = 6; } -message CMsgSteamLearnMatchHeroesV1 { - repeated uint32 radiant_hero_ids = 1; - repeated uint32 dire_hero_ids = 2; - repeated uint32 radiant_lanes = 3; - repeated uint32 dire_lanes = 4; -} - -message CMsgSteamLearnMatchHeroesV2 { - repeated uint32 radiant_hero_ids = 1; - repeated uint32 dire_hero_ids = 2; +message CMsgSteamLearnMatchHeroesV3 { + repeated int32 radiant_hero_ids = 1; + repeated int32 dire_hero_ids = 2; repeated uint32 radiant_lanes = 3; repeated uint32 dire_lanes = 4; repeated uint32 radiant_hero_facets = 5; repeated uint32 dire_hero_facets = 6; + repeated uint32 radiant_positions = 7; + repeated uint32 dire_positions = 8; } -message CMsgSteamLearnMatchHeroV1 { - optional uint32 hero_id = 1; - optional uint32 lane = 2; - repeated uint32 allied_hero_ids = 3; - repeated uint32 enemy_hero_ids = 4; -} - -message CMsgSteamLearnMatchHeroV2 { - optional uint32 hero_id = 1; +message CMsgSteamLearnMatchHeroV3 { + optional int32 hero_id = 1; optional uint32 lane = 2; - repeated uint32 allied_hero_ids = 3; - repeated uint32 enemy_hero_ids = 4; + optional uint32 position = 8; + repeated int32 allied_hero_ids = 3; + repeated int32 enemy_hero_ids = 4; optional uint32 hero_facet = 5; repeated uint32 allied_hero_facets = 6; repeated uint32 enemy_herofacets = 7; @@ -1428,40 +1405,9 @@ message CMsgSteamLearnPlayerTimedStats { repeated CMsgSteamLearnPlayerTimedStats.StatBucket stat_buckets = 1; } -message CMsgSteamLearnMatchStateV4 { - message PlayerState { - optional uint32 hero_id = 1; - optional uint32 net_worth = 2; - optional uint32 level = 3; - optional uint32 deaths = 4; - optional uint32 respawn_time = 5; - optional bool has_buyback = 6; - optional bool has_aegis = 7; - optional bool has_rapier = 8; - optional uint32 distance = 9; - } - - message TeamState { - optional uint32 team = 1; - repeated CMsgSteamLearnMatchStateV4.PlayerState player_states = 2; - repeated uint32 tower_health_pct = 3; - repeated uint32 barracks_health_pct = 4; - optional uint32 ancient_health_pct = 5; - optional uint32 glyph_cooldown = 6; - optional uint32 kills = 7; - optional uint32 creep_distance_safe = 8; - optional uint32 creep_distance_mid = 9; - optional uint32 creep_distance_off = 10; - } - - optional float game_time = 1; - optional CMsgSteamLearnMatchStateV4.TeamState radiant_state = 2; - optional CMsgSteamLearnMatchStateV4.TeamState dire_state = 3; -} - message CMsgSteamLearnMatchStateV5 { message PlayerState { - optional uint32 hero_id = 1; + optional int32 hero_id = 1; optional uint32 net_worth = 2; optional uint32 level = 3; optional uint32 deaths = 4; @@ -1522,6 +1468,14 @@ message CMsgSteamLearnAbilitySkill { optional bool is_using_dota_plus = 4; } +message CMsgSteamLearnEarlyGameItemPurchases { + repeated int32 item_ids = 1; +} + +message CMsgSteamLearnLateGameItemPurchases { + repeated int32 item_ids = 1; +} + message CMsgSteamLearnWardPlacement { message Location { optional float x = 1; diff --git a/dota/dota_gcmessages_webapi.pb.go b/dota/dota_gcmessages_webapi.pb.go index 0775939..eb8cce4 100644 --- a/dota/dota_gcmessages_webapi.pb.go +++ b/dota/dota_gcmessages_webapi.pb.go @@ -215,6 +215,183 @@ func (ETeamFanContentAssetStatus) EnumDescriptor() ([]byte, []int) { return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{2} } +type ETalentContentStatus int32 + +const ( + ETalentContentStatus_TALENT_CONTENT_STATUS_INVALID ETalentContentStatus = 0 + ETalentContentStatus_TALENT_CONTENT_STATUS_PENDING ETalentContentStatus = 1 + ETalentContentStatus_TALENT_CONTENT_STATUS_EVALUATED ETalentContentStatus = 2 +) + +// Enum value maps for ETalentContentStatus. +var ( + ETalentContentStatus_name = map[int32]string{ + 0: "TALENT_CONTENT_STATUS_INVALID", + 1: "TALENT_CONTENT_STATUS_PENDING", + 2: "TALENT_CONTENT_STATUS_EVALUATED", + } + ETalentContentStatus_value = map[string]int32{ + "TALENT_CONTENT_STATUS_INVALID": 0, + "TALENT_CONTENT_STATUS_PENDING": 1, + "TALENT_CONTENT_STATUS_EVALUATED": 2, + } +) + +func (x ETalentContentStatus) Enum() *ETalentContentStatus { + p := new(ETalentContentStatus) + *p = x + return p +} + +func (x ETalentContentStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ETalentContentStatus) Descriptor() protoreflect.EnumDescriptor { + return file_dota_gcmessages_webapi_proto_enumTypes[3].Descriptor() +} + +func (ETalentContentStatus) Type() protoreflect.EnumType { + return &file_dota_gcmessages_webapi_proto_enumTypes[3] +} + +func (x ETalentContentStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *ETalentContentStatus) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = ETalentContentStatus(num) + return nil +} + +// Deprecated: Use ETalentContentStatus.Descriptor instead. +func (ETalentContentStatus) EnumDescriptor() ([]byte, []int) { + return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{3} +} + +type ETalentContentAssetType int32 + +const ( + ETalentContentAssetType_k_eTalentContentAssetType_Photo ETalentContentAssetType = 1 + ETalentContentAssetType_k_eTalentContentAssetType_Autograph ETalentContentAssetType = 2 + ETalentContentAssetType_k_eTalentContentAssetType_Voicelines ETalentContentAssetType = 3 +) + +// Enum value maps for ETalentContentAssetType. +var ( + ETalentContentAssetType_name = map[int32]string{ + 1: "k_eTalentContentAssetType_Photo", + 2: "k_eTalentContentAssetType_Autograph", + 3: "k_eTalentContentAssetType_Voicelines", + } + ETalentContentAssetType_value = map[string]int32{ + "k_eTalentContentAssetType_Photo": 1, + "k_eTalentContentAssetType_Autograph": 2, + "k_eTalentContentAssetType_Voicelines": 3, + } +) + +func (x ETalentContentAssetType) Enum() *ETalentContentAssetType { + p := new(ETalentContentAssetType) + *p = x + return p +} + +func (x ETalentContentAssetType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ETalentContentAssetType) Descriptor() protoreflect.EnumDescriptor { + return file_dota_gcmessages_webapi_proto_enumTypes[4].Descriptor() +} + +func (ETalentContentAssetType) Type() protoreflect.EnumType { + return &file_dota_gcmessages_webapi_proto_enumTypes[4] +} + +func (x ETalentContentAssetType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *ETalentContentAssetType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = ETalentContentAssetType(num) + return nil +} + +// Deprecated: Use ETalentContentAssetType.Descriptor instead. +func (ETalentContentAssetType) EnumDescriptor() ([]byte, []int) { + return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{4} +} + +type ETalentContentAssetStatus int32 + +const ( + ETalentContentAssetStatus_k_eTalentContentAssetStatus_None ETalentContentAssetStatus = 0 + ETalentContentAssetStatus_k_eTalentContentAssetStatus_Approved ETalentContentAssetStatus = 1 + ETalentContentAssetStatus_k_eTalentContentAssetStatus_Rejected ETalentContentAssetStatus = 2 +) + +// Enum value maps for ETalentContentAssetStatus. +var ( + ETalentContentAssetStatus_name = map[int32]string{ + 0: "k_eTalentContentAssetStatus_None", + 1: "k_eTalentContentAssetStatus_Approved", + 2: "k_eTalentContentAssetStatus_Rejected", + } + ETalentContentAssetStatus_value = map[string]int32{ + "k_eTalentContentAssetStatus_None": 0, + "k_eTalentContentAssetStatus_Approved": 1, + "k_eTalentContentAssetStatus_Rejected": 2, + } +) + +func (x ETalentContentAssetStatus) Enum() *ETalentContentAssetStatus { + p := new(ETalentContentAssetStatus) + *p = x + return p +} + +func (x ETalentContentAssetStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ETalentContentAssetStatus) Descriptor() protoreflect.EnumDescriptor { + return file_dota_gcmessages_webapi_proto_enumTypes[5].Descriptor() +} + +func (ETalentContentAssetStatus) Type() protoreflect.EnumType { + return &file_dota_gcmessages_webapi_proto_enumTypes[5] +} + +func (x ETalentContentAssetStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *ETalentContentAssetStatus) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = ETalentContentAssetStatus(num) + return nil +} + +// Deprecated: Use ETalentContentAssetStatus.Descriptor instead. +func (ETalentContentAssetStatus) EnumDescriptor() ([]byte, []int) { + return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{5} +} + type CMsgArcanaVotes_VotingState int32 const ( @@ -248,11 +425,11 @@ func (x CMsgArcanaVotes_VotingState) String() string { } func (CMsgArcanaVotes_VotingState) Descriptor() protoreflect.EnumDescriptor { - return file_dota_gcmessages_webapi_proto_enumTypes[3].Descriptor() + return file_dota_gcmessages_webapi_proto_enumTypes[6].Descriptor() } func (CMsgArcanaVotes_VotingState) Type() protoreflect.EnumType { - return &file_dota_gcmessages_webapi_proto_enumTypes[3] + return &file_dota_gcmessages_webapi_proto_enumTypes[6] } func (x CMsgArcanaVotes_VotingState) Number() protoreflect.EnumNumber { @@ -340,11 +517,11 @@ func (x CMsgDOTADPCFeed_EFeedElementType) String() string { } func (CMsgDOTADPCFeed_EFeedElementType) Descriptor() protoreflect.EnumDescriptor { - return file_dota_gcmessages_webapi_proto_enumTypes[4].Descriptor() + return file_dota_gcmessages_webapi_proto_enumTypes[7].Descriptor() } func (CMsgDOTADPCFeed_EFeedElementType) Type() protoreflect.EnumType { - return &file_dota_gcmessages_webapi_proto_enumTypes[4] + return &file_dota_gcmessages_webapi_proto_enumTypes[7] } func (x CMsgDOTADPCFeed_EFeedElementType) Number() protoreflect.EnumNumber { @@ -396,11 +573,11 @@ func (x CMsgTeamFanContentAssetStatusResponse_EResult) String() string { } func (CMsgTeamFanContentAssetStatusResponse_EResult) Descriptor() protoreflect.EnumDescriptor { - return file_dota_gcmessages_webapi_proto_enumTypes[5].Descriptor() + return file_dota_gcmessages_webapi_proto_enumTypes[8].Descriptor() } func (CMsgTeamFanContentAssetStatusResponse_EResult) Type() protoreflect.EnumType { - return &file_dota_gcmessages_webapi_proto_enumTypes[5] + return &file_dota_gcmessages_webapi_proto_enumTypes[8] } func (x CMsgTeamFanContentAssetStatusResponse_EResult) Number() protoreflect.EnumNumber { @@ -422,6 +599,62 @@ func (CMsgTeamFanContentAssetStatusResponse_EResult) EnumDescriptor() ([]byte, [ return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{5, 0} } +type CMsgSetTalentContentResponse_EResult int32 + +const ( + CMsgSetTalentContentResponse_k_eSuccess CMsgSetTalentContentResponse_EResult = 0 + CMsgSetTalentContentResponse_k_eInternalError CMsgSetTalentContentResponse_EResult = 1 +) + +// Enum value maps for CMsgSetTalentContentResponse_EResult. +var ( + CMsgSetTalentContentResponse_EResult_name = map[int32]string{ + 0: "k_eSuccess", + 1: "k_eInternalError", + } + CMsgSetTalentContentResponse_EResult_value = map[string]int32{ + "k_eSuccess": 0, + "k_eInternalError": 1, + } +) + +func (x CMsgSetTalentContentResponse_EResult) Enum() *CMsgSetTalentContentResponse_EResult { + p := new(CMsgSetTalentContentResponse_EResult) + *p = x + return p +} + +func (x CMsgSetTalentContentResponse_EResult) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CMsgSetTalentContentResponse_EResult) Descriptor() protoreflect.EnumDescriptor { + return file_dota_gcmessages_webapi_proto_enumTypes[9].Descriptor() +} + +func (CMsgSetTalentContentResponse_EResult) Type() protoreflect.EnumType { + return &file_dota_gcmessages_webapi_proto_enumTypes[9] +} + +func (x CMsgSetTalentContentResponse_EResult) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *CMsgSetTalentContentResponse_EResult) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = CMsgSetTalentContentResponse_EResult(num) + return nil +} + +// Deprecated: Use CMsgSetTalentContentResponse_EResult.Descriptor instead. +func (CMsgSetTalentContentResponse_EResult) EnumDescriptor() ([]byte, []int) { + return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{10, 0} +} + type CMsgDPCEvent_ELeagueEvent int32 const ( @@ -512,11 +745,11 @@ func (x CMsgDPCEvent_ELeagueEvent) String() string { } func (CMsgDPCEvent_ELeagueEvent) Descriptor() protoreflect.EnumDescriptor { - return file_dota_gcmessages_webapi_proto_enumTypes[6].Descriptor() + return file_dota_gcmessages_webapi_proto_enumTypes[10].Descriptor() } func (CMsgDPCEvent_ELeagueEvent) Type() protoreflect.EnumType { - return &file_dota_gcmessages_webapi_proto_enumTypes[6] + return &file_dota_gcmessages_webapi_proto_enumTypes[10] } func (x CMsgDPCEvent_ELeagueEvent) Number() protoreflect.EnumNumber { @@ -535,7 +768,7 @@ func (x *CMsgDPCEvent_ELeagueEvent) UnmarshalJSON(b []byte) error { // Deprecated: Use CMsgDPCEvent_ELeagueEvent.Descriptor instead. func (CMsgDPCEvent_ELeagueEvent) EnumDescriptor() ([]byte, []int) { - return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{8, 0} + return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{11, 0} } type CMsgDPCEvent_ELeagueEventPhase int32 @@ -598,11 +831,11 @@ func (x CMsgDPCEvent_ELeagueEventPhase) String() string { } func (CMsgDPCEvent_ELeagueEventPhase) Descriptor() protoreflect.EnumDescriptor { - return file_dota_gcmessages_webapi_proto_enumTypes[7].Descriptor() + return file_dota_gcmessages_webapi_proto_enumTypes[11].Descriptor() } func (CMsgDPCEvent_ELeagueEventPhase) Type() protoreflect.EnumType { - return &file_dota_gcmessages_webapi_proto_enumTypes[7] + return &file_dota_gcmessages_webapi_proto_enumTypes[11] } func (x CMsgDPCEvent_ELeagueEventPhase) Number() protoreflect.EnumNumber { @@ -621,7 +854,7 @@ func (x *CMsgDPCEvent_ELeagueEventPhase) UnmarshalJSON(b []byte) error { // Deprecated: Use CMsgDPCEvent_ELeagueEventPhase.Descriptor instead. func (CMsgDPCEvent_ELeagueEventPhase) EnumDescriptor() ([]byte, []int) { - return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{8, 1} + return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{11, 1} } type CMsgDPCEvent_ELeagueEventType int32 @@ -669,11 +902,11 @@ func (x CMsgDPCEvent_ELeagueEventType) String() string { } func (CMsgDPCEvent_ELeagueEventType) Descriptor() protoreflect.EnumDescriptor { - return file_dota_gcmessages_webapi_proto_enumTypes[8].Descriptor() + return file_dota_gcmessages_webapi_proto_enumTypes[12].Descriptor() } func (CMsgDPCEvent_ELeagueEventType) Type() protoreflect.EnumType { - return &file_dota_gcmessages_webapi_proto_enumTypes[8] + return &file_dota_gcmessages_webapi_proto_enumTypes[12] } func (x CMsgDPCEvent_ELeagueEventType) Number() protoreflect.EnumNumber { @@ -692,7 +925,7 @@ func (x *CMsgDPCEvent_ELeagueEventType) UnmarshalJSON(b []byte) error { // Deprecated: Use CMsgDPCEvent_ELeagueEventType.Descriptor instead. func (CMsgDPCEvent_ELeagueEventType) EnumDescriptor() ([]byte, []int) { - return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{8, 2} + return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{11, 2} } type CMsgDPCEvent_ETour int32 @@ -731,11 +964,11 @@ func (x CMsgDPCEvent_ETour) String() string { } func (CMsgDPCEvent_ETour) Descriptor() protoreflect.EnumDescriptor { - return file_dota_gcmessages_webapi_proto_enumTypes[9].Descriptor() + return file_dota_gcmessages_webapi_proto_enumTypes[13].Descriptor() } func (CMsgDPCEvent_ETour) Type() protoreflect.EnumType { - return &file_dota_gcmessages_webapi_proto_enumTypes[9] + return &file_dota_gcmessages_webapi_proto_enumTypes[13] } func (x CMsgDPCEvent_ETour) Number() protoreflect.EnumNumber { @@ -754,7 +987,7 @@ func (x *CMsgDPCEvent_ETour) UnmarshalJSON(b []byte) error { // Deprecated: Use CMsgDPCEvent_ETour.Descriptor instead. func (CMsgDPCEvent_ETour) EnumDescriptor() ([]byte, []int) { - return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{8, 3} + return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{11, 3} } type CMsgArcanaVotes struct { @@ -1269,6 +1502,163 @@ func (x *CMsgTeamFanContentAutographStatus) GetTeamAutographs() []*CMsgTeamFanCo return nil } +type CMsgTalentContentAssetStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AssetType *ETalentContentAssetType `protobuf:"varint,1,opt,name=asset_type,json=assetType,enum=dota.ETalentContentAssetType" json:"asset_type,omitempty"` + AssetIndex *uint32 `protobuf:"varint,2,opt,name=asset_index,json=assetIndex" json:"asset_index,omitempty"` + AssetStatus *ETalentContentAssetStatus `protobuf:"varint,3,opt,name=asset_status,json=assetStatus,enum=dota.ETalentContentAssetStatus" json:"asset_status,omitempty"` +} + +func (x *CMsgTalentContentAssetStatus) Reset() { + *x = CMsgTalentContentAssetStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_dota_gcmessages_webapi_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTalentContentAssetStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTalentContentAssetStatus) ProtoMessage() {} + +func (x *CMsgTalentContentAssetStatus) ProtoReflect() protoreflect.Message { + mi := &file_dota_gcmessages_webapi_proto_msgTypes[8] + 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 CMsgTalentContentAssetStatus.ProtoReflect.Descriptor instead. +func (*CMsgTalentContentAssetStatus) Descriptor() ([]byte, []int) { + return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{8} +} + +func (x *CMsgTalentContentAssetStatus) GetAssetType() ETalentContentAssetType { + if x != nil && x.AssetType != nil { + return *x.AssetType + } + return ETalentContentAssetType_k_eTalentContentAssetType_Photo +} + +func (x *CMsgTalentContentAssetStatus) GetAssetIndex() uint32 { + if x != nil && x.AssetIndex != nil { + return *x.AssetIndex + } + return 0 +} + +func (x *CMsgTalentContentAssetStatus) GetAssetStatus() ETalentContentAssetStatus { + if x != nil && x.AssetStatus != nil { + return *x.AssetStatus + } + return ETalentContentAssetStatus_k_eTalentContentAssetStatus_None +} + +type CMsgTalentContentStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TalentStatus []*CMsgTalentContentStatus_TalentDetails `protobuf:"bytes,1,rep,name=talent_status,json=talentStatus" json:"talent_status,omitempty"` +} + +func (x *CMsgTalentContentStatus) Reset() { + *x = CMsgTalentContentStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_dota_gcmessages_webapi_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTalentContentStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTalentContentStatus) ProtoMessage() {} + +func (x *CMsgTalentContentStatus) ProtoReflect() protoreflect.Message { + mi := &file_dota_gcmessages_webapi_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 CMsgTalentContentStatus.ProtoReflect.Descriptor instead. +func (*CMsgTalentContentStatus) Descriptor() ([]byte, []int) { + return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{9} +} + +func (x *CMsgTalentContentStatus) GetTalentStatus() []*CMsgTalentContentStatus_TalentDetails { + if x != nil { + return x.TalentStatus + } + return nil +} + +type CMsgSetTalentContentResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Result *CMsgSetTalentContentResponse_EResult `protobuf:"varint,1,opt,name=result,enum=dota.CMsgSetTalentContentResponse_EResult" json:"result,omitempty"` +} + +func (x *CMsgSetTalentContentResponse) Reset() { + *x = CMsgSetTalentContentResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_dota_gcmessages_webapi_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgSetTalentContentResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgSetTalentContentResponse) ProtoMessage() {} + +func (x *CMsgSetTalentContentResponse) ProtoReflect() protoreflect.Message { + mi := &file_dota_gcmessages_webapi_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 CMsgSetTalentContentResponse.ProtoReflect.Descriptor instead. +func (*CMsgSetTalentContentResponse) Descriptor() ([]byte, []int) { + return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{10} +} + +func (x *CMsgSetTalentContentResponse) GetResult() CMsgSetTalentContentResponse_EResult { + if x != nil && x.Result != nil { + return *x.Result + } + return CMsgSetTalentContentResponse_k_eSuccess +} + type CMsgDPCEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1294,7 +1684,7 @@ type CMsgDPCEvent struct { func (x *CMsgDPCEvent) Reset() { *x = CMsgDPCEvent{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[8] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1307,7 +1697,7 @@ func (x *CMsgDPCEvent) String() string { func (*CMsgDPCEvent) ProtoMessage() {} func (x *CMsgDPCEvent) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[8] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1320,7 +1710,7 @@ func (x *CMsgDPCEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgDPCEvent.ProtoReflect.Descriptor instead. func (*CMsgDPCEvent) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{8} + return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{11} } func (x *CMsgDPCEvent) GetEvent() CMsgDPCEvent_ELeagueEvent { @@ -1439,7 +1829,7 @@ type CMsgDPCEventList struct { func (x *CMsgDPCEventList) Reset() { *x = CMsgDPCEventList{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[9] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1452,7 +1842,7 @@ func (x *CMsgDPCEventList) String() string { func (*CMsgDPCEventList) ProtoMessage() {} func (x *CMsgDPCEventList) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[9] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1465,7 +1855,7 @@ func (x *CMsgDPCEventList) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgDPCEventList.ProtoReflect.Descriptor instead. func (*CMsgDPCEventList) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{9} + return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{12} } func (x *CMsgDPCEventList) GetEvents() []*CMsgDPCEvent { @@ -1486,7 +1876,7 @@ type CMsgDOTAFantasyCardLineup struct { func (x *CMsgDOTAFantasyCardLineup) Reset() { *x = CMsgDOTAFantasyCardLineup{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[10] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1499,7 +1889,7 @@ func (x *CMsgDOTAFantasyCardLineup) String() string { func (*CMsgDOTAFantasyCardLineup) ProtoMessage() {} func (x *CMsgDOTAFantasyCardLineup) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[10] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1512,7 +1902,7 @@ func (x *CMsgDOTAFantasyCardLineup) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgDOTAFantasyCardLineup.ProtoReflect.Descriptor instead. func (*CMsgDOTAFantasyCardLineup) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{10} + return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{13} } func (x *CMsgDOTAFantasyCardLineup) GetPeriods() []*CMsgDOTAFantasyCardLineup_Period { @@ -1533,7 +1923,7 @@ type CMsgDOTAFantasyCardList struct { func (x *CMsgDOTAFantasyCardList) Reset() { *x = CMsgDOTAFantasyCardList{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[11] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1546,7 +1936,7 @@ func (x *CMsgDOTAFantasyCardList) String() string { func (*CMsgDOTAFantasyCardList) ProtoMessage() {} func (x *CMsgDOTAFantasyCardList) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[11] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1559,7 +1949,7 @@ func (x *CMsgDOTAFantasyCardList) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgDOTAFantasyCardList.ProtoReflect.Descriptor instead. func (*CMsgDOTAFantasyCardList) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{11} + return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{14} } func (x *CMsgDOTAFantasyCardList) GetCards() []*CMsgDOTAFantasyCardList_Card { @@ -1580,7 +1970,7 @@ type CMsgChatToxicityToxicPlayerMatchesReport struct { func (x *CMsgChatToxicityToxicPlayerMatchesReport) Reset() { *x = CMsgChatToxicityToxicPlayerMatchesReport{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[12] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1593,7 +1983,7 @@ func (x *CMsgChatToxicityToxicPlayerMatchesReport) String() string { func (*CMsgChatToxicityToxicPlayerMatchesReport) ProtoMessage() {} func (x *CMsgChatToxicityToxicPlayerMatchesReport) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[12] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1606,7 +1996,7 @@ func (x *CMsgChatToxicityToxicPlayerMatchesReport) ProtoReflect() protoreflect.M // Deprecated: Use CMsgChatToxicityToxicPlayerMatchesReport.ProtoReflect.Descriptor instead. func (*CMsgChatToxicityToxicPlayerMatchesReport) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{12} + return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{15} } func (x *CMsgChatToxicityToxicPlayerMatchesReport) GetRows() []*CMsgChatToxicityToxicPlayerMatchesReport_IndividualRow { @@ -1632,7 +2022,7 @@ type CMsgChatToxicityReport struct { func (x *CMsgChatToxicityReport) Reset() { *x = CMsgChatToxicityReport{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[13] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1645,7 +2035,7 @@ func (x *CMsgChatToxicityReport) String() string { func (*CMsgChatToxicityReport) ProtoMessage() {} func (x *CMsgChatToxicityReport) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[13] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1658,7 +2048,7 @@ func (x *CMsgChatToxicityReport) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgChatToxicityReport.ProtoReflect.Descriptor instead. func (*CMsgChatToxicityReport) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{13} + return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{16} } func (x *CMsgChatToxicityReport) GetNumMatchesSeen() uint32 { @@ -1717,7 +2107,7 @@ type CMsgGetTeamAuditInformation struct { func (x *CMsgGetTeamAuditInformation) Reset() { *x = CMsgGetTeamAuditInformation{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[14] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1730,7 +2120,7 @@ func (x *CMsgGetTeamAuditInformation) String() string { func (*CMsgGetTeamAuditInformation) ProtoMessage() {} func (x *CMsgGetTeamAuditInformation) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[14] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1743,7 +2133,7 @@ func (x *CMsgGetTeamAuditInformation) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgGetTeamAuditInformation.ProtoReflect.Descriptor instead. func (*CMsgGetTeamAuditInformation) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{14} + return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{17} } func (x *CMsgGetTeamAuditInformation) GetTeamId() uint32 { @@ -1786,7 +2176,7 @@ type CMsgDOTADPCMatch struct { func (x *CMsgDOTADPCMatch) Reset() { *x = CMsgDOTADPCMatch{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[15] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1799,7 +2189,7 @@ func (x *CMsgDOTADPCMatch) String() string { func (*CMsgDOTADPCMatch) ProtoMessage() {} func (x *CMsgDOTADPCMatch) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[15] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1812,7 +2202,7 @@ func (x *CMsgDOTADPCMatch) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgDOTADPCMatch.ProtoReflect.Descriptor instead. func (*CMsgDOTADPCMatch) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{15} + return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{18} } func (x *CMsgDOTADPCMatch) GetMatch() *CMsgDOTAMatch { @@ -1835,8 +2225,8 @@ type CMsgArcanaVotes_Match struct { unknownFields protoimpl.UnknownFields MatchId *uint32 `protobuf:"varint,1,opt,name=match_id,json=matchId" json:"match_id,omitempty"` - HeroId_0 *uint32 `protobuf:"varint,2,opt,name=hero_id_0,json=heroId0" json:"hero_id_0,omitempty"` - HeroId_1 *uint32 `protobuf:"varint,3,opt,name=hero_id_1,json=heroId1" json:"hero_id_1,omitempty"` + HeroId_0 *int32 `protobuf:"varint,2,opt,name=hero_id_0,json=heroId0" json:"hero_id_0,omitempty"` + HeroId_1 *int32 `protobuf:"varint,3,opt,name=hero_id_1,json=heroId1" json:"hero_id_1,omitempty"` HeroSeeding_0 *uint32 `protobuf:"varint,4,opt,name=hero_seeding_0,json=heroSeeding0" json:"hero_seeding_0,omitempty"` HeroSeeding_1 *uint32 `protobuf:"varint,5,opt,name=hero_seeding_1,json=heroSeeding1" json:"hero_seeding_1,omitempty"` VoteCount_0 *uint32 `protobuf:"varint,6,opt,name=vote_count_0,json=voteCount0" json:"vote_count_0,omitempty"` @@ -1850,7 +2240,7 @@ type CMsgArcanaVotes_Match struct { func (x *CMsgArcanaVotes_Match) Reset() { *x = CMsgArcanaVotes_Match{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[16] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1863,7 +2253,7 @@ func (x *CMsgArcanaVotes_Match) String() string { func (*CMsgArcanaVotes_Match) ProtoMessage() {} func (x *CMsgArcanaVotes_Match) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[16] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1886,14 +2276,14 @@ func (x *CMsgArcanaVotes_Match) GetMatchId() uint32 { return 0 } -func (x *CMsgArcanaVotes_Match) GetHeroId_0() uint32 { +func (x *CMsgArcanaVotes_Match) GetHeroId_0() int32 { if x != nil && x.HeroId_0 != nil { return *x.HeroId_0 } return 0 } -func (x *CMsgArcanaVotes_Match) GetHeroId_1() uint32 { +func (x *CMsgArcanaVotes_Match) GetHeroId_1() int32 { if x != nil && x.HeroId_1 != nil { return *x.HeroId_1 } @@ -1979,7 +2369,7 @@ type CMsgDOTADPCFeed_Element struct { func (x *CMsgDOTADPCFeed_Element) Reset() { *x = CMsgDOTADPCFeed_Element{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[17] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1992,7 +2382,7 @@ func (x *CMsgDOTADPCFeed_Element) String() string { func (*CMsgDOTADPCFeed_Element) ProtoMessage() {} func (x *CMsgDOTADPCFeed_Element) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[17] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2104,14 +2494,14 @@ type CMsgDraftTrivia_DraftTriviaHeroInfo struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroId *uint32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` Role *uint32 `protobuf:"varint,2,opt,name=role" json:"role,omitempty"` } func (x *CMsgDraftTrivia_DraftTriviaHeroInfo) Reset() { *x = CMsgDraftTrivia_DraftTriviaHeroInfo{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[18] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2124,7 +2514,7 @@ func (x *CMsgDraftTrivia_DraftTriviaHeroInfo) String() string { func (*CMsgDraftTrivia_DraftTriviaHeroInfo) ProtoMessage() {} func (x *CMsgDraftTrivia_DraftTriviaHeroInfo) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[18] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2140,7 +2530,7 @@ func (*CMsgDraftTrivia_DraftTriviaHeroInfo) Descriptor() ([]byte, []int) { return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{3, 0} } -func (x *CMsgDraftTrivia_DraftTriviaHeroInfo) GetHeroId() uint32 { +func (x *CMsgDraftTrivia_DraftTriviaHeroInfo) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -2166,7 +2556,7 @@ type CMsgDraftTrivia_DraftTriviaMatchInfo struct { func (x *CMsgDraftTrivia_DraftTriviaMatchInfo) Reset() { *x = CMsgDraftTrivia_DraftTriviaMatchInfo{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[19] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2179,7 +2569,7 @@ func (x *CMsgDraftTrivia_DraftTriviaMatchInfo) String() string { func (*CMsgDraftTrivia_DraftTriviaMatchInfo) ProtoMessage() {} func (x *CMsgDraftTrivia_DraftTriviaMatchInfo) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[19] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2225,7 +2615,7 @@ type CMsgDraftTrivia_PreviousResult struct { func (x *CMsgDraftTrivia_PreviousResult) Reset() { *x = CMsgDraftTrivia_PreviousResult{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[20] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2238,7 +2628,7 @@ func (x *CMsgDraftTrivia_PreviousResult) String() string { func (*CMsgDraftTrivia_PreviousResult) ProtoMessage() {} func (x *CMsgDraftTrivia_PreviousResult) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[20] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2324,7 +2714,7 @@ type CMsgTeamFanContentStatus_TeamStatus struct { func (x *CMsgTeamFanContentStatus_TeamStatus) Reset() { *x = CMsgTeamFanContentStatus_TeamStatus{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[21] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2337,7 +2727,7 @@ func (x *CMsgTeamFanContentStatus_TeamStatus) String() string { func (*CMsgTeamFanContentStatus_TeamStatus) ProtoMessage() {} func (x *CMsgTeamFanContentStatus_TeamStatus) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[21] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2493,7 +2883,7 @@ type CMsgTeamFanContentAutographStatus_AutographStatus struct { func (x *CMsgTeamFanContentAutographStatus_AutographStatus) Reset() { *x = CMsgTeamFanContentAutographStatus_AutographStatus{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[22] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2506,7 +2896,7 @@ func (x *CMsgTeamFanContentAutographStatus_AutographStatus) String() string { func (*CMsgTeamFanContentAutographStatus_AutographStatus) ProtoMessage() {} func (x *CMsgTeamFanContentAutographStatus_AutographStatus) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[22] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2564,7 +2954,7 @@ type CMsgTeamFanContentAutographStatus_TeamStatus struct { func (x *CMsgTeamFanContentAutographStatus_TeamStatus) Reset() { *x = CMsgTeamFanContentAutographStatus_TeamStatus{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[23] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2577,7 +2967,7 @@ func (x *CMsgTeamFanContentAutographStatus_TeamStatus) String() string { func (*CMsgTeamFanContentAutographStatus_TeamStatus) ProtoMessage() {} func (x *CMsgTeamFanContentAutographStatus_TeamStatus) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[23] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2621,6 +3011,109 @@ func (x *CMsgTeamFanContentAutographStatus_TeamStatus) GetWorkshopAccountId() ui return 0 } +type CMsgTalentContentStatus_TalentDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AccountId *uint32 `protobuf:"varint,1,opt,name=account_id,json=accountId" json:"account_id,omitempty"` + FullName *string `protobuf:"bytes,2,opt,name=full_name,json=fullName" json:"full_name,omitempty"` + Nickname *string `protobuf:"bytes,3,opt,name=nickname" json:"nickname,omitempty"` + WorkshopItemId *uint32 `protobuf:"varint,4,opt,name=workshop_item_id,json=workshopItemId" json:"workshop_item_id,omitempty"` + ZipFile *string `protobuf:"bytes,5,opt,name=zip_file,json=zipFile" json:"zip_file,omitempty"` + Status *ETalentContentStatus `protobuf:"varint,6,opt,name=status,enum=dota.ETalentContentStatus" json:"status,omitempty"` + AssetStatus []*CMsgTalentContentAssetStatus `protobuf:"bytes,7,rep,name=asset_status,json=assetStatus" json:"asset_status,omitempty"` + BroadcastLanguage *uint32 `protobuf:"varint,8,opt,name=broadcast_language,json=broadcastLanguage" json:"broadcast_language,omitempty"` +} + +func (x *CMsgTalentContentStatus_TalentDetails) Reset() { + *x = CMsgTalentContentStatus_TalentDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_dota_gcmessages_webapi_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTalentContentStatus_TalentDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTalentContentStatus_TalentDetails) ProtoMessage() {} + +func (x *CMsgTalentContentStatus_TalentDetails) ProtoReflect() protoreflect.Message { + mi := &file_dota_gcmessages_webapi_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 CMsgTalentContentStatus_TalentDetails.ProtoReflect.Descriptor instead. +func (*CMsgTalentContentStatus_TalentDetails) Descriptor() ([]byte, []int) { + return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{9, 0} +} + +func (x *CMsgTalentContentStatus_TalentDetails) GetAccountId() uint32 { + if x != nil && x.AccountId != nil { + return *x.AccountId + } + return 0 +} + +func (x *CMsgTalentContentStatus_TalentDetails) GetFullName() string { + if x != nil && x.FullName != nil { + return *x.FullName + } + return "" +} + +func (x *CMsgTalentContentStatus_TalentDetails) GetNickname() string { + if x != nil && x.Nickname != nil { + return *x.Nickname + } + return "" +} + +func (x *CMsgTalentContentStatus_TalentDetails) GetWorkshopItemId() uint32 { + if x != nil && x.WorkshopItemId != nil { + return *x.WorkshopItemId + } + return 0 +} + +func (x *CMsgTalentContentStatus_TalentDetails) GetZipFile() string { + if x != nil && x.ZipFile != nil { + return *x.ZipFile + } + return "" +} + +func (x *CMsgTalentContentStatus_TalentDetails) GetStatus() ETalentContentStatus { + if x != nil && x.Status != nil { + return *x.Status + } + return ETalentContentStatus_TALENT_CONTENT_STATUS_INVALID +} + +func (x *CMsgTalentContentStatus_TalentDetails) GetAssetStatus() []*CMsgTalentContentAssetStatus { + if x != nil { + return x.AssetStatus + } + return nil +} + +func (x *CMsgTalentContentStatus_TalentDetails) GetBroadcastLanguage() uint32 { + if x != nil && x.BroadcastLanguage != nil { + return *x.BroadcastLanguage + } + return 0 +} + type CMsgDPCEvent_PhaseInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2633,7 +3126,7 @@ type CMsgDPCEvent_PhaseInfo struct { func (x *CMsgDPCEvent_PhaseInfo) Reset() { *x = CMsgDPCEvent_PhaseInfo{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[24] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2646,7 +3139,7 @@ func (x *CMsgDPCEvent_PhaseInfo) String() string { func (*CMsgDPCEvent_PhaseInfo) ProtoMessage() {} func (x *CMsgDPCEvent_PhaseInfo) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[24] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2659,7 +3152,7 @@ func (x *CMsgDPCEvent_PhaseInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgDPCEvent_PhaseInfo.ProtoReflect.Descriptor instead. func (*CMsgDPCEvent_PhaseInfo) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{8, 0} + return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{11, 0} } func (x *CMsgDPCEvent_PhaseInfo) GetPhase() CMsgDPCEvent_ELeagueEventPhase { @@ -2690,7 +3183,7 @@ type CMsgDPCEvent_League struct { func (x *CMsgDPCEvent_League) Reset() { *x = CMsgDPCEvent_League{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[25] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2703,7 +3196,7 @@ func (x *CMsgDPCEvent_League) String() string { func (*CMsgDPCEvent_League) ProtoMessage() {} func (x *CMsgDPCEvent_League) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[25] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2716,7 +3209,7 @@ func (x *CMsgDPCEvent_League) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgDPCEvent_League.ProtoReflect.Descriptor instead. func (*CMsgDPCEvent_League) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{8, 1} + return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{11, 1} } func (x *CMsgDPCEvent_League) GetRegion() ELeagueRegion { @@ -2759,7 +3252,7 @@ type CMsgDOTAFantasyCardLineup_CardBonus struct { func (x *CMsgDOTAFantasyCardLineup_CardBonus) Reset() { *x = CMsgDOTAFantasyCardLineup_CardBonus{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[26] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2772,7 +3265,7 @@ func (x *CMsgDOTAFantasyCardLineup_CardBonus) String() string { func (*CMsgDOTAFantasyCardLineup_CardBonus) ProtoMessage() {} func (x *CMsgDOTAFantasyCardLineup_CardBonus) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[26] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2785,7 +3278,7 @@ func (x *CMsgDOTAFantasyCardLineup_CardBonus) ProtoReflect() protoreflect.Messag // Deprecated: Use CMsgDOTAFantasyCardLineup_CardBonus.ProtoReflect.Descriptor instead. func (*CMsgDOTAFantasyCardLineup_CardBonus) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{10, 0} + return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{13, 0} } func (x *CMsgDOTAFantasyCardLineup_CardBonus) GetBonusStat() uint32 { @@ -2821,7 +3314,7 @@ type CMsgDOTAFantasyCardLineup_Card struct { func (x *CMsgDOTAFantasyCardLineup_Card) Reset() { *x = CMsgDOTAFantasyCardLineup_Card{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[27] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2834,7 +3327,7 @@ func (x *CMsgDOTAFantasyCardLineup_Card) String() string { func (*CMsgDOTAFantasyCardLineup_Card) ProtoMessage() {} func (x *CMsgDOTAFantasyCardLineup_Card) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[27] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2847,7 +3340,7 @@ func (x *CMsgDOTAFantasyCardLineup_Card) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgDOTAFantasyCardLineup_Card.ProtoReflect.Descriptor instead. func (*CMsgDOTAFantasyCardLineup_Card) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{10, 1} + return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{13, 1} } func (x *CMsgDOTAFantasyCardLineup_Card) GetPlayerAccountId() uint32 { @@ -2926,7 +3419,7 @@ type CMsgDOTAFantasyCardLineup_League struct { func (x *CMsgDOTAFantasyCardLineup_League) Reset() { *x = CMsgDOTAFantasyCardLineup_League{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[28] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2939,7 +3432,7 @@ func (x *CMsgDOTAFantasyCardLineup_League) String() string { func (*CMsgDOTAFantasyCardLineup_League) ProtoMessage() {} func (x *CMsgDOTAFantasyCardLineup_League) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[28] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2952,7 +3445,7 @@ func (x *CMsgDOTAFantasyCardLineup_League) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgDOTAFantasyCardLineup_League.ProtoReflect.Descriptor instead. func (*CMsgDOTAFantasyCardLineup_League) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{10, 2} + return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{13, 2} } func (x *CMsgDOTAFantasyCardLineup_League) GetLeagueId() uint32 { @@ -2990,7 +3483,7 @@ type CMsgDOTAFantasyCardLineup_Period struct { func (x *CMsgDOTAFantasyCardLineup_Period) Reset() { *x = CMsgDOTAFantasyCardLineup_Period{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[29] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3003,7 +3496,7 @@ func (x *CMsgDOTAFantasyCardLineup_Period) String() string { func (*CMsgDOTAFantasyCardLineup_Period) ProtoMessage() {} func (x *CMsgDOTAFantasyCardLineup_Period) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[29] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3016,7 +3509,7 @@ func (x *CMsgDOTAFantasyCardLineup_Period) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgDOTAFantasyCardLineup_Period.ProtoReflect.Descriptor instead. func (*CMsgDOTAFantasyCardLineup_Period) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{10, 3} + return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{13, 3} } func (x *CMsgDOTAFantasyCardLineup_Period) GetFantasyPeriod() uint32 { @@ -3059,7 +3552,7 @@ type CMsgDOTAFantasyCardList_CardBonus struct { func (x *CMsgDOTAFantasyCardList_CardBonus) Reset() { *x = CMsgDOTAFantasyCardList_CardBonus{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[30] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3072,7 +3565,7 @@ func (x *CMsgDOTAFantasyCardList_CardBonus) String() string { func (*CMsgDOTAFantasyCardList_CardBonus) ProtoMessage() {} func (x *CMsgDOTAFantasyCardList_CardBonus) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[30] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3085,7 +3578,7 @@ func (x *CMsgDOTAFantasyCardList_CardBonus) ProtoReflect() protoreflect.Message // Deprecated: Use CMsgDOTAFantasyCardList_CardBonus.ProtoReflect.Descriptor instead. func (*CMsgDOTAFantasyCardList_CardBonus) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{11, 0} + return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{14, 0} } func (x *CMsgDOTAFantasyCardList_CardBonus) GetBonusStat() uint32 { @@ -3119,7 +3612,7 @@ type CMsgDOTAFantasyCardList_Card struct { func (x *CMsgDOTAFantasyCardList_Card) Reset() { *x = CMsgDOTAFantasyCardList_Card{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[31] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3132,7 +3625,7 @@ func (x *CMsgDOTAFantasyCardList_Card) String() string { func (*CMsgDOTAFantasyCardList_Card) ProtoMessage() {} func (x *CMsgDOTAFantasyCardList_Card) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[31] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3145,7 +3638,7 @@ func (x *CMsgDOTAFantasyCardList_Card) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgDOTAFantasyCardList_Card.ProtoReflect.Descriptor instead. func (*CMsgDOTAFantasyCardList_Card) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{11, 1} + return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{14, 1} } func (x *CMsgDOTAFantasyCardList_Card) GetPlayerAccountId() uint32 { @@ -3213,7 +3706,7 @@ type CMsgChatToxicityToxicPlayerMatchesReport_IndividualRow struct { func (x *CMsgChatToxicityToxicPlayerMatchesReport_IndividualRow) Reset() { *x = CMsgChatToxicityToxicPlayerMatchesReport_IndividualRow{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[32] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3226,7 +3719,7 @@ func (x *CMsgChatToxicityToxicPlayerMatchesReport_IndividualRow) String() string func (*CMsgChatToxicityToxicPlayerMatchesReport_IndividualRow) ProtoMessage() {} func (x *CMsgChatToxicityToxicPlayerMatchesReport_IndividualRow) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[32] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3239,7 +3732,7 @@ func (x *CMsgChatToxicityToxicPlayerMatchesReport_IndividualRow) ProtoReflect() // Deprecated: Use CMsgChatToxicityToxicPlayerMatchesReport_IndividualRow.ProtoReflect.Descriptor instead. func (*CMsgChatToxicityToxicPlayerMatchesReport_IndividualRow) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{12, 0} + return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{15, 0} } func (x *CMsgChatToxicityToxicPlayerMatchesReport_IndividualRow) GetPlayerAccountId() uint32 { @@ -3300,7 +3793,7 @@ type CMsgGetTeamAuditInformation_Action struct { func (x *CMsgGetTeamAuditInformation_Action) Reset() { *x = CMsgGetTeamAuditInformation_Action{} if protoimpl.UnsafeEnabled { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[33] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3313,7 +3806,7 @@ func (x *CMsgGetTeamAuditInformation_Action) String() string { func (*CMsgGetTeamAuditInformation_Action) ProtoMessage() {} func (x *CMsgGetTeamAuditInformation_Action) ProtoReflect() protoreflect.Message { - mi := &file_dota_gcmessages_webapi_proto_msgTypes[33] + mi := &file_dota_gcmessages_webapi_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3326,7 +3819,7 @@ func (x *CMsgGetTeamAuditInformation_Action) ProtoReflect() protoreflect.Message // Deprecated: Use CMsgGetTeamAuditInformation_Action.ProtoReflect.Descriptor instead. func (*CMsgGetTeamAuditInformation_Action) Descriptor() ([]byte, []int) { - return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{14, 0} + return file_dota_gcmessages_webapi_proto_rawDescGZIP(), []int{17, 0} } func (x *CMsgGetTeamAuditInformation_Action) GetRegistrationPeriod() uint32 { @@ -3411,9 +3904,9 @@ var file_dota_gcmessages_webapi_proto_rawDesc = []byte{ 0x74, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x96, 0x03, 0x0a, 0x05, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x09, 0x68, 0x65, - 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x5f, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x68, + 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x5f, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x30, 0x12, 0x1a, 0x0a, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, - 0x64, 0x5f, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x49, + 0x64, 0x5f, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x31, 0x12, 0x24, 0x0a, 0x0e, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x30, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x68, 0x65, 0x72, 0x6f, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x30, 0x12, 0x24, 0x0a, 0x0e, 0x68, 0x65, 0x72, 0x6f, @@ -3525,7 +4018,7 @@ var file_dota_gcmessages_webapi_proto_rawDesc = []byte{ 0x0d, 0x52, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6b, 0x1a, 0x42, 0x0a, 0x13, 0x44, 0x72, 0x61, 0x66, 0x74, 0x54, 0x72, 0x69, 0x76, 0x69, 0x61, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x1a, 0xb4, 0x01, 0x0a, 0x14, 0x44, 0x72, 0x61, 0x66, 0x74, 0x54, 0x72, 0x69, 0x76, 0x69, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x50, 0x0a, @@ -3658,331 +4151,409 @@ var file_dota_gcmessages_webapi_proto_rawDesc = []byte{ 0x12, 0x2e, 0x0a, 0x13, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x68, 0x6f, 0x70, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, - 0x22, 0x9c, 0x10, 0x0a, 0x0c, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x50, 0x43, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x12, 0x35, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x1f, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x50, 0x43, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x45, 0x4c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x64, - 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x50, 0x43, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x2e, 0x45, 0x4c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x33, 0x0a, 0x07, - 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x22, 0xc1, 0x01, 0x0a, 0x1c, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x3c, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x45, 0x54, 0x61, + 0x6c, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1f, 0x0a, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x42, 0x0a, 0x0c, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x45, 0x54, + 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x22, 0xc4, 0x03, 0x0a, 0x17, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x61, 0x6c, + 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x50, 0x0a, 0x0d, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, + 0x4d, 0x73, 0x67, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0c, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x1a, 0xd6, 0x02, 0x0a, 0x0d, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, + 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x68, 0x6f, 0x70, + 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x7a, 0x69, 0x70, 0x5f, 0x66, 0x69, + 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x7a, 0x69, 0x70, 0x46, 0x69, 0x6c, + 0x65, 0x12, 0x32, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1a, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x45, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x45, 0x0a, 0x0c, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x64, 0x6f, + 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2d, 0x0a, 0x12, + 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, + 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, + 0x61, 0x73, 0x74, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x1c, + 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x06, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x64, + 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6c, 0x65, 0x6e, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x45, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x22, 0x2f, 0x0a, 0x07, 0x45, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, + 0x5f, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x6b, + 0x5f, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, + 0x01, 0x22, 0x9c, 0x10, 0x0a, 0x0c, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x50, 0x43, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x12, 0x35, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1f, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x50, 0x43, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x45, 0x4c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x0a, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x50, 0x43, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x2e, 0x4c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x52, 0x07, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, - 0x73, 0x12, 0x2f, 0x0a, 0x13, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x69, - 0x6f, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x75, - 0x70, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, - 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x55, 0x70, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x2c, - 0x0a, 0x12, 0x69, 0x73, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, - 0x61, 0x73, 0x74, 0x4c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, - 0x18, 0x09, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x10, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x2c, 0x0a, 0x04, 0x74, 0x6f, 0x75, 0x72, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, - 0x73, 0x67, 0x44, 0x50, 0x43, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x45, 0x54, 0x6f, 0x75, 0x72, - 0x52, 0x04, 0x74, 0x6f, 0x75, 0x72, 0x12, 0x2e, 0x0a, 0x13, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x44, 0x72, - 0x6f, 0x70, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x2c, 0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x10, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x41, 0x64, 0x64, - 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x3c, 0x0a, 0x1a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x61, 0x64, 0x6c, 0x69, - 0x6e, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, - 0x6e, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x73, 0x5f, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, - 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, - 0x69, 0x73, 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x12, 0x49, 0x0a, 0x21, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x63, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x64, 0x65, 0x61, - 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1e, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x76, - 0x69, 0x65, 0x77, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x1a, 0x6b, 0x0a, 0x09, 0x50, - 0x68, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3a, 0x0a, 0x05, 0x70, 0x68, 0x61, 0x73, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, - 0x4d, 0x73, 0x67, 0x44, 0x50, 0x43, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x45, 0x4c, 0x65, 0x61, - 0x67, 0x75, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x68, 0x61, 0x73, 0x65, 0x52, 0x05, 0x70, - 0x68, 0x61, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6e, 0x6f, 0x64, - 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x1a, 0xbb, 0x01, 0x0a, 0x06, 0x4c, 0x65, 0x61, - 0x67, 0x75, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x45, 0x4c, 0x65, 0x61, 0x67, - 0x75, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, - 0x12, 0x31, 0x0a, 0x08, 0x64, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x45, 0x4c, 0x65, 0x61, 0x67, 0x75, - 0x65, 0x44, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x69, 0x76, 0x69, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x49, 0x64, - 0x12, 0x34, 0x0a, 0x06, 0x70, 0x68, 0x61, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x50, 0x43, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x68, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, - 0x70, 0x68, 0x61, 0x73, 0x65, 0x73, 0x22, 0xd3, 0x04, 0x0a, 0x0c, 0x45, 0x4c, 0x65, 0x61, 0x67, - 0x75, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x11, 0x0a, 0x0d, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x50, - 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x32, 0x30, 0x32, 0x31, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, - 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x50, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x32, 0x30, 0x32, - 0x31, 0x5f, 0x4d, 0x41, 0x4a, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x54, - 0x45, 0x52, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x5f, 0x32, 0x30, 0x32, 0x31, 0x5f, - 0x51, 0x55, 0x41, 0x4c, 0x49, 0x46, 0x49, 0x45, 0x52, 0x53, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, - 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x5f, 0x32, 0x30, - 0x32, 0x31, 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, 0x57, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x32, - 0x30, 0x32, 0x31, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x10, 0x05, 0x12, 0x1d, 0x0a, 0x19, - 0x57, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x32, 0x30, 0x32, 0x31, 0x5f, 0x4c, 0x45, 0x41, 0x47, - 0x55, 0x45, 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x53, 0x10, 0x06, 0x12, 0x16, 0x0a, 0x12, 0x53, - 0x50, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x32, 0x30, 0x32, 0x32, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, - 0x45, 0x10, 0x07, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x50, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x32, 0x30, - 0x32, 0x32, 0x5f, 0x4d, 0x41, 0x4a, 0x4f, 0x52, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x55, - 0x4d, 0x4d, 0x45, 0x52, 0x5f, 0x32, 0x30, 0x32, 0x32, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, - 0x10, 0x09, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x55, 0x4d, 0x4d, 0x45, 0x52, 0x5f, 0x32, 0x30, 0x32, - 0x32, 0x5f, 0x4d, 0x41, 0x4a, 0x4f, 0x52, 0x10, 0x0a, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x4e, 0x54, - 0x45, 0x52, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x5f, 0x32, 0x30, 0x32, 0x32, 0x10, - 0x0b, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x48, 0x49, 0x4e, 0x41, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x4f, - 0x4e, 0x41, 0x4c, 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x53, 0x10, 0x0c, 0x12, 0x2a, 0x0a, 0x26, - 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x5f, 0x32, 0x30, - 0x32, 0x32, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x5f, 0x51, 0x55, 0x41, 0x4c, - 0x49, 0x46, 0x49, 0x45, 0x52, 0x53, 0x10, 0x0d, 0x12, 0x2d, 0x0a, 0x29, 0x49, 0x4e, 0x54, 0x45, - 0x52, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x5f, 0x32, 0x30, 0x32, 0x32, 0x5f, 0x4c, - 0x41, 0x53, 0x54, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x51, 0x55, 0x41, 0x4c, 0x49, - 0x46, 0x49, 0x45, 0x52, 0x53, 0x10, 0x0e, 0x12, 0x16, 0x0a, 0x12, 0x57, 0x49, 0x4e, 0x54, 0x45, - 0x52, 0x5f, 0x32, 0x30, 0x32, 0x33, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x10, 0x0f, 0x12, - 0x15, 0x0a, 0x11, 0x57, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x32, 0x30, 0x32, 0x33, 0x5f, 0x4d, - 0x41, 0x4a, 0x4f, 0x52, 0x10, 0x10, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x50, 0x52, 0x49, 0x4e, 0x47, - 0x5f, 0x32, 0x30, 0x32, 0x33, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x10, 0x11, 0x12, 0x15, - 0x0a, 0x11, 0x53, 0x50, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x32, 0x30, 0x32, 0x33, 0x5f, 0x4d, 0x41, - 0x4a, 0x4f, 0x52, 0x10, 0x12, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x55, 0x4d, 0x4d, 0x45, 0x52, 0x5f, - 0x32, 0x30, 0x32, 0x33, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x10, 0x13, 0x12, 0x15, 0x0a, - 0x11, 0x53, 0x55, 0x4d, 0x4d, 0x45, 0x52, 0x5f, 0x32, 0x30, 0x32, 0x33, 0x5f, 0x4d, 0x41, 0x4a, - 0x4f, 0x52, 0x10, 0x14, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x54, - 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x5f, 0x32, 0x30, 0x32, 0x33, 0x10, 0x15, 0x22, 0xc9, 0x01, 0x0a, - 0x11, 0x45, 0x4c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x68, 0x61, - 0x73, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x49, 0x4e, 0x56, 0x41, - 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x57, 0x49, 0x4c, 0x44, 0x5f, 0x43, 0x41, - 0x52, 0x44, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, 0x54, - 0x41, 0x47, 0x45, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, - 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x10, 0x04, 0x12, - 0x0b, 0x0a, 0x07, 0x4f, 0x56, 0x45, 0x52, 0x41, 0x4c, 0x4c, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, - 0x50, 0x4c, 0x41, 0x59, 0x4f, 0x46, 0x46, 0x10, 0x06, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x45, 0x53, - 0x55, 0x4c, 0x54, 0x53, 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x50, 0x43, 0x5f, 0x50, 0x4f, - 0x49, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x53, 0x10, 0x08, 0x12, - 0x0b, 0x0a, 0x07, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x43, 0x10, 0x09, 0x12, 0x0b, 0x0a, 0x07, - 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x44, 0x10, 0x0a, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x4c, 0x41, - 0x43, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x0b, 0x22, 0x88, 0x01, 0x0a, 0x10, 0x45, 0x4c, 0x65, - 0x61, 0x67, 0x75, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, - 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x45, - 0x41, 0x47, 0x55, 0x45, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x41, 0x4a, 0x4f, 0x52, 0x10, - 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, - 0x41, 0x4c, 0x5f, 0x51, 0x55, 0x41, 0x4c, 0x49, 0x46, 0x49, 0x45, 0x52, 0x53, 0x10, 0x03, 0x12, - 0x11, 0x0a, 0x0d, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, - 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x46, 0x49, 0x4e, - 0x41, 0x4c, 0x53, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, - 0x4c, 0x10, 0x06, 0x22, 0x3a, 0x0a, 0x05, 0x45, 0x54, 0x6f, 0x75, 0x72, 0x12, 0x0d, 0x0a, 0x09, - 0x54, 0x4f, 0x55, 0x52, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x54, - 0x4f, 0x55, 0x52, 0x5f, 0x31, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x4f, 0x55, 0x52, 0x5f, - 0x32, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x4f, 0x55, 0x52, 0x5f, 0x33, 0x10, 0x03, 0x22, - 0x3e, 0x0a, 0x10, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x50, 0x43, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, - 0x69, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, - 0x50, 0x43, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, - 0x97, 0x06, 0x0a, 0x19, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, 0x41, 0x46, 0x61, 0x6e, 0x74, - 0x61, 0x73, 0x79, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x6e, 0x65, 0x75, 0x70, 0x12, 0x40, 0x0a, - 0x07, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, + 0x74, 0x2e, 0x45, 0x4c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x33, 0x0a, + 0x07, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x50, 0x43, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x2e, 0x4c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x52, 0x07, 0x6c, 0x65, 0x61, 0x67, 0x75, + 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x13, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x12, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, + 0x69, 0x6f, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, + 0x75, 0x70, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, + 0x69, 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x55, 0x70, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x12, + 0x2c, 0x0a, 0x12, 0x69, 0x73, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x1d, 0x0a, + 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x13, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x4c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x11, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x10, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, + 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x2c, 0x0a, 0x04, 0x74, 0x6f, 0x75, + 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, + 0x4d, 0x73, 0x67, 0x44, 0x50, 0x43, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x45, 0x54, 0x6f, 0x75, + 0x72, 0x52, 0x04, 0x74, 0x6f, 0x75, 0x72, 0x12, 0x2e, 0x0a, 0x13, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x44, + 0x72, 0x6f, 0x70, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x2c, 0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x10, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x41, 0x64, + 0x64, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x3c, 0x0a, 0x1a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x61, 0x64, 0x6c, + 0x69, 0x6e, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x61, 0x64, 0x6c, + 0x69, 0x6e, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x73, 0x5f, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, + 0x79, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x10, 0x69, 0x73, 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x12, 0x49, 0x0a, 0x21, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x64, 0x65, + 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1e, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x76, 0x69, 0x65, 0x77, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x1a, 0x6b, 0x0a, 0x09, + 0x50, 0x68, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3a, 0x0a, 0x05, 0x70, 0x68, 0x61, + 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, + 0x43, 0x4d, 0x73, 0x67, 0x44, 0x50, 0x43, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x45, 0x4c, 0x65, + 0x61, 0x67, 0x75, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x68, 0x61, 0x73, 0x65, 0x52, 0x05, + 0x70, 0x68, 0x61, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6e, 0x6f, + 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x1a, 0xbb, 0x01, 0x0a, 0x06, 0x4c, 0x65, + 0x61, 0x67, 0x75, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x45, 0x4c, 0x65, 0x61, + 0x67, 0x75, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, + 0x6e, 0x12, 0x31, 0x0a, 0x08, 0x64, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x45, 0x4c, 0x65, 0x61, 0x67, + 0x75, 0x65, 0x44, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x69, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x49, + 0x64, 0x12, 0x34, 0x0a, 0x06, 0x70, 0x68, 0x61, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x50, 0x43, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x68, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x06, 0x70, 0x68, 0x61, 0x73, 0x65, 0x73, 0x22, 0xd3, 0x04, 0x0a, 0x0c, 0x45, 0x4c, 0x65, 0x61, + 0x67, 0x75, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x11, 0x0a, 0x0d, 0x45, 0x56, 0x45, 0x4e, + 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x53, + 0x50, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x32, 0x30, 0x32, 0x31, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, + 0x45, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x50, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x32, 0x30, + 0x32, 0x31, 0x5f, 0x4d, 0x41, 0x4a, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, + 0x54, 0x45, 0x52, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x5f, 0x32, 0x30, 0x32, 0x31, + 0x5f, 0x51, 0x55, 0x41, 0x4c, 0x49, 0x46, 0x49, 0x45, 0x52, 0x53, 0x10, 0x03, 0x12, 0x16, 0x0a, + 0x12, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x5f, 0x32, + 0x30, 0x32, 0x31, 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, 0x57, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x5f, + 0x32, 0x30, 0x32, 0x31, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x10, 0x05, 0x12, 0x1d, 0x0a, + 0x19, 0x57, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x32, 0x30, 0x32, 0x31, 0x5f, 0x4c, 0x45, 0x41, + 0x47, 0x55, 0x45, 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x53, 0x10, 0x06, 0x12, 0x16, 0x0a, 0x12, + 0x53, 0x50, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x32, 0x30, 0x32, 0x32, 0x5f, 0x4c, 0x45, 0x41, 0x47, + 0x55, 0x45, 0x10, 0x07, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x50, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x32, + 0x30, 0x32, 0x32, 0x5f, 0x4d, 0x41, 0x4a, 0x4f, 0x52, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x53, + 0x55, 0x4d, 0x4d, 0x45, 0x52, 0x5f, 0x32, 0x30, 0x32, 0x32, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, + 0x45, 0x10, 0x09, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x55, 0x4d, 0x4d, 0x45, 0x52, 0x5f, 0x32, 0x30, + 0x32, 0x32, 0x5f, 0x4d, 0x41, 0x4a, 0x4f, 0x52, 0x10, 0x0a, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x4e, + 0x54, 0x45, 0x52, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x5f, 0x32, 0x30, 0x32, 0x32, + 0x10, 0x0b, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x48, 0x49, 0x4e, 0x41, 0x5f, 0x52, 0x45, 0x47, 0x49, + 0x4f, 0x4e, 0x41, 0x4c, 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x53, 0x10, 0x0c, 0x12, 0x2a, 0x0a, + 0x26, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x5f, 0x32, + 0x30, 0x32, 0x32, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x5f, 0x51, 0x55, 0x41, + 0x4c, 0x49, 0x46, 0x49, 0x45, 0x52, 0x53, 0x10, 0x0d, 0x12, 0x2d, 0x0a, 0x29, 0x49, 0x4e, 0x54, + 0x45, 0x52, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x5f, 0x32, 0x30, 0x32, 0x32, 0x5f, + 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x51, 0x55, 0x41, 0x4c, + 0x49, 0x46, 0x49, 0x45, 0x52, 0x53, 0x10, 0x0e, 0x12, 0x16, 0x0a, 0x12, 0x57, 0x49, 0x4e, 0x54, + 0x45, 0x52, 0x5f, 0x32, 0x30, 0x32, 0x33, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x10, 0x0f, + 0x12, 0x15, 0x0a, 0x11, 0x57, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x32, 0x30, 0x32, 0x33, 0x5f, + 0x4d, 0x41, 0x4a, 0x4f, 0x52, 0x10, 0x10, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x50, 0x52, 0x49, 0x4e, + 0x47, 0x5f, 0x32, 0x30, 0x32, 0x33, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x10, 0x11, 0x12, + 0x15, 0x0a, 0x11, 0x53, 0x50, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x32, 0x30, 0x32, 0x33, 0x5f, 0x4d, + 0x41, 0x4a, 0x4f, 0x52, 0x10, 0x12, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x55, 0x4d, 0x4d, 0x45, 0x52, + 0x5f, 0x32, 0x30, 0x32, 0x33, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x10, 0x13, 0x12, 0x15, + 0x0a, 0x11, 0x53, 0x55, 0x4d, 0x4d, 0x45, 0x52, 0x5f, 0x32, 0x30, 0x32, 0x33, 0x5f, 0x4d, 0x41, + 0x4a, 0x4f, 0x52, 0x10, 0x14, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x5f, 0x32, 0x30, 0x32, 0x33, 0x10, 0x15, 0x22, 0xc9, 0x01, + 0x0a, 0x11, 0x45, 0x4c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x68, + 0x61, 0x73, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x49, 0x4e, 0x56, + 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x57, 0x49, 0x4c, 0x44, 0x5f, 0x43, + 0x41, 0x52, 0x44, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, + 0x54, 0x41, 0x47, 0x45, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, + 0x41, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x10, 0x04, + 0x12, 0x0b, 0x0a, 0x07, 0x4f, 0x56, 0x45, 0x52, 0x41, 0x4c, 0x4c, 0x10, 0x05, 0x12, 0x0b, 0x0a, + 0x07, 0x50, 0x4c, 0x41, 0x59, 0x4f, 0x46, 0x46, 0x10, 0x06, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x45, + 0x53, 0x55, 0x4c, 0x54, 0x53, 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x50, 0x43, 0x5f, 0x50, + 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x53, 0x10, 0x08, + 0x12, 0x0b, 0x0a, 0x07, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x43, 0x10, 0x09, 0x12, 0x0b, 0x0a, + 0x07, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x44, 0x10, 0x0a, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x4c, + 0x41, 0x43, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x0b, 0x22, 0x88, 0x01, 0x0a, 0x10, 0x45, 0x4c, + 0x65, 0x61, 0x67, 0x75, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, + 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4c, + 0x45, 0x41, 0x47, 0x55, 0x45, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x41, 0x4a, 0x4f, 0x52, + 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x41, 0x4c, 0x5f, 0x51, 0x55, 0x41, 0x4c, 0x49, 0x46, 0x49, 0x45, 0x52, 0x53, 0x10, 0x03, + 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x41, + 0x4c, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x46, 0x49, + 0x4e, 0x41, 0x4c, 0x53, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, + 0x41, 0x4c, 0x10, 0x06, 0x22, 0x3a, 0x0a, 0x05, 0x45, 0x54, 0x6f, 0x75, 0x72, 0x12, 0x0d, 0x0a, + 0x09, 0x54, 0x4f, 0x55, 0x52, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, + 0x54, 0x4f, 0x55, 0x52, 0x5f, 0x31, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x4f, 0x55, 0x52, + 0x5f, 0x32, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x4f, 0x55, 0x52, 0x5f, 0x33, 0x10, 0x03, + 0x22, 0x3e, 0x0a, 0x10, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x50, 0x43, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, + 0x44, 0x50, 0x43, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x22, 0x97, 0x06, 0x0a, 0x19, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, 0x41, 0x46, 0x61, 0x6e, + 0x74, 0x61, 0x73, 0x79, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x6e, 0x65, 0x75, 0x70, 0x12, 0x40, + 0x0a, 0x07, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x26, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, 0x41, 0x46, + 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x6e, 0x65, 0x75, 0x70, + 0x2e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x52, 0x07, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x73, + 0x1a, 0x4b, 0x0a, 0x09, 0x43, 0x61, 0x72, 0x64, 0x42, 0x6f, 0x6e, 0x75, 0x73, 0x12, 0x1d, 0x0a, + 0x0a, 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x09, 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x53, 0x74, 0x61, 0x74, 0x12, 0x1f, 0x0a, 0x0b, + 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0a, 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xaf, 0x02, + 0x0a, 0x04, 0x43, 0x61, 0x72, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, + 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x74, 0x65, 0x61, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x43, 0x0a, + 0x07, 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, 0x41, 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x6e, 0x65, 0x75, 0x70, 0x2e, - 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x52, 0x07, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x73, 0x1a, - 0x4b, 0x0a, 0x09, 0x43, 0x61, 0x72, 0x64, 0x42, 0x6f, 0x6e, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, - 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x09, 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x53, 0x74, 0x61, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, - 0x6f, 0x6e, 0x75, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0a, 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xaf, 0x02, 0x0a, - 0x04, 0x43, 0x61, 0x72, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, - 0x65, 0x61, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x74, 0x65, 0x61, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x43, 0x0a, 0x07, - 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, - 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, 0x41, 0x46, 0x61, 0x6e, - 0x74, 0x61, 0x73, 0x79, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x6e, 0x65, 0x75, 0x70, 0x2e, 0x43, - 0x61, 0x72, 0x64, 0x42, 0x6f, 0x6e, 0x75, 0x73, 0x52, 0x07, 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x65, - 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x6e, 0x61, 0x6c, - 0x69, 0x7a, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x6e, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x1a, 0x77, - 0x0a, 0x06, 0x4c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x61, 0x67, - 0x75, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x65, 0x61, - 0x67, 0x75, 0x65, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x05, 0x63, 0x61, 0x72, 0x64, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, - 0x44, 0x4f, 0x54, 0x41, 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x43, 0x61, 0x72, 0x64, 0x4c, - 0x69, 0x6e, 0x65, 0x75, 0x70, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x52, 0x05, 0x63, 0x61, 0x72, 0x64, - 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x1a, 0xbf, 0x01, 0x0a, 0x06, 0x50, 0x65, 0x72, 0x69, - 0x6f, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x5f, 0x70, 0x65, - 0x72, 0x69, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x66, 0x61, 0x6e, 0x74, - 0x61, 0x73, 0x79, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, - 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x45, 0x6e, 0x64, 0x12, 0x40, 0x0a, 0x07, 0x6c, 0x65, 0x61, 0x67, 0x75, - 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, - 0x43, 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, 0x41, 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x43, - 0x61, 0x72, 0x64, 0x4c, 0x69, 0x6e, 0x65, 0x75, 0x70, 0x2e, 0x4c, 0x65, 0x61, 0x67, 0x75, 0x65, - 0x52, 0x07, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x73, 0x22, 0x9c, 0x03, 0x0a, 0x17, 0x43, 0x4d, - 0x73, 0x67, 0x44, 0x4f, 0x54, 0x41, 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x43, 0x61, 0x72, - 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x05, 0x63, 0x61, 0x72, 0x64, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, - 0x44, 0x4f, 0x54, 0x41, 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x43, 0x61, 0x72, 0x64, 0x4c, - 0x69, 0x73, 0x74, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x52, 0x05, 0x63, 0x61, 0x72, 0x64, 0x73, 0x1a, - 0x4b, 0x0a, 0x09, 0x43, 0x61, 0x72, 0x64, 0x42, 0x6f, 0x6e, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, - 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x09, 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x53, 0x74, 0x61, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, - 0x6f, 0x6e, 0x75, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0a, 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xf9, 0x01, 0x0a, - 0x04, 0x43, 0x61, 0x72, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, - 0x65, 0x61, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x74, 0x65, 0x61, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x41, 0x0a, 0x07, - 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, - 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, 0x41, 0x46, 0x61, 0x6e, - 0x74, 0x61, 0x73, 0x79, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x43, 0x61, 0x72, - 0x64, 0x42, 0x6f, 0x6e, 0x75, 0x73, 0x52, 0x07, 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x65, 0x73, 0x12, - 0x17, 0x0a, 0x07, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x22, 0x87, 0x03, 0x0a, 0x28, 0x43, 0x4d, 0x73, - 0x67, 0x43, 0x68, 0x61, 0x74, 0x54, 0x6f, 0x78, 0x69, 0x63, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x78, - 0x69, 0x63, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x50, 0x0a, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x43, - 0x68, 0x61, 0x74, 0x54, 0x6f, 0x78, 0x69, 0x63, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x78, 0x69, 0x63, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x2e, 0x49, 0x6e, 0x64, 0x69, 0x76, 0x69, 0x64, 0x75, 0x61, 0x6c, 0x52, 0x6f, - 0x77, 0x52, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x1a, 0x88, 0x02, 0x0a, 0x0d, 0x49, 0x6e, 0x64, 0x69, - 0x76, 0x69, 0x64, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x77, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x75, 0x6d, 0x5f, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0e, 0x6e, 0x75, 0x6d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x53, 0x65, 0x65, 0x6e, 0x12, - 0x21, 0x0a, 0x0c, 0x6e, 0x75, 0x6d, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6e, 0x75, 0x6d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x6e, 0x75, 0x6d, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x78, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, - 0x6e, 0x75, 0x6d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x54, 0x6f, 0x78, 0x69, 0x63, - 0x12, 0x28, 0x0a, 0x10, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, - 0x73, 0x65, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x66, 0x69, 0x72, 0x73, - 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, 0x65, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x61, - 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x65, 0x65, 0x6e, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, - 0x65, 0x6e, 0x22, 0xef, 0x01, 0x0a, 0x16, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x68, 0x61, 0x74, 0x54, - 0x6f, 0x78, 0x69, 0x63, 0x69, 0x74, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x28, 0x0a, - 0x10, 0x6e, 0x75, 0x6d, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x65, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6e, 0x75, 0x6d, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x65, 0x73, 0x53, 0x65, 0x65, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x75, 0x6d, 0x5f, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6e, - 0x75, 0x6d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x1c, 0x6e, 0x75, - 0x6d, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x5f, 0x6d, 0x6c, 0x5f, 0x74, 0x68, - 0x69, 0x6e, 0x6b, 0x73, 0x5f, 0x74, 0x6f, 0x78, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x18, 0x6e, 0x75, 0x6d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x4d, 0x6c, 0x54, - 0x68, 0x69, 0x6e, 0x6b, 0x73, 0x54, 0x6f, 0x78, 0x69, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 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, 0x96, 0x03, 0x0a, 0x1b, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x65, 0x74, - 0x54, 0x65, 0x61, 0x6d, 0x41, 0x75, 0x64, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1b, 0x0a, - 0x09, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x74, 0x65, 0x61, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x07, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x64, 0x6f, - 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x65, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x75, - 0x64, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, - 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x1a, 0xd9, 0x01, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x13, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, - 0x69, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x1d, 0x0a, - 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x72, 0x65, - 0x61, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x73, 0x0a, - 0x10, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, 0x41, 0x44, 0x50, 0x43, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x12, 0x29, 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, 0x41, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, - 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x2a, 0x88, 0x01, 0x0a, 0x15, 0x45, 0x54, 0x65, 0x61, 0x6d, 0x46, 0x61, 0x6e, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, 0x0a, 0x1f, - 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x41, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x54, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, - 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x41, 0x4e, 0x5f, 0x43, 0x4f, - 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, 0x45, 0x4e, - 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x46, - 0x41, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x5f, 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x45, 0x44, 0x10, 0x02, 0x2a, 0xe9, 0x02, - 0x0a, 0x18, 0x45, 0x54, 0x65, 0x61, 0x6d, 0x46, 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x6b, 0x5f, + 0x43, 0x61, 0x72, 0x64, 0x42, 0x6f, 0x6e, 0x75, 0x73, 0x52, 0x07, 0x62, 0x6f, 0x6e, 0x75, 0x73, + 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x6e, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x6e, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, + 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x1a, + 0x77, 0x0a, 0x06, 0x4c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x61, + 0x67, 0x75, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x65, + 0x61, 0x67, 0x75, 0x65, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x05, 0x63, 0x61, 0x72, 0x64, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, + 0x67, 0x44, 0x4f, 0x54, 0x41, 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x43, 0x61, 0x72, 0x64, + 0x4c, 0x69, 0x6e, 0x65, 0x75, 0x70, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x52, 0x05, 0x63, 0x61, 0x72, + 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x1a, 0xbf, 0x01, 0x0a, 0x06, 0x50, 0x65, 0x72, + 0x69, 0x6f, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x5f, 0x70, + 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x66, 0x61, 0x6e, + 0x74, 0x61, 0x73, 0x79, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x45, 0x6e, 0x64, 0x12, 0x40, 0x0a, 0x07, 0x6c, 0x65, 0x61, 0x67, + 0x75, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x64, 0x6f, 0x74, 0x61, + 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, 0x41, 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, + 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x6e, 0x65, 0x75, 0x70, 0x2e, 0x4c, 0x65, 0x61, 0x67, 0x75, + 0x65, 0x52, 0x07, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x73, 0x22, 0x9c, 0x03, 0x0a, 0x17, 0x43, + 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, 0x41, 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x43, 0x61, + 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x05, 0x63, 0x61, 0x72, 0x64, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, + 0x67, 0x44, 0x4f, 0x54, 0x41, 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x43, 0x61, 0x72, 0x64, + 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x52, 0x05, 0x63, 0x61, 0x72, 0x64, 0x73, + 0x1a, 0x4b, 0x0a, 0x09, 0x43, 0x61, 0x72, 0x64, 0x42, 0x6f, 0x6e, 0x75, 0x73, 0x12, 0x1d, 0x0a, + 0x0a, 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x09, 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x53, 0x74, 0x61, 0x74, 0x12, 0x1f, 0x0a, 0x0b, + 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0a, 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xf9, 0x01, + 0x0a, 0x04, 0x43, 0x61, 0x72, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, + 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x74, 0x65, 0x61, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x41, 0x0a, + 0x07, 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, + 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, 0x41, 0x46, 0x61, + 0x6e, 0x74, 0x61, 0x73, 0x79, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x43, 0x61, + 0x72, 0x64, 0x42, 0x6f, 0x6e, 0x75, 0x73, 0x52, 0x07, 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x65, 0x73, + 0x12, 0x17, 0x0a, 0x07, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x22, 0x87, 0x03, 0x0a, 0x28, 0x43, 0x4d, + 0x73, 0x67, 0x43, 0x68, 0x61, 0x74, 0x54, 0x6f, 0x78, 0x69, 0x63, 0x69, 0x74, 0x79, 0x54, 0x6f, + 0x78, 0x69, 0x63, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x50, 0x0a, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, + 0x43, 0x68, 0x61, 0x74, 0x54, 0x6f, 0x78, 0x69, 0x63, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x78, 0x69, + 0x63, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x49, 0x6e, 0x64, 0x69, 0x76, 0x69, 0x64, 0x75, 0x61, 0x6c, 0x52, + 0x6f, 0x77, 0x52, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x1a, 0x88, 0x02, 0x0a, 0x0d, 0x49, 0x6e, 0x64, + 0x69, 0x76, 0x69, 0x64, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x77, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x75, 0x6d, 0x5f, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0e, 0x6e, 0x75, 0x6d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x53, 0x65, 0x65, 0x6e, + 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x75, 0x6d, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6e, 0x75, 0x6d, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x6e, 0x75, 0x6d, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x78, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x10, 0x6e, 0x75, 0x6d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x54, 0x6f, 0x78, 0x69, + 0x63, 0x12, 0x28, 0x0a, 0x10, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x5f, 0x73, 0x65, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x66, 0x69, 0x72, + 0x73, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, 0x65, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x6c, + 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x65, 0x65, 0x6e, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, + 0x65, 0x65, 0x6e, 0x22, 0xef, 0x01, 0x0a, 0x16, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x68, 0x61, 0x74, + 0x54, 0x6f, 0x78, 0x69, 0x63, 0x69, 0x74, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x28, + 0x0a, 0x10, 0x6e, 0x75, 0x6d, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x5f, 0x73, 0x65, + 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6e, 0x75, 0x6d, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x73, 0x53, 0x65, 0x65, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x75, 0x6d, 0x5f, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, + 0x6e, 0x75, 0x6d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x1c, 0x6e, + 0x75, 0x6d, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x5f, 0x6d, 0x6c, 0x5f, 0x74, + 0x68, 0x69, 0x6e, 0x6b, 0x73, 0x5f, 0x74, 0x6f, 0x78, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x18, 0x6e, 0x75, 0x6d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x4d, 0x6c, + 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x73, 0x54, 0x6f, 0x78, 0x69, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 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, 0x96, 0x03, 0x0a, 0x1b, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x65, + 0x74, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x75, 0x64, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1b, + 0x0a, 0x09, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x74, 0x65, 0x61, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x07, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x64, + 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x65, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x41, + 0x75, 0x64, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x21, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x1a, 0xd9, 0x01, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, + 0x13, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, + 0x72, 0x69, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x1d, + 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, + 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x72, + 0x65, 0x61, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x73, + 0x0a, 0x10, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, 0x41, 0x44, 0x50, 0x43, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x12, 0x29, 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, + 0x41, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x34, 0x0a, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x18, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x2a, 0x88, 0x01, 0x0a, 0x15, 0x45, 0x54, 0x65, 0x61, 0x6d, 0x46, 0x61, 0x6e, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, 0x0a, + 0x1f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x41, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x45, 0x4e, + 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, + 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x41, 0x4e, 0x5f, 0x43, + 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, 0x45, + 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x45, 0x41, 0x4d, 0x5f, + 0x46, 0x41, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x5f, 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x45, 0x44, 0x10, 0x02, 0x2a, 0xe9, + 0x02, 0x0a, 0x18, 0x45, 0x54, 0x65, 0x61, 0x6d, 0x46, 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x6b, + 0x5f, 0x65, 0x46, 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4c, 0x6f, 0x67, 0x6f, 0x50, 0x4e, 0x47, 0x10, 0x01, 0x12, + 0x22, 0x0a, 0x1e, 0x6b, 0x5f, 0x65, 0x46, 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x41, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4c, 0x6f, 0x67, 0x6f, 0x53, 0x56, + 0x47, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x6b, 0x5f, 0x65, 0x46, 0x61, 0x6e, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4c, 0x6f, + 0x67, 0x6f, 0x33, 0x44, 0x10, 0x03, 0x12, 0x22, 0x0a, 0x1e, 0x6b, 0x5f, 0x65, 0x46, 0x61, 0x6e, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x10, 0x04, 0x12, 0x21, 0x0a, 0x1d, 0x6b, 0x5f, + 0x65, 0x46, 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x5f, 0x53, 0x70, 0x72, 0x61, 0x79, 0x73, 0x10, 0x05, 0x12, 0x25, 0x0a, + 0x21, 0x6b, 0x5f, 0x65, 0x46, 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x41, 0x73, + 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x57, 0x61, 0x6c, 0x6c, 0x70, 0x61, 0x70, 0x65, + 0x72, 0x73, 0x10, 0x06, 0x12, 0x24, 0x0a, 0x20, 0x6b, 0x5f, 0x65, 0x46, 0x61, 0x6e, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x45, + 0x6d, 0x6f, 0x74, 0x69, 0x63, 0x6f, 0x6e, 0x73, 0x10, 0x07, 0x12, 0x25, 0x0a, 0x21, 0x6b, 0x5f, 0x65, 0x46, 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4c, 0x6f, 0x67, 0x6f, 0x50, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x22, - 0x0a, 0x1e, 0x6b, 0x5f, 0x65, 0x46, 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x41, - 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4c, 0x6f, 0x67, 0x6f, 0x53, 0x56, 0x47, - 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x6b, 0x5f, 0x65, 0x46, 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4c, 0x6f, 0x67, - 0x6f, 0x33, 0x44, 0x10, 0x03, 0x12, 0x22, 0x0a, 0x1e, 0x6b, 0x5f, 0x65, 0x46, 0x61, 0x6e, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x10, 0x04, 0x12, 0x21, 0x0a, 0x1d, 0x6b, 0x5f, 0x65, - 0x46, 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x5f, 0x53, 0x70, 0x72, 0x61, 0x79, 0x73, 0x10, 0x05, 0x12, 0x25, 0x0a, 0x21, + 0x54, 0x79, 0x70, 0x65, 0x5f, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x10, + 0x08, 0x12, 0x27, 0x0a, 0x23, 0x6b, 0x5f, 0x65, 0x46, 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4c, 0x6f, 0x63, 0x61, + 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x09, 0x2a, 0x8d, 0x01, 0x0a, 0x1a, 0x45, + 0x54, 0x65, 0x61, 0x6d, 0x46, 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x41, 0x73, + 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x1d, 0x6b, 0x5f, 0x65, + 0x46, 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x6b, 0x5f, 0x65, 0x46, 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, - 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x57, 0x61, 0x6c, 0x6c, 0x70, 0x61, 0x70, 0x65, 0x72, - 0x73, 0x10, 0x06, 0x12, 0x24, 0x0a, 0x20, 0x6b, 0x5f, 0x65, 0x46, 0x61, 0x6e, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x45, 0x6d, - 0x6f, 0x74, 0x69, 0x63, 0x6f, 0x6e, 0x73, 0x10, 0x07, 0x12, 0x25, 0x0a, 0x21, 0x6b, 0x5f, 0x65, - 0x46, 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x5f, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x10, 0x08, - 0x12, 0x27, 0x0a, 0x23, 0x6b, 0x5f, 0x65, 0x46, 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4c, 0x6f, 0x63, 0x61, 0x6c, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x09, 0x2a, 0x8d, 0x01, 0x0a, 0x1a, 0x45, 0x54, - 0x65, 0x61, 0x6d, 0x46, 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, - 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x1d, 0x6b, 0x5f, 0x65, 0x46, - 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x5f, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x6b, - 0x5f, 0x65, 0x46, 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, - 0x10, 0x01, 0x12, 0x25, 0x0a, 0x21, 0x6b, 0x5f, 0x65, 0x46, 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x52, - 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x10, 0x02, 0x42, 0x25, 0x5a, 0x23, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x62, 0x75, 0x66, 0x66, - 0x2f, 0x6d, 0x61, 0x6e, 0x74, 0x61, 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x3b, 0x64, 0x6f, 0x74, 0x61, + 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, + 0x64, 0x10, 0x01, 0x12, 0x25, 0x0a, 0x21, 0x6b, 0x5f, 0x65, 0x46, 0x61, 0x6e, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, + 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x10, 0x02, 0x2a, 0x81, 0x01, 0x0a, 0x14, 0x45, + 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x1d, 0x54, 0x41, 0x4c, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x4f, + 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x49, 0x4e, 0x56, + 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x54, 0x41, 0x4c, 0x45, 0x4e, 0x54, + 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, + 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x54, 0x41, 0x4c, + 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x5f, 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x45, 0x44, 0x10, 0x02, 0x2a, 0x91, + 0x01, 0x0a, 0x17, 0x45, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x1f, 0x6b, 0x5f, + 0x65, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x41, 0x73, + 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x10, 0x01, 0x12, + 0x27, 0x0a, 0x23, 0x6b, 0x5f, 0x65, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x41, 0x75, 0x74, + 0x6f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x10, 0x02, 0x12, 0x28, 0x0a, 0x24, 0x6b, 0x5f, 0x65, 0x54, + 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, + 0x10, 0x03, 0x2a, 0x95, 0x01, 0x0a, 0x19, 0x45, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x24, 0x0a, 0x20, 0x6b, 0x5f, 0x65, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, + 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x28, 0x0a, 0x24, 0x6b, 0x5f, 0x65, 0x54, 0x61, 0x6c, + 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x10, 0x01, + 0x12, 0x28, 0x0a, 0x24, 0x6b, 0x5f, 0x65, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, + 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x10, 0x02, 0x42, 0x25, 0x5a, 0x23, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x62, 0x75, 0x66, + 0x66, 0x2f, 0x6d, 0x61, 0x6e, 0x74, 0x61, 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x3b, 0x64, 0x6f, 0x74, + 0x61, } var ( @@ -3997,99 +4568,113 @@ func file_dota_gcmessages_webapi_proto_rawDescGZIP() []byte { return file_dota_gcmessages_webapi_proto_rawDescData } -var file_dota_gcmessages_webapi_proto_enumTypes = make([]protoimpl.EnumInfo, 10) -var file_dota_gcmessages_webapi_proto_msgTypes = make([]protoimpl.MessageInfo, 34) +var file_dota_gcmessages_webapi_proto_enumTypes = make([]protoimpl.EnumInfo, 14) +var file_dota_gcmessages_webapi_proto_msgTypes = make([]protoimpl.MessageInfo, 38) var file_dota_gcmessages_webapi_proto_goTypes = []interface{}{ (ETeamFanContentStatus)(0), // 0: dota.ETeamFanContentStatus (ETeamFanContentAssetType)(0), // 1: dota.ETeamFanContentAssetType (ETeamFanContentAssetStatus)(0), // 2: dota.ETeamFanContentAssetStatus - (CMsgArcanaVotes_VotingState)(0), // 3: dota.CMsgArcanaVotes.VotingState - (CMsgDOTADPCFeed_EFeedElementType)(0), // 4: dota.CMsgDOTADPCFeed.EFeedElementType - (CMsgTeamFanContentAssetStatusResponse_EResult)(0), // 5: dota.CMsgTeamFanContentAssetStatusResponse.EResult - (CMsgDPCEvent_ELeagueEvent)(0), // 6: dota.CMsgDPCEvent.ELeagueEvent - (CMsgDPCEvent_ELeagueEventPhase)(0), // 7: dota.CMsgDPCEvent.ELeagueEventPhase - (CMsgDPCEvent_ELeagueEventType)(0), // 8: dota.CMsgDPCEvent.ELeagueEventType - (CMsgDPCEvent_ETour)(0), // 9: dota.CMsgDPCEvent.ETour - (*CMsgArcanaVotes)(nil), // 10: dota.CMsgArcanaVotes - (*CMsgDOTADPCFeed)(nil), // 11: dota.CMsgDOTADPCFeed - (*CMsgDOTADPCUserInfo)(nil), // 12: dota.CMsgDOTADPCUserInfo - (*CMsgDraftTrivia)(nil), // 13: dota.CMsgDraftTrivia - (*CMsgTeamFanContentAssetStatus)(nil), // 14: dota.CMsgTeamFanContentAssetStatus - (*CMsgTeamFanContentAssetStatusResponse)(nil), // 15: dota.CMsgTeamFanContentAssetStatusResponse - (*CMsgTeamFanContentStatus)(nil), // 16: dota.CMsgTeamFanContentStatus - (*CMsgTeamFanContentAutographStatus)(nil), // 17: dota.CMsgTeamFanContentAutographStatus - (*CMsgDPCEvent)(nil), // 18: dota.CMsgDPCEvent - (*CMsgDPCEventList)(nil), // 19: dota.CMsgDPCEventList - (*CMsgDOTAFantasyCardLineup)(nil), // 20: dota.CMsgDOTAFantasyCardLineup - (*CMsgDOTAFantasyCardList)(nil), // 21: dota.CMsgDOTAFantasyCardList - (*CMsgChatToxicityToxicPlayerMatchesReport)(nil), // 22: dota.CMsgChatToxicityToxicPlayerMatchesReport - (*CMsgChatToxicityReport)(nil), // 23: dota.CMsgChatToxicityReport - (*CMsgGetTeamAuditInformation)(nil), // 24: dota.CMsgGetTeamAuditInformation - (*CMsgDOTADPCMatch)(nil), // 25: dota.CMsgDOTADPCMatch - (*CMsgArcanaVotes_Match)(nil), // 26: dota.CMsgArcanaVotes.Match - (*CMsgDOTADPCFeed_Element)(nil), // 27: dota.CMsgDOTADPCFeed.Element - (*CMsgDraftTrivia_DraftTriviaHeroInfo)(nil), // 28: dota.CMsgDraftTrivia.DraftTriviaHeroInfo - (*CMsgDraftTrivia_DraftTriviaMatchInfo)(nil), // 29: dota.CMsgDraftTrivia.DraftTriviaMatchInfo - (*CMsgDraftTrivia_PreviousResult)(nil), // 30: dota.CMsgDraftTrivia.PreviousResult - (*CMsgTeamFanContentStatus_TeamStatus)(nil), // 31: dota.CMsgTeamFanContentStatus.TeamStatus - (*CMsgTeamFanContentAutographStatus_AutographStatus)(nil), // 32: dota.CMsgTeamFanContentAutographStatus.AutographStatus - (*CMsgTeamFanContentAutographStatus_TeamStatus)(nil), // 33: dota.CMsgTeamFanContentAutographStatus.TeamStatus - (*CMsgDPCEvent_PhaseInfo)(nil), // 34: dota.CMsgDPCEvent.PhaseInfo - (*CMsgDPCEvent_League)(nil), // 35: dota.CMsgDPCEvent.League - (*CMsgDOTAFantasyCardLineup_CardBonus)(nil), // 36: dota.CMsgDOTAFantasyCardLineup.CardBonus - (*CMsgDOTAFantasyCardLineup_Card)(nil), // 37: dota.CMsgDOTAFantasyCardLineup.Card - (*CMsgDOTAFantasyCardLineup_League)(nil), // 38: dota.CMsgDOTAFantasyCardLineup.League - (*CMsgDOTAFantasyCardLineup_Period)(nil), // 39: dota.CMsgDOTAFantasyCardLineup.Period - (*CMsgDOTAFantasyCardList_CardBonus)(nil), // 40: dota.CMsgDOTAFantasyCardList.CardBonus - (*CMsgDOTAFantasyCardList_Card)(nil), // 41: dota.CMsgDOTAFantasyCardList.Card - (*CMsgChatToxicityToxicPlayerMatchesReport_IndividualRow)(nil), // 42: dota.CMsgChatToxicityToxicPlayerMatchesReport.IndividualRow - (*CMsgGetTeamAuditInformation_Action)(nil), // 43: dota.CMsgGetTeamAuditInformation.Action - (*CMsgDOTAMatch)(nil), // 44: dota.CMsgDOTAMatch - (*CDOTAMatchMetadata)(nil), // 45: dota.CDOTAMatchMetadata - (ELeagueRegion)(0), // 46: dota.ELeagueRegion - (ELeagueDivision)(0), // 47: dota.ELeagueDivision + (ETalentContentStatus)(0), // 3: dota.ETalentContentStatus + (ETalentContentAssetType)(0), // 4: dota.ETalentContentAssetType + (ETalentContentAssetStatus)(0), // 5: dota.ETalentContentAssetStatus + (CMsgArcanaVotes_VotingState)(0), // 6: dota.CMsgArcanaVotes.VotingState + (CMsgDOTADPCFeed_EFeedElementType)(0), // 7: dota.CMsgDOTADPCFeed.EFeedElementType + (CMsgTeamFanContentAssetStatusResponse_EResult)(0), // 8: dota.CMsgTeamFanContentAssetStatusResponse.EResult + (CMsgSetTalentContentResponse_EResult)(0), // 9: dota.CMsgSetTalentContentResponse.EResult + (CMsgDPCEvent_ELeagueEvent)(0), // 10: dota.CMsgDPCEvent.ELeagueEvent + (CMsgDPCEvent_ELeagueEventPhase)(0), // 11: dota.CMsgDPCEvent.ELeagueEventPhase + (CMsgDPCEvent_ELeagueEventType)(0), // 12: dota.CMsgDPCEvent.ELeagueEventType + (CMsgDPCEvent_ETour)(0), // 13: dota.CMsgDPCEvent.ETour + (*CMsgArcanaVotes)(nil), // 14: dota.CMsgArcanaVotes + (*CMsgDOTADPCFeed)(nil), // 15: dota.CMsgDOTADPCFeed + (*CMsgDOTADPCUserInfo)(nil), // 16: dota.CMsgDOTADPCUserInfo + (*CMsgDraftTrivia)(nil), // 17: dota.CMsgDraftTrivia + (*CMsgTeamFanContentAssetStatus)(nil), // 18: dota.CMsgTeamFanContentAssetStatus + (*CMsgTeamFanContentAssetStatusResponse)(nil), // 19: dota.CMsgTeamFanContentAssetStatusResponse + (*CMsgTeamFanContentStatus)(nil), // 20: dota.CMsgTeamFanContentStatus + (*CMsgTeamFanContentAutographStatus)(nil), // 21: dota.CMsgTeamFanContentAutographStatus + (*CMsgTalentContentAssetStatus)(nil), // 22: dota.CMsgTalentContentAssetStatus + (*CMsgTalentContentStatus)(nil), // 23: dota.CMsgTalentContentStatus + (*CMsgSetTalentContentResponse)(nil), // 24: dota.CMsgSetTalentContentResponse + (*CMsgDPCEvent)(nil), // 25: dota.CMsgDPCEvent + (*CMsgDPCEventList)(nil), // 26: dota.CMsgDPCEventList + (*CMsgDOTAFantasyCardLineup)(nil), // 27: dota.CMsgDOTAFantasyCardLineup + (*CMsgDOTAFantasyCardList)(nil), // 28: dota.CMsgDOTAFantasyCardList + (*CMsgChatToxicityToxicPlayerMatchesReport)(nil), // 29: dota.CMsgChatToxicityToxicPlayerMatchesReport + (*CMsgChatToxicityReport)(nil), // 30: dota.CMsgChatToxicityReport + (*CMsgGetTeamAuditInformation)(nil), // 31: dota.CMsgGetTeamAuditInformation + (*CMsgDOTADPCMatch)(nil), // 32: dota.CMsgDOTADPCMatch + (*CMsgArcanaVotes_Match)(nil), // 33: dota.CMsgArcanaVotes.Match + (*CMsgDOTADPCFeed_Element)(nil), // 34: dota.CMsgDOTADPCFeed.Element + (*CMsgDraftTrivia_DraftTriviaHeroInfo)(nil), // 35: dota.CMsgDraftTrivia.DraftTriviaHeroInfo + (*CMsgDraftTrivia_DraftTriviaMatchInfo)(nil), // 36: dota.CMsgDraftTrivia.DraftTriviaMatchInfo + (*CMsgDraftTrivia_PreviousResult)(nil), // 37: dota.CMsgDraftTrivia.PreviousResult + (*CMsgTeamFanContentStatus_TeamStatus)(nil), // 38: dota.CMsgTeamFanContentStatus.TeamStatus + (*CMsgTeamFanContentAutographStatus_AutographStatus)(nil), // 39: dota.CMsgTeamFanContentAutographStatus.AutographStatus + (*CMsgTeamFanContentAutographStatus_TeamStatus)(nil), // 40: dota.CMsgTeamFanContentAutographStatus.TeamStatus + (*CMsgTalentContentStatus_TalentDetails)(nil), // 41: dota.CMsgTalentContentStatus.TalentDetails + (*CMsgDPCEvent_PhaseInfo)(nil), // 42: dota.CMsgDPCEvent.PhaseInfo + (*CMsgDPCEvent_League)(nil), // 43: dota.CMsgDPCEvent.League + (*CMsgDOTAFantasyCardLineup_CardBonus)(nil), // 44: dota.CMsgDOTAFantasyCardLineup.CardBonus + (*CMsgDOTAFantasyCardLineup_Card)(nil), // 45: dota.CMsgDOTAFantasyCardLineup.Card + (*CMsgDOTAFantasyCardLineup_League)(nil), // 46: dota.CMsgDOTAFantasyCardLineup.League + (*CMsgDOTAFantasyCardLineup_Period)(nil), // 47: dota.CMsgDOTAFantasyCardLineup.Period + (*CMsgDOTAFantasyCardList_CardBonus)(nil), // 48: dota.CMsgDOTAFantasyCardList.CardBonus + (*CMsgDOTAFantasyCardList_Card)(nil), // 49: dota.CMsgDOTAFantasyCardList.Card + (*CMsgChatToxicityToxicPlayerMatchesReport_IndividualRow)(nil), // 50: dota.CMsgChatToxicityToxicPlayerMatchesReport.IndividualRow + (*CMsgGetTeamAuditInformation_Action)(nil), // 51: dota.CMsgGetTeamAuditInformation.Action + (*CMsgDOTAMatch)(nil), // 52: dota.CMsgDOTAMatch + (*CDOTAMatchMetadata)(nil), // 53: dota.CDOTAMatchMetadata + (ELeagueRegion)(0), // 54: dota.ELeagueRegion + (ELeagueDivision)(0), // 55: dota.ELeagueDivision } var file_dota_gcmessages_webapi_proto_depIdxs = []int32{ - 26, // 0: dota.CMsgArcanaVotes.matches:type_name -> dota.CMsgArcanaVotes.Match - 27, // 1: dota.CMsgDOTADPCFeed.elements:type_name -> dota.CMsgDOTADPCFeed.Element - 29, // 2: dota.CMsgDraftTrivia.match_hero_info:type_name -> dota.CMsgDraftTrivia.DraftTriviaMatchInfo - 30, // 3: dota.CMsgDraftTrivia.previous_result:type_name -> dota.CMsgDraftTrivia.PreviousResult + 33, // 0: dota.CMsgArcanaVotes.matches:type_name -> dota.CMsgArcanaVotes.Match + 34, // 1: dota.CMsgDOTADPCFeed.elements:type_name -> dota.CMsgDOTADPCFeed.Element + 36, // 2: dota.CMsgDraftTrivia.match_hero_info:type_name -> dota.CMsgDraftTrivia.DraftTriviaMatchInfo + 37, // 3: dota.CMsgDraftTrivia.previous_result:type_name -> dota.CMsgDraftTrivia.PreviousResult 1, // 4: dota.CMsgTeamFanContentAssetStatus.asset_type:type_name -> dota.ETeamFanContentAssetType 2, // 5: dota.CMsgTeamFanContentAssetStatus.asset_status:type_name -> dota.ETeamFanContentAssetStatus - 5, // 6: dota.CMsgTeamFanContentAssetStatusResponse.result:type_name -> dota.CMsgTeamFanContentAssetStatusResponse.EResult - 31, // 7: dota.CMsgTeamFanContentStatus.team_status_list:type_name -> dota.CMsgTeamFanContentStatus.TeamStatus - 33, // 8: dota.CMsgTeamFanContentAutographStatus.team_autographs:type_name -> dota.CMsgTeamFanContentAutographStatus.TeamStatus - 6, // 9: dota.CMsgDPCEvent.event:type_name -> dota.CMsgDPCEvent.ELeagueEvent - 8, // 10: dota.CMsgDPCEvent.event_type:type_name -> dota.CMsgDPCEvent.ELeagueEventType - 35, // 11: dota.CMsgDPCEvent.leagues:type_name -> dota.CMsgDPCEvent.League - 9, // 12: dota.CMsgDPCEvent.tour:type_name -> dota.CMsgDPCEvent.ETour - 18, // 13: dota.CMsgDPCEventList.events:type_name -> dota.CMsgDPCEvent - 39, // 14: dota.CMsgDOTAFantasyCardLineup.periods:type_name -> dota.CMsgDOTAFantasyCardLineup.Period - 41, // 15: dota.CMsgDOTAFantasyCardList.cards:type_name -> dota.CMsgDOTAFantasyCardList.Card - 42, // 16: dota.CMsgChatToxicityToxicPlayerMatchesReport.rows:type_name -> dota.CMsgChatToxicityToxicPlayerMatchesReport.IndividualRow - 43, // 17: dota.CMsgGetTeamAuditInformation.actions:type_name -> dota.CMsgGetTeamAuditInformation.Action - 44, // 18: dota.CMsgDOTADPCMatch.match:type_name -> dota.CMsgDOTAMatch - 45, // 19: dota.CMsgDOTADPCMatch.metadata:type_name -> dota.CDOTAMatchMetadata - 4, // 20: dota.CMsgDOTADPCFeed.Element.type:type_name -> dota.CMsgDOTADPCFeed.EFeedElementType - 28, // 21: dota.CMsgDraftTrivia.DraftTriviaMatchInfo.radiant_heroes:type_name -> dota.CMsgDraftTrivia.DraftTriviaHeroInfo - 28, // 22: dota.CMsgDraftTrivia.DraftTriviaMatchInfo.dire_heroes:type_name -> dota.CMsgDraftTrivia.DraftTriviaHeroInfo - 29, // 23: dota.CMsgDraftTrivia.PreviousResult.match_hero_info:type_name -> dota.CMsgDraftTrivia.DraftTriviaMatchInfo - 0, // 24: dota.CMsgTeamFanContentStatus.TeamStatus.status:type_name -> dota.ETeamFanContentStatus - 14, // 25: dota.CMsgTeamFanContentStatus.TeamStatus.asset_status:type_name -> dota.CMsgTeamFanContentAssetStatus - 32, // 26: dota.CMsgTeamFanContentAutographStatus.TeamStatus.autographs:type_name -> dota.CMsgTeamFanContentAutographStatus.AutographStatus - 7, // 27: dota.CMsgDPCEvent.PhaseInfo.phase:type_name -> dota.CMsgDPCEvent.ELeagueEventPhase - 46, // 28: dota.CMsgDPCEvent.League.region:type_name -> dota.ELeagueRegion - 47, // 29: dota.CMsgDPCEvent.League.division:type_name -> dota.ELeagueDivision - 34, // 30: dota.CMsgDPCEvent.League.phases:type_name -> dota.CMsgDPCEvent.PhaseInfo - 36, // 31: dota.CMsgDOTAFantasyCardLineup.Card.bonuses:type_name -> dota.CMsgDOTAFantasyCardLineup.CardBonus - 37, // 32: dota.CMsgDOTAFantasyCardLineup.League.cards:type_name -> dota.CMsgDOTAFantasyCardLineup.Card - 38, // 33: dota.CMsgDOTAFantasyCardLineup.Period.leagues:type_name -> dota.CMsgDOTAFantasyCardLineup.League - 40, // 34: dota.CMsgDOTAFantasyCardList.Card.bonuses:type_name -> dota.CMsgDOTAFantasyCardList.CardBonus - 35, // [35:35] is the sub-list for method output_type - 35, // [35:35] 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 + 8, // 6: dota.CMsgTeamFanContentAssetStatusResponse.result:type_name -> dota.CMsgTeamFanContentAssetStatusResponse.EResult + 38, // 7: dota.CMsgTeamFanContentStatus.team_status_list:type_name -> dota.CMsgTeamFanContentStatus.TeamStatus + 40, // 8: dota.CMsgTeamFanContentAutographStatus.team_autographs:type_name -> dota.CMsgTeamFanContentAutographStatus.TeamStatus + 4, // 9: dota.CMsgTalentContentAssetStatus.asset_type:type_name -> dota.ETalentContentAssetType + 5, // 10: dota.CMsgTalentContentAssetStatus.asset_status:type_name -> dota.ETalentContentAssetStatus + 41, // 11: dota.CMsgTalentContentStatus.talent_status:type_name -> dota.CMsgTalentContentStatus.TalentDetails + 9, // 12: dota.CMsgSetTalentContentResponse.result:type_name -> dota.CMsgSetTalentContentResponse.EResult + 10, // 13: dota.CMsgDPCEvent.event:type_name -> dota.CMsgDPCEvent.ELeagueEvent + 12, // 14: dota.CMsgDPCEvent.event_type:type_name -> dota.CMsgDPCEvent.ELeagueEventType + 43, // 15: dota.CMsgDPCEvent.leagues:type_name -> dota.CMsgDPCEvent.League + 13, // 16: dota.CMsgDPCEvent.tour:type_name -> dota.CMsgDPCEvent.ETour + 25, // 17: dota.CMsgDPCEventList.events:type_name -> dota.CMsgDPCEvent + 47, // 18: dota.CMsgDOTAFantasyCardLineup.periods:type_name -> dota.CMsgDOTAFantasyCardLineup.Period + 49, // 19: dota.CMsgDOTAFantasyCardList.cards:type_name -> dota.CMsgDOTAFantasyCardList.Card + 50, // 20: dota.CMsgChatToxicityToxicPlayerMatchesReport.rows:type_name -> dota.CMsgChatToxicityToxicPlayerMatchesReport.IndividualRow + 51, // 21: dota.CMsgGetTeamAuditInformation.actions:type_name -> dota.CMsgGetTeamAuditInformation.Action + 52, // 22: dota.CMsgDOTADPCMatch.match:type_name -> dota.CMsgDOTAMatch + 53, // 23: dota.CMsgDOTADPCMatch.metadata:type_name -> dota.CDOTAMatchMetadata + 7, // 24: dota.CMsgDOTADPCFeed.Element.type:type_name -> dota.CMsgDOTADPCFeed.EFeedElementType + 35, // 25: dota.CMsgDraftTrivia.DraftTriviaMatchInfo.radiant_heroes:type_name -> dota.CMsgDraftTrivia.DraftTriviaHeroInfo + 35, // 26: dota.CMsgDraftTrivia.DraftTriviaMatchInfo.dire_heroes:type_name -> dota.CMsgDraftTrivia.DraftTriviaHeroInfo + 36, // 27: dota.CMsgDraftTrivia.PreviousResult.match_hero_info:type_name -> dota.CMsgDraftTrivia.DraftTriviaMatchInfo + 0, // 28: dota.CMsgTeamFanContentStatus.TeamStatus.status:type_name -> dota.ETeamFanContentStatus + 18, // 29: dota.CMsgTeamFanContentStatus.TeamStatus.asset_status:type_name -> dota.CMsgTeamFanContentAssetStatus + 39, // 30: dota.CMsgTeamFanContentAutographStatus.TeamStatus.autographs:type_name -> dota.CMsgTeamFanContentAutographStatus.AutographStatus + 3, // 31: dota.CMsgTalentContentStatus.TalentDetails.status:type_name -> dota.ETalentContentStatus + 22, // 32: dota.CMsgTalentContentStatus.TalentDetails.asset_status:type_name -> dota.CMsgTalentContentAssetStatus + 11, // 33: dota.CMsgDPCEvent.PhaseInfo.phase:type_name -> dota.CMsgDPCEvent.ELeagueEventPhase + 54, // 34: dota.CMsgDPCEvent.League.region:type_name -> dota.ELeagueRegion + 55, // 35: dota.CMsgDPCEvent.League.division:type_name -> dota.ELeagueDivision + 42, // 36: dota.CMsgDPCEvent.League.phases:type_name -> dota.CMsgDPCEvent.PhaseInfo + 44, // 37: dota.CMsgDOTAFantasyCardLineup.Card.bonuses:type_name -> dota.CMsgDOTAFantasyCardLineup.CardBonus + 45, // 38: dota.CMsgDOTAFantasyCardLineup.League.cards:type_name -> dota.CMsgDOTAFantasyCardLineup.Card + 46, // 39: dota.CMsgDOTAFantasyCardLineup.Period.leagues:type_name -> dota.CMsgDOTAFantasyCardLineup.League + 48, // 40: dota.CMsgDOTAFantasyCardList.Card.bonuses:type_name -> dota.CMsgDOTAFantasyCardList.CardBonus + 41, // [41:41] is the sub-list for method output_type + 41, // [41:41] is the sub-list for method input_type + 41, // [41:41] is the sub-list for extension type_name + 41, // [41:41] is the sub-list for extension extendee + 0, // [0:41] is the sub-list for field type_name } func init() { file_dota_gcmessages_webapi_proto_init() } @@ -4200,7 +4785,7 @@ func file_dota_gcmessages_webapi_proto_init() { } } file_dota_gcmessages_webapi_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDPCEvent); i { + switch v := v.(*CMsgTalentContentAssetStatus); i { case 0: return &v.state case 1: @@ -4212,7 +4797,7 @@ func file_dota_gcmessages_webapi_proto_init() { } } file_dota_gcmessages_webapi_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDPCEventList); i { + switch v := v.(*CMsgTalentContentStatus); i { case 0: return &v.state case 1: @@ -4224,7 +4809,7 @@ func file_dota_gcmessages_webapi_proto_init() { } } file_dota_gcmessages_webapi_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTAFantasyCardLineup); i { + switch v := v.(*CMsgSetTalentContentResponse); i { case 0: return &v.state case 1: @@ -4236,7 +4821,7 @@ func file_dota_gcmessages_webapi_proto_init() { } } file_dota_gcmessages_webapi_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTAFantasyCardList); i { + switch v := v.(*CMsgDPCEvent); i { case 0: return &v.state case 1: @@ -4248,7 +4833,7 @@ func file_dota_gcmessages_webapi_proto_init() { } } file_dota_gcmessages_webapi_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgChatToxicityToxicPlayerMatchesReport); i { + switch v := v.(*CMsgDPCEventList); i { case 0: return &v.state case 1: @@ -4260,7 +4845,7 @@ func file_dota_gcmessages_webapi_proto_init() { } } file_dota_gcmessages_webapi_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgChatToxicityReport); i { + switch v := v.(*CMsgDOTAFantasyCardLineup); i { case 0: return &v.state case 1: @@ -4272,7 +4857,7 @@ func file_dota_gcmessages_webapi_proto_init() { } } file_dota_gcmessages_webapi_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGetTeamAuditInformation); i { + switch v := v.(*CMsgDOTAFantasyCardList); i { case 0: return &v.state case 1: @@ -4284,7 +4869,7 @@ func file_dota_gcmessages_webapi_proto_init() { } } file_dota_gcmessages_webapi_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTADPCMatch); i { + switch v := v.(*CMsgChatToxicityToxicPlayerMatchesReport); i { case 0: return &v.state case 1: @@ -4296,7 +4881,7 @@ func file_dota_gcmessages_webapi_proto_init() { } } file_dota_gcmessages_webapi_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgArcanaVotes_Match); i { + switch v := v.(*CMsgChatToxicityReport); i { case 0: return &v.state case 1: @@ -4308,7 +4893,7 @@ func file_dota_gcmessages_webapi_proto_init() { } } file_dota_gcmessages_webapi_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTADPCFeed_Element); i { + switch v := v.(*CMsgGetTeamAuditInformation); i { case 0: return &v.state case 1: @@ -4320,7 +4905,7 @@ func file_dota_gcmessages_webapi_proto_init() { } } file_dota_gcmessages_webapi_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDraftTrivia_DraftTriviaHeroInfo); i { + switch v := v.(*CMsgDOTADPCMatch); i { case 0: return &v.state case 1: @@ -4332,7 +4917,7 @@ func file_dota_gcmessages_webapi_proto_init() { } } file_dota_gcmessages_webapi_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDraftTrivia_DraftTriviaMatchInfo); i { + switch v := v.(*CMsgArcanaVotes_Match); i { case 0: return &v.state case 1: @@ -4344,7 +4929,7 @@ func file_dota_gcmessages_webapi_proto_init() { } } file_dota_gcmessages_webapi_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDraftTrivia_PreviousResult); i { + switch v := v.(*CMsgDOTADPCFeed_Element); i { case 0: return &v.state case 1: @@ -4356,7 +4941,7 @@ func file_dota_gcmessages_webapi_proto_init() { } } file_dota_gcmessages_webapi_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgTeamFanContentStatus_TeamStatus); i { + switch v := v.(*CMsgDraftTrivia_DraftTriviaHeroInfo); i { case 0: return &v.state case 1: @@ -4368,7 +4953,7 @@ func file_dota_gcmessages_webapi_proto_init() { } } file_dota_gcmessages_webapi_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgTeamFanContentAutographStatus_AutographStatus); i { + switch v := v.(*CMsgDraftTrivia_DraftTriviaMatchInfo); i { case 0: return &v.state case 1: @@ -4380,7 +4965,7 @@ func file_dota_gcmessages_webapi_proto_init() { } } file_dota_gcmessages_webapi_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgTeamFanContentAutographStatus_TeamStatus); i { + switch v := v.(*CMsgDraftTrivia_PreviousResult); i { case 0: return &v.state case 1: @@ -4392,7 +4977,7 @@ func file_dota_gcmessages_webapi_proto_init() { } } file_dota_gcmessages_webapi_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDPCEvent_PhaseInfo); i { + switch v := v.(*CMsgTeamFanContentStatus_TeamStatus); i { case 0: return &v.state case 1: @@ -4404,7 +4989,7 @@ func file_dota_gcmessages_webapi_proto_init() { } } file_dota_gcmessages_webapi_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDPCEvent_League); i { + switch v := v.(*CMsgTeamFanContentAutographStatus_AutographStatus); i { case 0: return &v.state case 1: @@ -4416,7 +5001,7 @@ func file_dota_gcmessages_webapi_proto_init() { } } file_dota_gcmessages_webapi_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTAFantasyCardLineup_CardBonus); i { + switch v := v.(*CMsgTeamFanContentAutographStatus_TeamStatus); i { case 0: return &v.state case 1: @@ -4428,7 +5013,7 @@ func file_dota_gcmessages_webapi_proto_init() { } } file_dota_gcmessages_webapi_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTAFantasyCardLineup_Card); i { + switch v := v.(*CMsgTalentContentStatus_TalentDetails); i { case 0: return &v.state case 1: @@ -4440,7 +5025,7 @@ func file_dota_gcmessages_webapi_proto_init() { } } file_dota_gcmessages_webapi_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTAFantasyCardLineup_League); i { + switch v := v.(*CMsgDPCEvent_PhaseInfo); i { case 0: return &v.state case 1: @@ -4452,7 +5037,7 @@ func file_dota_gcmessages_webapi_proto_init() { } } file_dota_gcmessages_webapi_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTAFantasyCardLineup_Period); i { + switch v := v.(*CMsgDPCEvent_League); i { case 0: return &v.state case 1: @@ -4464,7 +5049,7 @@ func file_dota_gcmessages_webapi_proto_init() { } } file_dota_gcmessages_webapi_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTAFantasyCardList_CardBonus); i { + switch v := v.(*CMsgDOTAFantasyCardLineup_CardBonus); i { case 0: return &v.state case 1: @@ -4476,7 +5061,7 @@ func file_dota_gcmessages_webapi_proto_init() { } } file_dota_gcmessages_webapi_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDOTAFantasyCardList_Card); i { + switch v := v.(*CMsgDOTAFantasyCardLineup_Card); i { case 0: return &v.state case 1: @@ -4488,7 +5073,7 @@ func file_dota_gcmessages_webapi_proto_init() { } } file_dota_gcmessages_webapi_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgChatToxicityToxicPlayerMatchesReport_IndividualRow); i { + switch v := v.(*CMsgDOTAFantasyCardLineup_League); i { case 0: return &v.state case 1: @@ -4500,6 +5085,54 @@ func file_dota_gcmessages_webapi_proto_init() { } } file_dota_gcmessages_webapi_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgDOTAFantasyCardLineup_Period); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_dota_gcmessages_webapi_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgDOTAFantasyCardList_CardBonus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_dota_gcmessages_webapi_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgDOTAFantasyCardList_Card); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_dota_gcmessages_webapi_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgChatToxicityToxicPlayerMatchesReport_IndividualRow); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_dota_gcmessages_webapi_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgGetTeamAuditInformation_Action); i { case 0: return &v.state @@ -4517,8 +5150,8 @@ func file_dota_gcmessages_webapi_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_dota_gcmessages_webapi_proto_rawDesc, - NumEnums: 10, - NumMessages: 34, + NumEnums: 14, + NumMessages: 38, NumExtensions: 0, NumServices: 0, }, diff --git a/dota/dota_gcmessages_webapi.proto b/dota/dota_gcmessages_webapi.proto index c93ff54..4a9bbee 100644 --- a/dota/dota_gcmessages_webapi.proto +++ b/dota/dota_gcmessages_webapi.proto @@ -33,11 +33,29 @@ enum ETeamFanContentAssetStatus { k_eFanContentAssetStatus_Rejected = 2; } +enum ETalentContentStatus { + TALENT_CONTENT_STATUS_INVALID = 0; + TALENT_CONTENT_STATUS_PENDING = 1; + TALENT_CONTENT_STATUS_EVALUATED = 2; +} + +enum ETalentContentAssetType { + k_eTalentContentAssetType_Photo = 1; + k_eTalentContentAssetType_Autograph = 2; + k_eTalentContentAssetType_Voicelines = 3; +} + +enum ETalentContentAssetStatus { + k_eTalentContentAssetStatus_None = 0; + k_eTalentContentAssetStatus_Approved = 1; + k_eTalentContentAssetStatus_Rejected = 2; +} + message CMsgArcanaVotes { message Match { optional uint32 match_id = 1; - optional uint32 hero_id_0 = 2; - optional uint32 hero_id_1 = 3; + optional int32 hero_id_0 = 2; + optional int32 hero_id_1 = 3; optional uint32 hero_seeding_0 = 4; optional uint32 hero_seeding_1 = 5; optional uint32 vote_count_0 = 6; @@ -107,7 +125,7 @@ message CMsgDOTADPCUserInfo { message CMsgDraftTrivia { message DraftTriviaHeroInfo { - optional uint32 hero_id = 1; + optional int32 hero_id = 1; optional uint32 role = 2; } @@ -194,6 +212,36 @@ message CMsgTeamFanContentAutographStatus { repeated CMsgTeamFanContentAutographStatus.TeamStatus team_autographs = 1; } +message CMsgTalentContentAssetStatus { + optional ETalentContentAssetType asset_type = 1; + optional uint32 asset_index = 2; + optional ETalentContentAssetStatus asset_status = 3; +} + +message CMsgTalentContentStatus { + message TalentDetails { + optional uint32 account_id = 1; + optional string full_name = 2; + optional string nickname = 3; + optional uint32 workshop_item_id = 4; + optional string zip_file = 5; + optional ETalentContentStatus status = 6; + repeated CMsgTalentContentAssetStatus asset_status = 7; + optional uint32 broadcast_language = 8; + } + + repeated CMsgTalentContentStatus.TalentDetails talent_status = 1; +} + +message CMsgSetTalentContentResponse { + enum EResult { + k_eSuccess = 0; + k_eInternalError = 1; + } + + optional CMsgSetTalentContentResponse.EResult result = 1; +} + message CMsgDPCEvent { message PhaseInfo { optional CMsgDPCEvent.ELeagueEventPhase phase = 1; diff --git a/dota/dota_match_metadata.pb.go b/dota/dota_match_metadata.pb.go index 372e521..3253d46 100644 --- a/dota/dota_match_metadata.pb.go +++ b/dota/dota_match_metadata.pb.go @@ -920,7 +920,7 @@ type CDOTAMatchMetadata_Team_StrangeGemProgress struct { KillEaterType *uint32 `protobuf:"varint,1,opt,name=kill_eater_type,json=killEaterType" json:"kill_eater_type,omitempty"` GemItemDefIndex *uint32 `protobuf:"varint,2,opt,name=gem_item_def_index,json=gemItemDefIndex" json:"gem_item_def_index,omitempty"` - RequiredHeroId *uint32 `protobuf:"varint,3,opt,name=required_hero_id,json=requiredHeroId" json:"required_hero_id,omitempty"` + RequiredHeroId *int32 `protobuf:"varint,3,opt,name=required_hero_id,json=requiredHeroId" json:"required_hero_id,omitempty"` StartingValue *uint32 `protobuf:"varint,4,opt,name=starting_value,json=startingValue" json:"starting_value,omitempty"` EndingValue *uint32 `protobuf:"varint,5,opt,name=ending_value,json=endingValue" json:"ending_value,omitempty"` OwnerItemDefIndex *uint32 `protobuf:"varint,6,opt,name=owner_item_def_index,json=ownerItemDefIndex" json:"owner_item_def_index,omitempty"` @@ -973,7 +973,7 @@ func (x *CDOTAMatchMetadata_Team_StrangeGemProgress) GetGemItemDefIndex() uint32 return 0 } -func (x *CDOTAMatchMetadata_Team_StrangeGemProgress) GetRequiredHeroId() uint32 { +func (x *CDOTAMatchMetadata_Team_StrangeGemProgress) GetRequiredHeroId() int32 { if x != nil && x.RequiredHeroId != nil { return *x.RequiredHeroId } @@ -3175,7 +3175,7 @@ type CDOTAMatchPrivateMetadata_Team_Player_CombatSegment_DamageByAbility_ByHeroT sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroId *uint32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` Damage *uint32 `protobuf:"varint,2,opt,name=damage" json:"damage,omitempty"` } @@ -3212,7 +3212,7 @@ func (*CDOTAMatchPrivateMetadata_Team_Player_CombatSegment_DamageByAbility_ByHer return file_dota_match_metadata_proto_rawDescGZIP(), []int{2, 1, 0, 0, 0, 0} } -func (x *CDOTAMatchPrivateMetadata_Team_Player_CombatSegment_DamageByAbility_ByHeroTarget) GetHeroId() uint32 { +func (x *CDOTAMatchPrivateMetadata_Team_Player_CombatSegment_DamageByAbility_ByHeroTarget) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -3231,7 +3231,7 @@ type CDOTAMatchPrivateMetadata_Team_Player_CombatSegment_HealingByAbility_ByHero sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroId *uint32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` Healing *uint32 `protobuf:"varint,2,opt,name=healing" json:"healing,omitempty"` } @@ -3268,7 +3268,7 @@ func (*CDOTAMatchPrivateMetadata_Team_Player_CombatSegment_HealingByAbility_ByHe return file_dota_match_metadata_proto_rawDescGZIP(), []int{2, 1, 0, 0, 1, 0} } -func (x *CDOTAMatchPrivateMetadata_Team_Player_CombatSegment_HealingByAbility_ByHeroTarget) GetHeroId() uint32 { +func (x *CDOTAMatchPrivateMetadata_Team_Player_CombatSegment_HealingByAbility_ByHeroTarget) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -3287,7 +3287,7 @@ type CDOTAMatchPrivateMetadata_Team_Player_BuffRecord_ByHeroTarget struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HeroId *uint32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,1,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` ElapsedDuration *float32 `protobuf:"fixed32,2,opt,name=elapsed_duration,json=elapsedDuration" json:"elapsed_duration,omitempty"` IsHidden *bool `protobuf:"varint,3,opt,name=is_hidden,json=isHidden" json:"is_hidden,omitempty"` } @@ -3324,7 +3324,7 @@ func (*CDOTAMatchPrivateMetadata_Team_Player_BuffRecord_ByHeroTarget) Descriptor return file_dota_match_metadata_proto_rawDescGZIP(), []int{2, 1, 0, 1, 0} } -func (x *CDOTAMatchPrivateMetadata_Team_Player_BuffRecord_ByHeroTarget) GetHeroId() uint32 { +func (x *CDOTAMatchPrivateMetadata_Team_Player_BuffRecord_ByHeroTarget) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -3493,7 +3493,7 @@ var file_dota_match_metadata_proto_rawDesc = []byte{ 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x67, 0x65, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x65, 0x66, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, @@ -4011,7 +4011,7 @@ var file_dota_match_metadata_proto_rawDesc = []byte{ 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x0d, 0x62, 0x79, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x1a, 0x3f, 0x0a, 0x0c, 0x42, 0x79, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, - 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, + 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x1a, 0xa1, 0x02, 0x0a, 0x10, 0x48, 0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x42, 0x79, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, @@ -4029,7 +4029,7 @@ var file_dota_match_metadata_proto_rawDesc = []byte{ 0x42, 0x79, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x0d, 0x62, 0x79, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x1a, 0x41, 0x0a, 0x0c, 0x42, 0x79, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x68, - 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, + 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x68, 0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x1a, 0xc0, 0x02, 0x0a, 0x0a, 0x42, 0x75, 0x66, 0x66, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x26, 0x0a, @@ -4047,7 +4047,7 @@ var file_dota_match_metadata_proto_rawDesc = []byte{ 0x74, 0x52, 0x0d, 0x62, 0x79, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x1a, 0x6f, 0x0a, 0x0c, 0x42, 0x79, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x6c, 0x61, + 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x68, 0x69, 0x64, 0x64, 0x65, diff --git a/dota/dota_match_metadata.proto b/dota/dota_match_metadata.proto index 0528cc8..5f0c3d4 100644 --- a/dota/dota_match_metadata.proto +++ b/dota/dota_match_metadata.proto @@ -57,7 +57,7 @@ message CDOTAMatchMetadata { message StrangeGemProgress { optional uint32 kill_eater_type = 1; optional uint32 gem_item_def_index = 2; - optional uint32 required_hero_id = 3; + optional int32 required_hero_id = 3; optional uint32 starting_value = 4; optional uint32 ending_value = 5; optional uint32 owner_item_def_index = 6; @@ -266,7 +266,7 @@ message CDOTAMatchPrivateMetadata { message CombatSegment { message DamageByAbility { message ByHeroTarget { - optional uint32 hero_id = 1; + optional int32 hero_id = 1; optional uint32 damage = 2; } @@ -277,7 +277,7 @@ message CDOTAMatchPrivateMetadata { message HealingByAbility { message ByHeroTarget { - optional uint32 hero_id = 1; + optional int32 hero_id = 1; optional uint32 healing = 2; } @@ -293,7 +293,7 @@ message CDOTAMatchPrivateMetadata { message BuffRecord { message ByHeroTarget { - optional uint32 hero_id = 1; + optional int32 hero_id = 1; optional float elapsed_duration = 2; optional bool is_hidden = 3; } diff --git a/dota/dota_shared_enums.pb.go b/dota/dota_shared_enums.pb.go index 273acc7..1aa52f2 100644 --- a/dota/dota_shared_enums.pb.go +++ b/dota/dota_shared_enums.pb.go @@ -386,6 +386,7 @@ const ( EEvent_EVENT_ID_10TH_ANNIVERSARY EEvent = 46 EEvent_EVENT_ID_CROWNFALL EEvent = 47 EEvent_EVENT_ID_FROSTIVUS_2023 EEvent = 48 + EEvent_EVENT_ID_INTERNATIONAL_2024 EEvent = 49 ) // Enum value maps for EEvent. @@ -439,6 +440,7 @@ var ( 46: "EVENT_ID_10TH_ANNIVERSARY", 47: "EVENT_ID_CROWNFALL", 48: "EVENT_ID_FROSTIVUS_2023", + 49: "EVENT_ID_INTERNATIONAL_2024", } EEvent_value = map[string]int32{ "EVENT_ID_NONE": 0, @@ -489,6 +491,7 @@ var ( "EVENT_ID_10TH_ANNIVERSARY": 46, "EVENT_ID_CROWNFALL": 47, "EVENT_ID_FROSTIVUS_2023": 48, + "EVENT_ID_INTERNATIONAL_2024": 49, } ) @@ -5775,7 +5778,7 @@ var file_dota_shared_enums_proto_rawDesc = []byte{ 0x54, 0x4f, 0x4d, 0x5f, 0x37, 0x10, 0x0c, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x43, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x38, 0x10, 0x0d, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x43, 0x5f, 0x54, 0x45, - 0x41, 0x4d, 0x5f, 0x4e, 0x45, 0x55, 0x54, 0x52, 0x41, 0x4c, 0x53, 0x10, 0x0e, 0x2a, 0xb8, 0x0b, + 0x41, 0x4d, 0x5f, 0x4e, 0x45, 0x55, 0x54, 0x52, 0x41, 0x4c, 0x53, 0x10, 0x0e, 0x2a, 0xd9, 0x0b, 0x0a, 0x06, 0x45, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x11, 0x0a, 0x0d, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x54, 0x49, 0x44, 0x45, @@ -5867,1011 +5870,1013 @@ var file_dota_shared_enums_proto_rawDesc = []byte{ 0x59, 0x10, 0x2e, 0x12, 0x16, 0x0a, 0x12, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, 0x5f, 0x43, 0x52, 0x4f, 0x57, 0x4e, 0x46, 0x41, 0x4c, 0x4c, 0x10, 0x2f, 0x12, 0x1b, 0x0a, 0x17, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, 0x5f, 0x46, 0x52, 0x4f, 0x53, 0x54, 0x49, 0x56, 0x55, - 0x53, 0x5f, 0x32, 0x30, 0x32, 0x33, 0x10, 0x30, 0x2a, 0xbb, 0x02, 0x0a, 0x09, 0x45, 0x52, 0x61, - 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, 0x45, 0x52, 0x61, 0x6e, - 0x6b, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x00, 0x12, - 0x16, 0x0a, 0x12, 0x6b, 0x5f, 0x45, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, - 0x61, 0x73, 0x75, 0x61, 0x6c, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x6b, 0x5f, 0x45, 0x52, 0x61, - 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x65, 0x64, 0x10, 0x02, 0x12, - 0x1c, 0x0a, 0x18, 0x6b, 0x5f, 0x45, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, - 0x61, 0x73, 0x75, 0x61, 0x6c, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x10, 0x03, 0x12, 0x1c, 0x0a, - 0x18, 0x6b, 0x5f, 0x45, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x52, 0x61, 0x6e, - 0x6b, 0x65, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x10, 0x04, 0x12, 0x1c, 0x0a, 0x18, 0x6b, - 0x5f, 0x45, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x61, 0x73, 0x75, 0x61, - 0x6c, 0x47, 0x6c, 0x69, 0x63, 0x6b, 0x6f, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x6b, 0x5f, 0x45, - 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x65, 0x64, 0x47, - 0x6c, 0x69, 0x63, 0x6b, 0x6f, 0x10, 0x06, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, 0x45, 0x52, 0x61, - 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x78, 0x10, 0x07, - 0x12, 0x1f, 0x0a, 0x1b, 0x6b, 0x5f, 0x45, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x5f, - 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x10, - 0x64, 0x12, 0x1e, 0x0a, 0x1a, 0x6b, 0x5f, 0x45, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, - 0x5f, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x10, - 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x5f, 0x45, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, - 0x5f, 0x4d, 0x61, 0x78, 0x10, 0x66, 0x2a, 0xca, 0x02, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x4c, - 0x65, 0x61, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x74, 0x12, 0x14, 0x0a, - 0x10, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x4e, - 0x45, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4c, 0x45, 0x41, 0x56, - 0x45, 0x52, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, - 0x01, 0x12, 0x25, 0x0a, 0x21, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x52, - 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x5f, 0x54, 0x4f, - 0x4f, 0x5f, 0x4c, 0x4f, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, - 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x52, 0x5f, 0x41, 0x42, 0x41, 0x4e, 0x44, 0x4f, 0x4e, 0x45, - 0x44, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4c, 0x45, 0x41, 0x56, - 0x45, 0x52, 0x5f, 0x41, 0x46, 0x4b, 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, - 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x45, 0x56, 0x45, 0x52, 0x5f, 0x43, 0x4f, - 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x05, 0x12, 0x28, 0x0a, 0x24, 0x44, 0x4f, 0x54, + 0x53, 0x5f, 0x32, 0x30, 0x32, 0x33, 0x10, 0x30, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, + 0x54, 0x5f, 0x49, 0x44, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x41, 0x4c, 0x5f, 0x32, 0x30, 0x32, 0x34, 0x10, 0x31, 0x2a, 0xbb, 0x02, 0x0a, 0x09, 0x45, 0x52, + 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, 0x45, 0x52, 0x61, + 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x00, + 0x12, 0x16, 0x0a, 0x12, 0x6b, 0x5f, 0x45, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x5f, + 0x43, 0x61, 0x73, 0x75, 0x61, 0x6c, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x6b, 0x5f, 0x45, 0x52, + 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x65, 0x64, 0x10, 0x02, + 0x12, 0x1c, 0x0a, 0x18, 0x6b, 0x5f, 0x45, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x5f, + 0x43, 0x61, 0x73, 0x75, 0x61, 0x6c, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x10, 0x03, 0x12, 0x1c, + 0x0a, 0x18, 0x6b, 0x5f, 0x45, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x52, 0x61, + 0x6e, 0x6b, 0x65, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x10, 0x04, 0x12, 0x1c, 0x0a, 0x18, + 0x6b, 0x5f, 0x45, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x61, 0x73, 0x75, + 0x61, 0x6c, 0x47, 0x6c, 0x69, 0x63, 0x6b, 0x6f, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x6b, 0x5f, + 0x45, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x65, 0x64, + 0x47, 0x6c, 0x69, 0x63, 0x6b, 0x6f, 0x10, 0x06, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, 0x45, 0x52, + 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x78, 0x10, + 0x07, 0x12, 0x1f, 0x0a, 0x1b, 0x6b, 0x5f, 0x45, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, + 0x5f, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, + 0x10, 0x64, 0x12, 0x1e, 0x0a, 0x1a, 0x6b, 0x5f, 0x45, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, + 0x65, 0x5f, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, + 0x10, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x5f, 0x45, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, + 0x65, 0x5f, 0x4d, 0x61, 0x78, 0x10, 0x66, 0x2a, 0xca, 0x02, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, + 0x4c, 0x65, 0x61, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x74, 0x12, 0x14, + 0x0a, 0x10, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x4f, + 0x4e, 0x45, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4c, 0x45, 0x41, + 0x56, 0x45, 0x52, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, + 0x10, 0x01, 0x12, 0x25, 0x0a, 0x21, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, + 0x52, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x5f, 0x54, + 0x4f, 0x4f, 0x5f, 0x4c, 0x4f, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, + 0x41, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x52, 0x5f, 0x41, 0x42, 0x41, 0x4e, 0x44, 0x4f, 0x4e, + 0x45, 0x44, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4c, 0x45, 0x41, + 0x56, 0x45, 0x52, 0x5f, 0x41, 0x46, 0x4b, 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x45, 0x56, 0x45, 0x52, 0x5f, 0x43, - 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x4f, 0x5f, 0x4c, 0x4f, 0x4e, - 0x47, 0x10, 0x06, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4c, 0x45, 0x41, 0x56, - 0x45, 0x52, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x52, 0x45, 0x41, - 0x44, 0x59, 0x5f, 0x55, 0x50, 0x10, 0x07, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, - 0x4c, 0x45, 0x41, 0x56, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x43, 0x4c, 0x49, 0x4e, 0x45, 0x44, 0x10, - 0x08, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x52, - 0x5f, 0x44, 0x45, 0x43, 0x4c, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x55, - 0x45, 0x10, 0x09, 0x2a, 0x9e, 0x02, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x12, 0x21, 0x0a, - 0x1d, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, - 0x12, 0x2b, 0x0a, 0x27, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x59, 0x45, - 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x23, 0x0a, - 0x1f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, - 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, - 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, - 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x23, 0x0a, 0x1f, 0x44, 0x4f, - 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x45, 0x5f, 0x41, 0x42, 0x41, 0x4e, 0x44, 0x4f, 0x4e, 0x45, 0x44, 0x10, 0x04, 0x12, - 0x21, 0x0a, 0x1d, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x49, 0x4e, 0x47, - 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, - 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, - 0x45, 0x44, 0x10, 0x06, 0x2a, 0x8c, 0x01, 0x0a, 0x0d, 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, - 0x5f, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x16, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, - 0x59, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x52, 0x4f, - 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x52, 0x45, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x46, 0x41, 0x4e, - 0x54, 0x41, 0x53, 0x59, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, - 0x54, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x52, - 0x4f, 0x4c, 0x45, 0x5f, 0x4f, 0x46, 0x46, 0x4c, 0x41, 0x4e, 0x45, 0x10, 0x03, 0x12, 0x14, 0x0a, - 0x10, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x4d, 0x49, - 0x44, 0x10, 0x04, 0x2a, 0xa1, 0x05, 0x0a, 0x0f, 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x5f, - 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x19, 0x0a, 0x15, 0x46, 0x41, 0x4e, 0x54, 0x41, - 0x53, 0x59, 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x53, - 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x43, - 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x45, 0x41, 0x54, 0x48, 0x53, 0x10, 0x01, 0x12, 0x16, - 0x0a, 0x12, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x49, 0x4e, - 0x47, 0x5f, 0x43, 0x53, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, - 0x59, 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x47, 0x50, 0x4d, 0x10, 0x03, 0x12, - 0x1f, 0x0a, 0x1b, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x49, - 0x4e, 0x47, 0x5f, 0x54, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x53, 0x10, 0x04, - 0x12, 0x20, 0x0a, 0x1c, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x43, 0x4f, 0x52, - 0x49, 0x4e, 0x47, 0x5f, 0x52, 0x4f, 0x53, 0x48, 0x41, 0x4e, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x53, - 0x10, 0x05, 0x12, 0x2b, 0x0a, 0x27, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x43, - 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x46, 0x49, 0x47, 0x48, 0x54, 0x5f, - 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x12, - 0x21, 0x0a, 0x1d, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x49, - 0x4e, 0x47, 0x5f, 0x57, 0x41, 0x52, 0x44, 0x53, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x54, 0x45, 0x44, - 0x10, 0x07, 0x12, 0x21, 0x0a, 0x1d, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x43, - 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x41, 0x4d, 0x50, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x43, - 0x4b, 0x45, 0x44, 0x10, 0x08, 0x12, 0x21, 0x0a, 0x1d, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, - 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x52, 0x55, 0x4e, 0x45, 0x53, 0x5f, 0x47, - 0x52, 0x41, 0x42, 0x42, 0x45, 0x44, 0x10, 0x09, 0x12, 0x1f, 0x0a, 0x1b, 0x46, 0x41, 0x4e, 0x54, - 0x41, 0x53, 0x59, 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x49, 0x52, 0x53, - 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x4f, 0x44, 0x10, 0x0a, 0x12, 0x19, 0x0a, 0x15, 0x46, 0x41, 0x4e, - 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x55, - 0x4e, 0x53, 0x10, 0x0b, 0x12, 0x1f, 0x0a, 0x1b, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, - 0x53, 0x43, 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x4d, 0x4f, 0x4b, 0x45, 0x53, 0x5f, 0x55, - 0x53, 0x45, 0x44, 0x10, 0x0c, 0x12, 0x28, 0x0a, 0x24, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, - 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x4e, 0x45, 0x55, 0x54, 0x52, 0x41, 0x4c, - 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x53, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x0d, 0x12, - 0x22, 0x0a, 0x1e, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x49, - 0x4e, 0x47, 0x5f, 0x57, 0x41, 0x54, 0x43, 0x48, 0x45, 0x52, 0x53, 0x5f, 0x54, 0x41, 0x4b, 0x45, - 0x4e, 0x10, 0x0e, 0x12, 0x22, 0x0a, 0x1e, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, - 0x43, 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x4c, 0x4f, 0x54, 0x55, 0x53, 0x45, 0x53, 0x5f, 0x47, - 0x41, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x0f, 0x12, 0x23, 0x0a, 0x1f, 0x46, 0x41, 0x4e, 0x54, 0x41, - 0x53, 0x59, 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x4f, 0x52, 0x4d, 0x45, - 0x4e, 0x54, 0x4f, 0x52, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x53, 0x10, 0x10, 0x12, 0x21, 0x0a, 0x1d, - 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x5f, - 0x43, 0x4f, 0x55, 0x52, 0x49, 0x45, 0x52, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x53, 0x10, 0x11, 0x12, - 0x19, 0x0a, 0x15, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x49, - 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x53, 0x10, 0x12, 0x12, 0x1b, 0x0a, 0x17, 0x46, 0x41, - 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x4e, - 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x13, 0x2a, 0x8a, 0x01, 0x0a, 0x12, 0x46, 0x61, 0x6e, 0x74, - 0x61, 0x73, 0x79, 0x5f, 0x54, 0x65, 0x61, 0x6d, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x73, 0x12, 0x15, - 0x0a, 0x11, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x4c, 0x4f, 0x54, 0x5f, 0x4e, - 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, - 0x5f, 0x53, 0x4c, 0x4f, 0x54, 0x5f, 0x43, 0x4f, 0x52, 0x45, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, - 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x4c, 0x4f, 0x54, 0x5f, 0x53, 0x55, 0x50, - 0x50, 0x4f, 0x52, 0x54, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, - 0x59, 0x5f, 0x53, 0x4c, 0x4f, 0x54, 0x5f, 0x41, 0x4e, 0x59, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, - 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x4c, 0x4f, 0x54, 0x5f, 0x42, 0x45, 0x4e, - 0x43, 0x48, 0x10, 0x04, 0x2a, 0xdd, 0x02, 0x0a, 0x16, 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, - 0x5f, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x4d, 0x6f, 0x64, 0x65, 0x12, - 0x1d, 0x0a, 0x19, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x1c, - 0x0a, 0x18, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x4f, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, - 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x53, 0x48, 0x55, 0x46, 0x46, 0x4c, 0x45, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x46, - 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x46, 0x52, 0x45, 0x45, 0x5f, 0x50, 0x49, 0x43, 0x4b, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, - 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x04, 0x12, 0x20, 0x0a, 0x1c, 0x46, 0x41, 0x4e, - 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, - 0x52, 0x45, 0x5f, 0x53, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x10, 0x05, 0x12, 0x1f, 0x0a, 0x1b, 0x46, - 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x50, 0x52, 0x45, 0x5f, 0x44, 0x52, 0x41, 0x46, 0x54, 0x10, 0x06, 0x12, 0x1e, 0x0a, 0x1a, + 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x05, 0x12, 0x28, 0x0a, 0x24, 0x44, 0x4f, + 0x54, 0x41, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x45, 0x56, 0x45, 0x52, 0x5f, + 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x4f, 0x5f, 0x4c, 0x4f, + 0x4e, 0x47, 0x10, 0x06, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4c, 0x45, 0x41, + 0x56, 0x45, 0x52, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x52, 0x45, + 0x41, 0x44, 0x59, 0x5f, 0x55, 0x50, 0x10, 0x07, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, + 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x43, 0x4c, 0x49, 0x4e, 0x45, 0x44, + 0x10, 0x08, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, + 0x52, 0x5f, 0x44, 0x45, 0x43, 0x4c, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, + 0x55, 0x45, 0x10, 0x09, 0x2a, 0x9e, 0x02, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x12, 0x21, + 0x0a, 0x1d, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, + 0x00, 0x12, 0x2b, 0x0a, 0x27, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x59, + 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x23, + 0x0a, 0x1f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, + 0x44, 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, + 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x49, 0x53, + 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x23, 0x0a, 0x1f, 0x44, + 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x42, 0x41, 0x4e, 0x44, 0x4f, 0x4e, 0x45, 0x44, 0x10, 0x04, + 0x12, 0x21, 0x0a, 0x1d, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x49, 0x4e, + 0x47, 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, + 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x41, 0x49, + 0x4c, 0x45, 0x44, 0x10, 0x06, 0x2a, 0x8c, 0x01, 0x0a, 0x0d, 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, + 0x79, 0x5f, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x16, 0x46, 0x41, 0x4e, 0x54, 0x41, + 0x53, 0x59, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x52, + 0x4f, 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x52, 0x45, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x46, 0x41, + 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, + 0x52, 0x54, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, + 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x4f, 0x46, 0x46, 0x4c, 0x41, 0x4e, 0x45, 0x10, 0x03, 0x12, 0x14, + 0x0a, 0x10, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x4d, + 0x49, 0x44, 0x10, 0x04, 0x2a, 0xa1, 0x05, 0x0a, 0x0f, 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, + 0x5f, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x19, 0x0a, 0x15, 0x46, 0x41, 0x4e, 0x54, + 0x41, 0x53, 0x59, 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, + 0x53, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, + 0x43, 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x45, 0x41, 0x54, 0x48, 0x53, 0x10, 0x01, 0x12, + 0x16, 0x0a, 0x12, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x49, + 0x4e, 0x47, 0x5f, 0x43, 0x53, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x46, 0x41, 0x4e, 0x54, 0x41, + 0x53, 0x59, 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x47, 0x50, 0x4d, 0x10, 0x03, + 0x12, 0x1f, 0x0a, 0x1b, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x43, 0x4f, 0x52, + 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x53, 0x10, + 0x04, 0x12, 0x20, 0x0a, 0x1c, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x43, 0x4f, + 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x52, 0x4f, 0x53, 0x48, 0x41, 0x4e, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, + 0x53, 0x10, 0x05, 0x12, 0x2b, 0x0a, 0x27, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, + 0x43, 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x46, 0x49, 0x47, 0x48, 0x54, + 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x06, + 0x12, 0x21, 0x0a, 0x1d, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x43, 0x4f, 0x52, + 0x49, 0x4e, 0x47, 0x5f, 0x57, 0x41, 0x52, 0x44, 0x53, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x54, 0x45, + 0x44, 0x10, 0x07, 0x12, 0x21, 0x0a, 0x1d, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, + 0x43, 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x41, 0x4d, 0x50, 0x53, 0x5f, 0x53, 0x54, 0x41, + 0x43, 0x4b, 0x45, 0x44, 0x10, 0x08, 0x12, 0x21, 0x0a, 0x1d, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, + 0x59, 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x52, 0x55, 0x4e, 0x45, 0x53, 0x5f, + 0x47, 0x52, 0x41, 0x42, 0x42, 0x45, 0x44, 0x10, 0x09, 0x12, 0x1f, 0x0a, 0x1b, 0x46, 0x41, 0x4e, + 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x49, 0x52, + 0x53, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x4f, 0x44, 0x10, 0x0a, 0x12, 0x19, 0x0a, 0x15, 0x46, 0x41, + 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, + 0x55, 0x4e, 0x53, 0x10, 0x0b, 0x12, 0x1f, 0x0a, 0x1b, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, + 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x4d, 0x4f, 0x4b, 0x45, 0x53, 0x5f, + 0x55, 0x53, 0x45, 0x44, 0x10, 0x0c, 0x12, 0x28, 0x0a, 0x24, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, + 0x59, 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x4e, 0x45, 0x55, 0x54, 0x52, 0x41, + 0x4c, 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x53, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x0d, + 0x12, 0x22, 0x0a, 0x1e, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x43, 0x4f, 0x52, + 0x49, 0x4e, 0x47, 0x5f, 0x57, 0x41, 0x54, 0x43, 0x48, 0x45, 0x52, 0x53, 0x5f, 0x54, 0x41, 0x4b, + 0x45, 0x4e, 0x10, 0x0e, 0x12, 0x22, 0x0a, 0x1e, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, + 0x53, 0x43, 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x4c, 0x4f, 0x54, 0x55, 0x53, 0x45, 0x53, 0x5f, + 0x47, 0x41, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x0f, 0x12, 0x23, 0x0a, 0x1f, 0x46, 0x41, 0x4e, 0x54, + 0x41, 0x53, 0x59, 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x4f, 0x52, 0x4d, + 0x45, 0x4e, 0x54, 0x4f, 0x52, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x53, 0x10, 0x10, 0x12, 0x21, 0x0a, + 0x1d, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x49, 0x4e, 0x47, + 0x5f, 0x43, 0x4f, 0x55, 0x52, 0x49, 0x45, 0x52, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x53, 0x10, 0x11, + 0x12, 0x19, 0x0a, 0x15, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x43, 0x4f, 0x52, + 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x53, 0x10, 0x12, 0x12, 0x1b, 0x0a, 0x17, 0x46, + 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x49, + 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x13, 0x2a, 0x8a, 0x01, 0x0a, 0x12, 0x46, 0x61, 0x6e, + 0x74, 0x61, 0x73, 0x79, 0x5f, 0x54, 0x65, 0x61, 0x6d, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x73, 0x12, + 0x15, 0x0a, 0x11, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x4c, 0x4f, 0x54, 0x5f, + 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, + 0x59, 0x5f, 0x53, 0x4c, 0x4f, 0x54, 0x5f, 0x43, 0x4f, 0x52, 0x45, 0x10, 0x01, 0x12, 0x18, 0x0a, + 0x14, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x4c, 0x4f, 0x54, 0x5f, 0x53, 0x55, + 0x50, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x46, 0x41, 0x4e, 0x54, 0x41, + 0x53, 0x59, 0x5f, 0x53, 0x4c, 0x4f, 0x54, 0x5f, 0x41, 0x4e, 0x59, 0x10, 0x03, 0x12, 0x16, 0x0a, + 0x12, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x4c, 0x4f, 0x54, 0x5f, 0x42, 0x45, + 0x4e, 0x43, 0x48, 0x10, 0x04, 0x2a, 0xdd, 0x02, 0x0a, 0x16, 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, + 0x79, 0x5f, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x4d, 0x6f, 0x64, 0x65, + 0x12, 0x1d, 0x0a, 0x19, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x45, 0x4c, 0x45, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, + 0x1c, 0x0a, 0x18, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x4f, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1d, 0x0a, + 0x19, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x53, 0x48, 0x55, 0x46, 0x46, 0x4c, 0x45, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x44, 0x52, 0x41, 0x46, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x07, 0x12, 0x24, 0x0a, 0x20, + 0x4e, 0x5f, 0x46, 0x52, 0x45, 0x45, 0x5f, 0x50, 0x49, 0x43, 0x4b, 0x10, 0x03, 0x12, 0x1b, 0x0a, + 0x17, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x04, 0x12, 0x20, 0x0a, 0x1c, 0x46, 0x41, + 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x50, 0x52, 0x45, 0x5f, 0x53, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x10, 0x05, 0x12, 0x1f, 0x0a, 0x1b, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x52, 0x45, 0x47, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x53, 0x45, 0x41, 0x53, 0x4f, 0x4e, - 0x10, 0x08, 0x12, 0x20, 0x0a, 0x1c, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x45, - 0x4c, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x42, 0x41, 0x53, - 0x45, 0x44, 0x10, 0x09, 0x2a, 0x6a, 0x0a, 0x10, 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x5f, - 0x47, 0x65, 0x6d, 0x5f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x46, 0x41, 0x4e, 0x54, - 0x41, 0x53, 0x59, 0x5f, 0x47, 0x45, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x55, 0x42, - 0x59, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x47, - 0x45, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x41, 0x50, 0x50, 0x48, 0x49, 0x52, 0x45, - 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x47, 0x45, - 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4d, 0x45, 0x52, 0x41, 0x4c, 0x44, 0x10, 0x02, - 0x2a, 0x82, 0x06, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, 0x74, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x74, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x4f, - 0x54, 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x52, 0x65, - 0x67, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x79, 0x10, 0x02, 0x12, - 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, - 0x70, 0x65, 0x5f, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x4f, - 0x54, 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x65, - 0x61, 0x6d, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x10, 0x05, 0x12, - 0x1b, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, - 0x70, 0x65, 0x5f, 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x10, 0x06, 0x12, 0x1b, 0x0a, 0x17, - 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, - 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x10, 0x07, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x4f, 0x54, - 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x6f, 0x6e, - 0x73, 0x6f, 0x6c, 0x65, 0x10, 0x08, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x61, 0x62, 0x10, 0x09, 0x12, - 0x1b, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, - 0x70, 0x65, 0x5f, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x0a, 0x12, 0x1b, 0x0a, 0x17, - 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, - 0x47, 0x61, 0x6d, 0x65, 0x41, 0x6c, 0x6c, 0x10, 0x0b, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x4f, 0x54, - 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x47, 0x61, 0x6d, - 0x65, 0x41, 0x6c, 0x6c, 0x69, 0x65, 0x73, 0x10, 0x0c, 0x12, 0x21, 0x0a, 0x1d, 0x44, 0x4f, 0x54, - 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x47, 0x61, 0x6d, - 0x65, 0x53, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x0d, 0x12, 0x20, 0x0a, 0x1c, - 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, - 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x10, 0x0e, 0x12, 0x18, - 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x5f, 0x43, 0x61, 0x66, 0x65, 0x10, 0x0f, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x10, 0x10, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x50, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x65, 0x10, 0x11, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x50, 0x6f, 0x73, 0x74, 0x47, 0x61, 0x6d, - 0x65, 0x10, 0x12, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x75, 0x70, - 0x10, 0x13, 0x12, 0x21, 0x0a, 0x1d, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x48, 0x4c, 0x54, 0x56, 0x53, 0x70, 0x65, 0x63, 0x74, 0x61, - 0x74, 0x6f, 0x72, 0x10, 0x14, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x10, 0x15, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x72, 0x69, 0x76, 0x69, 0x61, 0x10, - 0x16, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4e, 0x65, 0x77, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x10, 0x17, - 0x12, 0x23, 0x0a, 0x1f, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, - 0x79, 0x70, 0x65, 0x5f, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x61, 0x63, 0x68, - 0x69, 0x6e, 0x67, 0x10, 0x18, 0x2a, 0x90, 0x01, 0x0a, 0x16, 0x45, 0x43, 0x68, 0x61, 0x74, 0x53, + 0x4e, 0x5f, 0x50, 0x52, 0x45, 0x5f, 0x44, 0x52, 0x41, 0x46, 0x54, 0x10, 0x06, 0x12, 0x1e, 0x0a, + 0x1a, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x44, 0x52, 0x41, 0x46, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x07, 0x12, 0x24, 0x0a, + 0x20, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x47, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x53, 0x45, 0x41, 0x53, 0x4f, + 0x4e, 0x10, 0x08, 0x12, 0x20, 0x0a, 0x1c, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x53, + 0x45, 0x4c, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x42, 0x41, + 0x53, 0x45, 0x44, 0x10, 0x09, 0x2a, 0x6a, 0x0a, 0x10, 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, + 0x5f, 0x47, 0x65, 0x6d, 0x5f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x46, 0x41, 0x4e, + 0x54, 0x41, 0x53, 0x59, 0x5f, 0x47, 0x45, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x55, + 0x42, 0x59, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, + 0x47, 0x45, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x41, 0x50, 0x50, 0x48, 0x49, 0x52, + 0x45, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x47, + 0x45, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4d, 0x45, 0x52, 0x41, 0x4c, 0x44, 0x10, + 0x02, 0x2a, 0x82, 0x06, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x74, 0x12, 0x1c, 0x0a, 0x18, 0x44, + 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x52, + 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x4f, 0x54, + 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x79, 0x10, 0x02, + 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x5f, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x44, + 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, + 0x65, 0x61, 0x6d, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x10, 0x05, + 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x5f, 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x10, 0x06, 0x12, 0x1b, 0x0a, + 0x17, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, + 0x5f, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x10, 0x07, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x4f, + 0x54, 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x6f, + 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x10, 0x08, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x61, 0x62, 0x10, 0x09, + 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x5f, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x0a, 0x12, 0x1b, 0x0a, + 0x17, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, + 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x41, 0x6c, 0x6c, 0x10, 0x0b, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x4f, + 0x54, 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x47, 0x61, + 0x6d, 0x65, 0x41, 0x6c, 0x6c, 0x69, 0x65, 0x73, 0x10, 0x0c, 0x12, 0x21, 0x0a, 0x1d, 0x44, 0x4f, + 0x54, 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x47, 0x61, + 0x6d, 0x65, 0x53, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x0d, 0x12, 0x20, 0x0a, + 0x1c, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, + 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x10, 0x0e, 0x12, + 0x18, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x5f, 0x43, 0x61, 0x66, 0x65, 0x10, 0x0f, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x4f, 0x54, + 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x10, 0x10, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x4f, 0x54, + 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x50, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x65, 0x10, 0x11, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x50, 0x6f, 0x73, 0x74, 0x47, 0x61, + 0x6d, 0x65, 0x10, 0x12, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x75, + 0x70, 0x10, 0x13, 0x12, 0x21, 0x0a, 0x1d, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x48, 0x4c, 0x54, 0x56, 0x53, 0x70, 0x65, 0x63, 0x74, + 0x61, 0x74, 0x6f, 0x72, 0x10, 0x14, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x10, 0x15, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x72, 0x69, 0x76, 0x69, 0x61, + 0x10, 0x16, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4e, 0x65, 0x77, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x10, + 0x17, 0x12, 0x23, 0x0a, 0x1f, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x54, 0x79, 0x70, 0x65, 0x5f, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x61, 0x63, + 0x68, 0x69, 0x6e, 0x67, 0x10, 0x18, 0x2a, 0x90, 0x01, 0x0a, 0x16, 0x45, 0x43, 0x68, 0x61, 0x74, + 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, + 0x73, 0x12, 0x21, 0x0a, 0x1d, 0x6b, 0x5f, 0x45, 0x43, 0x68, 0x61, 0x74, 0x53, 0x70, 0x65, 0x63, + 0x69, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x73, 0x5f, 0x4e, 0x6f, + 0x6e, 0x65, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x6b, 0x5f, 0x45, 0x43, 0x68, 0x61, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x73, - 0x12, 0x21, 0x0a, 0x1d, 0x6b, 0x5f, 0x45, 0x43, 0x68, 0x61, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, - 0x61, 0x6c, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x73, 0x5f, 0x4e, 0x6f, 0x6e, - 0x65, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x6b, 0x5f, 0x45, 0x43, 0x68, 0x61, 0x74, 0x53, 0x70, - 0x65, 0x63, 0x69, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x73, 0x5f, - 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x2b, 0x0a, 0x27, 0x6b, - 0x5f, 0x45, 0x43, 0x68, 0x61, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x50, 0x72, 0x69, - 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x73, 0x5f, 0x53, 0x75, 0x70, 0x65, 0x72, 0x4d, 0x6f, 0x64, - 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x02, 0x2a, 0xdd, 0x03, 0x0a, 0x0e, 0x44, 0x4f, 0x54, - 0x41, 0x43, 0x6f, 0x6d, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x74, 0x12, 0x17, 0x0a, 0x13, 0x44, - 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, - 0x4e, 0x45, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, - 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1c, 0x0a, - 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x43, 0x48, 0x41, 0x54, 0x57, 0x48, 0x45, 0x45, 0x4c, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x44, - 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x49, - 0x50, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x10, 0x04, 0x12, 0x1b, 0x0a, 0x17, - 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, - 0x48, 0x4f, 0x57, 0x43, 0x41, 0x53, 0x45, 0x10, 0x05, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x4f, 0x54, - 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x4f, 0x49, 0x43, - 0x45, 0x10, 0x06, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x59, 0x5f, 0x41, 0x42, 0x49, 0x4c, 0x49, - 0x54, 0x59, 0x10, 0x07, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, - 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x10, 0x08, 0x12, 0x1b, - 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x43, 0x4f, 0x41, 0x43, 0x48, 0x49, 0x4e, 0x47, 0x10, 0x09, 0x12, 0x1d, 0x0a, 0x19, 0x44, - 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, - 0x43, 0x4f, 0x4f, 0x4c, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x0a, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, - 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x41, 0x4e, - 0x4b, 0x45, 0x44, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x4d, 0x41, 0x4b, 0x45, 0x10, 0x0b, 0x12, 0x18, - 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x53, 0x10, 0x0c, 0x12, 0x23, 0x0a, 0x1f, 0x44, 0x4f, 0x54, 0x41, - 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x45, 0x57, 0x50, 0x4c, - 0x41, 0x59, 0x45, 0x52, 0x5f, 0x45, 0x58, 0x50, 0x45, 0x52, 0x54, 0x10, 0x0d, 0x12, 0x1a, 0x0a, - 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x43, 0x4f, 0x41, 0x43, 0x48, 0x45, 0x44, 0x10, 0x0e, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x4f, 0x54, - 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x41, 0x50, 0x44, - 0x52, 0x41, 0x57, 0x49, 0x4e, 0x47, 0x10, 0x0f, 0x2a, 0xfa, 0x01, 0x0a, 0x0f, 0x44, 0x4f, 0x54, - 0x41, 0x43, 0x6f, 0x6d, 0x6d, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x74, 0x12, 0x18, 0x0a, 0x14, - 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, - 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, - 0x4f, 0x4d, 0x4d, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x43, 0x4f, 0x4f, 0x4c, 0x44, 0x4f, - 0x57, 0x4e, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, - 0x4d, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x53, 0x10, 0x02, 0x12, - 0x1e, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x4c, 0x45, 0x56, - 0x45, 0x4c, 0x5f, 0x4d, 0x41, 0x50, 0x44, 0x52, 0x41, 0x57, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, - 0x18, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x4c, 0x45, 0x56, - 0x45, 0x4c, 0x5f, 0x43, 0x48, 0x41, 0x54, 0x10, 0x04, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x4f, 0x54, - 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x54, 0x49, 0x50, - 0x50, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, - 0x4f, 0x4d, 0x4d, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x56, 0x4f, 0x49, 0x43, 0x45, 0x10, - 0x06, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x4c, - 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x41, 0x4c, 0x4c, 0x49, 0x45, 0x44, 0x5f, 0x41, 0x42, 0x49, 0x4c, - 0x49, 0x54, 0x59, 0x10, 0x07, 0x2a, 0xbd, 0x01, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x42, 0x65, - 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x74, 0x12, 0x1c, 0x0a, - 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x4c, - 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x44, - 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x4c, 0x45, 0x56, - 0x45, 0x4c, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x45, 0x44, 0x5f, 0x41, 0x4c, 0x4c, 0x4f, 0x57, 0x45, - 0x44, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x45, 0x48, 0x41, - 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x49, - 0x4e, 0x47, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x45, 0x48, - 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x44, 0x52, 0x4f, 0x50, - 0x53, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x45, 0x48, 0x41, - 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x43, 0x4f, 0x41, 0x43, 0x48, - 0x49, 0x4e, 0x47, 0x10, 0x04, 0x2a, 0x84, 0x02, 0x0a, 0x14, 0x45, 0x50, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x43, 0x61, 0x72, 0x64, 0x53, 0x6c, 0x6f, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, - 0x0a, 0x1c, 0x6b, 0x5f, 0x45, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x61, 0x72, 0x64, - 0x53, 0x6c, 0x6f, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0x00, - 0x12, 0x1f, 0x0a, 0x1b, 0x6b, 0x5f, 0x45, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x61, - 0x72, 0x64, 0x53, 0x6c, 0x6f, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x10, - 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x6b, 0x5f, 0x45, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, - 0x61, 0x72, 0x64, 0x53, 0x6c, 0x6f, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x72, 0x6f, 0x70, - 0x68, 0x79, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x6b, 0x5f, 0x45, 0x50, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x43, 0x61, 0x72, 0x64, 0x53, 0x6c, 0x6f, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x49, - 0x74, 0x65, 0x6d, 0x10, 0x03, 0x12, 0x1f, 0x0a, 0x1b, 0x6b, 0x5f, 0x45, 0x50, 0x72, 0x6f, 0x66, + 0x5f, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x2b, 0x0a, 0x27, + 0x6b, 0x5f, 0x45, 0x43, 0x68, 0x61, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x50, 0x72, + 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x73, 0x5f, 0x53, 0x75, 0x70, 0x65, 0x72, 0x4d, 0x6f, + 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x02, 0x2a, 0xdd, 0x03, 0x0a, 0x0e, 0x44, 0x4f, + 0x54, 0x41, 0x43, 0x6f, 0x6d, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x74, 0x12, 0x17, 0x0a, 0x13, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, + 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, + 0x4d, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1c, + 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x43, 0x48, 0x41, 0x54, 0x57, 0x48, 0x45, 0x45, 0x4c, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, + 0x49, 0x50, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, + 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x10, 0x04, 0x12, 0x1b, 0x0a, + 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x53, 0x48, 0x4f, 0x57, 0x43, 0x41, 0x53, 0x45, 0x10, 0x05, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x4f, + 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x4f, 0x49, + 0x43, 0x45, 0x10, 0x06, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, + 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x59, 0x5f, 0x41, 0x42, 0x49, 0x4c, + 0x49, 0x54, 0x59, 0x10, 0x07, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, + 0x4d, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x10, 0x08, 0x12, + 0x1b, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x43, 0x4f, 0x41, 0x43, 0x48, 0x49, 0x4e, 0x47, 0x10, 0x09, 0x12, 0x1d, 0x0a, 0x19, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, + 0x4f, 0x43, 0x4f, 0x4f, 0x4c, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x0a, 0x12, 0x22, 0x0a, 0x1e, 0x44, + 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x41, + 0x4e, 0x4b, 0x45, 0x44, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x4d, 0x41, 0x4b, 0x45, 0x10, 0x0b, 0x12, + 0x18, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x53, 0x10, 0x0c, 0x12, 0x23, 0x0a, 0x1f, 0x44, 0x4f, 0x54, + 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x45, 0x57, 0x50, + 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x45, 0x58, 0x50, 0x45, 0x52, 0x54, 0x10, 0x0d, 0x12, 0x1a, + 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x43, 0x4f, 0x41, 0x43, 0x48, 0x45, 0x44, 0x10, 0x0e, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x4f, + 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x41, 0x50, + 0x44, 0x52, 0x41, 0x57, 0x49, 0x4e, 0x47, 0x10, 0x0f, 0x2a, 0xfa, 0x01, 0x0a, 0x0f, 0x44, 0x4f, + 0x54, 0x41, 0x43, 0x6f, 0x6d, 0x6d, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x74, 0x12, 0x18, 0x0a, + 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, + 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x43, 0x4f, 0x4f, 0x4c, 0x44, + 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, + 0x4d, 0x4d, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x53, 0x10, 0x02, + 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x4c, 0x45, + 0x56, 0x45, 0x4c, 0x5f, 0x4d, 0x41, 0x50, 0x44, 0x52, 0x41, 0x57, 0x49, 0x4e, 0x47, 0x10, 0x03, + 0x12, 0x18, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x4c, 0x45, + 0x56, 0x45, 0x4c, 0x5f, 0x43, 0x48, 0x41, 0x54, 0x10, 0x04, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x4f, + 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x54, 0x49, + 0x50, 0x50, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x56, 0x4f, 0x49, 0x43, 0x45, + 0x10, 0x06, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, + 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x41, 0x4c, 0x4c, 0x49, 0x45, 0x44, 0x5f, 0x41, 0x42, 0x49, + 0x4c, 0x49, 0x54, 0x59, 0x10, 0x07, 0x2a, 0xbd, 0x01, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x42, + 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x74, 0x12, 0x1c, + 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, + 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x4c, 0x45, + 0x56, 0x45, 0x4c, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x45, 0x44, 0x5f, 0x41, 0x4c, 0x4c, 0x4f, 0x57, + 0x45, 0x44, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x45, 0x48, + 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x50, 0x41, 0x55, 0x53, + 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x45, + 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x44, 0x52, 0x4f, + 0x50, 0x53, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x45, 0x48, + 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x43, 0x4f, 0x41, 0x43, + 0x48, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x2a, 0x84, 0x02, 0x0a, 0x14, 0x45, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x43, 0x61, 0x72, 0x64, 0x53, 0x6c, 0x6f, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x20, 0x0a, 0x1c, 0x6b, 0x5f, 0x45, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x61, 0x72, + 0x64, 0x53, 0x6c, 0x6f, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, + 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x6b, 0x5f, 0x45, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, + 0x61, 0x72, 0x64, 0x53, 0x6c, 0x6f, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x53, 0x74, 0x61, 0x74, + 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x6b, 0x5f, 0x45, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x43, 0x61, 0x72, 0x64, 0x53, 0x6c, 0x6f, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x72, 0x6f, + 0x70, 0x68, 0x79, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x6b, 0x5f, 0x45, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x61, 0x72, 0x64, 0x53, 0x6c, 0x6f, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, - 0x48, 0x65, 0x72, 0x6f, 0x10, 0x04, 0x12, 0x23, 0x0a, 0x1f, 0x6b, 0x5f, 0x45, 0x50, 0x72, 0x6f, + 0x49, 0x74, 0x65, 0x6d, 0x10, 0x03, 0x12, 0x1f, 0x0a, 0x1b, 0x6b, 0x5f, 0x45, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x61, 0x72, 0x64, 0x53, 0x6c, 0x6f, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x5f, 0x45, 0x6d, 0x6f, 0x74, 0x69, 0x63, 0x6f, 0x6e, 0x10, 0x05, 0x12, 0x1f, 0x0a, 0x1b, 0x6b, - 0x5f, 0x45, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x61, 0x72, 0x64, 0x53, 0x6c, 0x6f, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x65, 0x61, 0x6d, 0x10, 0x06, 0x2a, 0x95, 0x01, 0x0a, - 0x17, 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x1c, 0x6b, 0x5f, 0x45, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x4f, 0x4b, 0x10, 0x00, 0x12, 0x31, 0x0a, 0x2d, 0x6b, 0x5f, - 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x41, - 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x10, 0x01, 0x12, 0x25, 0x0a, - 0x21, 0x6b, 0x5f, 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x4f, 0x66, 0x66, 0x6c, 0x69, - 0x6e, 0x65, 0x10, 0x02, 0x2a, 0x4f, 0x0a, 0x0c, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, - 0x50, 0x49, 0x43, 0x4b, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, - 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, - 0x5f, 0x43, 0x4d, 0x5f, 0x47, 0x4f, 0x4f, 0x44, 0x5f, 0x47, 0x55, 0x59, 0x53, 0x10, 0x01, 0x12, - 0x14, 0x0a, 0x10, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x42, 0x41, 0x44, 0x5f, 0x47, - 0x55, 0x59, 0x53, 0x10, 0x02, 0x2a, 0xb4, 0x01, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x4c, 0x6f, - 0x77, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x21, 0x0a, 0x1d, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4c, 0x4f, 0x57, 0x5f, 0x50, 0x52, 0x49, - 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x42, 0x41, 0x4e, 0x5f, 0x41, 0x42, 0x41, 0x4e, 0x44, 0x4f, - 0x4e, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4c, 0x4f, 0x57, 0x5f, - 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x42, 0x41, 0x4e, 0x5f, 0x52, 0x45, 0x50, - 0x4f, 0x52, 0x54, 0x53, 0x10, 0x01, 0x12, 0x2b, 0x0a, 0x27, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4c, - 0x4f, 0x57, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x42, 0x41, 0x4e, 0x5f, - 0x53, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x41, 0x52, 0x59, 0x5f, 0x41, 0x42, 0x41, 0x4e, 0x44, 0x4f, - 0x4e, 0x10, 0x02, 0x12, 0x27, 0x0a, 0x23, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4c, 0x4f, 0x57, 0x5f, - 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x42, 0x41, 0x4e, 0x5f, 0x50, 0x52, 0x45, - 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x10, 0x03, 0x2a, 0xa7, 0x01, 0x0a, - 0x13, 0x44, 0x4f, 0x54, 0x41, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x52, 0x65, 0x61, 0x64, 0x79, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x4c, 0x6f, 0x62, 0x62, - 0x79, 0x52, 0x65, 0x61, 0x64, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x55, 0x4e, 0x44, 0x45, - 0x43, 0x4c, 0x41, 0x52, 0x45, 0x44, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x4f, 0x54, 0x41, - 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x52, 0x65, 0x61, 0x64, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, - 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x4f, - 0x54, 0x41, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x52, 0x65, 0x61, 0x64, 0x79, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x5f, 0x44, 0x45, 0x43, 0x4c, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x02, 0x12, 0x28, 0x0a, 0x24, - 0x44, 0x4f, 0x54, 0x41, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x52, 0x65, 0x61, 0x64, 0x79, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x5f, 0x44, 0x45, 0x43, 0x4c, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x51, - 0x55, 0x45, 0x55, 0x45, 0x10, 0x03, 0x2a, 0xba, 0x04, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x4a, - 0x6f, 0x69, 0x6e, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1c, + 0x5f, 0x48, 0x65, 0x72, 0x6f, 0x10, 0x04, 0x12, 0x23, 0x0a, 0x1f, 0x6b, 0x5f, 0x45, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x61, 0x72, 0x64, 0x53, 0x6c, 0x6f, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x5f, 0x45, 0x6d, 0x6f, 0x74, 0x69, 0x63, 0x6f, 0x6e, 0x10, 0x05, 0x12, 0x1f, 0x0a, 0x1b, + 0x6b, 0x5f, 0x45, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x61, 0x72, 0x64, 0x53, 0x6c, + 0x6f, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x65, 0x61, 0x6d, 0x10, 0x06, 0x2a, 0x95, 0x01, + 0x0a, 0x17, 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x1c, 0x6b, 0x5f, 0x45, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x4f, 0x4b, 0x10, 0x00, 0x12, 0x31, 0x0a, 0x2d, 0x6b, + 0x5f, 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, + 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x10, 0x01, 0x12, 0x25, + 0x0a, 0x21, 0x6b, 0x5f, 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x4f, 0x66, 0x66, 0x6c, + 0x69, 0x6e, 0x65, 0x10, 0x02, 0x2a, 0x4f, 0x0a, 0x0c, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, + 0x5f, 0x50, 0x49, 0x43, 0x4b, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, + 0x5f, 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x4f, 0x54, + 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x47, 0x4f, 0x4f, 0x44, 0x5f, 0x47, 0x55, 0x59, 0x53, 0x10, 0x01, + 0x12, 0x14, 0x0a, 0x10, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4d, 0x5f, 0x42, 0x41, 0x44, 0x5f, + 0x47, 0x55, 0x59, 0x53, 0x10, 0x02, 0x2a, 0xb4, 0x01, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x4c, + 0x6f, 0x77, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x61, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4c, 0x4f, 0x57, 0x5f, 0x50, 0x52, + 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x42, 0x41, 0x4e, 0x5f, 0x41, 0x42, 0x41, 0x4e, 0x44, + 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4c, 0x4f, 0x57, + 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x42, 0x41, 0x4e, 0x5f, 0x52, 0x45, + 0x50, 0x4f, 0x52, 0x54, 0x53, 0x10, 0x01, 0x12, 0x2b, 0x0a, 0x27, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x4c, 0x4f, 0x57, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x42, 0x41, 0x4e, + 0x5f, 0x53, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x41, 0x52, 0x59, 0x5f, 0x41, 0x42, 0x41, 0x4e, 0x44, + 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x27, 0x0a, 0x23, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4c, 0x4f, 0x57, + 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x42, 0x41, 0x4e, 0x5f, 0x50, 0x52, + 0x45, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x10, 0x03, 0x2a, 0xa7, 0x01, + 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x52, 0x65, 0x61, 0x64, 0x79, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x4c, 0x6f, 0x62, + 0x62, 0x79, 0x52, 0x65, 0x61, 0x64, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x55, 0x4e, 0x44, + 0x45, 0x43, 0x4c, 0x41, 0x52, 0x45, 0x44, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x4f, 0x54, + 0x41, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x52, 0x65, 0x61, 0x64, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x5f, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x44, + 0x4f, 0x54, 0x41, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x52, 0x65, 0x61, 0x64, 0x79, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x5f, 0x44, 0x45, 0x43, 0x4c, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x02, 0x12, 0x28, 0x0a, + 0x24, 0x44, 0x4f, 0x54, 0x41, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x52, 0x65, 0x61, 0x64, 0x79, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x5f, 0x44, 0x45, 0x43, 0x4c, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x52, 0x45, + 0x51, 0x55, 0x45, 0x55, 0x45, 0x10, 0x03, 0x2a, 0xba, 0x04, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, + 0x4a, 0x6f, 0x69, 0x6e, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, + 0x1c, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x53, + 0x55, 0x4c, 0x54, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x24, 0x0a, + 0x20, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, + 0x54, 0x5f, 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x49, 0x4e, 0x5f, 0x47, 0x41, 0x4d, + 0x45, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, + 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, + 0x4c, 0x4f, 0x42, 0x42, 0x59, 0x10, 0x02, 0x12, 0x27, 0x0a, 0x23, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x49, 0x4e, 0x43, 0x4f, + 0x52, 0x52, 0x45, 0x43, 0x54, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x57, 0x4f, 0x52, 0x44, 0x10, 0x03, + 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x52, 0x45, + 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x44, 0x45, 0x4e, 0x49, + 0x45, 0x44, 0x10, 0x04, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4a, 0x4f, 0x49, + 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x49, 0x43, + 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x12, 0x26, 0x0a, 0x22, 0x44, 0x4f, 0x54, 0x41, + 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x49, 0x4e, 0x43, + 0x4f, 0x52, 0x52, 0x45, 0x43, 0x54, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x06, + 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x52, 0x45, + 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x50, 0x41, 0x52, + 0x54, 0x59, 0x10, 0x07, 0x12, 0x23, 0x0a, 0x1f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4a, 0x4f, 0x49, + 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x4e, 0x4f, 0x5f, 0x4c, 0x4f, 0x42, 0x42, + 0x59, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x08, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x4f, 0x54, + 0x41, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x4c, 0x4f, + 0x42, 0x42, 0x59, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x09, 0x12, 0x32, 0x0a, 0x2e, 0x44, 0x4f, + 0x54, 0x41, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x43, + 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x49, 0x4e, 0x43, 0x4f, 0x52, + 0x52, 0x45, 0x43, 0x54, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x0a, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x55, - 0x4c, 0x54, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x24, 0x0a, 0x20, + 0x4c, 0x54, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x10, 0x0b, 0x12, 0x29, 0x0a, 0x25, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, - 0x5f, 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x49, 0x4e, 0x5f, 0x47, 0x41, 0x4d, 0x45, - 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, - 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x4c, - 0x4f, 0x42, 0x42, 0x59, 0x10, 0x02, 0x12, 0x27, 0x0a, 0x23, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4a, - 0x4f, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x49, 0x4e, 0x43, 0x4f, 0x52, - 0x52, 0x45, 0x43, 0x54, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x57, 0x4f, 0x52, 0x44, 0x10, 0x03, 0x12, - 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x53, - 0x55, 0x4c, 0x54, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x44, 0x45, 0x4e, 0x49, 0x45, - 0x44, 0x10, 0x04, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, - 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x49, 0x43, 0x5f, - 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x12, 0x26, 0x0a, 0x22, 0x44, 0x4f, 0x54, 0x41, 0x5f, - 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x49, 0x4e, 0x43, 0x4f, - 0x52, 0x52, 0x45, 0x43, 0x54, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x12, - 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x53, - 0x55, 0x4c, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x50, 0x41, 0x52, 0x54, - 0x59, 0x10, 0x07, 0x12, 0x23, 0x0a, 0x1f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, - 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x4e, 0x4f, 0x5f, 0x4c, 0x4f, 0x42, 0x42, 0x59, - 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x08, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, - 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x4c, 0x4f, 0x42, - 0x42, 0x59, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x09, 0x12, 0x32, 0x0a, 0x2e, 0x44, 0x4f, 0x54, - 0x41, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x43, 0x55, - 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x49, 0x4e, 0x43, 0x4f, 0x52, 0x52, - 0x45, 0x43, 0x54, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x0a, 0x12, 0x1c, 0x0a, - 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, - 0x54, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x10, 0x0b, 0x12, 0x29, 0x0a, 0x25, 0x44, - 0x4f, 0x54, 0x41, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, - 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x43, 0x4f, 0x4f, 0x4c, - 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x0c, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4a, - 0x4f, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x42, 0x55, 0x53, 0x59, 0x10, - 0x0d, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x52, - 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x4e, 0x4f, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x54, 0x49, 0x4d, - 0x45, 0x10, 0x0e, 0x2a, 0x71, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x53, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, - 0x73, 0x12, 0x27, 0x0a, 0x23, 0x6b, 0x5f, 0x44, 0x4f, 0x54, 0x41, 0x53, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, - 0x73, 0x5f, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x10, 0x00, 0x12, 0x2a, 0x0a, 0x26, 0x6b, 0x5f, - 0x44, 0x4f, 0x54, 0x41, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x41, 0x75, 0x74, 0x6f, 0x6d, - 0x61, 0x74, 0x69, 0x63, 0x10, 0x01, 0x2a, 0xf6, 0x01, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x53, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x29, 0x0a, 0x25, 0x6b, 0x5f, 0x44, 0x4f, 0x54, 0x41, + 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x43, 0x4f, 0x4f, + 0x4c, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x0c, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x42, 0x55, 0x53, 0x59, + 0x10, 0x0d, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, + 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x4e, 0x4f, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x54, 0x49, + 0x4d, 0x45, 0x10, 0x0e, 0x2a, 0x71, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x12, 0x27, 0x0a, 0x23, 0x6b, 0x5f, 0x44, 0x4f, 0x54, 0x41, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x5f, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x10, 0x00, 0x12, 0x2a, 0x0a, 0x26, 0x6b, + 0x5f, 0x44, 0x4f, 0x54, 0x41, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x41, 0x75, 0x74, 0x6f, + 0x6d, 0x61, 0x74, 0x69, 0x63, 0x10, 0x01, 0x2a, 0xf6, 0x01, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, - 0x00, 0x12, 0x2b, 0x0a, 0x27, 0x6b, 0x5f, 0x44, 0x4f, 0x54, 0x41, 0x53, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x5f, 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, 0x69, 0x63, 0x6b, 0x10, 0x01, 0x12, 0x2c, - 0x0a, 0x28, 0x6b, 0x5f, 0x44, 0x4f, 0x54, 0x41, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, - 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x50, 0x69, 0x63, 0x6b, 0x10, 0x02, 0x12, 0x29, 0x0a, 0x25, - 0x6b, 0x5f, 0x44, 0x4f, 0x54, 0x41, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x52, 0x61, - 0x64, 0x69, 0x61, 0x6e, 0x74, 0x10, 0x03, 0x12, 0x26, 0x0a, 0x22, 0x6b, 0x5f, 0x44, 0x4f, 0x54, + 0x79, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x29, 0x0a, 0x25, 0x6b, 0x5f, 0x44, 0x4f, 0x54, 0x41, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x44, 0x69, 0x72, 0x65, 0x10, 0x04, 0x2a, - 0x62, 0x0a, 0x0d, 0x44, 0x4f, 0x54, 0x41, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x56, 0x6f, 0x74, 0x65, - 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x56, 0x6f, 0x74, - 0x65, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x44, - 0x4f, 0x54, 0x41, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x56, 0x6f, 0x74, 0x65, 0x5f, 0x50, 0x4f, 0x53, - 0x49, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x56, 0x6f, 0x74, 0x65, 0x5f, 0x4e, 0x45, 0x47, 0x41, 0x54, 0x49, 0x56, - 0x45, 0x10, 0x02, 0x2a, 0x78, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x4c, 0x6f, 0x62, 0x62, 0x79, - 0x56, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x4f, - 0x54, 0x41, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x56, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x5f, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x4f, - 0x54, 0x41, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x56, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x5f, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x44, + 0x74, 0x79, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x10, 0x00, 0x12, 0x2b, 0x0a, 0x27, 0x6b, 0x5f, 0x44, 0x4f, 0x54, 0x41, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x5f, 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, 0x69, 0x63, 0x6b, 0x10, 0x01, 0x12, + 0x2c, 0x0a, 0x28, 0x6b, 0x5f, 0x44, 0x4f, 0x54, 0x41, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x5f, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x50, 0x69, 0x63, 0x6b, 0x10, 0x02, 0x12, 0x29, 0x0a, + 0x25, 0x6b, 0x5f, 0x44, 0x4f, 0x54, 0x41, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x52, + 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x10, 0x03, 0x12, 0x26, 0x0a, 0x22, 0x6b, 0x5f, 0x44, 0x4f, + 0x54, 0x41, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x44, 0x69, 0x72, 0x65, 0x10, 0x04, + 0x2a, 0x62, 0x0a, 0x0d, 0x44, 0x4f, 0x54, 0x41, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x56, 0x6f, 0x74, + 0x65, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x56, 0x6f, + 0x74, 0x65, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, + 0x44, 0x4f, 0x54, 0x41, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x56, 0x6f, 0x74, 0x65, 0x5f, 0x50, 0x4f, + 0x53, 0x49, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x56, 0x6f, 0x74, 0x65, 0x5f, 0x4e, 0x45, 0x47, 0x41, 0x54, 0x49, + 0x56, 0x45, 0x10, 0x02, 0x2a, 0x78, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x4c, 0x6f, 0x62, 0x62, + 0x79, 0x56, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1e, 0x0a, 0x1a, 0x44, + 0x4f, 0x54, 0x41, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x56, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x5f, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x56, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x5f, 0x55, 0x6e, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x10, 0x02, 0x2a, 0x8b, 0x01, - 0x0a, 0x12, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x4d, 0x52, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x4d, 0x52, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x49, 0x6e, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, - 0x41, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x4d, 0x52, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x10, 0x01, 0x12, 0x2b, - 0x0a, 0x27, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, - 0x4d, 0x52, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x43, 0x6f, - 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, 0x10, 0x03, 0x2a, 0x73, 0x0a, 0x11, 0x45, - 0x44, 0x4f, 0x54, 0x41, 0x4d, 0x4d, 0x52, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1c, 0x0a, 0x18, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x4d, 0x4d, 0x52, 0x42, 0x6f, - 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x1e, - 0x0a, 0x1a, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x4d, 0x4d, 0x52, 0x42, 0x6f, 0x6f, 0x73, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x10, 0x01, 0x12, 0x20, - 0x0a, 0x1c, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x4d, 0x4d, 0x52, 0x42, 0x6f, 0x6f, 0x73, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x10, 0x02, - 0x2a, 0xd0, 0x01, 0x0a, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, - 0x0a, 0x11, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, 0x53, - 0x55, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x4f, 0x50, 0x5f, 0x42, 0x4f, 0x54, 0x53, 0x10, 0x01, 0x12, - 0x1a, 0x0a, 0x16, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, - 0x4d, 0x50, 0x45, 0x54, 0x49, 0x54, 0x49, 0x56, 0x45, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x4d, - 0x41, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x57, 0x45, 0x45, 0x4b, 0x45, 0x4e, - 0x44, 0x5f, 0x54, 0x4f, 0x55, 0x52, 0x4e, 0x45, 0x59, 0x10, 0x05, 0x12, 0x14, 0x0a, 0x10, 0x4d, - 0x41, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x10, - 0x07, 0x12, 0x20, 0x0a, 0x1c, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x43, 0x4f, 0x41, 0x43, 0x48, 0x45, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x4c, 0x4c, 0x45, 0x4e, 0x47, - 0x45, 0x10, 0x0c, 0x12, 0x1e, 0x0a, 0x1a, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, - 0x4c, 0x10, 0x0e, 0x2a, 0x9c, 0x02, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x42, 0x6f, 0x74, 0x44, - 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x4f, 0x54, - 0x5f, 0x44, 0x49, 0x46, 0x46, 0x49, 0x43, 0x55, 0x4c, 0x54, 0x59, 0x5f, 0x50, 0x41, 0x53, 0x53, - 0x49, 0x56, 0x45, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x42, 0x4f, 0x54, 0x5f, 0x44, 0x49, 0x46, - 0x46, 0x49, 0x43, 0x55, 0x4c, 0x54, 0x59, 0x5f, 0x45, 0x41, 0x53, 0x59, 0x10, 0x01, 0x12, 0x19, - 0x0a, 0x15, 0x42, 0x4f, 0x54, 0x5f, 0x44, 0x49, 0x46, 0x46, 0x49, 0x43, 0x55, 0x4c, 0x54, 0x59, - 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x55, 0x4d, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x42, 0x4f, 0x54, - 0x5f, 0x44, 0x49, 0x46, 0x46, 0x49, 0x43, 0x55, 0x4c, 0x54, 0x59, 0x5f, 0x48, 0x41, 0x52, 0x44, - 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x4f, 0x54, 0x5f, 0x44, 0x49, 0x46, 0x46, 0x49, 0x43, - 0x55, 0x4c, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x46, 0x41, 0x49, 0x52, 0x10, 0x04, 0x12, 0x1a, 0x0a, - 0x16, 0x42, 0x4f, 0x54, 0x5f, 0x44, 0x49, 0x46, 0x46, 0x49, 0x43, 0x55, 0x4c, 0x54, 0x59, 0x5f, - 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x05, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x4f, 0x54, - 0x5f, 0x44, 0x49, 0x46, 0x46, 0x49, 0x43, 0x55, 0x4c, 0x54, 0x59, 0x5f, 0x45, 0x58, 0x54, 0x52, - 0x41, 0x31, 0x10, 0x06, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x4f, 0x54, 0x5f, 0x44, 0x49, 0x46, 0x46, - 0x49, 0x43, 0x55, 0x4c, 0x54, 0x59, 0x5f, 0x45, 0x58, 0x54, 0x52, 0x41, 0x32, 0x10, 0x07, 0x12, + 0x74, 0x79, 0x5f, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, + 0x44, 0x4f, 0x54, 0x41, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x56, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x5f, 0x55, 0x6e, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x10, 0x02, 0x2a, 0x8b, + 0x01, 0x0a, 0x12, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x4d, + 0x52, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x4d, 0x52, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x49, 0x6e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x6b, 0x5f, 0x45, 0x44, 0x4f, + 0x54, 0x41, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x4d, 0x52, 0x54, 0x79, 0x70, 0x65, 0x5f, + 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x10, 0x01, 0x12, + 0x2b, 0x0a, 0x27, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x4d, 0x4d, 0x52, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x43, + 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, 0x10, 0x03, 0x2a, 0x73, 0x0a, 0x11, + 0x45, 0x44, 0x4f, 0x54, 0x41, 0x4d, 0x4d, 0x52, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x4d, 0x4d, 0x52, 0x42, + 0x6f, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, + 0x1e, 0x0a, 0x1a, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x4d, 0x4d, 0x52, 0x42, 0x6f, 0x6f, + 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x10, 0x01, 0x12, + 0x20, 0x0a, 0x1c, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x4d, 0x4d, 0x52, 0x42, 0x6f, 0x6f, + 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x10, + 0x02, 0x2a, 0xd0, 0x01, 0x0a, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x15, 0x0a, 0x11, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, + 0x53, 0x55, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x4f, 0x50, 0x5f, 0x42, 0x4f, 0x54, 0x53, 0x10, 0x01, + 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, + 0x4f, 0x4d, 0x50, 0x45, 0x54, 0x49, 0x54, 0x49, 0x56, 0x45, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, + 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x57, 0x45, 0x45, 0x4b, 0x45, + 0x4e, 0x44, 0x5f, 0x54, 0x4f, 0x55, 0x52, 0x4e, 0x45, 0x59, 0x10, 0x05, 0x12, 0x14, 0x0a, 0x10, + 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x10, 0x07, 0x12, 0x20, 0x0a, 0x1c, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x43, 0x4f, 0x41, 0x43, 0x48, 0x45, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x4c, 0x4c, 0x45, 0x4e, + 0x47, 0x45, 0x10, 0x0c, 0x12, 0x1e, 0x0a, 0x1a, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x50, 0x4f, + 0x4f, 0x4c, 0x10, 0x0e, 0x2a, 0x9c, 0x02, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x42, 0x6f, 0x74, + 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x4f, + 0x54, 0x5f, 0x44, 0x49, 0x46, 0x46, 0x49, 0x43, 0x55, 0x4c, 0x54, 0x59, 0x5f, 0x50, 0x41, 0x53, + 0x53, 0x49, 0x56, 0x45, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x42, 0x4f, 0x54, 0x5f, 0x44, 0x49, + 0x46, 0x46, 0x49, 0x43, 0x55, 0x4c, 0x54, 0x59, 0x5f, 0x45, 0x41, 0x53, 0x59, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x4f, 0x54, 0x5f, 0x44, 0x49, 0x46, 0x46, 0x49, 0x43, 0x55, 0x4c, 0x54, - 0x59, 0x5f, 0x45, 0x58, 0x54, 0x52, 0x41, 0x33, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x42, 0x4f, - 0x54, 0x5f, 0x44, 0x49, 0x46, 0x46, 0x49, 0x43, 0x55, 0x4c, 0x54, 0x59, 0x5f, 0x4e, 0x50, 0x58, - 0x10, 0x09, 0x2a, 0xae, 0x06, 0x0a, 0x0d, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, - 0x4d, 0x4f, 0x44, 0x45, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, - 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, - 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4c, 0x41, - 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, - 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x41, 0x43, 0x4b, 0x10, 0x02, + 0x59, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x55, 0x4d, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x42, 0x4f, + 0x54, 0x5f, 0x44, 0x49, 0x46, 0x46, 0x49, 0x43, 0x55, 0x4c, 0x54, 0x59, 0x5f, 0x48, 0x41, 0x52, + 0x44, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x4f, 0x54, 0x5f, 0x44, 0x49, 0x46, 0x46, 0x49, + 0x43, 0x55, 0x4c, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x46, 0x41, 0x49, 0x52, 0x10, 0x04, 0x12, 0x1a, + 0x0a, 0x16, 0x42, 0x4f, 0x54, 0x5f, 0x44, 0x49, 0x46, 0x46, 0x49, 0x43, 0x55, 0x4c, 0x54, 0x59, + 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x05, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x4f, + 0x54, 0x5f, 0x44, 0x49, 0x46, 0x46, 0x49, 0x43, 0x55, 0x4c, 0x54, 0x59, 0x5f, 0x45, 0x58, 0x54, + 0x52, 0x41, 0x31, 0x10, 0x06, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x4f, 0x54, 0x5f, 0x44, 0x49, 0x46, + 0x46, 0x49, 0x43, 0x55, 0x4c, 0x54, 0x59, 0x5f, 0x45, 0x58, 0x54, 0x52, 0x41, 0x32, 0x10, 0x07, + 0x12, 0x19, 0x0a, 0x15, 0x42, 0x4f, 0x54, 0x5f, 0x44, 0x49, 0x46, 0x46, 0x49, 0x43, 0x55, 0x4c, + 0x54, 0x59, 0x5f, 0x45, 0x58, 0x54, 0x52, 0x41, 0x33, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x42, + 0x4f, 0x54, 0x5f, 0x44, 0x49, 0x46, 0x46, 0x49, 0x43, 0x55, 0x4c, 0x54, 0x59, 0x5f, 0x4e, 0x50, + 0x58, 0x10, 0x09, 0x2a, 0xae, 0x06, 0x0a, 0x0d, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, + 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, + 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x18, 0x0a, + 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4c, + 0x41, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x41, 0x43, 0x4b, 0x10, + 0x02, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, + 0x44, 0x45, 0x5f, 0x52, 0x4f, 0x41, 0x4d, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, + 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x45, + 0x41, 0x54, 0x10, 0x04, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, + 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x45, 0x43, 0x52, 0x45, 0x54, 0x5f, 0x53, 0x48, 0x4f, + 0x50, 0x10, 0x05, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, + 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x5f, 0x53, 0x48, 0x4f, 0x50, 0x10, 0x06, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, - 0x45, 0x5f, 0x52, 0x4f, 0x41, 0x4d, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, - 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x45, 0x41, - 0x54, 0x10, 0x04, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, - 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x45, 0x43, 0x52, 0x45, 0x54, 0x5f, 0x53, 0x48, 0x4f, 0x50, - 0x10, 0x05, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, - 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x5f, 0x53, 0x48, 0x4f, 0x50, 0x10, 0x06, 0x12, - 0x16, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, - 0x5f, 0x52, 0x55, 0x4e, 0x45, 0x10, 0x07, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x4f, 0x54, 0x41, 0x5f, - 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x55, 0x53, 0x48, 0x5f, 0x54, 0x4f, - 0x57, 0x45, 0x52, 0x5f, 0x54, 0x4f, 0x50, 0x10, 0x08, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x4f, 0x54, - 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x55, 0x53, 0x48, 0x5f, - 0x54, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x4d, 0x49, 0x44, 0x10, 0x09, 0x12, 0x20, 0x0a, 0x1c, 0x44, - 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x55, 0x53, - 0x48, 0x5f, 0x54, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x42, 0x4f, 0x54, 0x10, 0x0a, 0x12, 0x22, 0x0a, - 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x44, - 0x45, 0x46, 0x45, 0x4e, 0x44, 0x5f, 0x54, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x4f, 0x50, 0x10, - 0x0b, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, - 0x44, 0x45, 0x5f, 0x44, 0x45, 0x46, 0x45, 0x4e, 0x44, 0x5f, 0x54, 0x4f, 0x57, 0x45, 0x52, 0x5f, - 0x4d, 0x49, 0x44, 0x10, 0x0c, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, - 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x44, 0x45, 0x46, 0x45, 0x4e, 0x44, 0x5f, 0x54, 0x4f, - 0x57, 0x45, 0x52, 0x5f, 0x42, 0x4f, 0x54, 0x10, 0x0d, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x4f, 0x54, - 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x41, 0x53, 0x53, 0x45, 0x4d, - 0x42, 0x4c, 0x45, 0x10, 0x0e, 0x12, 0x26, 0x0a, 0x22, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, - 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x41, 0x53, 0x53, 0x45, 0x4d, 0x42, 0x4c, 0x45, 0x5f, - 0x57, 0x49, 0x54, 0x48, 0x5f, 0x48, 0x55, 0x4d, 0x41, 0x4e, 0x53, 0x10, 0x0f, 0x12, 0x1b, 0x0a, - 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x54, - 0x45, 0x41, 0x4d, 0x5f, 0x52, 0x4f, 0x41, 0x4d, 0x10, 0x10, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x4f, - 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x46, 0x41, 0x52, 0x4d, - 0x10, 0x11, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, - 0x4f, 0x44, 0x45, 0x5f, 0x44, 0x45, 0x46, 0x45, 0x4e, 0x44, 0x5f, 0x41, 0x4c, 0x4c, 0x59, 0x10, - 0x12, 0x12, 0x23, 0x0a, 0x1f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, - 0x44, 0x45, 0x5f, 0x45, 0x56, 0x41, 0x53, 0x49, 0x56, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x45, 0x55, - 0x56, 0x45, 0x52, 0x53, 0x10, 0x13, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, - 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x4f, 0x53, 0x48, 0x41, 0x4e, 0x10, 0x14, - 0x12, 0x16, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, - 0x45, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x10, 0x15, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, - 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x57, 0x41, 0x52, 0x44, 0x10, 0x16, - 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, - 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x4e, 0x49, 0x4f, 0x4e, 0x10, 0x17, 0x12, 0x1f, 0x0a, - 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x54, - 0x55, 0x54, 0x4f, 0x52, 0x49, 0x41, 0x4c, 0x5f, 0x42, 0x4f, 0x53, 0x53, 0x10, 0x18, 0x12, 0x18, - 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, - 0x4d, 0x49, 0x4e, 0x49, 0x4f, 0x4e, 0x10, 0x19, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, - 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x4f, 0x53, - 0x54, 0x10, 0x1a, 0x2a, 0xf3, 0x01, 0x0a, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x61, 0x6e, - 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, - 0x4c, 0x41, 0x4e, 0x47, 0x55, 0x41, 0x47, 0x45, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, - 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x4c, 0x41, 0x4e, 0x47, - 0x55, 0x41, 0x47, 0x45, 0x5f, 0x45, 0x4e, 0x47, 0x4c, 0x49, 0x53, 0x48, 0x10, 0x01, 0x12, 0x1a, - 0x0a, 0x16, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x4c, 0x41, 0x4e, 0x47, 0x55, 0x41, 0x47, 0x45, - 0x5f, 0x52, 0x55, 0x53, 0x53, 0x49, 0x41, 0x4e, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x41, - 0x54, 0x43, 0x48, 0x5f, 0x4c, 0x41, 0x4e, 0x47, 0x55, 0x41, 0x47, 0x45, 0x5f, 0x43, 0x48, 0x49, - 0x4e, 0x45, 0x53, 0x45, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, - 0x4c, 0x41, 0x4e, 0x47, 0x55, 0x41, 0x47, 0x45, 0x5f, 0x4b, 0x4f, 0x52, 0x45, 0x41, 0x4e, 0x10, - 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x4c, 0x41, 0x4e, 0x47, 0x55, - 0x41, 0x47, 0x45, 0x5f, 0x53, 0x50, 0x41, 0x4e, 0x49, 0x53, 0x48, 0x10, 0x05, 0x12, 0x1d, 0x0a, - 0x19, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x4c, 0x41, 0x4e, 0x47, 0x55, 0x41, 0x47, 0x45, 0x5f, - 0x50, 0x4f, 0x52, 0x54, 0x55, 0x47, 0x55, 0x45, 0x53, 0x45, 0x10, 0x06, 0x12, 0x1b, 0x0a, 0x17, - 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x4c, 0x41, 0x4e, 0x47, 0x55, 0x41, 0x47, 0x45, 0x5f, 0x45, - 0x4e, 0x47, 0x4c, 0x49, 0x53, 0x48, 0x32, 0x10, 0x07, 0x2a, 0xd8, 0x02, 0x0a, 0x1a, 0x45, 0x54, - 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x61, 0x64, 0x6c, - 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x23, 0x6b, 0x5f, 0x45, 0x54, + 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x45, 0x10, 0x07, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x4f, 0x54, 0x41, + 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x55, 0x53, 0x48, 0x5f, 0x54, + 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x4f, 0x50, 0x10, 0x08, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x4f, + 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x55, 0x53, 0x48, + 0x5f, 0x54, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x4d, 0x49, 0x44, 0x10, 0x09, 0x12, 0x20, 0x0a, 0x1c, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x55, + 0x53, 0x48, 0x5f, 0x54, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x42, 0x4f, 0x54, 0x10, 0x0a, 0x12, 0x22, + 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, + 0x44, 0x45, 0x46, 0x45, 0x4e, 0x44, 0x5f, 0x54, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x4f, 0x50, + 0x10, 0x0b, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, + 0x4f, 0x44, 0x45, 0x5f, 0x44, 0x45, 0x46, 0x45, 0x4e, 0x44, 0x5f, 0x54, 0x4f, 0x57, 0x45, 0x52, + 0x5f, 0x4d, 0x49, 0x44, 0x10, 0x0c, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, + 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x44, 0x45, 0x46, 0x45, 0x4e, 0x44, 0x5f, 0x54, + 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x42, 0x4f, 0x54, 0x10, 0x0d, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x4f, + 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x41, 0x53, 0x53, 0x45, + 0x4d, 0x42, 0x4c, 0x45, 0x10, 0x0e, 0x12, 0x26, 0x0a, 0x22, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, + 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x41, 0x53, 0x53, 0x45, 0x4d, 0x42, 0x4c, 0x45, + 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x48, 0x55, 0x4d, 0x41, 0x4e, 0x53, 0x10, 0x0f, 0x12, 0x1b, + 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, + 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x52, 0x4f, 0x41, 0x4d, 0x10, 0x10, 0x12, 0x16, 0x0a, 0x12, 0x44, + 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x46, 0x41, 0x52, + 0x4d, 0x10, 0x11, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, + 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x44, 0x45, 0x46, 0x45, 0x4e, 0x44, 0x5f, 0x41, 0x4c, 0x4c, 0x59, + 0x10, 0x12, 0x12, 0x23, 0x0a, 0x1f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, + 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x56, 0x41, 0x53, 0x49, 0x56, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x45, + 0x55, 0x56, 0x45, 0x52, 0x53, 0x10, 0x13, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x4f, 0x53, 0x48, 0x41, 0x4e, 0x10, + 0x14, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, + 0x44, 0x45, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x10, 0x15, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x4f, 0x54, + 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x57, 0x41, 0x52, 0x44, 0x10, + 0x16, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, + 0x44, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x4e, 0x49, 0x4f, 0x4e, 0x10, 0x17, 0x12, 0x1f, + 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, + 0x54, 0x55, 0x54, 0x4f, 0x52, 0x49, 0x41, 0x4c, 0x5f, 0x42, 0x4f, 0x53, 0x53, 0x10, 0x18, 0x12, + 0x18, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, + 0x5f, 0x4d, 0x49, 0x4e, 0x49, 0x4f, 0x4e, 0x10, 0x19, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, + 0x41, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x4f, + 0x53, 0x54, 0x10, 0x1a, 0x2a, 0xf3, 0x01, 0x0a, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x61, + 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x41, 0x54, 0x43, 0x48, + 0x5f, 0x4c, 0x41, 0x4e, 0x47, 0x55, 0x41, 0x47, 0x45, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, + 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x4c, 0x41, 0x4e, + 0x47, 0x55, 0x41, 0x47, 0x45, 0x5f, 0x45, 0x4e, 0x47, 0x4c, 0x49, 0x53, 0x48, 0x10, 0x01, 0x12, + 0x1a, 0x0a, 0x16, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x4c, 0x41, 0x4e, 0x47, 0x55, 0x41, 0x47, + 0x45, 0x5f, 0x52, 0x55, 0x53, 0x53, 0x49, 0x41, 0x4e, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x4d, + 0x41, 0x54, 0x43, 0x48, 0x5f, 0x4c, 0x41, 0x4e, 0x47, 0x55, 0x41, 0x47, 0x45, 0x5f, 0x43, 0x48, + 0x49, 0x4e, 0x45, 0x53, 0x45, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x4d, 0x41, 0x54, 0x43, 0x48, + 0x5f, 0x4c, 0x41, 0x4e, 0x47, 0x55, 0x41, 0x47, 0x45, 0x5f, 0x4b, 0x4f, 0x52, 0x45, 0x41, 0x4e, + 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x4c, 0x41, 0x4e, 0x47, + 0x55, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x50, 0x41, 0x4e, 0x49, 0x53, 0x48, 0x10, 0x05, 0x12, 0x1d, + 0x0a, 0x19, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x4c, 0x41, 0x4e, 0x47, 0x55, 0x41, 0x47, 0x45, + 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x55, 0x47, 0x55, 0x45, 0x53, 0x45, 0x10, 0x06, 0x12, 0x1b, 0x0a, + 0x17, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x4c, 0x41, 0x4e, 0x47, 0x55, 0x41, 0x47, 0x45, 0x5f, + 0x45, 0x4e, 0x47, 0x4c, 0x49, 0x53, 0x48, 0x32, 0x10, 0x07, 0x2a, 0xd8, 0x02, 0x0a, 0x1a, 0x45, + 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x61, 0x64, + 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x23, 0x6b, 0x5f, 0x45, + 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x61, 0x64, + 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x10, 0x00, 0x12, 0x27, 0x0a, 0x23, 0x6b, 0x5f, 0x45, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, + 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x5f, 0x4d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x10, 0x01, 0x12, 0x2a, 0x0a, 0x26, 0x6b, + 0x5f, 0x45, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, + 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x45, 0x78, 0x70, 0x69, + 0x72, 0x65, 0x64, 0x4f, 0x4b, 0x10, 0x02, 0x12, 0x2b, 0x0a, 0x27, 0x6b, 0x5f, 0x45, 0x54, 0x6f, + 0x75, 0x72, 0x6e, 0x65, 0x79, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, + 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x53, 0x65, 0x65, 0x6b, 0x69, 0x6e, 0x67, 0x42, + 0x79, 0x65, 0x10, 0x03, 0x12, 0x32, 0x0a, 0x2e, 0x6b, 0x5f, 0x45, 0x54, 0x6f, 0x75, 0x72, 0x6e, + 0x65, 0x79, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x5f, 0x45, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x6c, 0x65, 0x46, 0x6f, 0x72, + 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x10, 0x04, 0x12, 0x2c, 0x0a, 0x1f, 0x6b, 0x5f, 0x45, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x61, 0x64, 0x6c, - 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x10, - 0x00, 0x12, 0x27, 0x0a, 0x23, 0x6b, 0x5f, 0x45, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x51, - 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x5f, 0x4d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x10, 0x01, 0x12, 0x2a, 0x0a, 0x26, 0x6b, 0x5f, - 0x45, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x61, - 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x45, 0x78, 0x70, 0x69, 0x72, - 0x65, 0x64, 0x4f, 0x4b, 0x10, 0x02, 0x12, 0x2b, 0x0a, 0x27, 0x6b, 0x5f, 0x45, 0x54, 0x6f, 0x75, + 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x4e, 0x41, 0x10, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x12, 0x2d, 0x0a, 0x29, 0x6b, 0x5f, 0x45, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, - 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x53, 0x65, 0x65, 0x6b, 0x69, 0x6e, 0x67, 0x42, 0x79, - 0x65, 0x10, 0x03, 0x12, 0x32, 0x0a, 0x2e, 0x6b, 0x5f, 0x45, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x65, - 0x79, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x5f, 0x45, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x52, - 0x65, 0x66, 0x75, 0x6e, 0x64, 0x10, 0x04, 0x12, 0x2c, 0x0a, 0x1f, 0x6b, 0x5f, 0x45, 0x54, 0x6f, - 0x75, 0x72, 0x6e, 0x65, 0x79, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, - 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x4e, 0x41, 0x10, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0x01, 0x12, 0x2d, 0x0a, 0x29, 0x6b, 0x5f, 0x45, 0x54, 0x6f, 0x75, 0x72, - 0x6e, 0x65, 0x79, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x45, 0x78, 0x70, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x6f, - 0x6f, 0x6e, 0x10, 0x65, 0x2a, 0xd7, 0x05, 0x0a, 0x0d, 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, - 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x6b, 0x5f, 0x45, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, - 0x6e, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x6b, 0x5f, 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, - 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x52, 0x61, 0x64, 0x56, 0x69, 0x63, 0x74, 0x6f, 0x72, - 0x79, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x6b, 0x5f, 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, - 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x44, 0x69, 0x72, 0x65, 0x56, 0x69, 0x63, 0x74, 0x6f, - 0x72, 0x79, 0x10, 0x03, 0x12, 0x22, 0x0a, 0x1e, 0x6b, 0x5f, 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x4e, 0x65, 0x75, 0x74, 0x72, 0x61, 0x6c, 0x56, - 0x69, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x10, 0x04, 0x12, 0x20, 0x0a, 0x1c, 0x6b, 0x5f, 0x45, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x4e, 0x6f, 0x54, 0x65, - 0x61, 0x6d, 0x57, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x10, 0x05, 0x12, 0x22, 0x0a, 0x1e, 0x6b, 0x5f, - 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x43, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x31, 0x56, 0x69, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x10, 0x06, 0x12, 0x22, - 0x0a, 0x1e, 0x6b, 0x5f, 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, - 0x65, 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x32, 0x56, 0x69, 0x63, 0x74, 0x6f, 0x72, 0x79, - 0x10, 0x07, 0x12, 0x22, 0x0a, 0x1e, 0x6b, 0x5f, 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x75, - 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x33, 0x56, 0x69, 0x63, - 0x74, 0x6f, 0x72, 0x79, 0x10, 0x08, 0x12, 0x22, 0x0a, 0x1e, 0x6b, 0x5f, 0x45, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x34, 0x56, 0x69, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x10, 0x09, 0x12, 0x22, 0x0a, 0x1e, 0x6b, 0x5f, - 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x43, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x35, 0x56, 0x69, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x10, 0x0a, 0x12, 0x22, - 0x0a, 0x1e, 0x6b, 0x5f, 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, - 0x65, 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x36, 0x56, 0x69, 0x63, 0x74, 0x6f, 0x72, 0x79, - 0x10, 0x0b, 0x12, 0x22, 0x0a, 0x1e, 0x6b, 0x5f, 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x75, - 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x37, 0x56, 0x69, 0x63, - 0x74, 0x6f, 0x72, 0x79, 0x10, 0x0c, 0x12, 0x22, 0x0a, 0x1e, 0x6b, 0x5f, 0x45, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x38, 0x56, 0x69, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x10, 0x0d, 0x12, 0x33, 0x0a, 0x2f, 0x6b, 0x5f, - 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x4e, 0x6f, - 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x64, 0x5f, 0x50, 0x6f, 0x6f, 0x72, 0x4e, 0x65, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x10, 0x40, 0x12, - 0x24, 0x0a, 0x20, 0x6b, 0x5f, 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x75, 0x74, 0x63, 0x6f, - 0x6d, 0x65, 0x5f, 0x4e, 0x6f, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x64, 0x5f, 0x4c, 0x65, 0x61, - 0x76, 0x65, 0x72, 0x10, 0x41, 0x12, 0x29, 0x0a, 0x25, 0x6b, 0x5f, 0x45, 0x4d, 0x61, 0x74, 0x63, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x45, 0x78, 0x70, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x53, + 0x6f, 0x6f, 0x6e, 0x10, 0x65, 0x2a, 0xd7, 0x05, 0x0a, 0x0d, 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x6b, 0x5f, 0x45, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, + 0x77, 0x6e, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x6b, 0x5f, 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x52, 0x61, 0x64, 0x56, 0x69, 0x63, 0x74, 0x6f, + 0x72, 0x79, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x6b, 0x5f, 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x44, 0x69, 0x72, 0x65, 0x56, 0x69, 0x63, 0x74, + 0x6f, 0x72, 0x79, 0x10, 0x03, 0x12, 0x22, 0x0a, 0x1e, 0x6b, 0x5f, 0x45, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x4e, 0x65, 0x75, 0x74, 0x72, 0x61, 0x6c, + 0x56, 0x69, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x10, 0x04, 0x12, 0x20, 0x0a, 0x1c, 0x6b, 0x5f, 0x45, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x4e, 0x6f, 0x54, + 0x65, 0x61, 0x6d, 0x57, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x10, 0x05, 0x12, 0x22, 0x0a, 0x1e, 0x6b, + 0x5f, 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x43, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x31, 0x56, 0x69, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x10, 0x06, 0x12, + 0x22, 0x0a, 0x1e, 0x6b, 0x5f, 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x75, 0x74, 0x63, 0x6f, + 0x6d, 0x65, 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x32, 0x56, 0x69, 0x63, 0x74, 0x6f, 0x72, + 0x79, 0x10, 0x07, 0x12, 0x22, 0x0a, 0x1e, 0x6b, 0x5f, 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, + 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x33, 0x56, 0x69, + 0x63, 0x74, 0x6f, 0x72, 0x79, 0x10, 0x08, 0x12, 0x22, 0x0a, 0x1e, 0x6b, 0x5f, 0x45, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x34, 0x56, 0x69, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x10, 0x09, 0x12, 0x22, 0x0a, 0x1e, 0x6b, + 0x5f, 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x43, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x35, 0x56, 0x69, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x10, 0x0a, 0x12, + 0x22, 0x0a, 0x1e, 0x6b, 0x5f, 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x75, 0x74, 0x63, 0x6f, + 0x6d, 0x65, 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x36, 0x56, 0x69, 0x63, 0x74, 0x6f, 0x72, + 0x79, 0x10, 0x0b, 0x12, 0x22, 0x0a, 0x1e, 0x6b, 0x5f, 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, + 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x37, 0x56, 0x69, + 0x63, 0x74, 0x6f, 0x72, 0x79, 0x10, 0x0c, 0x12, 0x22, 0x0a, 0x1e, 0x6b, 0x5f, 0x45, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x38, 0x56, 0x69, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x10, 0x0d, 0x12, 0x33, 0x0a, 0x2f, 0x6b, + 0x5f, 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x4e, + 0x6f, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x64, 0x5f, 0x50, 0x6f, 0x6f, 0x72, 0x4e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x10, 0x40, + 0x12, 0x24, 0x0a, 0x20, 0x6b, 0x5f, 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x75, 0x74, 0x63, + 0x6f, 0x6d, 0x65, 0x5f, 0x4e, 0x6f, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x64, 0x5f, 0x4c, 0x65, + 0x61, 0x76, 0x65, 0x72, 0x10, 0x41, 0x12, 0x29, 0x0a, 0x25, 0x6b, 0x5f, 0x45, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x4e, 0x6f, 0x74, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x64, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x72, 0x61, 0x73, 0x68, 0x10, + 0x42, 0x12, 0x2a, 0x0a, 0x26, 0x6b, 0x5f, 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x75, 0x74, + 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x4e, 0x6f, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x64, 0x5f, 0x4e, + 0x65, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x10, 0x43, 0x12, 0x26, 0x0a, + 0x22, 0x6b, 0x5f, 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, + 0x5f, 0x4e, 0x6f, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x64, 0x5f, 0x43, 0x61, 0x6e, 0x63, 0x65, + 0x6c, 0x65, 0x64, 0x10, 0x44, 0x12, 0x28, 0x0a, 0x24, 0x6b, 0x5f, 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x4e, 0x6f, 0x74, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x64, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x72, 0x61, 0x73, 0x68, 0x10, 0x42, - 0x12, 0x2a, 0x0a, 0x26, 0x6b, 0x5f, 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x75, 0x74, 0x63, - 0x6f, 0x6d, 0x65, 0x5f, 0x4e, 0x6f, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x64, 0x5f, 0x4e, 0x65, - 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x10, 0x43, 0x12, 0x26, 0x0a, 0x22, - 0x6b, 0x5f, 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f, - 0x4e, 0x6f, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x64, 0x5f, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, - 0x65, 0x64, 0x10, 0x44, 0x12, 0x28, 0x0a, 0x24, 0x6b, 0x5f, 0x45, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x4e, 0x6f, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x64, 0x5f, 0x53, 0x75, 0x73, 0x70, 0x69, 0x63, 0x69, 0x6f, 0x75, 0x73, 0x10, 0x45, 0x2a, 0x86, - 0x01, 0x0a, 0x09, 0x45, 0x4c, 0x61, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, - 0x4c, 0x41, 0x4e, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, - 0x4e, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x4e, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x53, 0x41, 0x46, 0x45, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x4c, 0x41, 0x4e, 0x45, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x46, 0x46, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x4c, 0x41, - 0x4e, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x49, 0x44, 0x10, 0x03, 0x12, 0x14, 0x0a, - 0x10, 0x4c, 0x41, 0x4e, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4a, 0x55, 0x4e, 0x47, 0x4c, - 0x45, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x4e, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x52, 0x4f, 0x41, 0x4d, 0x10, 0x05, 0x2a, 0xd6, 0x04, 0x0a, 0x0a, 0x45, 0x42, 0x61, 0x64, - 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x6b, 0x5f, 0x45, 0x42, 0x61, 0x64, - 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x00, - 0x12, 0x1c, 0x0a, 0x18, 0x6b, 0x5f, 0x45, 0x42, 0x61, 0x64, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x5f, 0x54, 0x49, 0x37, 0x5f, 0x4d, 0x69, 0x64, 0x77, 0x65, 0x65, 0x6b, 0x10, 0x01, 0x12, 0x1b, - 0x0a, 0x17, 0x6b, 0x5f, 0x45, 0x42, 0x61, 0x64, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, - 0x49, 0x37, 0x5f, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x73, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x6b, - 0x5f, 0x45, 0x42, 0x61, 0x64, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x49, 0x37, 0x5f, - 0x41, 0x6c, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x6b, 0x5f, - 0x45, 0x42, 0x61, 0x64, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x49, 0x38, 0x5f, 0x4d, - 0x69, 0x64, 0x77, 0x65, 0x65, 0x6b, 0x10, 0x04, 0x12, 0x1b, 0x0a, 0x17, 0x6b, 0x5f, 0x45, 0x42, - 0x61, 0x64, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x49, 0x38, 0x5f, 0x46, 0x69, 0x6e, - 0x61, 0x6c, 0x73, 0x10, 0x05, 0x12, 0x1d, 0x0a, 0x19, 0x6b, 0x5f, 0x45, 0x42, 0x61, 0x64, 0x67, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x49, 0x38, 0x5f, 0x41, 0x6c, 0x6c, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x10, 0x06, 0x12, 0x15, 0x0a, 0x11, 0x6b, 0x5f, 0x45, 0x42, 0x61, 0x64, 0x67, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x49, 0x31, 0x30, 0x10, 0x07, 0x12, 0x22, 0x0a, 0x1e, 0x6b, - 0x5f, 0x45, 0x42, 0x61, 0x64, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x49, 0x31, 0x31, - 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x6f, 0x66, 0x66, 0x73, 0x44, 0x61, 0x79, 0x31, 0x10, 0x08, 0x12, - 0x22, 0x0a, 0x1e, 0x6b, 0x5f, 0x45, 0x42, 0x61, 0x64, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, - 0x54, 0x49, 0x31, 0x31, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x6f, 0x66, 0x66, 0x73, 0x44, 0x61, 0x79, - 0x32, 0x10, 0x09, 0x12, 0x22, 0x0a, 0x1e, 0x6b, 0x5f, 0x45, 0x42, 0x61, 0x64, 0x67, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x5f, 0x54, 0x49, 0x31, 0x31, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x6f, 0x66, 0x66, - 0x73, 0x44, 0x61, 0x79, 0x33, 0x10, 0x0a, 0x12, 0x22, 0x0a, 0x1e, 0x6b, 0x5f, 0x45, 0x42, 0x61, - 0x64, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x49, 0x31, 0x31, 0x5f, 0x50, 0x6c, 0x61, - 0x79, 0x6f, 0x66, 0x66, 0x73, 0x44, 0x61, 0x79, 0x34, 0x10, 0x0b, 0x12, 0x23, 0x0a, 0x1f, 0x6b, - 0x5f, 0x45, 0x42, 0x61, 0x64, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x49, 0x31, 0x31, - 0x5f, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x73, 0x57, 0x65, 0x65, 0x6b, 0x65, 0x6e, 0x64, 0x10, 0x0c, + 0x65, 0x64, 0x5f, 0x53, 0x75, 0x73, 0x70, 0x69, 0x63, 0x69, 0x6f, 0x75, 0x73, 0x10, 0x45, 0x2a, + 0x86, 0x01, 0x0a, 0x09, 0x45, 0x4c, 0x61, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, + 0x11, 0x4c, 0x41, 0x4e, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, + 0x57, 0x4e, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x4e, 0x45, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x53, 0x41, 0x46, 0x45, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x4c, 0x41, 0x4e, 0x45, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x46, 0x46, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x4c, + 0x41, 0x4e, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x49, 0x44, 0x10, 0x03, 0x12, 0x14, + 0x0a, 0x10, 0x4c, 0x41, 0x4e, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4a, 0x55, 0x4e, 0x47, + 0x4c, 0x45, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x4e, 0x45, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x52, 0x4f, 0x41, 0x4d, 0x10, 0x05, 0x2a, 0xd6, 0x04, 0x0a, 0x0a, 0x45, 0x42, 0x61, + 0x64, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x6b, 0x5f, 0x45, 0x42, 0x61, + 0x64, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, + 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x6b, 0x5f, 0x45, 0x42, 0x61, 0x64, 0x67, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x5f, 0x54, 0x49, 0x37, 0x5f, 0x4d, 0x69, 0x64, 0x77, 0x65, 0x65, 0x6b, 0x10, 0x01, 0x12, + 0x1b, 0x0a, 0x17, 0x6b, 0x5f, 0x45, 0x42, 0x61, 0x64, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, + 0x54, 0x49, 0x37, 0x5f, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x73, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, + 0x6b, 0x5f, 0x45, 0x42, 0x61, 0x64, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x49, 0x37, + 0x5f, 0x41, 0x6c, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x6b, + 0x5f, 0x45, 0x42, 0x61, 0x64, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x49, 0x38, 0x5f, + 0x4d, 0x69, 0x64, 0x77, 0x65, 0x65, 0x6b, 0x10, 0x04, 0x12, 0x1b, 0x0a, 0x17, 0x6b, 0x5f, 0x45, + 0x42, 0x61, 0x64, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x49, 0x38, 0x5f, 0x46, 0x69, + 0x6e, 0x61, 0x6c, 0x73, 0x10, 0x05, 0x12, 0x1d, 0x0a, 0x19, 0x6b, 0x5f, 0x45, 0x42, 0x61, 0x64, + 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x49, 0x38, 0x5f, 0x41, 0x6c, 0x6c, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x10, 0x06, 0x12, 0x15, 0x0a, 0x11, 0x6b, 0x5f, 0x45, 0x42, 0x61, 0x64, 0x67, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x49, 0x31, 0x30, 0x10, 0x07, 0x12, 0x22, 0x0a, 0x1e, + 0x6b, 0x5f, 0x45, 0x42, 0x61, 0x64, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x49, 0x31, + 0x31, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x6f, 0x66, 0x66, 0x73, 0x44, 0x61, 0x79, 0x31, 0x10, 0x08, 0x12, 0x22, 0x0a, 0x1e, 0x6b, 0x5f, 0x45, 0x42, 0x61, 0x64, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x5f, 0x54, 0x49, 0x31, 0x32, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x6f, 0x66, 0x66, 0x73, 0x44, 0x61, - 0x79, 0x31, 0x10, 0x0d, 0x12, 0x22, 0x0a, 0x1e, 0x6b, 0x5f, 0x45, 0x42, 0x61, 0x64, 0x67, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x49, 0x31, 0x32, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x6f, 0x66, - 0x66, 0x73, 0x44, 0x61, 0x79, 0x32, 0x10, 0x0e, 0x12, 0x22, 0x0a, 0x1e, 0x6b, 0x5f, 0x45, 0x42, - 0x61, 0x64, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x49, 0x31, 0x32, 0x5f, 0x50, 0x6c, - 0x61, 0x79, 0x6f, 0x66, 0x66, 0x73, 0x44, 0x61, 0x79, 0x33, 0x10, 0x0f, 0x12, 0x23, 0x0a, 0x1f, + 0x5f, 0x54, 0x49, 0x31, 0x31, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x6f, 0x66, 0x66, 0x73, 0x44, 0x61, + 0x79, 0x32, 0x10, 0x09, 0x12, 0x22, 0x0a, 0x1e, 0x6b, 0x5f, 0x45, 0x42, 0x61, 0x64, 0x67, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x49, 0x31, 0x31, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x6f, 0x66, + 0x66, 0x73, 0x44, 0x61, 0x79, 0x33, 0x10, 0x0a, 0x12, 0x22, 0x0a, 0x1e, 0x6b, 0x5f, 0x45, 0x42, + 0x61, 0x64, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x49, 0x31, 0x31, 0x5f, 0x50, 0x6c, + 0x61, 0x79, 0x6f, 0x66, 0x66, 0x73, 0x44, 0x61, 0x79, 0x34, 0x10, 0x0b, 0x12, 0x23, 0x0a, 0x1f, 0x6b, 0x5f, 0x45, 0x42, 0x61, 0x64, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x49, 0x31, - 0x32, 0x5f, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x73, 0x57, 0x65, 0x65, 0x6b, 0x65, 0x6e, 0x64, 0x10, - 0x10, 0x12, 0x1d, 0x0a, 0x19, 0x6b, 0x5f, 0x45, 0x42, 0x61, 0x64, 0x67, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x5f, 0x54, 0x49, 0x31, 0x32, 0x5f, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x10, 0x11, - 0x2a, 0xd4, 0x01, 0x0a, 0x0d, 0x45, 0x4c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x4c, - 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, - 0x55, 0x42, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x4c, 0x45, - 0x41, 0x47, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x55, 0x42, 0x4d, - 0x49, 0x54, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x4c, 0x45, 0x41, 0x47, 0x55, - 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x45, - 0x44, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x04, 0x12, - 0x1b, 0x0a, 0x17, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, - 0x5f, 0x43, 0x4f, 0x4e, 0x43, 0x4c, 0x55, 0x44, 0x45, 0x44, 0x10, 0x05, 0x12, 0x19, 0x0a, 0x15, - 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x45, - 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x06, 0x2a, 0xb2, 0x01, 0x0a, 0x0d, 0x45, 0x4c, 0x65, 0x61, - 0x67, 0x75, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x45, 0x41, - 0x47, 0x55, 0x45, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x45, 0x54, - 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x52, 0x45, 0x47, - 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x41, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x4c, 0x45, 0x41, 0x47, - 0x55, 0x45, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x41, 0x10, 0x02, 0x12, 0x15, - 0x0a, 0x11, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x4f, 0x4e, 0x5f, - 0x57, 0x45, 0x55, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, - 0x52, 0x45, 0x47, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x45, 0x55, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, - 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x48, - 0x49, 0x4e, 0x41, 0x10, 0x05, 0x12, 0x15, 0x0a, 0x11, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, - 0x52, 0x45, 0x47, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x41, 0x10, 0x06, 0x2a, 0xac, 0x02, 0x0a, - 0x0b, 0x45, 0x4c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x54, 0x69, 0x65, 0x72, 0x12, 0x15, 0x0a, 0x11, - 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x54, 0x49, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x45, - 0x54, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x54, 0x49, - 0x45, 0x52, 0x5f, 0x41, 0x4d, 0x41, 0x54, 0x45, 0x55, 0x52, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, - 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x54, 0x49, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x46, - 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x4c, 0x45, - 0x41, 0x47, 0x55, 0x45, 0x5f, 0x54, 0x49, 0x45, 0x52, 0x5f, 0x4d, 0x49, 0x4e, 0x4f, 0x52, 0x10, - 0x03, 0x12, 0x15, 0x0a, 0x11, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x54, 0x49, 0x45, 0x52, - 0x5f, 0x4d, 0x41, 0x4a, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x1d, 0x0a, 0x19, 0x4c, 0x45, 0x41, 0x47, - 0x55, 0x45, 0x5f, 0x54, 0x49, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x54, - 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x05, 0x12, 0x1d, 0x0a, 0x19, 0x4c, 0x45, 0x41, 0x47, 0x55, - 0x45, 0x5f, 0x54, 0x49, 0x45, 0x52, 0x5f, 0x44, 0x50, 0x43, 0x5f, 0x51, 0x55, 0x41, 0x4c, 0x49, - 0x46, 0x49, 0x45, 0x52, 0x10, 0x06, 0x12, 0x24, 0x0a, 0x20, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, - 0x5f, 0x54, 0x49, 0x45, 0x52, 0x5f, 0x44, 0x50, 0x43, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, - 0x5f, 0x51, 0x55, 0x41, 0x4c, 0x49, 0x46, 0x49, 0x45, 0x52, 0x10, 0x07, 0x12, 0x1a, 0x0a, 0x16, - 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x54, 0x49, 0x45, 0x52, 0x5f, 0x44, 0x50, 0x43, 0x5f, - 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x10, 0x08, 0x12, 0x21, 0x0a, 0x1d, 0x4c, 0x45, 0x41, 0x47, - 0x55, 0x45, 0x5f, 0x54, 0x49, 0x45, 0x52, 0x5f, 0x44, 0x50, 0x43, 0x5f, 0x4c, 0x45, 0x41, 0x47, - 0x55, 0x45, 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x53, 0x10, 0x09, 0x2a, 0x7c, 0x0a, 0x13, 0x45, - 0x4c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x54, 0x69, 0x65, 0x72, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, - 0x72, 0x79, 0x12, 0x20, 0x0a, 0x1c, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x54, 0x49, 0x45, - 0x52, 0x5f, 0x43, 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, 0x59, 0x5f, 0x41, 0x4d, 0x41, 0x54, 0x45, - 0x55, 0x52, 0x10, 0x01, 0x12, 0x25, 0x0a, 0x21, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x54, - 0x49, 0x45, 0x52, 0x5f, 0x43, 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, 0x59, 0x5f, 0x50, 0x52, 0x4f, - 0x46, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x4c, - 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x54, 0x49, 0x45, 0x52, 0x5f, 0x43, 0x41, 0x54, 0x45, 0x47, - 0x4f, 0x52, 0x59, 0x5f, 0x44, 0x50, 0x43, 0x10, 0x03, 0x2a, 0x5b, 0x0a, 0x0f, 0x45, 0x4c, 0x65, - 0x61, 0x67, 0x75, 0x65, 0x44, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x15, - 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x44, 0x49, 0x56, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x5f, - 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x4c, 0x45, 0x41, 0x47, 0x55, - 0x45, 0x5f, 0x44, 0x49, 0x56, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x10, 0x01, 0x12, 0x16, - 0x0a, 0x12, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x44, 0x49, 0x56, 0x49, 0x53, 0x49, 0x4f, - 0x4e, 0x5f, 0x49, 0x49, 0x10, 0x02, 0x2a, 0xab, 0x01, 0x0a, 0x18, 0x45, 0x4c, 0x65, 0x61, 0x67, - 0x75, 0x65, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x18, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x42, 0x52, - 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, - 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x42, 0x52, 0x4f, 0x41, - 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x53, 0x54, 0x45, 0x41, 0x4d, 0x10, 0x01, 0x12, 0x1b, 0x0a, - 0x17, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, - 0x54, 0x5f, 0x54, 0x57, 0x49, 0x54, 0x43, 0x48, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x4c, 0x45, - 0x41, 0x47, 0x55, 0x45, 0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x59, - 0x4f, 0x55, 0x54, 0x55, 0x42, 0x45, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x4c, 0x45, 0x41, 0x47, - 0x55, 0x45, 0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x4f, 0x54, 0x48, - 0x45, 0x52, 0x10, 0x64, 0x2a, 0x86, 0x01, 0x0a, 0x0c, 0x45, 0x4c, 0x65, 0x61, 0x67, 0x75, 0x65, - 0x50, 0x68, 0x61, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, - 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x23, 0x0a, - 0x1f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x52, 0x45, - 0x47, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x5f, 0x51, 0x55, 0x41, 0x4c, 0x49, 0x46, 0x49, 0x45, 0x52, - 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x50, 0x48, 0x41, - 0x53, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x47, 0x45, 0x10, 0x02, - 0x12, 0x1b, 0x0a, 0x17, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x50, 0x48, 0x41, 0x53, 0x45, - 0x5f, 0x4d, 0x41, 0x49, 0x4e, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x10, 0x03, 0x2a, 0xda, 0x0e, - 0x0a, 0x12, 0x45, 0x4c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x1b, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, - 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x56, 0x41, - 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, - 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x41, - 0x47, 0x55, 0x45, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, - 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x45, 0x44, 0x49, 0x54, 0x10, - 0x02, 0x12, 0x25, 0x0a, 0x21, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, - 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, - 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x03, 0x12, 0x28, 0x0a, 0x24, 0x4c, 0x45, 0x41, 0x47, - 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x5f, 0x41, 0x44, 0x44, - 0x10, 0x04, 0x12, 0x2b, 0x0a, 0x27, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, - 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, - 0x5f, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x56, 0x4f, 0x4b, 0x45, 0x10, 0x05, 0x12, - 0x2c, 0x0a, 0x28, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, - 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x44, - 0x4d, 0x49, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x4d, 0x4f, 0x54, 0x45, 0x10, 0x06, 0x12, 0x29, 0x0a, - 0x25, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x45, - 0x41, 0x4d, 0x5f, 0x41, 0x44, 0x44, 0x10, 0x07, 0x12, 0x2c, 0x0a, 0x28, 0x4c, 0x45, 0x41, 0x47, - 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x52, 0x45, - 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x08, 0x12, 0x2c, 0x0a, 0x28, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, + 0x31, 0x5f, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x73, 0x57, 0x65, 0x65, 0x6b, 0x65, 0x6e, 0x64, 0x10, + 0x0c, 0x12, 0x22, 0x0a, 0x1e, 0x6b, 0x5f, 0x45, 0x42, 0x61, 0x64, 0x67, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x5f, 0x54, 0x49, 0x31, 0x32, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x6f, 0x66, 0x66, 0x73, 0x44, + 0x61, 0x79, 0x31, 0x10, 0x0d, 0x12, 0x22, 0x0a, 0x1e, 0x6b, 0x5f, 0x45, 0x42, 0x61, 0x64, 0x67, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x49, 0x31, 0x32, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x6f, + 0x66, 0x66, 0x73, 0x44, 0x61, 0x79, 0x32, 0x10, 0x0e, 0x12, 0x22, 0x0a, 0x1e, 0x6b, 0x5f, 0x45, + 0x42, 0x61, 0x64, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x49, 0x31, 0x32, 0x5f, 0x50, + 0x6c, 0x61, 0x79, 0x6f, 0x66, 0x66, 0x73, 0x44, 0x61, 0x79, 0x33, 0x10, 0x0f, 0x12, 0x23, 0x0a, + 0x1f, 0x6b, 0x5f, 0x45, 0x42, 0x61, 0x64, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x49, + 0x31, 0x32, 0x5f, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x73, 0x57, 0x65, 0x65, 0x6b, 0x65, 0x6e, 0x64, + 0x10, 0x10, 0x12, 0x1d, 0x0a, 0x19, 0x6b, 0x5f, 0x45, 0x42, 0x61, 0x64, 0x67, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x5f, 0x54, 0x49, 0x31, 0x32, 0x5f, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x10, + 0x11, 0x2a, 0xd4, 0x01, 0x0a, 0x0d, 0x45, 0x4c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, + 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, + 0x53, 0x55, 0x42, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x4c, + 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x55, 0x42, + 0x4d, 0x49, 0x54, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x4c, 0x45, 0x41, 0x47, + 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, + 0x45, 0x44, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x04, + 0x12, 0x1b, 0x0a, 0x17, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, + 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x43, 0x4c, 0x55, 0x44, 0x45, 0x44, 0x10, 0x05, 0x12, 0x19, 0x0a, + 0x15, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, + 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x06, 0x2a, 0xb2, 0x01, 0x0a, 0x0d, 0x45, 0x4c, 0x65, + 0x61, 0x67, 0x75, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x45, + 0x41, 0x47, 0x55, 0x45, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x45, + 0x54, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x52, 0x45, + 0x47, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x41, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x4c, 0x45, 0x41, + 0x47, 0x55, 0x45, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x41, 0x10, 0x02, 0x12, + 0x15, 0x0a, 0x11, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x4f, 0x4e, + 0x5f, 0x57, 0x45, 0x55, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, + 0x5f, 0x52, 0x45, 0x47, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x45, 0x55, 0x10, 0x04, 0x12, 0x17, 0x0a, + 0x13, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x4f, 0x4e, 0x5f, 0x43, + 0x48, 0x49, 0x4e, 0x41, 0x10, 0x05, 0x12, 0x15, 0x0a, 0x11, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, + 0x5f, 0x52, 0x45, 0x47, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x41, 0x10, 0x06, 0x2a, 0xac, 0x02, + 0x0a, 0x0b, 0x45, 0x4c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x54, 0x69, 0x65, 0x72, 0x12, 0x15, 0x0a, + 0x11, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x54, 0x49, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, + 0x45, 0x54, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x54, + 0x49, 0x45, 0x52, 0x5f, 0x41, 0x4d, 0x41, 0x54, 0x45, 0x55, 0x52, 0x10, 0x01, 0x12, 0x1c, 0x0a, + 0x18, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x54, 0x49, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x4f, + 0x46, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x4c, + 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x54, 0x49, 0x45, 0x52, 0x5f, 0x4d, 0x49, 0x4e, 0x4f, 0x52, + 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x54, 0x49, 0x45, + 0x52, 0x5f, 0x4d, 0x41, 0x4a, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x1d, 0x0a, 0x19, 0x4c, 0x45, 0x41, + 0x47, 0x55, 0x45, 0x5f, 0x54, 0x49, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x05, 0x12, 0x1d, 0x0a, 0x19, 0x4c, 0x45, 0x41, 0x47, + 0x55, 0x45, 0x5f, 0x54, 0x49, 0x45, 0x52, 0x5f, 0x44, 0x50, 0x43, 0x5f, 0x51, 0x55, 0x41, 0x4c, + 0x49, 0x46, 0x49, 0x45, 0x52, 0x10, 0x06, 0x12, 0x24, 0x0a, 0x20, 0x4c, 0x45, 0x41, 0x47, 0x55, + 0x45, 0x5f, 0x54, 0x49, 0x45, 0x52, 0x5f, 0x44, 0x50, 0x43, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, + 0x45, 0x5f, 0x51, 0x55, 0x41, 0x4c, 0x49, 0x46, 0x49, 0x45, 0x52, 0x10, 0x07, 0x12, 0x1a, 0x0a, + 0x16, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x54, 0x49, 0x45, 0x52, 0x5f, 0x44, 0x50, 0x43, + 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x10, 0x08, 0x12, 0x21, 0x0a, 0x1d, 0x4c, 0x45, 0x41, + 0x47, 0x55, 0x45, 0x5f, 0x54, 0x49, 0x45, 0x52, 0x5f, 0x44, 0x50, 0x43, 0x5f, 0x4c, 0x45, 0x41, + 0x47, 0x55, 0x45, 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x53, 0x10, 0x09, 0x2a, 0x7c, 0x0a, 0x13, + 0x45, 0x4c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x54, 0x69, 0x65, 0x72, 0x43, 0x61, 0x74, 0x65, 0x67, + 0x6f, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x1c, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x54, 0x49, + 0x45, 0x52, 0x5f, 0x43, 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, 0x59, 0x5f, 0x41, 0x4d, 0x41, 0x54, + 0x45, 0x55, 0x52, 0x10, 0x01, 0x12, 0x25, 0x0a, 0x21, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, + 0x54, 0x49, 0x45, 0x52, 0x5f, 0x43, 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, 0x59, 0x5f, 0x50, 0x52, + 0x4f, 0x46, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, + 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x54, 0x49, 0x45, 0x52, 0x5f, 0x43, 0x41, 0x54, 0x45, + 0x47, 0x4f, 0x52, 0x59, 0x5f, 0x44, 0x50, 0x43, 0x10, 0x03, 0x2a, 0x5b, 0x0a, 0x0f, 0x45, 0x4c, + 0x65, 0x61, 0x67, 0x75, 0x65, 0x44, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, + 0x15, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x44, 0x49, 0x56, 0x49, 0x53, 0x49, 0x4f, 0x4e, + 0x5f, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x4c, 0x45, 0x41, 0x47, + 0x55, 0x45, 0x5f, 0x44, 0x49, 0x56, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x10, 0x01, 0x12, + 0x16, 0x0a, 0x12, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x44, 0x49, 0x56, 0x49, 0x53, 0x49, + 0x4f, 0x4e, 0x5f, 0x49, 0x49, 0x10, 0x02, 0x2a, 0xab, 0x01, 0x0a, 0x18, 0x45, 0x4c, 0x65, 0x61, + 0x67, 0x75, 0x65, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x18, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x42, + 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, + 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x42, 0x52, 0x4f, + 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x53, 0x54, 0x45, 0x41, 0x4d, 0x10, 0x01, 0x12, 0x1b, + 0x0a, 0x17, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, + 0x53, 0x54, 0x5f, 0x54, 0x57, 0x49, 0x54, 0x43, 0x48, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x4c, + 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, + 0x59, 0x4f, 0x55, 0x54, 0x55, 0x42, 0x45, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x4c, 0x45, 0x41, + 0x47, 0x55, 0x45, 0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x4f, 0x54, + 0x48, 0x45, 0x52, 0x10, 0x64, 0x2a, 0x86, 0x01, 0x0a, 0x0c, 0x45, 0x4c, 0x65, 0x61, 0x67, 0x75, + 0x65, 0x50, 0x68, 0x61, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, + 0x5f, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x23, + 0x0a, 0x1f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x52, + 0x45, 0x47, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x5f, 0x51, 0x55, 0x41, 0x4c, 0x49, 0x46, 0x49, 0x45, + 0x52, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x50, 0x48, + 0x41, 0x53, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x47, 0x45, 0x10, + 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x50, 0x48, 0x41, 0x53, + 0x45, 0x5f, 0x4d, 0x41, 0x49, 0x4e, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x10, 0x03, 0x2a, 0xda, + 0x0e, 0x0a, 0x12, 0x45, 0x4c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x1b, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, + 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x56, + 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, - 0x41, 0x47, 0x55, 0x45, 0x5f, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, - 0x45, 0x44, 0x10, 0x09, 0x12, 0x2c, 0x0a, 0x28, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, - 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x41, 0x47, - 0x55, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x45, 0x44, - 0x10, 0x0a, 0x12, 0x28, 0x0a, 0x24, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, + 0x41, 0x47, 0x55, 0x45, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x23, 0x0a, + 0x1f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x45, 0x44, 0x49, 0x54, + 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, - 0x5f, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x44, 0x10, 0x0b, 0x12, 0x2d, 0x0a, 0x29, + 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x03, 0x12, 0x28, 0x0a, 0x24, 0x4c, 0x45, 0x41, + 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x5f, 0x41, 0x44, + 0x44, 0x10, 0x04, 0x12, 0x2b, 0x0a, 0x27, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, + 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, + 0x45, 0x5f, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x56, 0x4f, 0x4b, 0x45, 0x10, 0x05, + 0x12, 0x2c, 0x0a, 0x28, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, + 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, + 0x44, 0x4d, 0x49, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x4d, 0x4f, 0x54, 0x45, 0x10, 0x06, 0x12, 0x29, + 0x0a, 0x25, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x52, + 0x45, 0x41, 0x4d, 0x5f, 0x41, 0x44, 0x44, 0x10, 0x07, 0x12, 0x2c, 0x0a, 0x28, 0x4c, 0x45, 0x41, + 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x52, + 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x08, 0x12, 0x2c, 0x0a, 0x28, 0x4c, 0x45, 0x41, 0x47, 0x55, + 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, + 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x55, 0x50, 0x44, 0x41, + 0x54, 0x45, 0x44, 0x10, 0x09, 0x12, 0x2c, 0x0a, 0x28, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, + 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x41, + 0x47, 0x55, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x45, + 0x44, 0x10, 0x0a, 0x12, 0x28, 0x0a, 0x24, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, + 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, + 0x45, 0x5f, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x44, 0x10, 0x0b, 0x12, 0x2d, 0x0a, + 0x29, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, + 0x50, 0x52, 0x49, 0x5a, 0x45, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x10, 0x0c, 0x12, 0x32, 0x0a, 0x2e, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x50, - 0x52, 0x49, 0x5a, 0x45, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x10, 0x0c, 0x12, 0x32, 0x0a, 0x2e, 0x4c, - 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x50, 0x52, - 0x49, 0x5a, 0x45, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x10, 0x0d, 0x12, - 0x35, 0x0a, 0x31, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, - 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x52, 0x45, - 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x50, 0x52, 0x49, 0x5a, 0x45, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, - 0x49, 0x54, 0x45, 0x4d, 0x10, 0x0e, 0x12, 0x2a, 0x0a, 0x26, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, - 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, - 0x41, 0x47, 0x55, 0x45, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, - 0x10, 0x0f, 0x12, 0x28, 0x0a, 0x24, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, + 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x50, + 0x52, 0x49, 0x5a, 0x45, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x10, 0x0d, + 0x12, 0x35, 0x0a, 0x31, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, + 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x52, + 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x50, 0x52, 0x49, 0x5a, 0x45, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, + 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x10, 0x0e, 0x12, 0x2a, 0x0a, 0x26, 0x4c, 0x45, 0x41, 0x47, 0x55, + 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, + 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x52, + 0x54, 0x10, 0x0f, 0x12, 0x28, 0x0a, 0x24, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, + 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, + 0x45, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0x10, 0x12, 0x2f, 0x0a, + 0x2b, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x5f, + 0x49, 0x4e, 0x56, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x10, 0x11, 0x12, 0x32, + 0x0a, 0x2e, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x52, 0x45, 0x4d, + 0x4f, 0x56, 0x45, 0x5f, 0x49, 0x4e, 0x56, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x54, 0x45, 0x41, 0x4d, + 0x10, 0x12, 0x12, 0x2d, 0x0a, 0x29, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, - 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0x10, 0x12, 0x2f, 0x0a, 0x2b, - 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x49, - 0x4e, 0x56, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x10, 0x11, 0x12, 0x32, 0x0a, - 0x2e, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, - 0x56, 0x45, 0x5f, 0x49, 0x4e, 0x56, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x10, - 0x12, 0x12, 0x2d, 0x0a, 0x29, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x44, 0x10, + 0x13, 0x12, 0x2a, 0x0a, 0x26, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x44, 0x10, 0x13, - 0x12, 0x2a, 0x0a, 0x26, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, - 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x53, - 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x45, 0x44, 0x49, 0x54, 0x10, 0x14, 0x12, 0x28, 0x0a, 0x24, - 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, - 0x53, 0x57, 0x41, 0x50, 0x10, 0x15, 0x12, 0x28, 0x0a, 0x24, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, - 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, - 0x44, 0x45, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x64, - 0x12, 0x29, 0x0a, 0x25, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, - 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x47, 0x52, 0x4f, 0x55, - 0x50, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x10, 0x65, 0x12, 0x2a, 0x0a, 0x26, 0x4c, - 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x44, 0x44, - 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x10, 0x66, 0x12, 0x2d, 0x0a, 0x29, 0x4c, 0x45, 0x41, 0x47, 0x55, + 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x45, 0x44, 0x49, 0x54, 0x10, 0x14, 0x12, 0x28, 0x0a, + 0x24, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x54, 0x45, 0x41, 0x4d, + 0x5f, 0x53, 0x57, 0x41, 0x50, 0x10, 0x15, 0x12, 0x28, 0x0a, 0x24, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, - 0x4f, 0x44, 0x45, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x5f, - 0x54, 0x45, 0x41, 0x4d, 0x10, 0x67, 0x12, 0x2f, 0x0a, 0x2b, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, - 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, - 0x44, 0x45, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x41, 0x44, 0x56, 0x41, - 0x4e, 0x43, 0x49, 0x4e, 0x47, 0x10, 0x68, 0x12, 0x26, 0x0a, 0x22, 0x4c, 0x45, 0x41, 0x47, 0x55, + 0x4f, 0x44, 0x45, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, + 0x64, 0x12, 0x29, 0x0a, 0x25, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, + 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x47, 0x52, 0x4f, + 0x55, 0x50, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x10, 0x65, 0x12, 0x2a, 0x0a, 0x26, + 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x44, + 0x44, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x10, 0x66, 0x12, 0x2d, 0x0a, 0x29, 0x4c, 0x45, 0x41, 0x47, + 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x4e, 0x4f, 0x44, 0x45, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, + 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x10, 0x67, 0x12, 0x2f, 0x0a, 0x2b, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, - 0x4f, 0x44, 0x45, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x45, 0x44, 0x49, 0x54, 0x10, 0x69, 0x12, - 0x2a, 0x0a, 0x26, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, - 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x47, 0x52, 0x4f, 0x55, 0x50, - 0x5f, 0x50, 0x4f, 0x50, 0x55, 0x4c, 0x41, 0x54, 0x45, 0x10, 0x6a, 0x12, 0x2b, 0x0a, 0x27, 0x4c, - 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x43, 0x4f, 0x4d, - 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x6b, 0x12, 0x39, 0x0a, 0x35, 0x4c, 0x45, 0x41, 0x47, + 0x4f, 0x44, 0x45, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x41, 0x44, 0x56, + 0x41, 0x4e, 0x43, 0x49, 0x4e, 0x47, 0x10, 0x68, 0x12, 0x26, 0x0a, 0x22, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x4e, 0x4f, 0x44, 0x45, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x53, 0x45, - 0x43, 0x4f, 0x4e, 0x44, 0x41, 0x52, 0x59, 0x5f, 0x41, 0x44, 0x56, 0x41, 0x4e, 0x43, 0x49, 0x4e, - 0x47, 0x10, 0x6c, 0x12, 0x38, 0x0a, 0x34, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, - 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x47, - 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x54, 0x45, 0x52, 0x54, 0x49, 0x41, 0x52, - 0x59, 0x5f, 0x41, 0x44, 0x56, 0x41, 0x4e, 0x43, 0x49, 0x4e, 0x47, 0x10, 0x6d, 0x12, 0x24, 0x0a, - 0x1f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, - 0x10, 0xc8, 0x01, 0x12, 0x25, 0x0a, 0x20, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, - 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, - 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x10, 0xc9, 0x01, 0x12, 0x28, 0x0a, 0x23, 0x4c, 0x45, - 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x43, 0x52, 0x45, 0x41, 0x54, - 0x45, 0x10, 0xca, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, - 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x44, 0x45, - 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x10, 0xcb, 0x01, 0x12, 0x2b, 0x0a, 0x26, + 0x4e, 0x4f, 0x44, 0x45, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x45, 0x44, 0x49, 0x54, 0x10, 0x69, + 0x12, 0x2a, 0x0a, 0x26, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, + 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x47, 0x52, 0x4f, 0x55, + 0x50, 0x5f, 0x50, 0x4f, 0x50, 0x55, 0x4c, 0x41, 0x54, 0x45, 0x10, 0x6a, 0x12, 0x2b, 0x0a, 0x27, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x53, 0x45, 0x52, - 0x49, 0x45, 0x53, 0x5f, 0x49, 0x44, 0x10, 0xcc, 0x01, 0x12, 0x2b, 0x0a, 0x26, 0x4c, 0x45, 0x41, + 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x43, 0x4f, + 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x6b, 0x12, 0x39, 0x0a, 0x35, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x41, 0x44, 0x56, 0x41, 0x4e, 0x43, - 0x49, 0x4e, 0x47, 0x10, 0xcd, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, - 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, - 0x44, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x10, 0xce, 0x01, 0x12, 0x2d, - 0x0a, 0x28, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, - 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, - 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0xcf, 0x01, 0x12, 0x27, 0x0a, - 0x22, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, - 0x54, 0x45, 0x44, 0x10, 0xd0, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, - 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, - 0x44, 0x45, 0x5f, 0x45, 0x44, 0x49, 0x54, 0x10, 0xd1, 0x01, 0x2a, 0xe7, 0x0b, 0x0a, 0x14, 0x44, - 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x53, 0x12, 0x23, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, - 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, - 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x44, 0x41, 0x4d, 0x41, 0x47, - 0x45, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, - 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x48, 0x45, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, - 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x4d, - 0x4f, 0x44, 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, 0x41, 0x44, 0x44, 0x10, 0x02, 0x12, 0x22, 0x0a, - 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, - 0x4d, 0x4f, 0x44, 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, - 0x03, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, - 0x4c, 0x4f, 0x47, 0x5f, 0x44, 0x45, 0x41, 0x54, 0x48, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x44, - 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x41, 0x42, - 0x49, 0x4c, 0x49, 0x54, 0x59, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, - 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x10, 0x06, - 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, - 0x4f, 0x47, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x07, 0x12, 0x17, 0x0a, - 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, - 0x47, 0x4f, 0x4c, 0x44, 0x10, 0x08, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, - 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x45, 0x10, 0x09, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, - 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x58, 0x50, 0x10, 0x0a, 0x12, 0x1b, 0x0a, 0x17, - 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x50, - 0x55, 0x52, 0x43, 0x48, 0x41, 0x53, 0x45, 0x10, 0x0b, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x4f, 0x54, - 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x42, 0x55, 0x59, 0x42, - 0x41, 0x43, 0x4b, 0x10, 0x0c, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, - 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, - 0x54, 0x52, 0x49, 0x47, 0x47, 0x45, 0x52, 0x10, 0x0d, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x4f, 0x54, - 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x59, - 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x53, 0x10, 0x0e, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x4f, 0x54, - 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x4d, 0x55, 0x4c, 0x54, - 0x49, 0x4b, 0x49, 0x4c, 0x4c, 0x10, 0x0f, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, - 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x53, 0x54, - 0x52, 0x45, 0x41, 0x4b, 0x10, 0x10, 0x12, 0x25, 0x0a, 0x21, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, - 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x42, 0x55, - 0x49, 0x4c, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x10, 0x11, 0x12, 0x1e, 0x0a, - 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, - 0x46, 0x49, 0x52, 0x53, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x4f, 0x44, 0x10, 0x12, 0x12, 0x27, 0x0a, - 0x23, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, - 0x4d, 0x4f, 0x44, 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x43, 0x4b, 0x5f, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x10, 0x13, 0x12, 0x25, 0x0a, 0x21, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, - 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x4e, 0x45, 0x55, 0x54, 0x52, 0x41, 0x4c, - 0x5f, 0x43, 0x41, 0x4d, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x43, 0x4b, 0x10, 0x14, 0x12, 0x1e, 0x0a, - 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, - 0x50, 0x49, 0x43, 0x4b, 0x55, 0x50, 0x5f, 0x52, 0x55, 0x4e, 0x45, 0x10, 0x15, 0x12, 0x25, 0x0a, - 0x21, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, - 0x52, 0x45, 0x56, 0x45, 0x41, 0x4c, 0x45, 0x44, 0x5f, 0x49, 0x4e, 0x56, 0x49, 0x53, 0x49, 0x42, - 0x4c, 0x45, 0x10, 0x16, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, - 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x53, 0x41, 0x56, 0x45, - 0x44, 0x10, 0x17, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, - 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x4f, - 0x52, 0x45, 0x44, 0x10, 0x18, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, - 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x4c, 0x45, 0x56, - 0x45, 0x4c, 0x55, 0x50, 0x10, 0x19, 0x12, 0x23, 0x0a, 0x1f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, - 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4c, 0x45, 0x5f, - 0x48, 0x45, 0x41, 0x4c, 0x5f, 0x41, 0x4c, 0x4c, 0x59, 0x10, 0x1a, 0x12, 0x20, 0x0a, 0x1c, 0x44, - 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x45, 0x4e, - 0x44, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x10, 0x1b, 0x12, 0x24, 0x0a, - 0x20, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, - 0x49, 0x4e, 0x54, 0x45, 0x52, 0x52, 0x55, 0x50, 0x54, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, - 0x4c, 0x10, 0x1c, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, - 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x41, 0x4c, 0x4c, 0x49, 0x45, 0x44, 0x5f, 0x47, 0x4f, 0x4c, - 0x44, 0x10, 0x1d, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, - 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x41, 0x45, 0x47, 0x49, 0x53, 0x5f, 0x54, 0x41, 0x4b, 0x45, - 0x4e, 0x10, 0x1e, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, - 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x5f, 0x44, 0x41, 0x4d, 0x41, 0x47, - 0x45, 0x10, 0x1f, 0x12, 0x2c, 0x0a, 0x28, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, - 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x50, 0x48, 0x59, 0x53, 0x49, 0x43, 0x41, 0x4c, 0x5f, 0x44, - 0x41, 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x50, 0x52, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x45, 0x44, 0x10, - 0x20, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, - 0x4c, 0x4f, 0x47, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x53, 0x55, 0x4d, 0x4d, 0x4f, 0x4e, 0x45, - 0x44, 0x10, 0x21, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, - 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x41, 0x54, 0x54, 0x41, 0x43, 0x4b, 0x5f, 0x45, 0x56, 0x41, - 0x44, 0x45, 0x10, 0x22, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, - 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x52, 0x45, 0x45, 0x5f, 0x43, 0x55, 0x54, 0x10, - 0x23, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, - 0x4c, 0x4f, 0x47, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x46, 0x55, 0x4c, 0x5f, 0x53, - 0x43, 0x41, 0x4e, 0x10, 0x24, 0x12, 0x21, 0x0a, 0x1d, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, - 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x45, 0x4e, 0x44, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, - 0x53, 0x54, 0x52, 0x45, 0x41, 0x4b, 0x10, 0x25, 0x12, 0x24, 0x0a, 0x20, 0x44, 0x4f, 0x54, 0x41, - 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x42, 0x4c, 0x4f, 0x4f, 0x44, - 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x10, 0x26, 0x12, 0x22, + 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x53, + 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x41, 0x52, 0x59, 0x5f, 0x41, 0x44, 0x56, 0x41, 0x4e, 0x43, 0x49, + 0x4e, 0x47, 0x10, 0x6c, 0x12, 0x38, 0x0a, 0x34, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, + 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x44, 0x45, + 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x54, 0x45, 0x52, 0x54, 0x49, 0x41, + 0x52, 0x59, 0x5f, 0x41, 0x44, 0x56, 0x41, 0x4e, 0x43, 0x49, 0x4e, 0x47, 0x10, 0x6d, 0x12, 0x24, + 0x0a, 0x1f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, + 0x45, 0x10, 0xc8, 0x01, 0x12, 0x25, 0x0a, 0x20, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, + 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x44, 0x45, + 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x10, 0xc9, 0x01, 0x12, 0x28, 0x0a, 0x23, 0x4c, + 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x43, 0x52, 0x45, 0x41, + 0x54, 0x45, 0x10, 0xca, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, + 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x44, + 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x10, 0xcb, 0x01, 0x12, 0x2b, 0x0a, + 0x26, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x53, 0x45, + 0x52, 0x49, 0x45, 0x53, 0x5f, 0x49, 0x44, 0x10, 0xcc, 0x01, 0x12, 0x2b, 0x0a, 0x26, 0x4c, 0x45, + 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x41, 0x44, 0x56, 0x41, 0x4e, + 0x43, 0x49, 0x4e, 0x47, 0x10, 0xcd, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x4c, 0x45, 0x41, 0x47, 0x55, + 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, + 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x10, 0xce, 0x01, 0x12, + 0x2d, 0x0a, 0x28, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, + 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x4d, 0x41, 0x54, 0x43, + 0x48, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0xcf, 0x01, 0x12, 0x27, + 0x0a, 0x22, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, + 0x45, 0x54, 0x45, 0x44, 0x10, 0xd0, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x4c, 0x45, 0x41, 0x47, 0x55, + 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, + 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x44, 0x49, 0x54, 0x10, 0xd1, 0x01, 0x2a, 0xe7, 0x0b, 0x0a, 0x14, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x53, 0x12, 0x23, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, + 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, + 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x44, 0x41, 0x4d, 0x41, + 0x47, 0x45, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, + 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x48, 0x45, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x1f, 0x0a, + 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, + 0x4d, 0x4f, 0x44, 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, 0x41, 0x44, 0x44, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, - 0x5f, 0x43, 0x52, 0x49, 0x54, 0x49, 0x43, 0x41, 0x4c, 0x5f, 0x44, 0x41, 0x4d, 0x41, 0x47, 0x45, - 0x10, 0x27, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, - 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x53, 0x50, 0x45, 0x4c, 0x4c, 0x5f, 0x41, 0x42, 0x53, 0x4f, 0x52, - 0x42, 0x10, 0x28, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, - 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x54, 0x45, 0x4c, 0x45, 0x50, - 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x29, 0x12, 0x23, 0x0a, 0x1f, 0x44, 0x4f, 0x54, 0x41, 0x5f, - 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x5f, 0x45, - 0x41, 0x54, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x10, 0x2a, 0x12, 0x26, 0x0a, 0x22, - 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x4e, - 0x45, 0x55, 0x54, 0x52, 0x41, 0x4c, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x45, 0x41, 0x52, 0x4e, - 0x45, 0x44, 0x10, 0x2b, 0x2a, 0x75, 0x0a, 0x10, 0x45, 0x44, 0x50, 0x43, 0x46, 0x61, 0x76, 0x6f, - 0x72, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x46, 0x41, 0x56, 0x4f, - 0x52, 0x49, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x10, 0x00, 0x12, - 0x18, 0x0a, 0x14, 0x46, 0x41, 0x56, 0x4f, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x46, 0x41, 0x56, - 0x4f, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x10, - 0x02, 0x12, 0x18, 0x0a, 0x14, 0x46, 0x41, 0x56, 0x4f, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x10, 0x03, 0x2a, 0xa8, 0x04, 0x0a, 0x14, - 0x45, 0x44, 0x50, 0x43, 0x50, 0x75, 0x73, 0x68, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x24, 0x44, 0x50, 0x43, 0x5f, 0x50, 0x55, 0x53, 0x48, - 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x41, - 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x2a, - 0x0a, 0x26, 0x44, 0x50, 0x43, 0x5f, 0x50, 0x55, 0x53, 0x48, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, - 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x4c, - 0x45, 0x46, 0x54, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x10, 0x0a, 0x12, 0x2c, 0x0a, 0x28, 0x44, 0x50, - 0x43, 0x5f, 0x50, 0x55, 0x53, 0x48, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x45, - 0x44, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x10, 0x0b, 0x12, 0x35, 0x0a, 0x31, 0x44, 0x50, 0x43, 0x5f, - 0x50, 0x55, 0x53, 0x48, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x45, 0x44, 0x5f, - 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x41, 0x53, 0x5f, 0x43, 0x4f, 0x41, 0x43, 0x48, 0x10, 0x0c, 0x12, - 0x33, 0x0a, 0x2f, 0x44, 0x50, 0x43, 0x5f, 0x50, 0x55, 0x53, 0x48, 0x5f, 0x4e, 0x4f, 0x54, 0x49, + 0x5f, 0x4d, 0x4f, 0x44, 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, + 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, + 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x44, 0x45, 0x41, 0x54, 0x48, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x41, + 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, + 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x10, + 0x06, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, + 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x07, 0x12, 0x17, + 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, + 0x5f, 0x47, 0x4f, 0x4c, 0x44, 0x10, 0x08, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x45, 0x10, 0x09, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, + 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x58, 0x50, 0x10, 0x0a, 0x12, 0x1b, 0x0a, + 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, + 0x50, 0x55, 0x52, 0x43, 0x48, 0x41, 0x53, 0x45, 0x10, 0x0b, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x4f, + 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x42, 0x55, 0x59, + 0x42, 0x41, 0x43, 0x4b, 0x10, 0x0c, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, + 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, + 0x5f, 0x54, 0x52, 0x49, 0x47, 0x47, 0x45, 0x52, 0x10, 0x0d, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x4f, + 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x50, 0x4c, 0x41, + 0x59, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x53, 0x10, 0x0e, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x4f, + 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x4d, 0x55, 0x4c, + 0x54, 0x49, 0x4b, 0x49, 0x4c, 0x4c, 0x10, 0x0f, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, + 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x53, + 0x54, 0x52, 0x45, 0x41, 0x4b, 0x10, 0x10, 0x12, 0x25, 0x0a, 0x21, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x42, + 0x55, 0x49, 0x4c, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x10, 0x11, 0x12, 0x1e, + 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, + 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x4f, 0x44, 0x10, 0x12, 0x12, 0x27, + 0x0a, 0x23, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, + 0x5f, 0x4d, 0x4f, 0x44, 0x49, 0x46, 0x49, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x43, 0x4b, 0x5f, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x10, 0x13, 0x12, 0x25, 0x0a, 0x21, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x4e, 0x45, 0x55, 0x54, 0x52, 0x41, + 0x4c, 0x5f, 0x43, 0x41, 0x4d, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x43, 0x4b, 0x10, 0x14, 0x12, 0x1e, + 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, + 0x5f, 0x50, 0x49, 0x43, 0x4b, 0x55, 0x50, 0x5f, 0x52, 0x55, 0x4e, 0x45, 0x10, 0x15, 0x12, 0x25, + 0x0a, 0x21, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, + 0x5f, 0x52, 0x45, 0x56, 0x45, 0x41, 0x4c, 0x45, 0x44, 0x5f, 0x49, 0x4e, 0x56, 0x49, 0x53, 0x49, + 0x42, 0x4c, 0x45, 0x10, 0x16, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, + 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x53, 0x41, 0x56, + 0x45, 0x44, 0x10, 0x17, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, + 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x5f, 0x52, 0x45, 0x53, 0x54, + 0x4f, 0x52, 0x45, 0x44, 0x10, 0x18, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, + 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x4c, 0x45, + 0x56, 0x45, 0x4c, 0x55, 0x50, 0x10, 0x19, 0x12, 0x23, 0x0a, 0x1f, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4c, 0x45, + 0x5f, 0x48, 0x45, 0x41, 0x4c, 0x5f, 0x41, 0x4c, 0x4c, 0x59, 0x10, 0x1a, 0x12, 0x20, 0x0a, 0x1c, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x45, + 0x4e, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x10, 0x1b, 0x12, 0x24, + 0x0a, 0x20, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, + 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x52, 0x55, 0x50, 0x54, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, + 0x45, 0x4c, 0x10, 0x1c, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, + 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x41, 0x4c, 0x4c, 0x49, 0x45, 0x44, 0x5f, 0x47, 0x4f, + 0x4c, 0x44, 0x10, 0x1d, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, + 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x41, 0x45, 0x47, 0x49, 0x53, 0x5f, 0x54, 0x41, 0x4b, + 0x45, 0x4e, 0x10, 0x1e, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, + 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x5f, 0x44, 0x41, 0x4d, 0x41, + 0x47, 0x45, 0x10, 0x1f, 0x12, 0x2c, 0x0a, 0x28, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, + 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x50, 0x48, 0x59, 0x53, 0x49, 0x43, 0x41, 0x4c, 0x5f, + 0x44, 0x41, 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x50, 0x52, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x45, 0x44, + 0x10, 0x20, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, + 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x53, 0x55, 0x4d, 0x4d, 0x4f, 0x4e, + 0x45, 0x44, 0x10, 0x21, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, + 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x41, 0x54, 0x54, 0x41, 0x43, 0x4b, 0x5f, 0x45, 0x56, + 0x41, 0x44, 0x45, 0x10, 0x22, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, + 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x52, 0x45, 0x45, 0x5f, 0x43, 0x55, 0x54, + 0x10, 0x23, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, + 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x46, 0x55, 0x4c, 0x5f, + 0x53, 0x43, 0x41, 0x4e, 0x10, 0x24, 0x12, 0x21, 0x0a, 0x1d, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, + 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x45, 0x4e, 0x44, 0x5f, 0x4b, 0x49, 0x4c, + 0x4c, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4b, 0x10, 0x25, 0x12, 0x24, 0x0a, 0x20, 0x44, 0x4f, 0x54, + 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x42, 0x4c, 0x4f, 0x4f, + 0x44, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x10, 0x26, 0x12, + 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, + 0x47, 0x5f, 0x43, 0x52, 0x49, 0x54, 0x49, 0x43, 0x41, 0x4c, 0x5f, 0x44, 0x41, 0x4d, 0x41, 0x47, + 0x45, 0x10, 0x27, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, + 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x53, 0x50, 0x45, 0x4c, 0x4c, 0x5f, 0x41, 0x42, 0x53, 0x4f, + 0x52, 0x42, 0x10, 0x28, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, + 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x54, 0x45, 0x4c, 0x45, + 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x29, 0x12, 0x23, 0x0a, 0x1f, 0x44, 0x4f, 0x54, 0x41, + 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x5f, + 0x45, 0x41, 0x54, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x10, 0x2a, 0x12, 0x26, 0x0a, + 0x22, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, + 0x4e, 0x45, 0x55, 0x54, 0x52, 0x41, 0x4c, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x45, 0x41, 0x52, + 0x4e, 0x45, 0x44, 0x10, 0x2b, 0x2a, 0x75, 0x0a, 0x10, 0x45, 0x44, 0x50, 0x43, 0x46, 0x61, 0x76, + 0x6f, 0x72, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x46, 0x41, 0x56, + 0x4f, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x10, 0x00, + 0x12, 0x18, 0x0a, 0x14, 0x46, 0x41, 0x56, 0x4f, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x46, 0x41, + 0x56, 0x4f, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x45, 0x41, 0x4d, + 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x46, 0x41, 0x56, 0x4f, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x45, 0x41, 0x47, 0x55, 0x45, 0x10, 0x03, 0x2a, 0xa8, 0x04, 0x0a, + 0x14, 0x45, 0x44, 0x50, 0x43, 0x50, 0x75, 0x73, 0x68, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x24, 0x44, 0x50, 0x43, 0x5f, 0x50, 0x55, 0x53, + 0x48, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, + 0x41, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, + 0x2a, 0x0a, 0x26, 0x44, 0x50, 0x43, 0x5f, 0x50, 0x55, 0x53, 0x48, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, - 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x41, 0x53, 0x5f, 0x43, 0x4f, 0x41, - 0x43, 0x48, 0x10, 0x0d, 0x12, 0x27, 0x0a, 0x23, 0x44, 0x50, 0x43, 0x5f, 0x50, 0x55, 0x53, 0x48, - 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, - 0x41, 0x47, 0x55, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x10, 0x14, 0x12, 0x36, 0x0a, - 0x32, 0x44, 0x50, 0x43, 0x5f, 0x50, 0x55, 0x53, 0x48, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, - 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x45, 0x44, 0x49, 0x43, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x45, 0x53, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, - 0x42, 0x4c, 0x45, 0x10, 0x1e, 0x12, 0x2b, 0x0a, 0x27, 0x44, 0x50, 0x43, 0x5f, 0x50, 0x55, 0x53, - 0x48, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, - 0x52, 0x45, 0x44, 0x49, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, - 0x10, 0x1f, 0x12, 0x30, 0x0a, 0x2c, 0x44, 0x50, 0x43, 0x5f, 0x50, 0x55, 0x53, 0x48, 0x5f, 0x4e, - 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x4e, 0x54, - 0x41, 0x53, 0x59, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x43, 0x4c, 0x45, 0x41, 0x52, - 0x45, 0x44, 0x10, 0x28, 0x12, 0x2f, 0x0a, 0x2b, 0x44, 0x50, 0x43, 0x5f, 0x50, 0x55, 0x53, 0x48, - 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x41, - 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x44, 0x41, 0x49, 0x4c, 0x59, 0x5f, 0x53, 0x55, 0x4d, 0x4d, - 0x41, 0x52, 0x59, 0x10, 0x29, 0x12, 0x2f, 0x0a, 0x2b, 0x44, 0x50, 0x43, 0x5f, 0x50, 0x55, 0x53, + 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x10, 0x0a, 0x12, 0x2c, 0x0a, 0x28, 0x44, + 0x50, 0x43, 0x5f, 0x50, 0x55, 0x53, 0x48, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, + 0x45, 0x44, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x10, 0x0b, 0x12, 0x35, 0x0a, 0x31, 0x44, 0x50, 0x43, + 0x5f, 0x50, 0x55, 0x53, 0x48, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x45, 0x44, + 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x41, 0x53, 0x5f, 0x43, 0x4f, 0x41, 0x43, 0x48, 0x10, 0x0c, + 0x12, 0x33, 0x0a, 0x2f, 0x44, 0x50, 0x43, 0x5f, 0x50, 0x55, 0x53, 0x48, 0x5f, 0x4e, 0x4f, 0x54, + 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, + 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x41, 0x53, 0x5f, 0x43, 0x4f, + 0x41, 0x43, 0x48, 0x10, 0x0d, 0x12, 0x27, 0x0a, 0x23, 0x44, 0x50, 0x43, 0x5f, 0x50, 0x55, 0x53, + 0x48, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, + 0x45, 0x41, 0x47, 0x55, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x10, 0x14, 0x12, 0x36, + 0x0a, 0x32, 0x44, 0x50, 0x43, 0x5f, 0x50, 0x55, 0x53, 0x48, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, + 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x45, 0x44, 0x49, 0x43, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x45, 0x53, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, + 0x41, 0x42, 0x4c, 0x45, 0x10, 0x1e, 0x12, 0x2b, 0x0a, 0x27, 0x44, 0x50, 0x43, 0x5f, 0x50, 0x55, + 0x53, 0x48, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x50, 0x52, 0x45, 0x44, 0x49, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, + 0x54, 0x10, 0x1f, 0x12, 0x30, 0x0a, 0x2c, 0x44, 0x50, 0x43, 0x5f, 0x50, 0x55, 0x53, 0x48, 0x5f, + 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x4e, + 0x54, 0x41, 0x53, 0x59, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x43, 0x4c, 0x45, 0x41, + 0x52, 0x45, 0x44, 0x10, 0x28, 0x12, 0x2f, 0x0a, 0x2b, 0x44, 0x50, 0x43, 0x5f, 0x50, 0x55, 0x53, 0x48, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, - 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x53, - 0x55, 0x4c, 0x54, 0x53, 0x10, 0x2a, 0x2a, 0x59, 0x0a, 0x15, 0x45, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, - 0x1f, 0x0a, 0x1b, 0x6b, 0x5f, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x5f, 0x41, 0x64, 0x64, 0x10, 0x00, + 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x44, 0x41, 0x49, 0x4c, 0x59, 0x5f, 0x53, 0x55, 0x4d, + 0x4d, 0x41, 0x52, 0x59, 0x10, 0x29, 0x12, 0x2f, 0x0a, 0x2b, 0x44, 0x50, 0x43, 0x5f, 0x50, 0x55, + 0x53, 0x48, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x46, 0x41, 0x4e, 0x54, 0x41, 0x53, 0x59, 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x45, + 0x53, 0x55, 0x4c, 0x54, 0x53, 0x10, 0x2a, 0x2a, 0x59, 0x0a, 0x15, 0x45, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x6b, 0x5f, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x5f, 0x4d, 0x69, 0x6e, 0x10, - 0x01, 0x2a, 0xce, 0x02, 0x0a, 0x1b, 0x45, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x61, - 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x29, 0x0a, 0x25, 0x6b, 0x5f, 0x45, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, + 0x6f, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x5f, 0x41, 0x64, 0x64, 0x10, + 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x6b, 0x5f, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x5f, 0x4d, 0x69, 0x6e, + 0x10, 0x01, 0x2a, 0xce, 0x02, 0x0a, 0x1b, 0x45, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x79, - 0x70, 0x65, 0x5f, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x00, 0x12, 0x2b, 0x0a, 0x27, - 0x6b, 0x5f, 0x45, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, - 0x67, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4b, 0x69, - 0x6c, 0x6c, 0x45, 0x61, 0x74, 0x65, 0x72, 0x10, 0x01, 0x12, 0x2f, 0x0a, 0x2b, 0x6b, 0x5f, 0x45, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x44, 0x6f, 0x74, 0x61, 0x50, - 0x6c, 0x75, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x63, 0x10, 0x02, 0x12, 0x3d, 0x0a, 0x39, 0x6b, 0x5f, + 0x70, 0x65, 0x12, 0x29, 0x0a, 0x25, 0x6b, 0x5f, 0x45, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, + 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, + 0x79, 0x70, 0x65, 0x5f, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x00, 0x12, 0x2b, 0x0a, + 0x27, 0x6b, 0x5f, 0x45, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, + 0x6e, 0x67, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4b, + 0x69, 0x6c, 0x6c, 0x45, 0x61, 0x74, 0x65, 0x72, 0x10, 0x01, 0x12, 0x2f, 0x0a, 0x2b, 0x6b, 0x5f, 0x45, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x44, 0x6f, 0x74, 0x61, - 0x50, 0x6c, 0x75, 0x73, 0x48, 0x65, 0x72, 0x6f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, - 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x10, 0x03, 0x12, 0x36, 0x0a, 0x32, 0x6b, 0x5f, 0x45, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x49, 0x6e, 0x47, 0x61, 0x6d, - 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x10, - 0x04, 0x12, 0x2f, 0x0a, 0x2b, 0x6b, 0x5f, 0x45, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, - 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x79, - 0x70, 0x65, 0x5f, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x10, 0x05, 0x2a, 0x86, 0x02, 0x0a, 0x16, 0x45, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x61, 0x74, 0x63, - 0x68, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x24, 0x0a, - 0x20, 0x6b, 0x5f, 0x45, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, - 0x6e, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x6b, 0x5f, 0x45, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x61, - 0x74, 0x63, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, - 0x43, 0x68, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x12, 0x24, 0x0a, 0x20, 0x6b, 0x5f, - 0x45, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x46, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x02, - 0x12, 0x25, 0x0a, 0x21, 0x6b, 0x5f, 0x45, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x61, 0x74, 0x63, 0x68, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x47, 0x72, 0x69, - 0x65, 0x66, 0x69, 0x6e, 0x67, 0x10, 0x03, 0x12, 0x27, 0x0a, 0x23, 0x6b, 0x5f, 0x45, 0x4f, 0x76, - 0x65, 0x72, 0x77, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x5f, 0x53, 0x75, 0x73, 0x70, 0x69, 0x63, 0x69, 0x6f, 0x75, 0x73, 0x10, 0x04, - 0x12, 0x29, 0x0a, 0x25, 0x6b, 0x5f, 0x45, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x61, 0x74, 0x63, 0x68, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x41, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x41, 0x62, 0x75, 0x73, 0x65, 0x10, 0x05, 0x2a, 0xb5, 0x01, 0x0a, 0x11, - 0x45, 0x43, 0x61, 0x6e, 0x64, 0x79, 0x53, 0x68, 0x6f, 0x70, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, - 0x65, 0x12, 0x27, 0x0a, 0x1a, 0x6b, 0x5f, 0x45, 0x43, 0x61, 0x6e, 0x64, 0x79, 0x53, 0x68, 0x6f, - 0x70, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x12, 0x25, 0x0a, 0x21, 0x6b, 0x5f, - 0x45, 0x43, 0x61, 0x6e, 0x64, 0x79, 0x53, 0x68, 0x6f, 0x70, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, - 0x65, 0x5f, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x7a, 0x65, 0x10, - 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x6b, 0x5f, 0x45, 0x43, 0x61, 0x6e, 0x64, 0x79, 0x53, 0x68, 0x6f, - 0x70, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x53, - 0x68, 0x65, 0x6c, 0x66, 0x10, 0x01, 0x12, 0x2b, 0x0a, 0x27, 0x6b, 0x5f, 0x45, 0x43, 0x61, 0x6e, - 0x64, 0x79, 0x53, 0x68, 0x6f, 0x70, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x45, 0x78, - 0x74, 0x72, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, - 0x65, 0x10, 0x02, 0x42, 0x25, 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x62, 0x75, 0x66, 0x66, 0x2f, 0x6d, 0x61, 0x6e, 0x74, 0x61, - 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x3b, 0x64, 0x6f, 0x74, 0x61, + 0x50, 0x6c, 0x75, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x63, 0x10, 0x02, 0x12, 0x3d, 0x0a, 0x39, 0x6b, + 0x5f, 0x45, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, + 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x44, 0x6f, 0x74, + 0x61, 0x50, 0x6c, 0x75, 0x73, 0x48, 0x65, 0x72, 0x6f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, + 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x10, 0x03, 0x12, 0x36, 0x0a, 0x32, 0x6b, 0x5f, + 0x45, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x49, 0x6e, 0x47, 0x61, + 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, + 0x10, 0x04, 0x12, 0x2f, 0x0a, 0x2b, 0x6b, 0x5f, 0x45, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, + 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, + 0x79, 0x70, 0x65, 0x5f, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x10, 0x05, 0x2a, 0x86, 0x02, 0x0a, 0x16, 0x45, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x61, 0x74, + 0x63, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x24, + 0x0a, 0x20, 0x6b, 0x5f, 0x45, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, + 0x77, 0x6e, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x6b, 0x5f, 0x45, 0x4f, 0x76, 0x65, 0x72, 0x77, + 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x5f, 0x43, 0x68, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x12, 0x24, 0x0a, 0x20, 0x6b, + 0x5f, 0x45, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x46, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x10, + 0x02, 0x12, 0x25, 0x0a, 0x21, 0x6b, 0x5f, 0x45, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x61, 0x74, 0x63, + 0x68, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x47, 0x72, + 0x69, 0x65, 0x66, 0x69, 0x6e, 0x67, 0x10, 0x03, 0x12, 0x27, 0x0a, 0x23, 0x6b, 0x5f, 0x45, 0x4f, + 0x76, 0x65, 0x72, 0x77, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x53, 0x75, 0x73, 0x70, 0x69, 0x63, 0x69, 0x6f, 0x75, 0x73, 0x10, + 0x04, 0x12, 0x29, 0x0a, 0x25, 0x6b, 0x5f, 0x45, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x61, 0x74, 0x63, + 0x68, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x41, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x41, 0x62, 0x75, 0x73, 0x65, 0x10, 0x05, 0x2a, 0xb5, 0x01, 0x0a, + 0x11, 0x45, 0x43, 0x61, 0x6e, 0x64, 0x79, 0x53, 0x68, 0x6f, 0x70, 0x55, 0x70, 0x67, 0x72, 0x61, + 0x64, 0x65, 0x12, 0x27, 0x0a, 0x1a, 0x6b, 0x5f, 0x45, 0x43, 0x61, 0x6e, 0x64, 0x79, 0x53, 0x68, + 0x6f, 0x70, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x12, 0x25, 0x0a, 0x21, 0x6b, + 0x5f, 0x45, 0x43, 0x61, 0x6e, 0x64, 0x79, 0x53, 0x68, 0x6f, 0x70, 0x55, 0x70, 0x67, 0x72, 0x61, + 0x64, 0x65, 0x5f, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x7a, 0x65, + 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x6b, 0x5f, 0x45, 0x43, 0x61, 0x6e, 0x64, 0x79, 0x53, 0x68, + 0x6f, 0x70, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x53, 0x68, 0x65, 0x6c, 0x66, 0x10, 0x01, 0x12, 0x2b, 0x0a, 0x27, 0x6b, 0x5f, 0x45, 0x43, 0x61, + 0x6e, 0x64, 0x79, 0x53, 0x68, 0x6f, 0x70, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x45, + 0x78, 0x74, 0x72, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x63, 0x69, + 0x70, 0x65, 0x10, 0x02, 0x42, 0x25, 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x62, 0x75, 0x66, 0x66, 0x2f, 0x6d, 0x61, 0x6e, 0x74, + 0x61, 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x3b, 0x64, 0x6f, 0x74, 0x61, } var ( diff --git a/dota/dota_shared_enums.proto b/dota/dota_shared_enums.proto index 3715053..8317de7 100644 --- a/dota/dota_shared_enums.proto +++ b/dota/dota_shared_enums.proto @@ -116,6 +116,7 @@ enum EEvent { EVENT_ID_10TH_ANNIVERSARY = 46; EVENT_ID_CROWNFALL = 47; EVENT_ID_FROSTIVUS_2023 = 48; + EVENT_ID_INTERNATIONAL_2024 = 49; } enum ERankType { diff --git a/dota/dota_usermessages.pb.go b/dota/dota_usermessages.pb.go index 4ba963e..226f92e 100644 --- a/dota/dota_usermessages.pb.go +++ b/dota/dota_usermessages.pb.go @@ -1932,62 +1932,6 @@ func (EProjectionEvent) EnumDescriptor() ([]byte, []int) { return file_dota_usermessages_proto_rawDescGZIP(), []int{13} } -type CDOTAUserMsg_PredictionResult_Prediction_EResult int32 - -const ( - CDOTAUserMsg_PredictionResult_Prediction_k_eResult_ItemGranted CDOTAUserMsg_PredictionResult_Prediction_EResult = 1 - CDOTAUserMsg_PredictionResult_Prediction_k_eResult_Destroyed CDOTAUserMsg_PredictionResult_Prediction_EResult = 2 -) - -// Enum value maps for CDOTAUserMsg_PredictionResult_Prediction_EResult. -var ( - CDOTAUserMsg_PredictionResult_Prediction_EResult_name = map[int32]string{ - 1: "k_eResult_ItemGranted", - 2: "k_eResult_Destroyed", - } - CDOTAUserMsg_PredictionResult_Prediction_EResult_value = map[string]int32{ - "k_eResult_ItemGranted": 1, - "k_eResult_Destroyed": 2, - } -) - -func (x CDOTAUserMsg_PredictionResult_Prediction_EResult) Enum() *CDOTAUserMsg_PredictionResult_Prediction_EResult { - p := new(CDOTAUserMsg_PredictionResult_Prediction_EResult) - *p = x - return p -} - -func (x CDOTAUserMsg_PredictionResult_Prediction_EResult) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (CDOTAUserMsg_PredictionResult_Prediction_EResult) Descriptor() protoreflect.EnumDescriptor { - return file_dota_usermessages_proto_enumTypes[14].Descriptor() -} - -func (CDOTAUserMsg_PredictionResult_Prediction_EResult) Type() protoreflect.EnumType { - return &file_dota_usermessages_proto_enumTypes[14] -} - -func (x CDOTAUserMsg_PredictionResult_Prediction_EResult) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Do not use. -func (x *CDOTAUserMsg_PredictionResult_Prediction_EResult) UnmarshalJSON(b []byte) error { - num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) - if err != nil { - return err - } - *x = CDOTAUserMsg_PredictionResult_Prediction_EResult(num) - return nil -} - -// Deprecated: Use CDOTAUserMsg_PredictionResult_Prediction_EResult.Descriptor instead. -func (CDOTAUserMsg_PredictionResult_Prediction_EResult) EnumDescriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{42, 0, 0} -} - type CDOTAResponseQuerySerialized_Fact_ValueType int32 const ( @@ -2024,11 +1968,11 @@ func (x CDOTAResponseQuerySerialized_Fact_ValueType) String() string { } func (CDOTAResponseQuerySerialized_Fact_ValueType) Descriptor() protoreflect.EnumDescriptor { - return file_dota_usermessages_proto_enumTypes[15].Descriptor() + return file_dota_usermessages_proto_enumTypes[14].Descriptor() } func (CDOTAResponseQuerySerialized_Fact_ValueType) Type() protoreflect.EnumType { - return &file_dota_usermessages_proto_enumTypes[15] + return &file_dota_usermessages_proto_enumTypes[14] } func (x CDOTAResponseQuerySerialized_Fact_ValueType) Number() protoreflect.EnumNumber { @@ -2047,7 +1991,7 @@ func (x *CDOTAResponseQuerySerialized_Fact_ValueType) UnmarshalJSON(b []byte) er // Deprecated: Use CDOTAResponseQuerySerialized_Fact_ValueType.Descriptor instead. func (CDOTAResponseQuerySerialized_Fact_ValueType) EnumDescriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{43, 0, 0} + return file_dota_usermessages_proto_rawDescGZIP(), []int{42, 0, 0} } type CDOTAUserMsg_GuildChallenge_Progress_EChallengeType int32 @@ -2083,11 +2027,11 @@ func (x CDOTAUserMsg_GuildChallenge_Progress_EChallengeType) String() string { } func (CDOTAUserMsg_GuildChallenge_Progress_EChallengeType) Descriptor() protoreflect.EnumDescriptor { - return file_dota_usermessages_proto_enumTypes[16].Descriptor() + return file_dota_usermessages_proto_enumTypes[15].Descriptor() } func (CDOTAUserMsg_GuildChallenge_Progress_EChallengeType) Type() protoreflect.EnumType { - return &file_dota_usermessages_proto_enumTypes[16] + return &file_dota_usermessages_proto_enumTypes[15] } func (x CDOTAUserMsg_GuildChallenge_Progress_EChallengeType) Number() protoreflect.EnumNumber { @@ -2106,7 +2050,7 @@ func (x *CDOTAUserMsg_GuildChallenge_Progress_EChallengeType) UnmarshalJSON(b [] // Deprecated: Use CDOTAUserMsg_GuildChallenge_Progress_EChallengeType.Descriptor instead. func (CDOTAUserMsg_GuildChallenge_Progress_EChallengeType) EnumDescriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{147, 0} + return file_dota_usermessages_proto_rawDescGZIP(), []int{146, 0} } type CDOTAUserMsg_AIDebugLine struct { @@ -4979,77 +4923,6 @@ func (x *CDOTAUserMsg_HalloweenDrops) GetPrizeList() uint32 { return 0 } -type CDOTAUserMsg_PredictionResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - AccountId *uint32 `protobuf:"varint,1,opt,name=account_id,json=accountId" json:"account_id,omitempty"` - MatchId *uint64 `protobuf:"varint,2,opt,name=match_id,json=matchId" json:"match_id,omitempty"` - Correct *bool `protobuf:"varint,3,opt,name=correct" json:"correct,omitempty"` - Predictions []*CDOTAUserMsg_PredictionResult_Prediction `protobuf:"bytes,4,rep,name=predictions" json:"predictions,omitempty"` -} - -func (x *CDOTAUserMsg_PredictionResult) Reset() { - *x = CDOTAUserMsg_PredictionResult{} - if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[42] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CDOTAUserMsg_PredictionResult) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CDOTAUserMsg_PredictionResult) ProtoMessage() {} - -func (x *CDOTAUserMsg_PredictionResult) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_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 CDOTAUserMsg_PredictionResult.ProtoReflect.Descriptor instead. -func (*CDOTAUserMsg_PredictionResult) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{42} -} - -func (x *CDOTAUserMsg_PredictionResult) GetAccountId() uint32 { - if x != nil && x.AccountId != nil { - return *x.AccountId - } - return 0 -} - -func (x *CDOTAUserMsg_PredictionResult) GetMatchId() uint64 { - if x != nil && x.MatchId != nil { - return *x.MatchId - } - return 0 -} - -func (x *CDOTAUserMsg_PredictionResult) GetCorrect() bool { - if x != nil && x.Correct != nil { - return *x.Correct - } - return false -} - -func (x *CDOTAUserMsg_PredictionResult) GetPredictions() []*CDOTAUserMsg_PredictionResult_Prediction { - if x != nil { - return x.Predictions - } - return nil -} - type CDOTAResponseQuerySerialized struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -5061,7 +4934,7 @@ type CDOTAResponseQuerySerialized struct { func (x *CDOTAResponseQuerySerialized) Reset() { *x = CDOTAResponseQuerySerialized{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[43] + mi := &file_dota_usermessages_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5074,7 +4947,7 @@ func (x *CDOTAResponseQuerySerialized) String() string { func (*CDOTAResponseQuerySerialized) ProtoMessage() {} func (x *CDOTAResponseQuerySerialized) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[43] + mi := &file_dota_usermessages_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5087,7 +4960,7 @@ func (x *CDOTAResponseQuerySerialized) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAResponseQuerySerialized.ProtoReflect.Descriptor instead. func (*CDOTAResponseQuerySerialized) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{43} + return file_dota_usermessages_proto_rawDescGZIP(), []int{42} } func (x *CDOTAResponseQuerySerialized) GetFacts() []*CDOTAResponseQuerySerialized_Fact { @@ -5111,7 +4984,7 @@ type CDOTASpeechMatchOnClient struct { func (x *CDOTASpeechMatchOnClient) Reset() { *x = CDOTASpeechMatchOnClient{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[44] + mi := &file_dota_usermessages_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5124,7 +4997,7 @@ func (x *CDOTASpeechMatchOnClient) String() string { func (*CDOTASpeechMatchOnClient) ProtoMessage() {} func (x *CDOTASpeechMatchOnClient) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[44] + mi := &file_dota_usermessages_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5137,7 +5010,7 @@ func (x *CDOTASpeechMatchOnClient) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTASpeechMatchOnClient.ProtoReflect.Descriptor instead. func (*CDOTASpeechMatchOnClient) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{44} + return file_dota_usermessages_proto_rawDescGZIP(), []int{43} } func (x *CDOTASpeechMatchOnClient) GetSpeechConcept() int32 { @@ -5187,7 +5060,7 @@ type CDOTAUserMsg_UnitEvent struct { func (x *CDOTAUserMsg_UnitEvent) Reset() { *x = CDOTAUserMsg_UnitEvent{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[45] + mi := &file_dota_usermessages_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5200,7 +5073,7 @@ func (x *CDOTAUserMsg_UnitEvent) String() string { func (*CDOTAUserMsg_UnitEvent) ProtoMessage() {} func (x *CDOTAUserMsg_UnitEvent) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[45] + mi := &file_dota_usermessages_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5213,7 +5086,7 @@ func (x *CDOTAUserMsg_UnitEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_UnitEvent.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_UnitEvent) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{45} + return file_dota_usermessages_proto_rawDescGZIP(), []int{44} } func (x *CDOTAUserMsg_UnitEvent) GetMsgType() EDotaEntityMessages { @@ -5290,7 +5163,7 @@ type CDOTAUserMsg_ItemPurchased struct { func (x *CDOTAUserMsg_ItemPurchased) Reset() { *x = CDOTAUserMsg_ItemPurchased{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[46] + mi := &file_dota_usermessages_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5303,7 +5176,7 @@ func (x *CDOTAUserMsg_ItemPurchased) String() string { func (*CDOTAUserMsg_ItemPurchased) ProtoMessage() {} func (x *CDOTAUserMsg_ItemPurchased) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[46] + mi := &file_dota_usermessages_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5316,7 +5189,7 @@ func (x *CDOTAUserMsg_ItemPurchased) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_ItemPurchased.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_ItemPurchased) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{46} + return file_dota_usermessages_proto_rawDescGZIP(), []int{45} } func (x *CDOTAUserMsg_ItemPurchased) GetItemAbilityId() int32 { @@ -5337,7 +5210,7 @@ type CDOTAUserMsg_ItemSold struct { func (x *CDOTAUserMsg_ItemSold) Reset() { *x = CDOTAUserMsg_ItemSold{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[47] + mi := &file_dota_usermessages_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5350,7 +5223,7 @@ func (x *CDOTAUserMsg_ItemSold) String() string { func (*CDOTAUserMsg_ItemSold) ProtoMessage() {} func (x *CDOTAUserMsg_ItemSold) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[47] + mi := &file_dota_usermessages_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5363,7 +5236,7 @@ func (x *CDOTAUserMsg_ItemSold) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_ItemSold.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_ItemSold) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{47} + return file_dota_usermessages_proto_rawDescGZIP(), []int{46} } func (x *CDOTAUserMsg_ItemSold) GetItemAbilityId() int32 { @@ -5388,7 +5261,7 @@ type CDOTAUserMsg_ItemFound struct { func (x *CDOTAUserMsg_ItemFound) Reset() { *x = CDOTAUserMsg_ItemFound{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[48] + mi := &file_dota_usermessages_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5401,7 +5274,7 @@ func (x *CDOTAUserMsg_ItemFound) String() string { func (*CDOTAUserMsg_ItemFound) ProtoMessage() {} func (x *CDOTAUserMsg_ItemFound) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[48] + mi := &file_dota_usermessages_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5414,7 +5287,7 @@ func (x *CDOTAUserMsg_ItemFound) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_ItemFound.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_ItemFound) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{48} + return file_dota_usermessages_proto_rawDescGZIP(), []int{47} } func (x *CDOTAUserMsg_ItemFound) GetPlayer() int32 { @@ -5467,7 +5340,7 @@ type CDOTAUserMsg_OverheadEvent struct { func (x *CDOTAUserMsg_OverheadEvent) Reset() { *x = CDOTAUserMsg_OverheadEvent{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[49] + mi := &file_dota_usermessages_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5480,7 +5353,7 @@ func (x *CDOTAUserMsg_OverheadEvent) String() string { func (*CDOTAUserMsg_OverheadEvent) ProtoMessage() {} func (x *CDOTAUserMsg_OverheadEvent) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[49] + mi := &file_dota_usermessages_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5493,7 +5366,7 @@ func (x *CDOTAUserMsg_OverheadEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_OverheadEvent.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_OverheadEvent) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{49} + return file_dota_usermessages_proto_rawDescGZIP(), []int{48} } func (x *CDOTAUserMsg_OverheadEvent) GetMessageType() DOTA_OVERHEAD_ALERT { @@ -5543,7 +5416,7 @@ type CDOTAUserMsg_TutorialTipInfo struct { func (x *CDOTAUserMsg_TutorialTipInfo) Reset() { *x = CDOTAUserMsg_TutorialTipInfo{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[50] + mi := &file_dota_usermessages_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5556,7 +5429,7 @@ func (x *CDOTAUserMsg_TutorialTipInfo) String() string { func (*CDOTAUserMsg_TutorialTipInfo) ProtoMessage() {} func (x *CDOTAUserMsg_TutorialTipInfo) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[50] + mi := &file_dota_usermessages_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5569,7 +5442,7 @@ func (x *CDOTAUserMsg_TutorialTipInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_TutorialTipInfo.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_TutorialTipInfo) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{50} + return file_dota_usermessages_proto_rawDescGZIP(), []int{49} } func (x *CDOTAUserMsg_TutorialTipInfo) GetName() string { @@ -5600,7 +5473,7 @@ type CDOTAUserMsg_TutorialFinish struct { func (x *CDOTAUserMsg_TutorialFinish) Reset() { *x = CDOTAUserMsg_TutorialFinish{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[51] + mi := &file_dota_usermessages_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5613,7 +5486,7 @@ func (x *CDOTAUserMsg_TutorialFinish) String() string { func (*CDOTAUserMsg_TutorialFinish) ProtoMessage() {} func (x *CDOTAUserMsg_TutorialFinish) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[51] + mi := &file_dota_usermessages_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5626,7 +5499,7 @@ func (x *CDOTAUserMsg_TutorialFinish) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_TutorialFinish.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_TutorialFinish) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{51} + return file_dota_usermessages_proto_rawDescGZIP(), []int{50} } func (x *CDOTAUserMsg_TutorialFinish) GetHeading() string { @@ -5666,7 +5539,7 @@ type CDOTAUserMsg_TutorialMinimapPosition struct { func (x *CDOTAUserMsg_TutorialMinimapPosition) Reset() { *x = CDOTAUserMsg_TutorialMinimapPosition{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[52] + mi := &file_dota_usermessages_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5679,7 +5552,7 @@ func (x *CDOTAUserMsg_TutorialMinimapPosition) String() string { func (*CDOTAUserMsg_TutorialMinimapPosition) ProtoMessage() {} func (x *CDOTAUserMsg_TutorialMinimapPosition) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[52] + mi := &file_dota_usermessages_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5692,7 +5565,7 @@ func (x *CDOTAUserMsg_TutorialMinimapPosition) ProtoReflect() protoreflect.Messa // Deprecated: Use CDOTAUserMsg_TutorialMinimapPosition.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_TutorialMinimapPosition) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{52} + return file_dota_usermessages_proto_rawDescGZIP(), []int{51} } type CDOTAUserMsg_SendGenericToolTip struct { @@ -5709,7 +5582,7 @@ type CDOTAUserMsg_SendGenericToolTip struct { func (x *CDOTAUserMsg_SendGenericToolTip) Reset() { *x = CDOTAUserMsg_SendGenericToolTip{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[53] + mi := &file_dota_usermessages_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5722,7 +5595,7 @@ func (x *CDOTAUserMsg_SendGenericToolTip) String() string { func (*CDOTAUserMsg_SendGenericToolTip) ProtoMessage() {} func (x *CDOTAUserMsg_SendGenericToolTip) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[53] + mi := &file_dota_usermessages_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5735,7 +5608,7 @@ func (x *CDOTAUserMsg_SendGenericToolTip) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_SendGenericToolTip.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_SendGenericToolTip) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{53} + return file_dota_usermessages_proto_rawDescGZIP(), []int{52} } func (x *CDOTAUserMsg_SendGenericToolTip) GetTitle() string { @@ -5778,7 +5651,7 @@ type CDOTAUserMsg_WorldLine struct { func (x *CDOTAUserMsg_WorldLine) Reset() { *x = CDOTAUserMsg_WorldLine{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[54] + mi := &file_dota_usermessages_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5791,7 +5664,7 @@ func (x *CDOTAUserMsg_WorldLine) String() string { func (*CDOTAUserMsg_WorldLine) ProtoMessage() {} func (x *CDOTAUserMsg_WorldLine) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[54] + mi := &file_dota_usermessages_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5804,7 +5677,7 @@ func (x *CDOTAUserMsg_WorldLine) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_WorldLine.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_WorldLine) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{54} + return file_dota_usermessages_proto_rawDescGZIP(), []int{53} } func (x *CDOTAUserMsg_WorldLine) GetPlayerId() int32 { @@ -5829,14 +5702,14 @@ type CDOTAUserMsg_ChatWheel struct { ChatMessageId *uint32 `protobuf:"varint,1,opt,name=chat_message_id,json=chatMessageId" json:"chat_message_id,omitempty"` PlayerId *int32 `protobuf:"varint,2,opt,name=player_id,json=playerId" json:"player_id,omitempty"` AccountId *uint32 `protobuf:"varint,3,opt,name=account_id,json=accountId" json:"account_id,omitempty"` - ParamHeroId *uint32 `protobuf:"varint,4,opt,name=param_hero_id,json=paramHeroId" json:"param_hero_id,omitempty"` + ParamHeroId *int32 `protobuf:"varint,4,opt,name=param_hero_id,json=paramHeroId" json:"param_hero_id,omitempty"` EmoticonId *uint32 `protobuf:"varint,5,opt,name=emoticon_id,json=emoticonId" json:"emoticon_id,omitempty"` } func (x *CDOTAUserMsg_ChatWheel) Reset() { *x = CDOTAUserMsg_ChatWheel{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[55] + mi := &file_dota_usermessages_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5849,7 +5722,7 @@ func (x *CDOTAUserMsg_ChatWheel) String() string { func (*CDOTAUserMsg_ChatWheel) ProtoMessage() {} func (x *CDOTAUserMsg_ChatWheel) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[55] + mi := &file_dota_usermessages_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5862,7 +5735,7 @@ func (x *CDOTAUserMsg_ChatWheel) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_ChatWheel.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_ChatWheel) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{55} + return file_dota_usermessages_proto_rawDescGZIP(), []int{54} } func (x *CDOTAUserMsg_ChatWheel) GetChatMessageId() uint32 { @@ -5886,7 +5759,7 @@ func (x *CDOTAUserMsg_ChatWheel) GetAccountId() uint32 { return 0 } -func (x *CDOTAUserMsg_ChatWheel) GetParamHeroId() uint32 { +func (x *CDOTAUserMsg_ChatWheel) GetParamHeroId() int32 { if x != nil && x.ParamHeroId != nil { return *x.ParamHeroId } @@ -5913,7 +5786,7 @@ type CDOTAUserMsg_ReceivedXmasGift struct { func (x *CDOTAUserMsg_ReceivedXmasGift) Reset() { *x = CDOTAUserMsg_ReceivedXmasGift{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[56] + mi := &file_dota_usermessages_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5926,7 +5799,7 @@ func (x *CDOTAUserMsg_ReceivedXmasGift) String() string { func (*CDOTAUserMsg_ReceivedXmasGift) ProtoMessage() {} func (x *CDOTAUserMsg_ReceivedXmasGift) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[56] + mi := &file_dota_usermessages_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5939,7 +5812,7 @@ func (x *CDOTAUserMsg_ReceivedXmasGift) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_ReceivedXmasGift.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_ReceivedXmasGift) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{56} + return file_dota_usermessages_proto_rawDescGZIP(), []int{55} } func (x *CDOTAUserMsg_ReceivedXmasGift) GetPlayerId() int32 { @@ -5971,7 +5844,7 @@ type CDOTAUserMsg_ShowSurvey struct { SurveyId *int32 `protobuf:"varint,1,opt,name=survey_id,json=surveyId" json:"survey_id,omitempty"` MatchId *uint64 `protobuf:"varint,2,opt,name=match_id,json=matchId" json:"match_id,omitempty"` ResponseStyle *string `protobuf:"bytes,3,opt,name=response_style,json=responseStyle" json:"response_style,omitempty"` - TeammateHeroId *uint32 `protobuf:"varint,4,opt,name=teammate_hero_id,json=teammateHeroId" json:"teammate_hero_id,omitempty"` + TeammateHeroId *int32 `protobuf:"varint,4,opt,name=teammate_hero_id,json=teammateHeroId" json:"teammate_hero_id,omitempty"` TeammateName *string `protobuf:"bytes,5,opt,name=teammate_name,json=teammateName" json:"teammate_name,omitempty"` TeammateAccountId *uint32 `protobuf:"varint,6,opt,name=teammate_account_id,json=teammateAccountId" json:"teammate_account_id,omitempty"` } @@ -5979,7 +5852,7 @@ type CDOTAUserMsg_ShowSurvey struct { func (x *CDOTAUserMsg_ShowSurvey) Reset() { *x = CDOTAUserMsg_ShowSurvey{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[57] + mi := &file_dota_usermessages_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5992,7 +5865,7 @@ func (x *CDOTAUserMsg_ShowSurvey) String() string { func (*CDOTAUserMsg_ShowSurvey) ProtoMessage() {} func (x *CDOTAUserMsg_ShowSurvey) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[57] + mi := &file_dota_usermessages_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6005,7 +5878,7 @@ func (x *CDOTAUserMsg_ShowSurvey) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_ShowSurvey.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_ShowSurvey) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{57} + return file_dota_usermessages_proto_rawDescGZIP(), []int{56} } func (x *CDOTAUserMsg_ShowSurvey) GetSurveyId() int32 { @@ -6029,7 +5902,7 @@ func (x *CDOTAUserMsg_ShowSurvey) GetResponseStyle() string { return "" } -func (x *CDOTAUserMsg_ShowSurvey) GetTeammateHeroId() uint32 { +func (x *CDOTAUserMsg_ShowSurvey) GetTeammateHeroId() int32 { if x != nil && x.TeammateHeroId != nil { return *x.TeammateHeroId } @@ -6061,7 +5934,7 @@ type CDOTAUserMsg_UpdateSharedContent struct { func (x *CDOTAUserMsg_UpdateSharedContent) Reset() { *x = CDOTAUserMsg_UpdateSharedContent{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[58] + mi := &file_dota_usermessages_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6074,7 +5947,7 @@ func (x *CDOTAUserMsg_UpdateSharedContent) String() string { func (*CDOTAUserMsg_UpdateSharedContent) ProtoMessage() {} func (x *CDOTAUserMsg_UpdateSharedContent) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[58] + mi := &file_dota_usermessages_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6087,7 +5960,7 @@ func (x *CDOTAUserMsg_UpdateSharedContent) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_UpdateSharedContent.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_UpdateSharedContent) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{58} + return file_dota_usermessages_proto_rawDescGZIP(), []int{57} } func (x *CDOTAUserMsg_UpdateSharedContent) GetSlotType() int32 { @@ -6106,7 +5979,7 @@ type CDOTAUserMsg_TutorialRequestExp struct { func (x *CDOTAUserMsg_TutorialRequestExp) Reset() { *x = CDOTAUserMsg_TutorialRequestExp{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[59] + mi := &file_dota_usermessages_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6119,7 +5992,7 @@ func (x *CDOTAUserMsg_TutorialRequestExp) String() string { func (*CDOTAUserMsg_TutorialRequestExp) ProtoMessage() {} func (x *CDOTAUserMsg_TutorialRequestExp) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[59] + mi := &file_dota_usermessages_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6132,7 +6005,7 @@ func (x *CDOTAUserMsg_TutorialRequestExp) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_TutorialRequestExp.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_TutorialRequestExp) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{59} + return file_dota_usermessages_proto_rawDescGZIP(), []int{58} } type CDOTAUserMsg_TutorialFade struct { @@ -6146,7 +6019,7 @@ type CDOTAUserMsg_TutorialFade struct { func (x *CDOTAUserMsg_TutorialFade) Reset() { *x = CDOTAUserMsg_TutorialFade{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[60] + mi := &file_dota_usermessages_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6159,7 +6032,7 @@ func (x *CDOTAUserMsg_TutorialFade) String() string { func (*CDOTAUserMsg_TutorialFade) ProtoMessage() {} func (x *CDOTAUserMsg_TutorialFade) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[60] + mi := &file_dota_usermessages_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6172,7 +6045,7 @@ func (x *CDOTAUserMsg_TutorialFade) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_TutorialFade.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_TutorialFade) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{60} + return file_dota_usermessages_proto_rawDescGZIP(), []int{59} } func (x *CDOTAUserMsg_TutorialFade) GetTgtAlpha() int32 { @@ -6197,7 +6070,7 @@ type CDOTAUserMsg_TutorialPingMinimap struct { func (x *CDOTAUserMsg_TutorialPingMinimap) Reset() { *x = CDOTAUserMsg_TutorialPingMinimap{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[61] + mi := &file_dota_usermessages_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6210,7 +6083,7 @@ func (x *CDOTAUserMsg_TutorialPingMinimap) String() string { func (*CDOTAUserMsg_TutorialPingMinimap) ProtoMessage() {} func (x *CDOTAUserMsg_TutorialPingMinimap) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[61] + mi := &file_dota_usermessages_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6223,7 +6096,7 @@ func (x *CDOTAUserMsg_TutorialPingMinimap) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_TutorialPingMinimap.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_TutorialPingMinimap) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{61} + return file_dota_usermessages_proto_rawDescGZIP(), []int{60} } func (x *CDOTAUserMsg_TutorialPingMinimap) GetPlayerId() int32 { @@ -6272,7 +6145,7 @@ type CDOTAUserMsg_GamerulesStateChanged struct { func (x *CDOTAUserMsg_GamerulesStateChanged) Reset() { *x = CDOTAUserMsg_GamerulesStateChanged{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[62] + mi := &file_dota_usermessages_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6285,7 +6158,7 @@ func (x *CDOTAUserMsg_GamerulesStateChanged) String() string { func (*CDOTAUserMsg_GamerulesStateChanged) ProtoMessage() {} func (x *CDOTAUserMsg_GamerulesStateChanged) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[62] + mi := &file_dota_usermessages_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6298,7 +6171,7 @@ func (x *CDOTAUserMsg_GamerulesStateChanged) ProtoReflect() protoreflect.Message // Deprecated: Use CDOTAUserMsg_GamerulesStateChanged.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_GamerulesStateChanged) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{62} + return file_dota_usermessages_proto_rawDescGZIP(), []int{61} } func (x *CDOTAUserMsg_GamerulesStateChanged) GetState() uint32 { @@ -6320,7 +6193,7 @@ type CDOTAUserMsg_AddQuestLogEntry struct { func (x *CDOTAUserMsg_AddQuestLogEntry) Reset() { *x = CDOTAUserMsg_AddQuestLogEntry{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[63] + mi := &file_dota_usermessages_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6333,7 +6206,7 @@ func (x *CDOTAUserMsg_AddQuestLogEntry) String() string { func (*CDOTAUserMsg_AddQuestLogEntry) ProtoMessage() {} func (x *CDOTAUserMsg_AddQuestLogEntry) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[63] + mi := &file_dota_usermessages_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6346,7 +6219,7 @@ func (x *CDOTAUserMsg_AddQuestLogEntry) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_AddQuestLogEntry.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_AddQuestLogEntry) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{63} + return file_dota_usermessages_proto_rawDescGZIP(), []int{62} } func (x *CDOTAUserMsg_AddQuestLogEntry) GetNpcName() string { @@ -6375,7 +6248,7 @@ type CDOTAUserMsg_SendStatPopup struct { func (x *CDOTAUserMsg_SendStatPopup) Reset() { *x = CDOTAUserMsg_SendStatPopup{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[64] + mi := &file_dota_usermessages_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6388,7 +6261,7 @@ func (x *CDOTAUserMsg_SendStatPopup) String() string { func (*CDOTAUserMsg_SendStatPopup) ProtoMessage() {} func (x *CDOTAUserMsg_SendStatPopup) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[64] + mi := &file_dota_usermessages_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6401,7 +6274,7 @@ func (x *CDOTAUserMsg_SendStatPopup) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_SendStatPopup.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_SendStatPopup) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{64} + return file_dota_usermessages_proto_rawDescGZIP(), []int{63} } func (x *CDOTAUserMsg_SendStatPopup) GetPlayerId() int32 { @@ -6429,7 +6302,7 @@ type CDOTAUserMsg_DismissAllStatPopups struct { func (x *CDOTAUserMsg_DismissAllStatPopups) Reset() { *x = CDOTAUserMsg_DismissAllStatPopups{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[65] + mi := &file_dota_usermessages_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6442,7 +6315,7 @@ func (x *CDOTAUserMsg_DismissAllStatPopups) String() string { func (*CDOTAUserMsg_DismissAllStatPopups) ProtoMessage() {} func (x *CDOTAUserMsg_DismissAllStatPopups) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[65] + mi := &file_dota_usermessages_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6455,7 +6328,7 @@ func (x *CDOTAUserMsg_DismissAllStatPopups) ProtoReflect() protoreflect.Message // Deprecated: Use CDOTAUserMsg_DismissAllStatPopups.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_DismissAllStatPopups) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{65} + return file_dota_usermessages_proto_rawDescGZIP(), []int{64} } func (x *CDOTAUserMsg_DismissAllStatPopups) GetDismissallmsg() *CDOTAMsg_DismissAllStatPopups { @@ -6478,7 +6351,7 @@ type CDOTAUserMsg_SendRoshanSpectatorPhase struct { func (x *CDOTAUserMsg_SendRoshanSpectatorPhase) Reset() { *x = CDOTAUserMsg_SendRoshanSpectatorPhase{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[66] + mi := &file_dota_usermessages_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6491,7 +6364,7 @@ func (x *CDOTAUserMsg_SendRoshanSpectatorPhase) String() string { func (*CDOTAUserMsg_SendRoshanSpectatorPhase) ProtoMessage() {} func (x *CDOTAUserMsg_SendRoshanSpectatorPhase) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[66] + mi := &file_dota_usermessages_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6504,7 +6377,7 @@ func (x *CDOTAUserMsg_SendRoshanSpectatorPhase) ProtoReflect() protoreflect.Mess // Deprecated: Use CDOTAUserMsg_SendRoshanSpectatorPhase.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_SendRoshanSpectatorPhase) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{66} + return file_dota_usermessages_proto_rawDescGZIP(), []int{65} } func (x *CDOTAUserMsg_SendRoshanSpectatorPhase) GetPhase() DOTA_ROSHAN_PHASE { @@ -6540,7 +6413,7 @@ type CDOTAUserMsg_SendRoshanPopup struct { func (x *CDOTAUserMsg_SendRoshanPopup) Reset() { *x = CDOTAUserMsg_SendRoshanPopup{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[67] + mi := &file_dota_usermessages_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6553,7 +6426,7 @@ func (x *CDOTAUserMsg_SendRoshanPopup) String() string { func (*CDOTAUserMsg_SendRoshanPopup) ProtoMessage() {} func (x *CDOTAUserMsg_SendRoshanPopup) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[67] + mi := &file_dota_usermessages_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6566,7 +6439,7 @@ func (x *CDOTAUserMsg_SendRoshanPopup) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_SendRoshanPopup.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_SendRoshanPopup) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{67} + return file_dota_usermessages_proto_rawDescGZIP(), []int{66} } func (x *CDOTAUserMsg_SendRoshanPopup) GetReclaimed() bool { @@ -6595,7 +6468,7 @@ type CDOTAUserMsg_SendFinalGold struct { func (x *CDOTAUserMsg_SendFinalGold) Reset() { *x = CDOTAUserMsg_SendFinalGold{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[68] + mi := &file_dota_usermessages_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6608,7 +6481,7 @@ func (x *CDOTAUserMsg_SendFinalGold) String() string { func (*CDOTAUserMsg_SendFinalGold) ProtoMessage() {} func (x *CDOTAUserMsg_SendFinalGold) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[68] + mi := &file_dota_usermessages_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6621,7 +6494,7 @@ func (x *CDOTAUserMsg_SendFinalGold) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_SendFinalGold.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_SendFinalGold) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{68} + return file_dota_usermessages_proto_rawDescGZIP(), []int{67} } func (x *CDOTAUserMsg_SendFinalGold) GetReliableGold() []uint32 { @@ -6651,7 +6524,7 @@ type CDOTAUserMsg_CustomMsg struct { func (x *CDOTAUserMsg_CustomMsg) Reset() { *x = CDOTAUserMsg_CustomMsg{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[69] + mi := &file_dota_usermessages_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6664,7 +6537,7 @@ func (x *CDOTAUserMsg_CustomMsg) String() string { func (*CDOTAUserMsg_CustomMsg) ProtoMessage() {} func (x *CDOTAUserMsg_CustomMsg) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[69] + mi := &file_dota_usermessages_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6677,7 +6550,7 @@ func (x *CDOTAUserMsg_CustomMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_CustomMsg.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_CustomMsg) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{69} + return file_dota_usermessages_proto_rawDescGZIP(), []int{68} } func (x *CDOTAUserMsg_CustomMsg) GetMessage() string { @@ -6713,7 +6586,7 @@ type CDOTAUserMsg_CoachHUDPing struct { func (x *CDOTAUserMsg_CoachHUDPing) Reset() { *x = CDOTAUserMsg_CoachHUDPing{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[70] + mi := &file_dota_usermessages_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6726,7 +6599,7 @@ func (x *CDOTAUserMsg_CoachHUDPing) String() string { func (*CDOTAUserMsg_CoachHUDPing) ProtoMessage() {} func (x *CDOTAUserMsg_CoachHUDPing) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[70] + mi := &file_dota_usermessages_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6739,7 +6612,7 @@ func (x *CDOTAUserMsg_CoachHUDPing) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_CoachHUDPing.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_CoachHUDPing) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{70} + return file_dota_usermessages_proto_rawDescGZIP(), []int{69} } func (x *CDOTAUserMsg_CoachHUDPing) GetPlayerId() int32 { @@ -6765,7 +6638,7 @@ type CDOTAUserMsg_ClientLoadGridNav struct { func (x *CDOTAUserMsg_ClientLoadGridNav) Reset() { *x = CDOTAUserMsg_ClientLoadGridNav{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[71] + mi := &file_dota_usermessages_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6778,7 +6651,7 @@ func (x *CDOTAUserMsg_ClientLoadGridNav) String() string { func (*CDOTAUserMsg_ClientLoadGridNav) ProtoMessage() {} func (x *CDOTAUserMsg_ClientLoadGridNav) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[71] + mi := &file_dota_usermessages_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6791,7 +6664,7 @@ func (x *CDOTAUserMsg_ClientLoadGridNav) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_ClientLoadGridNav.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_ClientLoadGridNav) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{71} + return file_dota_usermessages_proto_rawDescGZIP(), []int{70} } type CDOTAUserMsg_TE_Projectile struct { @@ -6821,7 +6694,7 @@ type CDOTAUserMsg_TE_Projectile struct { func (x *CDOTAUserMsg_TE_Projectile) Reset() { *x = CDOTAUserMsg_TE_Projectile{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[72] + mi := &file_dota_usermessages_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6834,7 +6707,7 @@ func (x *CDOTAUserMsg_TE_Projectile) String() string { func (*CDOTAUserMsg_TE_Projectile) ProtoMessage() {} func (x *CDOTAUserMsg_TE_Projectile) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[72] + mi := &file_dota_usermessages_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6847,7 +6720,7 @@ func (x *CDOTAUserMsg_TE_Projectile) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_TE_Projectile.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_TE_Projectile) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{72} + return file_dota_usermessages_proto_rawDescGZIP(), []int{71} } func (x *CDOTAUserMsg_TE_Projectile) GetSource() uint32 { @@ -6995,7 +6868,7 @@ type CDOTAUserMsg_TE_ProjectileLoc struct { func (x *CDOTAUserMsg_TE_ProjectileLoc) Reset() { *x = CDOTAUserMsg_TE_ProjectileLoc{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[73] + mi := &file_dota_usermessages_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7008,7 +6881,7 @@ func (x *CDOTAUserMsg_TE_ProjectileLoc) String() string { func (*CDOTAUserMsg_TE_ProjectileLoc) ProtoMessage() {} func (x *CDOTAUserMsg_TE_ProjectileLoc) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[73] + mi := &file_dota_usermessages_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7021,7 +6894,7 @@ func (x *CDOTAUserMsg_TE_ProjectileLoc) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_TE_ProjectileLoc.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_TE_ProjectileLoc) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{73} + return file_dota_usermessages_proto_rawDescGZIP(), []int{72} } func (x *CDOTAUserMsg_TE_ProjectileLoc) GetSourceLoc() *CMsgVector { @@ -7147,7 +7020,7 @@ type CDOTAUserMsg_TE_DestroyProjectile struct { func (x *CDOTAUserMsg_TE_DestroyProjectile) Reset() { *x = CDOTAUserMsg_TE_DestroyProjectile{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[74] + mi := &file_dota_usermessages_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7160,7 +7033,7 @@ func (x *CDOTAUserMsg_TE_DestroyProjectile) String() string { func (*CDOTAUserMsg_TE_DestroyProjectile) ProtoMessage() {} func (x *CDOTAUserMsg_TE_DestroyProjectile) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[74] + mi := &file_dota_usermessages_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7173,7 +7046,7 @@ func (x *CDOTAUserMsg_TE_DestroyProjectile) ProtoReflect() protoreflect.Message // Deprecated: Use CDOTAUserMsg_TE_DestroyProjectile.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_TE_DestroyProjectile) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{74} + return file_dota_usermessages_proto_rawDescGZIP(), []int{73} } func (x *CDOTAUserMsg_TE_DestroyProjectile) GetHandle() int32 { @@ -7197,7 +7070,7 @@ type CDOTAUserMsg_TE_DotaBloodImpact struct { func (x *CDOTAUserMsg_TE_DotaBloodImpact) Reset() { *x = CDOTAUserMsg_TE_DotaBloodImpact{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[75] + mi := &file_dota_usermessages_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7210,7 +7083,7 @@ func (x *CDOTAUserMsg_TE_DotaBloodImpact) String() string { func (*CDOTAUserMsg_TE_DotaBloodImpact) ProtoMessage() {} func (x *CDOTAUserMsg_TE_DotaBloodImpact) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[75] + mi := &file_dota_usermessages_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7223,7 +7096,7 @@ func (x *CDOTAUserMsg_TE_DotaBloodImpact) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_TE_DotaBloodImpact.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_TE_DotaBloodImpact) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{75} + return file_dota_usermessages_proto_rawDescGZIP(), []int{74} } func (x *CDOTAUserMsg_TE_DotaBloodImpact) GetEntity() uint32 { @@ -7277,7 +7150,7 @@ type CDOTAUserMsg_AbilityPing struct { func (x *CDOTAUserMsg_AbilityPing) Reset() { *x = CDOTAUserMsg_AbilityPing{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[76] + mi := &file_dota_usermessages_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7290,7 +7163,7 @@ func (x *CDOTAUserMsg_AbilityPing) String() string { func (*CDOTAUserMsg_AbilityPing) ProtoMessage() {} func (x *CDOTAUserMsg_AbilityPing) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[76] + mi := &file_dota_usermessages_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7303,7 +7176,7 @@ func (x *CDOTAUserMsg_AbilityPing) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_AbilityPing.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_AbilityPing) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{76} + return file_dota_usermessages_proto_rawDescGZIP(), []int{75} } func (x *CDOTAUserMsg_AbilityPing) GetPlayerId() int32 { @@ -7414,7 +7287,7 @@ type CDOTAUserMsg_TE_UnitAnimation struct { func (x *CDOTAUserMsg_TE_UnitAnimation) Reset() { *x = CDOTAUserMsg_TE_UnitAnimation{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[77] + mi := &file_dota_usermessages_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7427,7 +7300,7 @@ func (x *CDOTAUserMsg_TE_UnitAnimation) String() string { func (*CDOTAUserMsg_TE_UnitAnimation) ProtoMessage() {} func (x *CDOTAUserMsg_TE_UnitAnimation) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[77] + mi := &file_dota_usermessages_proto_msgTypes[76] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7440,7 +7313,7 @@ func (x *CDOTAUserMsg_TE_UnitAnimation) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_TE_UnitAnimation.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_TE_UnitAnimation) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{77} + return file_dota_usermessages_proto_rawDescGZIP(), []int{76} } func (x *CDOTAUserMsg_TE_UnitAnimation) GetEntity() uint32 { @@ -7504,7 +7377,7 @@ type CDOTAUserMsg_TE_UnitAnimationEnd struct { func (x *CDOTAUserMsg_TE_UnitAnimationEnd) Reset() { *x = CDOTAUserMsg_TE_UnitAnimationEnd{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[78] + mi := &file_dota_usermessages_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7517,7 +7390,7 @@ func (x *CDOTAUserMsg_TE_UnitAnimationEnd) String() string { func (*CDOTAUserMsg_TE_UnitAnimationEnd) ProtoMessage() {} func (x *CDOTAUserMsg_TE_UnitAnimationEnd) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[78] + mi := &file_dota_usermessages_proto_msgTypes[77] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7530,7 +7403,7 @@ func (x *CDOTAUserMsg_TE_UnitAnimationEnd) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_TE_UnitAnimationEnd.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_TE_UnitAnimationEnd) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{78} + return file_dota_usermessages_proto_rawDescGZIP(), []int{77} } func (x *CDOTAUserMsg_TE_UnitAnimationEnd) GetEntity() uint32 { @@ -7563,7 +7436,7 @@ type CDOTAUserMsg_ShowGenericPopup struct { func (x *CDOTAUserMsg_ShowGenericPopup) Reset() { *x = CDOTAUserMsg_ShowGenericPopup{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[79] + mi := &file_dota_usermessages_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7576,7 +7449,7 @@ func (x *CDOTAUserMsg_ShowGenericPopup) String() string { func (*CDOTAUserMsg_ShowGenericPopup) ProtoMessage() {} func (x *CDOTAUserMsg_ShowGenericPopup) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[79] + mi := &file_dota_usermessages_proto_msgTypes[78] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7589,7 +7462,7 @@ func (x *CDOTAUserMsg_ShowGenericPopup) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_ShowGenericPopup.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_ShowGenericPopup) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{79} + return file_dota_usermessages_proto_rawDescGZIP(), []int{78} } func (x *CDOTAUserMsg_ShowGenericPopup) GetHeader() string { @@ -7648,7 +7521,7 @@ type CDOTAUserMsg_VoteStart struct { func (x *CDOTAUserMsg_VoteStart) Reset() { *x = CDOTAUserMsg_VoteStart{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[80] + mi := &file_dota_usermessages_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7661,7 +7534,7 @@ func (x *CDOTAUserMsg_VoteStart) String() string { func (*CDOTAUserMsg_VoteStart) ProtoMessage() {} func (x *CDOTAUserMsg_VoteStart) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[80] + mi := &file_dota_usermessages_proto_msgTypes[79] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7674,7 +7547,7 @@ func (x *CDOTAUserMsg_VoteStart) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_VoteStart.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_VoteStart) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{80} + return file_dota_usermessages_proto_rawDescGZIP(), []int{79} } func (x *CDOTAUserMsg_VoteStart) GetTitle() string { @@ -7716,7 +7589,7 @@ type CDOTAUserMsg_VoteUpdate struct { func (x *CDOTAUserMsg_VoteUpdate) Reset() { *x = CDOTAUserMsg_VoteUpdate{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[81] + mi := &file_dota_usermessages_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7729,7 +7602,7 @@ func (x *CDOTAUserMsg_VoteUpdate) String() string { func (*CDOTAUserMsg_VoteUpdate) ProtoMessage() {} func (x *CDOTAUserMsg_VoteUpdate) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[81] + mi := &file_dota_usermessages_proto_msgTypes[80] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7742,7 +7615,7 @@ func (x *CDOTAUserMsg_VoteUpdate) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_VoteUpdate.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_VoteUpdate) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{81} + return file_dota_usermessages_proto_rawDescGZIP(), []int{80} } func (x *CDOTAUserMsg_VoteUpdate) GetChoiceCounts() []int32 { @@ -7763,7 +7636,7 @@ type CDOTAUserMsg_VoteEnd struct { func (x *CDOTAUserMsg_VoteEnd) Reset() { *x = CDOTAUserMsg_VoteEnd{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[82] + mi := &file_dota_usermessages_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7776,7 +7649,7 @@ func (x *CDOTAUserMsg_VoteEnd) String() string { func (*CDOTAUserMsg_VoteEnd) ProtoMessage() {} func (x *CDOTAUserMsg_VoteEnd) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[82] + mi := &file_dota_usermessages_proto_msgTypes[81] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7789,7 +7662,7 @@ func (x *CDOTAUserMsg_VoteEnd) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_VoteEnd.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_VoteEnd) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{82} + return file_dota_usermessages_proto_rawDescGZIP(), []int{81} } func (x *CDOTAUserMsg_VoteEnd) GetSelectedChoice() int32 { @@ -7814,7 +7687,7 @@ type CDOTAUserMsg_BoosterStatePlayer struct { func (x *CDOTAUserMsg_BoosterStatePlayer) Reset() { *x = CDOTAUserMsg_BoosterStatePlayer{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[83] + mi := &file_dota_usermessages_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7827,7 +7700,7 @@ func (x *CDOTAUserMsg_BoosterStatePlayer) String() string { func (*CDOTAUserMsg_BoosterStatePlayer) ProtoMessage() {} func (x *CDOTAUserMsg_BoosterStatePlayer) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[83] + mi := &file_dota_usermessages_proto_msgTypes[82] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7840,7 +7713,7 @@ func (x *CDOTAUserMsg_BoosterStatePlayer) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_BoosterStatePlayer.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_BoosterStatePlayer) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{83} + return file_dota_usermessages_proto_rawDescGZIP(), []int{82} } func (x *CDOTAUserMsg_BoosterStatePlayer) GetPlayerId() int32 { @@ -7889,7 +7762,7 @@ type CDOTAUserMsg_BoosterState struct { func (x *CDOTAUserMsg_BoosterState) Reset() { *x = CDOTAUserMsg_BoosterState{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[84] + mi := &file_dota_usermessages_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7902,7 +7775,7 @@ func (x *CDOTAUserMsg_BoosterState) String() string { func (*CDOTAUserMsg_BoosterState) ProtoMessage() {} func (x *CDOTAUserMsg_BoosterState) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[84] + mi := &file_dota_usermessages_proto_msgTypes[83] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7915,7 +7788,7 @@ func (x *CDOTAUserMsg_BoosterState) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_BoosterState.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_BoosterState) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{84} + return file_dota_usermessages_proto_rawDescGZIP(), []int{83} } func (x *CDOTAUserMsg_BoosterState) GetBoostedPlayers() []*CDOTAUserMsg_BoosterStatePlayer { @@ -7936,7 +7809,7 @@ type CDOTAUserMsg_PlayerMMR struct { func (x *CDOTAUserMsg_PlayerMMR) Reset() { *x = CDOTAUserMsg_PlayerMMR{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[85] + mi := &file_dota_usermessages_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7949,7 +7822,7 @@ func (x *CDOTAUserMsg_PlayerMMR) String() string { func (*CDOTAUserMsg_PlayerMMR) ProtoMessage() {} func (x *CDOTAUserMsg_PlayerMMR) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[85] + mi := &file_dota_usermessages_proto_msgTypes[84] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7962,7 +7835,7 @@ func (x *CDOTAUserMsg_PlayerMMR) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_PlayerMMR.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_PlayerMMR) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{85} + return file_dota_usermessages_proto_rawDescGZIP(), []int{84} } func (x *CDOTAUserMsg_PlayerMMR) GetMmr() []int32 { @@ -7985,7 +7858,7 @@ type CDOTAUserMsg_AbilitySteal struct { func (x *CDOTAUserMsg_AbilitySteal) Reset() { *x = CDOTAUserMsg_AbilitySteal{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[86] + mi := &file_dota_usermessages_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7998,7 +7871,7 @@ func (x *CDOTAUserMsg_AbilitySteal) String() string { func (*CDOTAUserMsg_AbilitySteal) ProtoMessage() {} func (x *CDOTAUserMsg_AbilitySteal) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[86] + mi := &file_dota_usermessages_proto_msgTypes[85] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8011,7 +7884,7 @@ func (x *CDOTAUserMsg_AbilitySteal) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_AbilitySteal.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_AbilitySteal) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{86} + return file_dota_usermessages_proto_rawDescGZIP(), []int{85} } func (x *CDOTAUserMsg_AbilitySteal) GetPlayerId() int32 { @@ -8049,7 +7922,7 @@ type CDOTAUserMsg_StatsHeroLookup struct { func (x *CDOTAUserMsg_StatsHeroLookup) Reset() { *x = CDOTAUserMsg_StatsHeroLookup{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[87] + mi := &file_dota_usermessages_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8062,7 +7935,7 @@ func (x *CDOTAUserMsg_StatsHeroLookup) String() string { func (*CDOTAUserMsg_StatsHeroLookup) ProtoMessage() {} func (x *CDOTAUserMsg_StatsHeroLookup) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[87] + mi := &file_dota_usermessages_proto_msgTypes[86] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8075,7 +7948,7 @@ func (x *CDOTAUserMsg_StatsHeroLookup) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_StatsHeroLookup.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_StatsHeroLookup) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{87} + return file_dota_usermessages_proto_rawDescGZIP(), []int{86} } func (x *CDOTAUserMsg_StatsHeroLookup) GetPlayerId() int32 { @@ -8118,7 +7991,7 @@ type CDOTAUserMsg_StatsHeroPositionInfo struct { func (x *CDOTAUserMsg_StatsHeroPositionInfo) Reset() { *x = CDOTAUserMsg_StatsHeroPositionInfo{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[88] + mi := &file_dota_usermessages_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8131,7 +8004,7 @@ func (x *CDOTAUserMsg_StatsHeroPositionInfo) String() string { func (*CDOTAUserMsg_StatsHeroPositionInfo) ProtoMessage() {} func (x *CDOTAUserMsg_StatsHeroPositionInfo) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[88] + mi := &file_dota_usermessages_proto_msgTypes[87] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8144,7 +8017,7 @@ func (x *CDOTAUserMsg_StatsHeroPositionInfo) ProtoReflect() protoreflect.Message // Deprecated: Use CDOTAUserMsg_StatsHeroPositionInfo.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_StatsHeroPositionInfo) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{88} + return file_dota_usermessages_proto_rawDescGZIP(), []int{87} } func (x *CDOTAUserMsg_StatsHeroPositionInfo) GetAveragePosition() float32 { @@ -8186,7 +8059,7 @@ type CDOTAUserMsg_StatsHeroMinuteDetails struct { func (x *CDOTAUserMsg_StatsHeroMinuteDetails) Reset() { *x = CDOTAUserMsg_StatsHeroMinuteDetails{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[89] + mi := &file_dota_usermessages_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8199,7 +8072,7 @@ func (x *CDOTAUserMsg_StatsHeroMinuteDetails) String() string { func (*CDOTAUserMsg_StatsHeroMinuteDetails) ProtoMessage() {} func (x *CDOTAUserMsg_StatsHeroMinuteDetails) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[89] + mi := &file_dota_usermessages_proto_msgTypes[88] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8212,7 +8085,7 @@ func (x *CDOTAUserMsg_StatsHeroMinuteDetails) ProtoReflect() protoreflect.Messag // Deprecated: Use CDOTAUserMsg_StatsHeroMinuteDetails.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_StatsHeroMinuteDetails) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{89} + return file_dota_usermessages_proto_rawDescGZIP(), []int{88} } func (x *CDOTAUserMsg_StatsHeroMinuteDetails) GetLastHits() uint32 { @@ -8340,7 +8213,7 @@ type CDOTAUserMsg_StatsTeamMinuteDetails struct { func (x *CDOTAUserMsg_StatsTeamMinuteDetails) Reset() { *x = CDOTAUserMsg_StatsTeamMinuteDetails{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[90] + mi := &file_dota_usermessages_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8353,7 +8226,7 @@ func (x *CDOTAUserMsg_StatsTeamMinuteDetails) String() string { func (*CDOTAUserMsg_StatsTeamMinuteDetails) ProtoMessage() {} func (x *CDOTAUserMsg_StatsTeamMinuteDetails) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[90] + mi := &file_dota_usermessages_proto_msgTypes[89] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8366,7 +8239,7 @@ func (x *CDOTAUserMsg_StatsTeamMinuteDetails) ProtoReflect() protoreflect.Messag // Deprecated: Use CDOTAUserMsg_StatsTeamMinuteDetails.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_StatsTeamMinuteDetails) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{90} + return file_dota_usermessages_proto_rawDescGZIP(), []int{89} } func (x *CDOTAUserMsg_StatsTeamMinuteDetails) GetPlayerStats() []*CDOTAUserMsg_StatsHeroMinuteDetails { @@ -8455,7 +8328,7 @@ type CDOTAUserMsg_StatsPlayerKillShare struct { func (x *CDOTAUserMsg_StatsPlayerKillShare) Reset() { *x = CDOTAUserMsg_StatsPlayerKillShare{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[91] + mi := &file_dota_usermessages_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8468,7 +8341,7 @@ func (x *CDOTAUserMsg_StatsPlayerKillShare) String() string { func (*CDOTAUserMsg_StatsPlayerKillShare) ProtoMessage() {} func (x *CDOTAUserMsg_StatsPlayerKillShare) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[91] + mi := &file_dota_usermessages_proto_msgTypes[90] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8481,7 +8354,7 @@ func (x *CDOTAUserMsg_StatsPlayerKillShare) ProtoReflect() protoreflect.Message // Deprecated: Use CDOTAUserMsg_StatsPlayerKillShare.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_StatsPlayerKillShare) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{91} + return file_dota_usermessages_proto_rawDescGZIP(), []int{90} } func (x *CDOTAUserMsg_StatsPlayerKillShare) GetPlayerId() int32 { @@ -8542,7 +8415,7 @@ type CDOTAUserMsg_StatsKillDetails struct { func (x *CDOTAUserMsg_StatsKillDetails) Reset() { *x = CDOTAUserMsg_StatsKillDetails{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[92] + mi := &file_dota_usermessages_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8555,7 +8428,7 @@ func (x *CDOTAUserMsg_StatsKillDetails) String() string { func (*CDOTAUserMsg_StatsKillDetails) ProtoMessage() {} func (x *CDOTAUserMsg_StatsKillDetails) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[92] + mi := &file_dota_usermessages_proto_msgTypes[91] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8568,7 +8441,7 @@ func (x *CDOTAUserMsg_StatsKillDetails) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_StatsKillDetails.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_StatsKillDetails) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{92} + return file_dota_usermessages_proto_rawDescGZIP(), []int{91} } func (x *CDOTAUserMsg_StatsKillDetails) GetVictimId() int32 { @@ -8629,7 +8502,7 @@ type CDOTAUserMsg_StatsMatchDetails struct { func (x *CDOTAUserMsg_StatsMatchDetails) Reset() { *x = CDOTAUserMsg_StatsMatchDetails{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[93] + mi := &file_dota_usermessages_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8642,7 +8515,7 @@ func (x *CDOTAUserMsg_StatsMatchDetails) String() string { func (*CDOTAUserMsg_StatsMatchDetails) ProtoMessage() {} func (x *CDOTAUserMsg_StatsMatchDetails) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[93] + mi := &file_dota_usermessages_proto_msgTypes[92] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8655,7 +8528,7 @@ func (x *CDOTAUserMsg_StatsMatchDetails) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_StatsMatchDetails.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_StatsMatchDetails) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{93} + return file_dota_usermessages_proto_rawDescGZIP(), []int{92} } func (x *CDOTAUserMsg_StatsMatchDetails) GetHeroLookup() []*CDOTAUserMsg_StatsHeroLookup { @@ -8711,7 +8584,7 @@ type CDOTAUserMsg_MiniTaunt struct { func (x *CDOTAUserMsg_MiniTaunt) Reset() { *x = CDOTAUserMsg_MiniTaunt{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[94] + mi := &file_dota_usermessages_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8724,7 +8597,7 @@ func (x *CDOTAUserMsg_MiniTaunt) String() string { func (*CDOTAUserMsg_MiniTaunt) ProtoMessage() {} func (x *CDOTAUserMsg_MiniTaunt) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[94] + mi := &file_dota_usermessages_proto_msgTypes[93] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8737,7 +8610,7 @@ func (x *CDOTAUserMsg_MiniTaunt) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_MiniTaunt.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_MiniTaunt) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{94} + return file_dota_usermessages_proto_rawDescGZIP(), []int{93} } func (x *CDOTAUserMsg_MiniTaunt) GetTauntingPlayerId() int32 { @@ -8758,7 +8631,7 @@ type CDOTAUserMsg_SpeechBubble struct { func (x *CDOTAUserMsg_SpeechBubble) Reset() { *x = CDOTAUserMsg_SpeechBubble{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[95] + mi := &file_dota_usermessages_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8771,7 +8644,7 @@ func (x *CDOTAUserMsg_SpeechBubble) String() string { func (*CDOTAUserMsg_SpeechBubble) ProtoMessage() {} func (x *CDOTAUserMsg_SpeechBubble) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[95] + mi := &file_dota_usermessages_proto_msgTypes[94] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8784,7 +8657,7 @@ func (x *CDOTAUserMsg_SpeechBubble) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_SpeechBubble.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_SpeechBubble) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{95} + return file_dota_usermessages_proto_rawDescGZIP(), []int{94} } func (x *CDOTAUserMsg_SpeechBubble) GetDestroyAll() bool { @@ -8808,7 +8681,7 @@ type CDOTAUserMsg_CustomHeaderMessage struct { func (x *CDOTAUserMsg_CustomHeaderMessage) Reset() { *x = CDOTAUserMsg_CustomHeaderMessage{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[96] + mi := &file_dota_usermessages_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8821,7 +8694,7 @@ func (x *CDOTAUserMsg_CustomHeaderMessage) String() string { func (*CDOTAUserMsg_CustomHeaderMessage) ProtoMessage() {} func (x *CDOTAUserMsg_CustomHeaderMessage) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[96] + mi := &file_dota_usermessages_proto_msgTypes[95] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8834,7 +8707,7 @@ func (x *CDOTAUserMsg_CustomHeaderMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_CustomHeaderMessage.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_CustomHeaderMessage) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{96} + return file_dota_usermessages_proto_rawDescGZIP(), []int{95} } func (x *CDOTAUserMsg_CustomHeaderMessage) GetPlayerId() int32 { @@ -8878,7 +8751,7 @@ type CMsgHeroAbilityStat struct { func (x *CMsgHeroAbilityStat) Reset() { *x = CMsgHeroAbilityStat{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[97] + mi := &file_dota_usermessages_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8891,7 +8764,7 @@ func (x *CMsgHeroAbilityStat) String() string { func (*CMsgHeroAbilityStat) ProtoMessage() {} func (x *CMsgHeroAbilityStat) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[97] + mi := &file_dota_usermessages_proto_msgTypes[96] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8904,7 +8777,7 @@ func (x *CMsgHeroAbilityStat) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgHeroAbilityStat.ProtoReflect.Descriptor instead. func (*CMsgHeroAbilityStat) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{97} + return file_dota_usermessages_proto_rawDescGZIP(), []int{96} } func (x *CMsgHeroAbilityStat) GetStatType() EHeroStatType { @@ -8940,7 +8813,7 @@ type CMsgCombatAnalyzerPlayerStat struct { func (x *CMsgCombatAnalyzerPlayerStat) Reset() { *x = CMsgCombatAnalyzerPlayerStat{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[98] + mi := &file_dota_usermessages_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8953,7 +8826,7 @@ func (x *CMsgCombatAnalyzerPlayerStat) String() string { func (*CMsgCombatAnalyzerPlayerStat) ProtoMessage() {} func (x *CMsgCombatAnalyzerPlayerStat) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[98] + mi := &file_dota_usermessages_proto_msgTypes[97] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8966,7 +8839,7 @@ func (x *CMsgCombatAnalyzerPlayerStat) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgCombatAnalyzerPlayerStat.ProtoReflect.Descriptor instead. func (*CMsgCombatAnalyzerPlayerStat) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{98} + return file_dota_usermessages_proto_rawDescGZIP(), []int{97} } func (x *CMsgCombatAnalyzerPlayerStat) GetAccountId() uint32 { @@ -8995,7 +8868,7 @@ type CMsgCombatAnalyzerStats struct { func (x *CMsgCombatAnalyzerStats) Reset() { *x = CMsgCombatAnalyzerStats{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[99] + mi := &file_dota_usermessages_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9008,7 +8881,7 @@ func (x *CMsgCombatAnalyzerStats) String() string { func (*CMsgCombatAnalyzerStats) ProtoMessage() {} func (x *CMsgCombatAnalyzerStats) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[99] + mi := &file_dota_usermessages_proto_msgTypes[98] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9021,7 +8894,7 @@ func (x *CMsgCombatAnalyzerStats) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgCombatAnalyzerStats.ProtoReflect.Descriptor instead. func (*CMsgCombatAnalyzerStats) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{99} + return file_dota_usermessages_proto_rawDescGZIP(), []int{98} } func (x *CMsgCombatAnalyzerStats) GetMatchId() uint64 { @@ -9052,7 +8925,7 @@ type CDOTAUserMsg_BeastChat struct { func (x *CDOTAUserMsg_BeastChat) Reset() { *x = CDOTAUserMsg_BeastChat{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[100] + mi := &file_dota_usermessages_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9065,7 +8938,7 @@ func (x *CDOTAUserMsg_BeastChat) String() string { func (*CDOTAUserMsg_BeastChat) ProtoMessage() {} func (x *CDOTAUserMsg_BeastChat) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[100] + mi := &file_dota_usermessages_proto_msgTypes[99] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9078,7 +8951,7 @@ func (x *CDOTAUserMsg_BeastChat) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_BeastChat.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_BeastChat) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{100} + return file_dota_usermessages_proto_rawDescGZIP(), []int{99} } func (x *CDOTAUserMsg_BeastChat) GetTeam() uint32 { @@ -9122,7 +8995,7 @@ type CDOTAUserMsg_CustomHudElement_Create struct { func (x *CDOTAUserMsg_CustomHudElement_Create) Reset() { *x = CDOTAUserMsg_CustomHudElement_Create{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[101] + mi := &file_dota_usermessages_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9135,7 +9008,7 @@ func (x *CDOTAUserMsg_CustomHudElement_Create) String() string { func (*CDOTAUserMsg_CustomHudElement_Create) ProtoMessage() {} func (x *CDOTAUserMsg_CustomHudElement_Create) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[101] + mi := &file_dota_usermessages_proto_msgTypes[100] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9148,7 +9021,7 @@ func (x *CDOTAUserMsg_CustomHudElement_Create) ProtoReflect() protoreflect.Messa // Deprecated: Use CDOTAUserMsg_CustomHudElement_Create.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_CustomHudElement_Create) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{101} + return file_dota_usermessages_proto_rawDescGZIP(), []int{100} } func (x *CDOTAUserMsg_CustomHudElement_Create) GetElementId() string { @@ -9185,7 +9058,7 @@ type CDOTAUserMsg_CustomHudElement_Modify struct { func (x *CDOTAUserMsg_CustomHudElement_Modify) Reset() { *x = CDOTAUserMsg_CustomHudElement_Modify{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[102] + mi := &file_dota_usermessages_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9198,7 +9071,7 @@ func (x *CDOTAUserMsg_CustomHudElement_Modify) String() string { func (*CDOTAUserMsg_CustomHudElement_Modify) ProtoMessage() {} func (x *CDOTAUserMsg_CustomHudElement_Modify) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[102] + mi := &file_dota_usermessages_proto_msgTypes[101] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9211,7 +9084,7 @@ func (x *CDOTAUserMsg_CustomHudElement_Modify) ProtoReflect() protoreflect.Messa // Deprecated: Use CDOTAUserMsg_CustomHudElement_Modify.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_CustomHudElement_Modify) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{102} + return file_dota_usermessages_proto_rawDescGZIP(), []int{101} } func (x *CDOTAUserMsg_CustomHudElement_Modify) GetElementId() string { @@ -9246,7 +9119,7 @@ type CDOTAUserMsg_CustomHudElement_Destroy struct { func (x *CDOTAUserMsg_CustomHudElement_Destroy) Reset() { *x = CDOTAUserMsg_CustomHudElement_Destroy{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[103] + mi := &file_dota_usermessages_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9259,7 +9132,7 @@ func (x *CDOTAUserMsg_CustomHudElement_Destroy) String() string { func (*CDOTAUserMsg_CustomHudElement_Destroy) ProtoMessage() {} func (x *CDOTAUserMsg_CustomHudElement_Destroy) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[103] + mi := &file_dota_usermessages_proto_msgTypes[102] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9272,7 +9145,7 @@ func (x *CDOTAUserMsg_CustomHudElement_Destroy) ProtoReflect() protoreflect.Mess // Deprecated: Use CDOTAUserMsg_CustomHudElement_Destroy.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_CustomHudElement_Destroy) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{103} + return file_dota_usermessages_proto_rawDescGZIP(), []int{102} } func (x *CDOTAUserMsg_CustomHudElement_Destroy) GetElementId() string { @@ -9294,7 +9167,7 @@ type CDOTAUserMsg_CompendiumStatePlayer struct { func (x *CDOTAUserMsg_CompendiumStatePlayer) Reset() { *x = CDOTAUserMsg_CompendiumStatePlayer{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[104] + mi := &file_dota_usermessages_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9307,7 +9180,7 @@ func (x *CDOTAUserMsg_CompendiumStatePlayer) String() string { func (*CDOTAUserMsg_CompendiumStatePlayer) ProtoMessage() {} func (x *CDOTAUserMsg_CompendiumStatePlayer) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[104] + mi := &file_dota_usermessages_proto_msgTypes[103] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9320,7 +9193,7 @@ func (x *CDOTAUserMsg_CompendiumStatePlayer) ProtoReflect() protoreflect.Message // Deprecated: Use CDOTAUserMsg_CompendiumStatePlayer.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_CompendiumStatePlayer) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{104} + return file_dota_usermessages_proto_rawDescGZIP(), []int{103} } func (x *CDOTAUserMsg_CompendiumStatePlayer) GetPlayerId() int32 { @@ -9348,7 +9221,7 @@ type CDOTAUserMsg_CompendiumState struct { func (x *CDOTAUserMsg_CompendiumState) Reset() { *x = CDOTAUserMsg_CompendiumState{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[105] + mi := &file_dota_usermessages_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9361,7 +9234,7 @@ func (x *CDOTAUserMsg_CompendiumState) String() string { func (*CDOTAUserMsg_CompendiumState) ProtoMessage() {} func (x *CDOTAUserMsg_CompendiumState) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[105] + mi := &file_dota_usermessages_proto_msgTypes[104] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9374,7 +9247,7 @@ func (x *CDOTAUserMsg_CompendiumState) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_CompendiumState.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_CompendiumState) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{105} + return file_dota_usermessages_proto_rawDescGZIP(), []int{104} } func (x *CDOTAUserMsg_CompendiumState) GetCompendiumPlayers() []*CDOTAUserMsg_CompendiumStatePlayer { @@ -9402,7 +9275,7 @@ type CDOTAUserMsg_ProjectionAbility struct { func (x *CDOTAUserMsg_ProjectionAbility) Reset() { *x = CDOTAUserMsg_ProjectionAbility{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[106] + mi := &file_dota_usermessages_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9415,7 +9288,7 @@ func (x *CDOTAUserMsg_ProjectionAbility) String() string { func (*CDOTAUserMsg_ProjectionAbility) ProtoMessage() {} func (x *CDOTAUserMsg_ProjectionAbility) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[106] + mi := &file_dota_usermessages_proto_msgTypes[105] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9428,7 +9301,7 @@ func (x *CDOTAUserMsg_ProjectionAbility) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_ProjectionAbility.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_ProjectionAbility) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{106} + return file_dota_usermessages_proto_rawDescGZIP(), []int{105} } func (x *CDOTAUserMsg_ProjectionAbility) GetAbilityId() int32 { @@ -9499,7 +9372,7 @@ type CDOTAUserMsg_ProjectionEvent struct { func (x *CDOTAUserMsg_ProjectionEvent) Reset() { *x = CDOTAUserMsg_ProjectionEvent{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[107] + mi := &file_dota_usermessages_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9512,7 +9385,7 @@ func (x *CDOTAUserMsg_ProjectionEvent) String() string { func (*CDOTAUserMsg_ProjectionEvent) ProtoMessage() {} func (x *CDOTAUserMsg_ProjectionEvent) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[107] + mi := &file_dota_usermessages_proto_msgTypes[106] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9525,7 +9398,7 @@ func (x *CDOTAUserMsg_ProjectionEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_ProjectionEvent.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_ProjectionEvent) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{107} + return file_dota_usermessages_proto_rawDescGZIP(), []int{106} } func (x *CDOTAUserMsg_ProjectionEvent) GetEventId() EProjectionEvent { @@ -9554,7 +9427,7 @@ type CDOTAUserMsg_XPAlert struct { func (x *CDOTAUserMsg_XPAlert) Reset() { *x = CDOTAUserMsg_XPAlert{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[108] + mi := &file_dota_usermessages_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9567,7 +9440,7 @@ func (x *CDOTAUserMsg_XPAlert) String() string { func (*CDOTAUserMsg_XPAlert) ProtoMessage() {} func (x *CDOTAUserMsg_XPAlert) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[108] + mi := &file_dota_usermessages_proto_msgTypes[107] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9580,7 +9453,7 @@ func (x *CDOTAUserMsg_XPAlert) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_XPAlert.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_XPAlert) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{108} + return file_dota_usermessages_proto_rawDescGZIP(), []int{107} } func (x *CDOTAUserMsg_XPAlert) GetPlayerId() int32 { @@ -9612,7 +9485,7 @@ type CDOTAUserMsg_TalentTreeAlert struct { func (x *CDOTAUserMsg_TalentTreeAlert) Reset() { *x = CDOTAUserMsg_TalentTreeAlert{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[109] + mi := &file_dota_usermessages_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9625,7 +9498,7 @@ func (x *CDOTAUserMsg_TalentTreeAlert) String() string { func (*CDOTAUserMsg_TalentTreeAlert) ProtoMessage() {} func (x *CDOTAUserMsg_TalentTreeAlert) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[109] + mi := &file_dota_usermessages_proto_msgTypes[108] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9638,7 +9511,7 @@ func (x *CDOTAUserMsg_TalentTreeAlert) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_TalentTreeAlert.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_TalentTreeAlert) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{109} + return file_dota_usermessages_proto_rawDescGZIP(), []int{108} } func (x *CDOTAUserMsg_TalentTreeAlert) GetPlayerId() int32 { @@ -9685,7 +9558,7 @@ type CDOTAUserMsg_UpdateQuestProgress struct { func (x *CDOTAUserMsg_UpdateQuestProgress) Reset() { *x = CDOTAUserMsg_UpdateQuestProgress{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[110] + mi := &file_dota_usermessages_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9698,7 +9571,7 @@ func (x *CDOTAUserMsg_UpdateQuestProgress) String() string { func (*CDOTAUserMsg_UpdateQuestProgress) ProtoMessage() {} func (x *CDOTAUserMsg_UpdateQuestProgress) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[110] + mi := &file_dota_usermessages_proto_msgTypes[109] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9711,7 +9584,7 @@ func (x *CDOTAUserMsg_UpdateQuestProgress) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_UpdateQuestProgress.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_UpdateQuestProgress) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{110} + return file_dota_usermessages_proto_rawDescGZIP(), []int{109} } type CDOTAUserMsg_QuestStatus struct { @@ -9732,7 +9605,7 @@ type CDOTAUserMsg_QuestStatus struct { func (x *CDOTAUserMsg_QuestStatus) Reset() { *x = CDOTAUserMsg_QuestStatus{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[111] + mi := &file_dota_usermessages_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9745,7 +9618,7 @@ func (x *CDOTAUserMsg_QuestStatus) String() string { func (*CDOTAUserMsg_QuestStatus) ProtoMessage() {} func (x *CDOTAUserMsg_QuestStatus) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[111] + mi := &file_dota_usermessages_proto_msgTypes[110] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9758,7 +9631,7 @@ func (x *CDOTAUserMsg_QuestStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_QuestStatus.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_QuestStatus) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{111} + return file_dota_usermessages_proto_rawDescGZIP(), []int{110} } func (x *CDOTAUserMsg_QuestStatus) GetPlayerId() int32 { @@ -9823,7 +9696,7 @@ type CDOTAUserMsg_SuggestHeroPick struct { unknownFields protoimpl.UnknownFields PlayerId *int32 `protobuf:"varint,1,req,name=player_id,json=playerId" json:"player_id,omitempty"` - HeroId *uint32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` Ban *bool `protobuf:"varint,3,opt,name=ban" json:"ban,omitempty"` FacetId *uint32 `protobuf:"varint,4,opt,name=facet_id,json=facetId" json:"facet_id,omitempty"` } @@ -9831,7 +9704,7 @@ type CDOTAUserMsg_SuggestHeroPick struct { func (x *CDOTAUserMsg_SuggestHeroPick) Reset() { *x = CDOTAUserMsg_SuggestHeroPick{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[112] + mi := &file_dota_usermessages_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9844,7 +9717,7 @@ func (x *CDOTAUserMsg_SuggestHeroPick) String() string { func (*CDOTAUserMsg_SuggestHeroPick) ProtoMessage() {} func (x *CDOTAUserMsg_SuggestHeroPick) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[112] + mi := &file_dota_usermessages_proto_msgTypes[111] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9857,7 +9730,7 @@ func (x *CDOTAUserMsg_SuggestHeroPick) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_SuggestHeroPick.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_SuggestHeroPick) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{112} + return file_dota_usermessages_proto_rawDescGZIP(), []int{111} } func (x *CDOTAUserMsg_SuggestHeroPick) GetPlayerId() int32 { @@ -9867,7 +9740,7 @@ func (x *CDOTAUserMsg_SuggestHeroPick) GetPlayerId() int32 { return 0 } -func (x *CDOTAUserMsg_SuggestHeroPick) GetHeroId() uint32 { +func (x *CDOTAUserMsg_SuggestHeroPick) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -9900,7 +9773,7 @@ type CDOTAUserMsg_SuggestHeroRole struct { func (x *CDOTAUserMsg_SuggestHeroRole) Reset() { *x = CDOTAUserMsg_SuggestHeroRole{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[113] + mi := &file_dota_usermessages_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9913,7 +9786,7 @@ func (x *CDOTAUserMsg_SuggestHeroRole) String() string { func (*CDOTAUserMsg_SuggestHeroRole) ProtoMessage() {} func (x *CDOTAUserMsg_SuggestHeroRole) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[113] + mi := &file_dota_usermessages_proto_msgTypes[112] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9926,7 +9799,7 @@ func (x *CDOTAUserMsg_SuggestHeroRole) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_SuggestHeroRole.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_SuggestHeroRole) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{113} + return file_dota_usermessages_proto_rawDescGZIP(), []int{112} } func (x *CDOTAUserMsg_SuggestHeroRole) GetPlayerId() int32 { @@ -9959,7 +9832,7 @@ type CDOTAUserMsg_KillcamDamageTaken struct { func (x *CDOTAUserMsg_KillcamDamageTaken) Reset() { *x = CDOTAUserMsg_KillcamDamageTaken{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[114] + mi := &file_dota_usermessages_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9972,7 +9845,7 @@ func (x *CDOTAUserMsg_KillcamDamageTaken) String() string { func (*CDOTAUserMsg_KillcamDamageTaken) ProtoMessage() {} func (x *CDOTAUserMsg_KillcamDamageTaken) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[114] + mi := &file_dota_usermessages_proto_msgTypes[113] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9985,7 +9858,7 @@ func (x *CDOTAUserMsg_KillcamDamageTaken) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_KillcamDamageTaken.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_KillcamDamageTaken) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{114} + return file_dota_usermessages_proto_rawDescGZIP(), []int{113} } func (x *CDOTAUserMsg_KillcamDamageTaken) GetPlayerId() int32 { @@ -10042,7 +9915,7 @@ type CDOTAUserMsg_SelectPenaltyGold struct { func (x *CDOTAUserMsg_SelectPenaltyGold) Reset() { *x = CDOTAUserMsg_SelectPenaltyGold{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[115] + mi := &file_dota_usermessages_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10055,7 +9928,7 @@ func (x *CDOTAUserMsg_SelectPenaltyGold) String() string { func (*CDOTAUserMsg_SelectPenaltyGold) ProtoMessage() {} func (x *CDOTAUserMsg_SelectPenaltyGold) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[115] + mi := &file_dota_usermessages_proto_msgTypes[114] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10068,7 +9941,7 @@ func (x *CDOTAUserMsg_SelectPenaltyGold) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_SelectPenaltyGold.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_SelectPenaltyGold) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{115} + return file_dota_usermessages_proto_rawDescGZIP(), []int{114} } func (x *CDOTAUserMsg_SelectPenaltyGold) GetPlayerId() int32 { @@ -10100,7 +9973,7 @@ type CDOTAUserMsg_RollDiceResult struct { func (x *CDOTAUserMsg_RollDiceResult) Reset() { *x = CDOTAUserMsg_RollDiceResult{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[116] + mi := &file_dota_usermessages_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10113,7 +9986,7 @@ func (x *CDOTAUserMsg_RollDiceResult) String() string { func (*CDOTAUserMsg_RollDiceResult) ProtoMessage() {} func (x *CDOTAUserMsg_RollDiceResult) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[116] + mi := &file_dota_usermessages_proto_msgTypes[115] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10126,7 +9999,7 @@ func (x *CDOTAUserMsg_RollDiceResult) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_RollDiceResult.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_RollDiceResult) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{116} + return file_dota_usermessages_proto_rawDescGZIP(), []int{115} } func (x *CDOTAUserMsg_RollDiceResult) GetPlayerId() int32 { @@ -10177,7 +10050,7 @@ type CDOTAUserMsg_FlipCoinResult struct { func (x *CDOTAUserMsg_FlipCoinResult) Reset() { *x = CDOTAUserMsg_FlipCoinResult{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[117] + mi := &file_dota_usermessages_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10190,7 +10063,7 @@ func (x *CDOTAUserMsg_FlipCoinResult) String() string { func (*CDOTAUserMsg_FlipCoinResult) ProtoMessage() {} func (x *CDOTAUserMsg_FlipCoinResult) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[117] + mi := &file_dota_usermessages_proto_msgTypes[116] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10203,7 +10076,7 @@ func (x *CDOTAUserMsg_FlipCoinResult) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_FlipCoinResult.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_FlipCoinResult) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{117} + return file_dota_usermessages_proto_rawDescGZIP(), []int{116} } func (x *CDOTAUserMsg_FlipCoinResult) GetPlayerId() int32 { @@ -10238,7 +10111,7 @@ type CDOTAUserMessage_RequestItemSuggestions struct { func (x *CDOTAUserMessage_RequestItemSuggestions) Reset() { *x = CDOTAUserMessage_RequestItemSuggestions{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[118] + mi := &file_dota_usermessages_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10251,7 +10124,7 @@ func (x *CDOTAUserMessage_RequestItemSuggestions) String() string { func (*CDOTAUserMessage_RequestItemSuggestions) ProtoMessage() {} func (x *CDOTAUserMessage_RequestItemSuggestions) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[118] + mi := &file_dota_usermessages_proto_msgTypes[117] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10264,7 +10137,7 @@ func (x *CDOTAUserMessage_RequestItemSuggestions) ProtoReflect() protoreflect.Me // Deprecated: Use CDOTAUserMessage_RequestItemSuggestions.ProtoReflect.Descriptor instead. func (*CDOTAUserMessage_RequestItemSuggestions) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{118} + return file_dota_usermessages_proto_rawDescGZIP(), []int{117} } func (x *CDOTAUserMessage_RequestItemSuggestions) GetPlayerId() int32 { @@ -10286,7 +10159,7 @@ type CDOTAUserMessage_TeamCaptainChanged struct { func (x *CDOTAUserMessage_TeamCaptainChanged) Reset() { *x = CDOTAUserMessage_TeamCaptainChanged{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[119] + mi := &file_dota_usermessages_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10299,7 +10172,7 @@ func (x *CDOTAUserMessage_TeamCaptainChanged) String() string { func (*CDOTAUserMessage_TeamCaptainChanged) ProtoMessage() {} func (x *CDOTAUserMessage_TeamCaptainChanged) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[119] + mi := &file_dota_usermessages_proto_msgTypes[118] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10312,7 +10185,7 @@ func (x *CDOTAUserMessage_TeamCaptainChanged) ProtoReflect() protoreflect.Messag // Deprecated: Use CDOTAUserMessage_TeamCaptainChanged.ProtoReflect.Descriptor instead. func (*CDOTAUserMessage_TeamCaptainChanged) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{119} + return file_dota_usermessages_proto_rawDescGZIP(), []int{118} } func (x *CDOTAUserMessage_TeamCaptainChanged) GetTeam() uint32 { @@ -10341,7 +10214,7 @@ type CDOTAUserMsg_ChatWheelCooldown struct { func (x *CDOTAUserMsg_ChatWheelCooldown) Reset() { *x = CDOTAUserMsg_ChatWheelCooldown{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[120] + mi := &file_dota_usermessages_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10354,7 +10227,7 @@ func (x *CDOTAUserMsg_ChatWheelCooldown) String() string { func (*CDOTAUserMsg_ChatWheelCooldown) ProtoMessage() {} func (x *CDOTAUserMsg_ChatWheelCooldown) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[120] + mi := &file_dota_usermessages_proto_msgTypes[119] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10367,7 +10240,7 @@ func (x *CDOTAUserMsg_ChatWheelCooldown) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_ChatWheelCooldown.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_ChatWheelCooldown) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{120} + return file_dota_usermessages_proto_rawDescGZIP(), []int{119} } func (x *CDOTAUserMsg_ChatWheelCooldown) GetMessageId() uint32 { @@ -10399,7 +10272,7 @@ type CDOTAUserMsg_HeroRelicProgress struct { func (x *CDOTAUserMsg_HeroRelicProgress) Reset() { *x = CDOTAUserMsg_HeroRelicProgress{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[121] + mi := &file_dota_usermessages_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10412,7 +10285,7 @@ func (x *CDOTAUserMsg_HeroRelicProgress) String() string { func (*CDOTAUserMsg_HeroRelicProgress) ProtoMessage() {} func (x *CDOTAUserMsg_HeroRelicProgress) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[121] + mi := &file_dota_usermessages_proto_msgTypes[120] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10425,7 +10298,7 @@ func (x *CDOTAUserMsg_HeroRelicProgress) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_HeroRelicProgress.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_HeroRelicProgress) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{121} + return file_dota_usermessages_proto_rawDescGZIP(), []int{120} } func (x *CDOTAUserMsg_HeroRelicProgress) GetHeroRelicType() uint32 { @@ -10476,7 +10349,7 @@ type CDOTAUserMsg_AbilityDraftRequestAbility struct { func (x *CDOTAUserMsg_AbilityDraftRequestAbility) Reset() { *x = CDOTAUserMsg_AbilityDraftRequestAbility{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[122] + mi := &file_dota_usermessages_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10489,7 +10362,7 @@ func (x *CDOTAUserMsg_AbilityDraftRequestAbility) String() string { func (*CDOTAUserMsg_AbilityDraftRequestAbility) ProtoMessage() {} func (x *CDOTAUserMsg_AbilityDraftRequestAbility) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[122] + mi := &file_dota_usermessages_proto_msgTypes[121] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10502,7 +10375,7 @@ func (x *CDOTAUserMsg_AbilityDraftRequestAbility) ProtoReflect() protoreflect.Me // Deprecated: Use CDOTAUserMsg_AbilityDraftRequestAbility.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_AbilityDraftRequestAbility) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{122} + return file_dota_usermessages_proto_rawDescGZIP(), []int{121} } func (x *CDOTAUserMsg_AbilityDraftRequestAbility) GetPlayerId() int32 { @@ -10531,17 +10404,17 @@ type CDOTAUserMsg_DamageReport struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - PlayerId *int32 `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"` - TargetHeroId *uint32 `protobuf:"varint,2,opt,name=target_hero_id,json=targetHeroId" json:"target_hero_id,omitempty"` - SourceHeroId *uint32 `protobuf:"varint,3,opt,name=source_hero_id,json=sourceHeroId" json:"source_hero_id,omitempty"` - DamageAmount *int32 `protobuf:"varint,4,opt,name=damage_amount,json=damageAmount" json:"damage_amount,omitempty"` - Broadcast *bool `protobuf:"varint,5,opt,name=broadcast" json:"broadcast,omitempty"` + PlayerId *int32 `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"` + TargetHeroId *int32 `protobuf:"varint,2,opt,name=target_hero_id,json=targetHeroId" json:"target_hero_id,omitempty"` + SourceHeroId *int32 `protobuf:"varint,3,opt,name=source_hero_id,json=sourceHeroId" json:"source_hero_id,omitempty"` + DamageAmount *int32 `protobuf:"varint,4,opt,name=damage_amount,json=damageAmount" json:"damage_amount,omitempty"` + Broadcast *bool `protobuf:"varint,5,opt,name=broadcast" json:"broadcast,omitempty"` } func (x *CDOTAUserMsg_DamageReport) Reset() { *x = CDOTAUserMsg_DamageReport{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[123] + mi := &file_dota_usermessages_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10554,7 +10427,7 @@ func (x *CDOTAUserMsg_DamageReport) String() string { func (*CDOTAUserMsg_DamageReport) ProtoMessage() {} func (x *CDOTAUserMsg_DamageReport) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[123] + mi := &file_dota_usermessages_proto_msgTypes[122] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10567,7 +10440,7 @@ func (x *CDOTAUserMsg_DamageReport) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_DamageReport.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_DamageReport) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{123} + return file_dota_usermessages_proto_rawDescGZIP(), []int{122} } func (x *CDOTAUserMsg_DamageReport) GetPlayerId() int32 { @@ -10577,14 +10450,14 @@ func (x *CDOTAUserMsg_DamageReport) GetPlayerId() int32 { return 0 } -func (x *CDOTAUserMsg_DamageReport) GetTargetHeroId() uint32 { +func (x *CDOTAUserMsg_DamageReport) GetTargetHeroId() int32 { if x != nil && x.TargetHeroId != nil { return *x.TargetHeroId } return 0 } -func (x *CDOTAUserMsg_DamageReport) GetSourceHeroId() uint32 { +func (x *CDOTAUserMsg_DamageReport) GetSourceHeroId() int32 { if x != nil && x.SourceHeroId != nil { return *x.SourceHeroId } @@ -10621,7 +10494,7 @@ type CDOTAUserMsg_SalutePlayer struct { func (x *CDOTAUserMsg_SalutePlayer) Reset() { *x = CDOTAUserMsg_SalutePlayer{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[124] + mi := &file_dota_usermessages_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10634,7 +10507,7 @@ func (x *CDOTAUserMsg_SalutePlayer) String() string { func (*CDOTAUserMsg_SalutePlayer) ProtoMessage() {} func (x *CDOTAUserMsg_SalutePlayer) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[124] + mi := &file_dota_usermessages_proto_msgTypes[123] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10647,7 +10520,7 @@ func (x *CDOTAUserMsg_SalutePlayer) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_SalutePlayer.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_SalutePlayer) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{124} + return file_dota_usermessages_proto_rawDescGZIP(), []int{123} } func (x *CDOTAUserMsg_SalutePlayer) GetSourcePlayerId() int32 { @@ -10705,7 +10578,7 @@ type CDOTAUserMsg_GiftPlayer struct { func (x *CDOTAUserMsg_GiftPlayer) Reset() { *x = CDOTAUserMsg_GiftPlayer{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[125] + mi := &file_dota_usermessages_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10718,7 +10591,7 @@ func (x *CDOTAUserMsg_GiftPlayer) String() string { func (*CDOTAUserMsg_GiftPlayer) ProtoMessage() {} func (x *CDOTAUserMsg_GiftPlayer) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[125] + mi := &file_dota_usermessages_proto_msgTypes[124] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10731,7 +10604,7 @@ func (x *CDOTAUserMsg_GiftPlayer) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_GiftPlayer.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_GiftPlayer) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{125} + return file_dota_usermessages_proto_rawDescGZIP(), []int{124} } func (x *CDOTAUserMsg_GiftPlayer) GetSourcePlayerId() int32 { @@ -10767,7 +10640,7 @@ type CDOTAUserMsg_TipAlert struct { func (x *CDOTAUserMsg_TipAlert) Reset() { *x = CDOTAUserMsg_TipAlert{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[126] + mi := &file_dota_usermessages_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10780,7 +10653,7 @@ func (x *CDOTAUserMsg_TipAlert) String() string { func (*CDOTAUserMsg_TipAlert) ProtoMessage() {} func (x *CDOTAUserMsg_TipAlert) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[126] + mi := &file_dota_usermessages_proto_msgTypes[125] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10793,7 +10666,7 @@ func (x *CDOTAUserMsg_TipAlert) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_TipAlert.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_TipAlert) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{126} + return file_dota_usermessages_proto_rawDescGZIP(), []int{125} } func (x *CDOTAUserMsg_TipAlert) GetPlayerId() int32 { @@ -10823,7 +10696,7 @@ type CDOTAUserMsg_ReplaceQueryUnit struct { func (x *CDOTAUserMsg_ReplaceQueryUnit) Reset() { *x = CDOTAUserMsg_ReplaceQueryUnit{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[127] + mi := &file_dota_usermessages_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10836,7 +10709,7 @@ func (x *CDOTAUserMsg_ReplaceQueryUnit) String() string { func (*CDOTAUserMsg_ReplaceQueryUnit) ProtoMessage() {} func (x *CDOTAUserMsg_ReplaceQueryUnit) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[127] + mi := &file_dota_usermessages_proto_msgTypes[126] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10849,7 +10722,7 @@ func (x *CDOTAUserMsg_ReplaceQueryUnit) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_ReplaceQueryUnit.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_ReplaceQueryUnit) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{127} + return file_dota_usermessages_proto_rawDescGZIP(), []int{126} } func (x *CDOTAUserMsg_ReplaceQueryUnit) GetPlayerId() int32 { @@ -10886,7 +10759,7 @@ type CDOTAUserMsg_ESArcanaCombo struct { func (x *CDOTAUserMsg_ESArcanaCombo) Reset() { *x = CDOTAUserMsg_ESArcanaCombo{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[128] + mi := &file_dota_usermessages_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10899,7 +10772,7 @@ func (x *CDOTAUserMsg_ESArcanaCombo) String() string { func (*CDOTAUserMsg_ESArcanaCombo) ProtoMessage() {} func (x *CDOTAUserMsg_ESArcanaCombo) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[128] + mi := &file_dota_usermessages_proto_msgTypes[127] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10912,7 +10785,7 @@ func (x *CDOTAUserMsg_ESArcanaCombo) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_ESArcanaCombo.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_ESArcanaCombo) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{128} + return file_dota_usermessages_proto_rawDescGZIP(), []int{127} } func (x *CDOTAUserMsg_ESArcanaCombo) GetEhandle() uint32 { @@ -10949,7 +10822,7 @@ type CDOTAUserMsg_ESArcanaComboSummary struct { func (x *CDOTAUserMsg_ESArcanaComboSummary) Reset() { *x = CDOTAUserMsg_ESArcanaComboSummary{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[129] + mi := &file_dota_usermessages_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10962,7 +10835,7 @@ func (x *CDOTAUserMsg_ESArcanaComboSummary) String() string { func (*CDOTAUserMsg_ESArcanaComboSummary) ProtoMessage() {} func (x *CDOTAUserMsg_ESArcanaComboSummary) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[129] + mi := &file_dota_usermessages_proto_msgTypes[128] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10975,7 +10848,7 @@ func (x *CDOTAUserMsg_ESArcanaComboSummary) ProtoReflect() protoreflect.Message // Deprecated: Use CDOTAUserMsg_ESArcanaComboSummary.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_ESArcanaComboSummary) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{129} + return file_dota_usermessages_proto_rawDescGZIP(), []int{128} } func (x *CDOTAUserMsg_ESArcanaComboSummary) GetEhandle() uint32 { @@ -11013,7 +10886,7 @@ type CDOTAUserMsg_OMArcanaCombo struct { func (x *CDOTAUserMsg_OMArcanaCombo) Reset() { *x = CDOTAUserMsg_OMArcanaCombo{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[130] + mi := &file_dota_usermessages_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11026,7 +10899,7 @@ func (x *CDOTAUserMsg_OMArcanaCombo) String() string { func (*CDOTAUserMsg_OMArcanaCombo) ProtoMessage() {} func (x *CDOTAUserMsg_OMArcanaCombo) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[130] + mi := &file_dota_usermessages_proto_msgTypes[129] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11039,7 +10912,7 @@ func (x *CDOTAUserMsg_OMArcanaCombo) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_OMArcanaCombo.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_OMArcanaCombo) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{130} + return file_dota_usermessages_proto_rawDescGZIP(), []int{129} } func (x *CDOTAUserMsg_OMArcanaCombo) GetEhandle() uint32 { @@ -11084,7 +10957,7 @@ type CDOTAUserMsg_HighFiveCompleted struct { func (x *CDOTAUserMsg_HighFiveCompleted) Reset() { *x = CDOTAUserMsg_HighFiveCompleted{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[131] + mi := &file_dota_usermessages_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11097,7 +10970,7 @@ func (x *CDOTAUserMsg_HighFiveCompleted) String() string { func (*CDOTAUserMsg_HighFiveCompleted) ProtoMessage() {} func (x *CDOTAUserMsg_HighFiveCompleted) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[131] + mi := &file_dota_usermessages_proto_msgTypes[130] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11110,7 +10983,7 @@ func (x *CDOTAUserMsg_HighFiveCompleted) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_HighFiveCompleted.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_HighFiveCompleted) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{131} + return file_dota_usermessages_proto_rawDescGZIP(), []int{130} } func (x *CDOTAUserMsg_HighFiveCompleted) GetPlayerId_1() int32 { @@ -11152,7 +11025,7 @@ type CDOTAUserMsg_HighFiveLeftHanging struct { func (x *CDOTAUserMsg_HighFiveLeftHanging) Reset() { *x = CDOTAUserMsg_HighFiveLeftHanging{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[132] + mi := &file_dota_usermessages_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11165,7 +11038,7 @@ func (x *CDOTAUserMsg_HighFiveLeftHanging) String() string { func (*CDOTAUserMsg_HighFiveLeftHanging) ProtoMessage() {} func (x *CDOTAUserMsg_HighFiveLeftHanging) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[132] + mi := &file_dota_usermessages_proto_msgTypes[131] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11178,7 +11051,7 @@ func (x *CDOTAUserMsg_HighFiveLeftHanging) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_HighFiveLeftHanging.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_HighFiveLeftHanging) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{132} + return file_dota_usermessages_proto_rawDescGZIP(), []int{131} } func (x *CDOTAUserMsg_HighFiveLeftHanging) GetPlayerId() int32 { @@ -11202,7 +11075,7 @@ type CDOTAUserMsg_ShovelUnearth struct { func (x *CDOTAUserMsg_ShovelUnearth) Reset() { *x = CDOTAUserMsg_ShovelUnearth{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[133] + mi := &file_dota_usermessages_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11215,7 +11088,7 @@ func (x *CDOTAUserMsg_ShovelUnearth) String() string { func (*CDOTAUserMsg_ShovelUnearth) ProtoMessage() {} func (x *CDOTAUserMsg_ShovelUnearth) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[133] + mi := &file_dota_usermessages_proto_msgTypes[132] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11228,7 +11101,7 @@ func (x *CDOTAUserMsg_ShovelUnearth) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_ShovelUnearth.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_ShovelUnearth) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{133} + return file_dota_usermessages_proto_rawDescGZIP(), []int{132} } func (x *CDOTAUserMsg_ShovelUnearth) GetPlayerId() int32 { @@ -11274,7 +11147,7 @@ type CDOTAUserMsg_AllStarEvent struct { func (x *CDOTAUserMsg_AllStarEvent) Reset() { *x = CDOTAUserMsg_AllStarEvent{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[134] + mi := &file_dota_usermessages_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11287,7 +11160,7 @@ func (x *CDOTAUserMsg_AllStarEvent) String() string { func (*CDOTAUserMsg_AllStarEvent) ProtoMessage() {} func (x *CDOTAUserMsg_AllStarEvent) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[134] + mi := &file_dota_usermessages_proto_msgTypes[133] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11300,7 +11173,7 @@ func (x *CDOTAUserMsg_AllStarEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_AllStarEvent.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_AllStarEvent) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{134} + return file_dota_usermessages_proto_rawDescGZIP(), []int{133} } func (x *CDOTAUserMsg_AllStarEvent) GetSourcePlayerId() int32 { @@ -11349,7 +11222,7 @@ type CDOTAUserMsg_QueuedOrderRemoved struct { func (x *CDOTAUserMsg_QueuedOrderRemoved) Reset() { *x = CDOTAUserMsg_QueuedOrderRemoved{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[135] + mi := &file_dota_usermessages_proto_msgTypes[134] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11362,7 +11235,7 @@ func (x *CDOTAUserMsg_QueuedOrderRemoved) String() string { func (*CDOTAUserMsg_QueuedOrderRemoved) ProtoMessage() {} func (x *CDOTAUserMsg_QueuedOrderRemoved) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[135] + mi := &file_dota_usermessages_proto_msgTypes[134] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11375,7 +11248,7 @@ func (x *CDOTAUserMsg_QueuedOrderRemoved) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_QueuedOrderRemoved.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_QueuedOrderRemoved) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{135} + return file_dota_usermessages_proto_rawDescGZIP(), []int{134} } func (x *CDOTAUserMsg_QueuedOrderRemoved) GetUnitOrderSequence() []uint32 { @@ -11402,7 +11275,7 @@ type CDOTAUserMsg_DebugChallenge struct { func (x *CDOTAUserMsg_DebugChallenge) Reset() { *x = CDOTAUserMsg_DebugChallenge{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[136] + mi := &file_dota_usermessages_proto_msgTypes[135] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11415,7 +11288,7 @@ func (x *CDOTAUserMsg_DebugChallenge) String() string { func (*CDOTAUserMsg_DebugChallenge) ProtoMessage() {} func (x *CDOTAUserMsg_DebugChallenge) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[136] + mi := &file_dota_usermessages_proto_msgTypes[135] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11428,7 +11301,7 @@ func (x *CDOTAUserMsg_DebugChallenge) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_DebugChallenge.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_DebugChallenge) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{136} + return file_dota_usermessages_proto_rawDescGZIP(), []int{135} } func (x *CDOTAUserMsg_DebugChallenge) GetChallengeType() uint32 { @@ -11494,7 +11367,7 @@ type CDOTAUserMsg_FoundNeutralItem struct { func (x *CDOTAUserMsg_FoundNeutralItem) Reset() { *x = CDOTAUserMsg_FoundNeutralItem{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[137] + mi := &file_dota_usermessages_proto_msgTypes[136] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11507,7 +11380,7 @@ func (x *CDOTAUserMsg_FoundNeutralItem) String() string { func (*CDOTAUserMsg_FoundNeutralItem) ProtoMessage() {} func (x *CDOTAUserMsg_FoundNeutralItem) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[137] + mi := &file_dota_usermessages_proto_msgTypes[136] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11520,7 +11393,7 @@ func (x *CDOTAUserMsg_FoundNeutralItem) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_FoundNeutralItem.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_FoundNeutralItem) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{137} + return file_dota_usermessages_proto_rawDescGZIP(), []int{136} } func (x *CDOTAUserMsg_FoundNeutralItem) GetPlayerId() int32 { @@ -11563,7 +11436,7 @@ type CDOTAUserMsg_OutpostCaptured struct { func (x *CDOTAUserMsg_OutpostCaptured) Reset() { *x = CDOTAUserMsg_OutpostCaptured{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[138] + mi := &file_dota_usermessages_proto_msgTypes[137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11576,7 +11449,7 @@ func (x *CDOTAUserMsg_OutpostCaptured) String() string { func (*CDOTAUserMsg_OutpostCaptured) ProtoMessage() {} func (x *CDOTAUserMsg_OutpostCaptured) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[138] + mi := &file_dota_usermessages_proto_msgTypes[137] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11589,7 +11462,7 @@ func (x *CDOTAUserMsg_OutpostCaptured) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_OutpostCaptured.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_OutpostCaptured) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{138} + return file_dota_usermessages_proto_rawDescGZIP(), []int{137} } func (x *CDOTAUserMsg_OutpostCaptured) GetOutpostEntindex() int32 { @@ -11618,7 +11491,7 @@ type CDOTAUserMsg_OutpostGrantedXP struct { func (x *CDOTAUserMsg_OutpostGrantedXP) Reset() { *x = CDOTAUserMsg_OutpostGrantedXP{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[139] + mi := &file_dota_usermessages_proto_msgTypes[138] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11631,7 +11504,7 @@ func (x *CDOTAUserMsg_OutpostGrantedXP) String() string { func (*CDOTAUserMsg_OutpostGrantedXP) ProtoMessage() {} func (x *CDOTAUserMsg_OutpostGrantedXP) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[139] + mi := &file_dota_usermessages_proto_msgTypes[138] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11644,7 +11517,7 @@ func (x *CDOTAUserMsg_OutpostGrantedXP) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_OutpostGrantedXP.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_OutpostGrantedXP) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{139} + return file_dota_usermessages_proto_rawDescGZIP(), []int{138} } func (x *CDOTAUserMsg_OutpostGrantedXP) GetTeamId() uint32 { @@ -11672,7 +11545,7 @@ type CDOTAUserMsg_MoveCameraToUnit struct { func (x *CDOTAUserMsg_MoveCameraToUnit) Reset() { *x = CDOTAUserMsg_MoveCameraToUnit{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[140] + mi := &file_dota_usermessages_proto_msgTypes[139] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11685,7 +11558,7 @@ func (x *CDOTAUserMsg_MoveCameraToUnit) String() string { func (*CDOTAUserMsg_MoveCameraToUnit) ProtoMessage() {} func (x *CDOTAUserMsg_MoveCameraToUnit) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[140] + mi := &file_dota_usermessages_proto_msgTypes[139] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11698,7 +11571,7 @@ func (x *CDOTAUserMsg_MoveCameraToUnit) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_MoveCameraToUnit.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_MoveCameraToUnit) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{140} + return file_dota_usermessages_proto_rawDescGZIP(), []int{139} } func (x *CDOTAUserMsg_MoveCameraToUnit) GetUnitEhandle() uint32 { @@ -11719,7 +11592,7 @@ type CDOTAUserMsg_PauseMinigameData struct { func (x *CDOTAUserMsg_PauseMinigameData) Reset() { *x = CDOTAUserMsg_PauseMinigameData{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[141] + mi := &file_dota_usermessages_proto_msgTypes[140] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11732,7 +11605,7 @@ func (x *CDOTAUserMsg_PauseMinigameData) String() string { func (*CDOTAUserMsg_PauseMinigameData) ProtoMessage() {} func (x *CDOTAUserMsg_PauseMinigameData) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[141] + mi := &file_dota_usermessages_proto_msgTypes[140] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11745,7 +11618,7 @@ func (x *CDOTAUserMsg_PauseMinigameData) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_PauseMinigameData.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_PauseMinigameData) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{141} + return file_dota_usermessages_proto_rawDescGZIP(), []int{140} } func (x *CDOTAUserMsg_PauseMinigameData) GetDataBits() []*CDOTAUserMsg_PauseMinigameData_DataBit { @@ -11770,7 +11643,7 @@ type CDOTAUserMsg_VersusScene_PlayerBehavior struct { func (x *CDOTAUserMsg_VersusScene_PlayerBehavior) Reset() { *x = CDOTAUserMsg_VersusScene_PlayerBehavior{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[142] + mi := &file_dota_usermessages_proto_msgTypes[141] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11783,7 +11656,7 @@ func (x *CDOTAUserMsg_VersusScene_PlayerBehavior) String() string { func (*CDOTAUserMsg_VersusScene_PlayerBehavior) ProtoMessage() {} func (x *CDOTAUserMsg_VersusScene_PlayerBehavior) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[142] + mi := &file_dota_usermessages_proto_msgTypes[141] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11796,7 +11669,7 @@ func (x *CDOTAUserMsg_VersusScene_PlayerBehavior) ProtoReflect() protoreflect.Me // Deprecated: Use CDOTAUserMsg_VersusScene_PlayerBehavior.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_VersusScene_PlayerBehavior) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{142} + return file_dota_usermessages_proto_rawDescGZIP(), []int{141} } func (x *CDOTAUserMsg_VersusScene_PlayerBehavior) GetPlayerId() int32 { @@ -11848,7 +11721,7 @@ type CDOTAUserMsg_QoP_ArcanaSummary struct { func (x *CDOTAUserMsg_QoP_ArcanaSummary) Reset() { *x = CDOTAUserMsg_QoP_ArcanaSummary{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[143] + mi := &file_dota_usermessages_proto_msgTypes[142] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11861,7 +11734,7 @@ func (x *CDOTAUserMsg_QoP_ArcanaSummary) String() string { func (*CDOTAUserMsg_QoP_ArcanaSummary) ProtoMessage() {} func (x *CDOTAUserMsg_QoP_ArcanaSummary) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[143] + mi := &file_dota_usermessages_proto_msgTypes[142] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11874,7 +11747,7 @@ func (x *CDOTAUserMsg_QoP_ArcanaSummary) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_QoP_ArcanaSummary.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_QoP_ArcanaSummary) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{143} + return file_dota_usermessages_proto_rawDescGZIP(), []int{142} } func (x *CDOTAUserMsg_QoP_ArcanaSummary) GetEhandle() uint32 { @@ -11917,7 +11790,7 @@ type CDOTAUserMsg_HotPotato_Created struct { func (x *CDOTAUserMsg_HotPotato_Created) Reset() { *x = CDOTAUserMsg_HotPotato_Created{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[144] + mi := &file_dota_usermessages_proto_msgTypes[143] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11930,7 +11803,7 @@ func (x *CDOTAUserMsg_HotPotato_Created) String() string { func (*CDOTAUserMsg_HotPotato_Created) ProtoMessage() {} func (x *CDOTAUserMsg_HotPotato_Created) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[144] + mi := &file_dota_usermessages_proto_msgTypes[143] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11943,7 +11816,7 @@ func (x *CDOTAUserMsg_HotPotato_Created) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_HotPotato_Created.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_HotPotato_Created) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{144} + return file_dota_usermessages_proto_rawDescGZIP(), []int{143} } func (x *CDOTAUserMsg_HotPotato_Created) GetPlayerId_1() int32 { @@ -11971,7 +11844,7 @@ type CDOTAUserMsg_HotPotato_Exploded struct { func (x *CDOTAUserMsg_HotPotato_Exploded) Reset() { *x = CDOTAUserMsg_HotPotato_Exploded{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[145] + mi := &file_dota_usermessages_proto_msgTypes[144] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11984,7 +11857,7 @@ func (x *CDOTAUserMsg_HotPotato_Exploded) String() string { func (*CDOTAUserMsg_HotPotato_Exploded) ProtoMessage() {} func (x *CDOTAUserMsg_HotPotato_Exploded) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[145] + mi := &file_dota_usermessages_proto_msgTypes[144] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11997,7 +11870,7 @@ func (x *CDOTAUserMsg_HotPotato_Exploded) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_HotPotato_Exploded.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_HotPotato_Exploded) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{145} + return file_dota_usermessages_proto_rawDescGZIP(), []int{144} } func (x *CDOTAUserMsg_HotPotato_Exploded) GetPlayerId() int32 { @@ -12014,13 +11887,13 @@ type CDOTAUserMsg_WK_Arcana_Progress struct { Ehandle *uint32 `protobuf:"varint,1,opt,name=ehandle" json:"ehandle,omitempty"` ArcanaLevel *uint32 `protobuf:"varint,2,opt,name=arcana_level,json=arcanaLevel" json:"arcana_level,omitempty"` - HeroId *uint32 `protobuf:"varint,3,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` + HeroId *int32 `protobuf:"varint,3,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` } func (x *CDOTAUserMsg_WK_Arcana_Progress) Reset() { *x = CDOTAUserMsg_WK_Arcana_Progress{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[146] + mi := &file_dota_usermessages_proto_msgTypes[145] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12033,7 +11906,7 @@ func (x *CDOTAUserMsg_WK_Arcana_Progress) String() string { func (*CDOTAUserMsg_WK_Arcana_Progress) ProtoMessage() {} func (x *CDOTAUserMsg_WK_Arcana_Progress) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[146] + mi := &file_dota_usermessages_proto_msgTypes[145] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12046,7 +11919,7 @@ func (x *CDOTAUserMsg_WK_Arcana_Progress) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_WK_Arcana_Progress.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_WK_Arcana_Progress) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{146} + return file_dota_usermessages_proto_rawDescGZIP(), []int{145} } func (x *CDOTAUserMsg_WK_Arcana_Progress) GetEhandle() uint32 { @@ -12063,7 +11936,7 @@ func (x *CDOTAUserMsg_WK_Arcana_Progress) GetArcanaLevel() uint32 { return 0 } -func (x *CDOTAUserMsg_WK_Arcana_Progress) GetHeroId() uint32 { +func (x *CDOTAUserMsg_WK_Arcana_Progress) GetHeroId() int32 { if x != nil && x.HeroId != nil { return *x.HeroId } @@ -12087,7 +11960,7 @@ type CDOTAUserMsg_GuildChallenge_Progress struct { func (x *CDOTAUserMsg_GuildChallenge_Progress) Reset() { *x = CDOTAUserMsg_GuildChallenge_Progress{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[147] + mi := &file_dota_usermessages_proto_msgTypes[146] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12100,7 +11973,7 @@ func (x *CDOTAUserMsg_GuildChallenge_Progress) String() string { func (*CDOTAUserMsg_GuildChallenge_Progress) ProtoMessage() {} func (x *CDOTAUserMsg_GuildChallenge_Progress) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[147] + mi := &file_dota_usermessages_proto_msgTypes[146] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12113,7 +11986,7 @@ func (x *CDOTAUserMsg_GuildChallenge_Progress) ProtoReflect() protoreflect.Messa // Deprecated: Use CDOTAUserMsg_GuildChallenge_Progress.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_GuildChallenge_Progress) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{147} + return file_dota_usermessages_proto_rawDescGZIP(), []int{146} } func (x *CDOTAUserMsg_GuildChallenge_Progress) GetPlayerProgress() []*CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress { @@ -12182,7 +12055,7 @@ type CDOTAUserMsg_WRArcanaProgress struct { func (x *CDOTAUserMsg_WRArcanaProgress) Reset() { *x = CDOTAUserMsg_WRArcanaProgress{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[148] + mi := &file_dota_usermessages_proto_msgTypes[147] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12195,7 +12068,7 @@ func (x *CDOTAUserMsg_WRArcanaProgress) String() string { func (*CDOTAUserMsg_WRArcanaProgress) ProtoMessage() {} func (x *CDOTAUserMsg_WRArcanaProgress) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[148] + mi := &file_dota_usermessages_proto_msgTypes[147] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12208,7 +12081,7 @@ func (x *CDOTAUserMsg_WRArcanaProgress) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_WRArcanaProgress.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_WRArcanaProgress) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{148} + return file_dota_usermessages_proto_rawDescGZIP(), []int{147} } func (x *CDOTAUserMsg_WRArcanaProgress) GetEhandle() uint32 { @@ -12278,7 +12151,7 @@ type CDOTAUserMsg_WRArcanaSummary struct { func (x *CDOTAUserMsg_WRArcanaSummary) Reset() { *x = CDOTAUserMsg_WRArcanaSummary{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[149] + mi := &file_dota_usermessages_proto_msgTypes[148] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12291,7 +12164,7 @@ func (x *CDOTAUserMsg_WRArcanaSummary) String() string { func (*CDOTAUserMsg_WRArcanaSummary) ProtoMessage() {} func (x *CDOTAUserMsg_WRArcanaSummary) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[149] + mi := &file_dota_usermessages_proto_msgTypes[148] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12304,7 +12177,7 @@ func (x *CDOTAUserMsg_WRArcanaSummary) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_WRArcanaSummary.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_WRArcanaSummary) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{149} + return file_dota_usermessages_proto_rawDescGZIP(), []int{148} } func (x *CDOTAUserMsg_WRArcanaSummary) GetEhandle() uint32 { @@ -12377,7 +12250,7 @@ type CDOTAUserMsg_EmptyItemSlotAlert struct { func (x *CDOTAUserMsg_EmptyItemSlotAlert) Reset() { *x = CDOTAUserMsg_EmptyItemSlotAlert{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[150] + mi := &file_dota_usermessages_proto_msgTypes[149] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12390,7 +12263,7 @@ func (x *CDOTAUserMsg_EmptyItemSlotAlert) String() string { func (*CDOTAUserMsg_EmptyItemSlotAlert) ProtoMessage() {} func (x *CDOTAUserMsg_EmptyItemSlotAlert) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[150] + mi := &file_dota_usermessages_proto_msgTypes[149] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12403,7 +12276,7 @@ func (x *CDOTAUserMsg_EmptyItemSlotAlert) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_EmptyItemSlotAlert.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_EmptyItemSlotAlert) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{150} + return file_dota_usermessages_proto_rawDescGZIP(), []int{149} } func (x *CDOTAUserMsg_EmptyItemSlotAlert) GetSourcePlayerId() int32 { @@ -12450,7 +12323,7 @@ type CDOTAUserMsg_AghsStatusAlert struct { func (x *CDOTAUserMsg_AghsStatusAlert) Reset() { *x = CDOTAUserMsg_AghsStatusAlert{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[151] + mi := &file_dota_usermessages_proto_msgTypes[150] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12463,7 +12336,7 @@ func (x *CDOTAUserMsg_AghsStatusAlert) String() string { func (*CDOTAUserMsg_AghsStatusAlert) ProtoMessage() {} func (x *CDOTAUserMsg_AghsStatusAlert) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[151] + mi := &file_dota_usermessages_proto_msgTypes[150] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12476,7 +12349,7 @@ func (x *CDOTAUserMsg_AghsStatusAlert) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_AghsStatusAlert.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_AghsStatusAlert) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{151} + return file_dota_usermessages_proto_rawDescGZIP(), []int{150} } func (x *CDOTAUserMsg_AghsStatusAlert) GetSourcePlayerId() int32 { @@ -12533,7 +12406,7 @@ type CDOTAUserMsg_MutedPlayers struct { func (x *CDOTAUserMsg_MutedPlayers) Reset() { *x = CDOTAUserMsg_MutedPlayers{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[152] + mi := &file_dota_usermessages_proto_msgTypes[151] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12546,7 +12419,7 @@ func (x *CDOTAUserMsg_MutedPlayers) String() string { func (*CDOTAUserMsg_MutedPlayers) ProtoMessage() {} func (x *CDOTAUserMsg_MutedPlayers) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[152] + mi := &file_dota_usermessages_proto_msgTypes[151] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12559,7 +12432,7 @@ func (x *CDOTAUserMsg_MutedPlayers) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_MutedPlayers.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_MutedPlayers) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{152} + return file_dota_usermessages_proto_rawDescGZIP(), []int{151} } func (x *CDOTAUserMsg_MutedPlayers) GetTextMutedPlayerIds() []int32 { @@ -12601,7 +12474,7 @@ type CDOTAUserMsg_ContextualTip struct { func (x *CDOTAUserMsg_ContextualTip) Reset() { *x = CDOTAUserMsg_ContextualTip{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[153] + mi := &file_dota_usermessages_proto_msgTypes[152] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12614,7 +12487,7 @@ func (x *CDOTAUserMsg_ContextualTip) String() string { func (*CDOTAUserMsg_ContextualTip) ProtoMessage() {} func (x *CDOTAUserMsg_ContextualTip) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[153] + mi := &file_dota_usermessages_proto_msgTypes[152] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12627,7 +12500,7 @@ func (x *CDOTAUserMsg_ContextualTip) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_ContextualTip.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_ContextualTip) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{153} + return file_dota_usermessages_proto_rawDescGZIP(), []int{152} } func (x *CDOTAUserMsg_ContextualTip) GetTipId() int32 { @@ -12748,7 +12621,7 @@ type CDOTAUserMsg_ChatMessage struct { func (x *CDOTAUserMsg_ChatMessage) Reset() { *x = CDOTAUserMsg_ChatMessage{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[154] + mi := &file_dota_usermessages_proto_msgTypes[153] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12761,7 +12634,7 @@ func (x *CDOTAUserMsg_ChatMessage) String() string { func (*CDOTAUserMsg_ChatMessage) ProtoMessage() {} func (x *CDOTAUserMsg_ChatMessage) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[154] + mi := &file_dota_usermessages_proto_msgTypes[153] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12774,7 +12647,7 @@ func (x *CDOTAUserMsg_ChatMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_ChatMessage.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_ChatMessage) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{154} + return file_dota_usermessages_proto_rawDescGZIP(), []int{153} } func (x *CDOTAUserMsg_ChatMessage) GetSourcePlayerId() int32 { @@ -12810,7 +12683,7 @@ type CDOTAUserMsg_RockPaperScissorsStarted struct { func (x *CDOTAUserMsg_RockPaperScissorsStarted) Reset() { *x = CDOTAUserMsg_RockPaperScissorsStarted{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[155] + mi := &file_dota_usermessages_proto_msgTypes[154] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12823,7 +12696,7 @@ func (x *CDOTAUserMsg_RockPaperScissorsStarted) String() string { func (*CDOTAUserMsg_RockPaperScissorsStarted) ProtoMessage() {} func (x *CDOTAUserMsg_RockPaperScissorsStarted) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[155] + mi := &file_dota_usermessages_proto_msgTypes[154] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12836,7 +12709,7 @@ func (x *CDOTAUserMsg_RockPaperScissorsStarted) ProtoReflect() protoreflect.Mess // Deprecated: Use CDOTAUserMsg_RockPaperScissorsStarted.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_RockPaperScissorsStarted) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{155} + return file_dota_usermessages_proto_rawDescGZIP(), []int{154} } func (x *CDOTAUserMsg_RockPaperScissorsStarted) GetPlayerIdSource() int32 { @@ -12867,7 +12740,7 @@ type CDOTAUserMsg_RockPaperScissorsFinished struct { func (x *CDOTAUserMsg_RockPaperScissorsFinished) Reset() { *x = CDOTAUserMsg_RockPaperScissorsFinished{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[156] + mi := &file_dota_usermessages_proto_msgTypes[155] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12880,7 +12753,7 @@ func (x *CDOTAUserMsg_RockPaperScissorsFinished) String() string { func (*CDOTAUserMsg_RockPaperScissorsFinished) ProtoMessage() {} func (x *CDOTAUserMsg_RockPaperScissorsFinished) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[156] + mi := &file_dota_usermessages_proto_msgTypes[155] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12893,7 +12766,7 @@ func (x *CDOTAUserMsg_RockPaperScissorsFinished) ProtoReflect() protoreflect.Mes // Deprecated: Use CDOTAUserMsg_RockPaperScissorsFinished.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_RockPaperScissorsFinished) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{156} + return file_dota_usermessages_proto_rawDescGZIP(), []int{155} } func (x *CDOTAUserMsg_RockPaperScissorsFinished) GetPlayerId_1() int32 { @@ -12936,7 +12809,7 @@ type CDOTAUserMsg_DuelOpponentKilled struct { func (x *CDOTAUserMsg_DuelOpponentKilled) Reset() { *x = CDOTAUserMsg_DuelOpponentKilled{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[157] + mi := &file_dota_usermessages_proto_msgTypes[156] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12949,7 +12822,7 @@ func (x *CDOTAUserMsg_DuelOpponentKilled) String() string { func (*CDOTAUserMsg_DuelOpponentKilled) ProtoMessage() {} func (x *CDOTAUserMsg_DuelOpponentKilled) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[157] + mi := &file_dota_usermessages_proto_msgTypes[156] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12962,7 +12835,7 @@ func (x *CDOTAUserMsg_DuelOpponentKilled) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_DuelOpponentKilled.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_DuelOpponentKilled) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{157} + return file_dota_usermessages_proto_rawDescGZIP(), []int{156} } func (x *CDOTAUserMsg_DuelOpponentKilled) GetPlayerIdWinner() int32 { @@ -12991,7 +12864,7 @@ type CDOTAUserMsg_DuelAccepted struct { func (x *CDOTAUserMsg_DuelAccepted) Reset() { *x = CDOTAUserMsg_DuelAccepted{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[158] + mi := &file_dota_usermessages_proto_msgTypes[157] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13004,7 +12877,7 @@ func (x *CDOTAUserMsg_DuelAccepted) String() string { func (*CDOTAUserMsg_DuelAccepted) ProtoMessage() {} func (x *CDOTAUserMsg_DuelAccepted) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[158] + mi := &file_dota_usermessages_proto_msgTypes[157] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13017,7 +12890,7 @@ func (x *CDOTAUserMsg_DuelAccepted) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_DuelAccepted.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_DuelAccepted) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{158} + return file_dota_usermessages_proto_rawDescGZIP(), []int{157} } func (x *CDOTAUserMsg_DuelAccepted) GetPlayerId_1() int32 { @@ -13045,7 +12918,7 @@ type CDOTAUserMsg_DuelRequested struct { func (x *CDOTAUserMsg_DuelRequested) Reset() { *x = CDOTAUserMsg_DuelRequested{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[159] + mi := &file_dota_usermessages_proto_msgTypes[158] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13058,7 +12931,7 @@ func (x *CDOTAUserMsg_DuelRequested) String() string { func (*CDOTAUserMsg_DuelRequested) ProtoMessage() {} func (x *CDOTAUserMsg_DuelRequested) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[159] + mi := &file_dota_usermessages_proto_msgTypes[158] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13071,7 +12944,7 @@ func (x *CDOTAUserMsg_DuelRequested) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_DuelRequested.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_DuelRequested) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{159} + return file_dota_usermessages_proto_rawDescGZIP(), []int{158} } func (x *CDOTAUserMsg_DuelRequested) GetPlayerIdRequestor() int32 { @@ -13096,7 +12969,7 @@ type CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled struct { func (x *CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled) Reset() { *x = CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[160] + mi := &file_dota_usermessages_proto_msgTypes[159] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13109,7 +12982,7 @@ func (x *CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled) String() string { func (*CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled) ProtoMessage() {} func (x *CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[160] + mi := &file_dota_usermessages_proto_msgTypes[159] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13122,7 +12995,7 @@ func (x *CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled) ProtoReflect() pr // Deprecated: Use CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{160} + return file_dota_usermessages_proto_rawDescGZIP(), []int{159} } func (x *CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled) GetPlayerIdKiller() int32 { @@ -13172,7 +13045,7 @@ type CDOTAUserMsg_PlayerDraftSuggestPick struct { func (x *CDOTAUserMsg_PlayerDraftSuggestPick) Reset() { *x = CDOTAUserMsg_PlayerDraftSuggestPick{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[161] + mi := &file_dota_usermessages_proto_msgTypes[160] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13185,7 +13058,7 @@ func (x *CDOTAUserMsg_PlayerDraftSuggestPick) String() string { func (*CDOTAUserMsg_PlayerDraftSuggestPick) ProtoMessage() {} func (x *CDOTAUserMsg_PlayerDraftSuggestPick) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[161] + mi := &file_dota_usermessages_proto_msgTypes[160] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13198,7 +13071,7 @@ func (x *CDOTAUserMsg_PlayerDraftSuggestPick) ProtoReflect() protoreflect.Messag // Deprecated: Use CDOTAUserMsg_PlayerDraftSuggestPick.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_PlayerDraftSuggestPick) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{161} + return file_dota_usermessages_proto_rawDescGZIP(), []int{160} } func (x *CDOTAUserMsg_PlayerDraftSuggestPick) GetPlayerId() int32 { @@ -13228,7 +13101,7 @@ type CDOTAUserMsg_PlayerDraftPick struct { func (x *CDOTAUserMsg_PlayerDraftPick) Reset() { *x = CDOTAUserMsg_PlayerDraftPick{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[162] + mi := &file_dota_usermessages_proto_msgTypes[161] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13241,7 +13114,7 @@ func (x *CDOTAUserMsg_PlayerDraftPick) String() string { func (*CDOTAUserMsg_PlayerDraftPick) ProtoMessage() {} func (x *CDOTAUserMsg_PlayerDraftPick) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[162] + mi := &file_dota_usermessages_proto_msgTypes[161] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13254,7 +13127,7 @@ func (x *CDOTAUserMsg_PlayerDraftPick) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_PlayerDraftPick.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_PlayerDraftPick) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{162} + return file_dota_usermessages_proto_rawDescGZIP(), []int{161} } func (x *CDOTAUserMsg_PlayerDraftPick) GetPlayerIdCaptain() int32 { @@ -13292,7 +13165,7 @@ type CDOTAUserMsg_FacetPing struct { func (x *CDOTAUserMsg_FacetPing) Reset() { *x = CDOTAUserMsg_FacetPing{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[163] + mi := &file_dota_usermessages_proto_msgTypes[162] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13305,7 +13178,7 @@ func (x *CDOTAUserMsg_FacetPing) String() string { func (*CDOTAUserMsg_FacetPing) ProtoMessage() {} func (x *CDOTAUserMsg_FacetPing) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[163] + mi := &file_dota_usermessages_proto_msgTypes[162] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13318,7 +13191,7 @@ func (x *CDOTAUserMsg_FacetPing) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_FacetPing.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_FacetPing) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{163} + return file_dota_usermessages_proto_rawDescGZIP(), []int{162} } func (x *CDOTAUserMsg_FacetPing) GetPlayerId() int32 { @@ -13362,7 +13235,7 @@ type CDOTAUserMsg_InnatePing struct { func (x *CDOTAUserMsg_InnatePing) Reset() { *x = CDOTAUserMsg_InnatePing{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[164] + mi := &file_dota_usermessages_proto_msgTypes[163] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13375,7 +13248,7 @@ func (x *CDOTAUserMsg_InnatePing) String() string { func (*CDOTAUserMsg_InnatePing) ProtoMessage() {} func (x *CDOTAUserMsg_InnatePing) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[164] + mi := &file_dota_usermessages_proto_msgTypes[163] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13388,7 +13261,7 @@ func (x *CDOTAUserMsg_InnatePing) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_InnatePing.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_InnatePing) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{164} + return file_dota_usermessages_proto_rawDescGZIP(), []int{163} } func (x *CDOTAUserMsg_InnatePing) GetPlayerId() int32 { @@ -13426,7 +13299,7 @@ type CDOTAUserMsg_MiniKillCamInfo_Attacker struct { func (x *CDOTAUserMsg_MiniKillCamInfo_Attacker) Reset() { *x = CDOTAUserMsg_MiniKillCamInfo_Attacker{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[165] + mi := &file_dota_usermessages_proto_msgTypes[164] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13439,7 +13312,7 @@ func (x *CDOTAUserMsg_MiniKillCamInfo_Attacker) String() string { func (*CDOTAUserMsg_MiniKillCamInfo_Attacker) ProtoMessage() {} func (x *CDOTAUserMsg_MiniKillCamInfo_Attacker) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[165] + mi := &file_dota_usermessages_proto_msgTypes[164] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13495,7 +13368,7 @@ type CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability struct { func (x *CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability) Reset() { *x = CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[166] + mi := &file_dota_usermessages_proto_msgTypes[165] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13508,7 +13381,7 @@ func (x *CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability) String() string { func (*CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability) ProtoMessage() {} func (x *CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[166] + mi := &file_dota_usermessages_proto_msgTypes[165] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13550,7 +13423,7 @@ type CDOTAUserMsg_CourierKilledAlert_LostItem struct { func (x *CDOTAUserMsg_CourierKilledAlert_LostItem) Reset() { *x = CDOTAUserMsg_CourierKilledAlert_LostItem{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[167] + mi := &file_dota_usermessages_proto_msgTypes[166] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13563,7 +13436,7 @@ func (x *CDOTAUserMsg_CourierKilledAlert_LostItem) String() string { func (*CDOTAUserMsg_CourierKilledAlert_LostItem) ProtoMessage() {} func (x *CDOTAUserMsg_CourierKilledAlert_LostItem) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[167] + mi := &file_dota_usermessages_proto_msgTypes[166] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13593,85 +13466,6 @@ func (x *CDOTAUserMsg_CourierKilledAlert_LostItem) GetQuantity() uint32 { return 0 } -type CDOTAUserMsg_PredictionResult_Prediction struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ItemDef *uint32 `protobuf:"varint,1,opt,name=item_def,json=itemDef" json:"item_def,omitempty"` - NumCorrect *uint32 `protobuf:"varint,2,opt,name=num_correct,json=numCorrect" json:"num_correct,omitempty"` - NumFails *uint32 `protobuf:"varint,3,opt,name=num_fails,json=numFails" json:"num_fails,omitempty"` - Result *CDOTAUserMsg_PredictionResult_Prediction_EResult `protobuf:"varint,4,opt,name=result,enum=dota.CDOTAUserMsg_PredictionResult_Prediction_EResult" json:"result,omitempty"` - GrantedItemDefs []uint32 `protobuf:"varint,6,rep,name=granted_item_defs,json=grantedItemDefs" json:"granted_item_defs,omitempty"` -} - -func (x *CDOTAUserMsg_PredictionResult_Prediction) Reset() { - *x = CDOTAUserMsg_PredictionResult_Prediction{} - if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[168] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CDOTAUserMsg_PredictionResult_Prediction) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CDOTAUserMsg_PredictionResult_Prediction) ProtoMessage() {} - -func (x *CDOTAUserMsg_PredictionResult_Prediction) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[168] - 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 CDOTAUserMsg_PredictionResult_Prediction.ProtoReflect.Descriptor instead. -func (*CDOTAUserMsg_PredictionResult_Prediction) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{42, 0} -} - -func (x *CDOTAUserMsg_PredictionResult_Prediction) GetItemDef() uint32 { - if x != nil && x.ItemDef != nil { - return *x.ItemDef - } - return 0 -} - -func (x *CDOTAUserMsg_PredictionResult_Prediction) GetNumCorrect() uint32 { - if x != nil && x.NumCorrect != nil { - return *x.NumCorrect - } - return 0 -} - -func (x *CDOTAUserMsg_PredictionResult_Prediction) GetNumFails() uint32 { - if x != nil && x.NumFails != nil { - return *x.NumFails - } - return 0 -} - -func (x *CDOTAUserMsg_PredictionResult_Prediction) GetResult() CDOTAUserMsg_PredictionResult_Prediction_EResult { - if x != nil && x.Result != nil { - return *x.Result - } - return CDOTAUserMsg_PredictionResult_Prediction_k_eResult_ItemGranted -} - -func (x *CDOTAUserMsg_PredictionResult_Prediction) GetGrantedItemDefs() []uint32 { - if x != nil { - return x.GrantedItemDefs - } - return nil -} - type CDOTAResponseQuerySerialized_Fact struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -13688,7 +13482,7 @@ type CDOTAResponseQuerySerialized_Fact struct { func (x *CDOTAResponseQuerySerialized_Fact) Reset() { *x = CDOTAResponseQuerySerialized_Fact{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[169] + mi := &file_dota_usermessages_proto_msgTypes[167] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13701,7 +13495,7 @@ func (x *CDOTAResponseQuerySerialized_Fact) String() string { func (*CDOTAResponseQuerySerialized_Fact) ProtoMessage() {} func (x *CDOTAResponseQuerySerialized_Fact) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[169] + mi := &file_dota_usermessages_proto_msgTypes[167] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13714,7 +13508,7 @@ func (x *CDOTAResponseQuerySerialized_Fact) ProtoReflect() protoreflect.Message // Deprecated: Use CDOTAResponseQuerySerialized_Fact.ProtoReflect.Descriptor instead. func (*CDOTAResponseQuerySerialized_Fact) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{43, 0} + return file_dota_usermessages_proto_rawDescGZIP(), []int{42, 0} } func (x *CDOTAResponseQuerySerialized_Fact) GetKey() int32 { @@ -13771,7 +13565,7 @@ type CDOTAUserMsg_UnitEvent_Interval struct { func (x *CDOTAUserMsg_UnitEvent_Interval) Reset() { *x = CDOTAUserMsg_UnitEvent_Interval{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[170] + mi := &file_dota_usermessages_proto_msgTypes[168] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13784,7 +13578,7 @@ func (x *CDOTAUserMsg_UnitEvent_Interval) String() string { func (*CDOTAUserMsg_UnitEvent_Interval) ProtoMessage() {} func (x *CDOTAUserMsg_UnitEvent_Interval) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[170] + mi := &file_dota_usermessages_proto_msgTypes[168] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13797,7 +13591,7 @@ func (x *CDOTAUserMsg_UnitEvent_Interval) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_UnitEvent_Interval.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_UnitEvent_Interval) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{45, 0} + return file_dota_usermessages_proto_rawDescGZIP(), []int{44, 0} } func (x *CDOTAUserMsg_UnitEvent_Interval) GetStart() float32 { @@ -13830,7 +13624,7 @@ type CDOTAUserMsg_UnitEvent_Speech struct { func (x *CDOTAUserMsg_UnitEvent_Speech) Reset() { *x = CDOTAUserMsg_UnitEvent_Speech{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[171] + mi := &file_dota_usermessages_proto_msgTypes[169] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13843,7 +13637,7 @@ func (x *CDOTAUserMsg_UnitEvent_Speech) String() string { func (*CDOTAUserMsg_UnitEvent_Speech) ProtoMessage() {} func (x *CDOTAUserMsg_UnitEvent_Speech) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[171] + mi := &file_dota_usermessages_proto_msgTypes[169] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13856,7 +13650,7 @@ func (x *CDOTAUserMsg_UnitEvent_Speech) ProtoReflect() protoreflect.Message { // Deprecated: Use CDOTAUserMsg_UnitEvent_Speech.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_UnitEvent_Speech) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{45, 1} + return file_dota_usermessages_proto_rawDescGZIP(), []int{44, 1} } func (x *CDOTAUserMsg_UnitEvent_Speech) GetSpeechConcept() int32 { @@ -13912,7 +13706,7 @@ type CDOTAUserMsg_UnitEvent_SpeechMute struct { func (x *CDOTAUserMsg_UnitEvent_SpeechMute) Reset() { *x = CDOTAUserMsg_UnitEvent_SpeechMute{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[172] + mi := &file_dota_usermessages_proto_msgTypes[170] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13925,7 +13719,7 @@ func (x *CDOTAUserMsg_UnitEvent_SpeechMute) String() string { func (*CDOTAUserMsg_UnitEvent_SpeechMute) ProtoMessage() {} func (x *CDOTAUserMsg_UnitEvent_SpeechMute) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[172] + mi := &file_dota_usermessages_proto_msgTypes[170] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13938,7 +13732,7 @@ func (x *CDOTAUserMsg_UnitEvent_SpeechMute) ProtoReflect() protoreflect.Message // Deprecated: Use CDOTAUserMsg_UnitEvent_SpeechMute.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_UnitEvent_SpeechMute) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{45, 2} + return file_dota_usermessages_proto_rawDescGZIP(), []int{44, 2} } func (x *CDOTAUserMsg_UnitEvent_SpeechMute) GetDelay() float32 { @@ -13964,7 +13758,7 @@ type CDOTAUserMsg_UnitEvent_AddGesture struct { func (x *CDOTAUserMsg_UnitEvent_AddGesture) Reset() { *x = CDOTAUserMsg_UnitEvent_AddGesture{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[173] + mi := &file_dota_usermessages_proto_msgTypes[171] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13977,7 +13771,7 @@ func (x *CDOTAUserMsg_UnitEvent_AddGesture) String() string { func (*CDOTAUserMsg_UnitEvent_AddGesture) ProtoMessage() {} func (x *CDOTAUserMsg_UnitEvent_AddGesture) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[173] + mi := &file_dota_usermessages_proto_msgTypes[171] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13990,7 +13784,7 @@ func (x *CDOTAUserMsg_UnitEvent_AddGesture) ProtoReflect() protoreflect.Message // Deprecated: Use CDOTAUserMsg_UnitEvent_AddGesture.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_UnitEvent_AddGesture) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{45, 3} + return file_dota_usermessages_proto_rawDescGZIP(), []int{44, 3} } func (x *CDOTAUserMsg_UnitEvent_AddGesture) GetActivity() int32 { @@ -14046,7 +13840,7 @@ type CDOTAUserMsg_UnitEvent_RemoveGesture struct { func (x *CDOTAUserMsg_UnitEvent_RemoveGesture) Reset() { *x = CDOTAUserMsg_UnitEvent_RemoveGesture{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[174] + mi := &file_dota_usermessages_proto_msgTypes[172] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14059,7 +13853,7 @@ func (x *CDOTAUserMsg_UnitEvent_RemoveGesture) String() string { func (*CDOTAUserMsg_UnitEvent_RemoveGesture) ProtoMessage() {} func (x *CDOTAUserMsg_UnitEvent_RemoveGesture) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[174] + mi := &file_dota_usermessages_proto_msgTypes[172] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14072,7 +13866,7 @@ func (x *CDOTAUserMsg_UnitEvent_RemoveGesture) ProtoReflect() protoreflect.Messa // Deprecated: Use CDOTAUserMsg_UnitEvent_RemoveGesture.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_UnitEvent_RemoveGesture) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{45, 4} + return file_dota_usermessages_proto_rawDescGZIP(), []int{44, 4} } func (x *CDOTAUserMsg_UnitEvent_RemoveGesture) GetActivity() int32 { @@ -14095,7 +13889,7 @@ type CDOTAUserMsg_UnitEvent_BloodImpact struct { func (x *CDOTAUserMsg_UnitEvent_BloodImpact) Reset() { *x = CDOTAUserMsg_UnitEvent_BloodImpact{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[175] + mi := &file_dota_usermessages_proto_msgTypes[173] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14108,7 +13902,7 @@ func (x *CDOTAUserMsg_UnitEvent_BloodImpact) String() string { func (*CDOTAUserMsg_UnitEvent_BloodImpact) ProtoMessage() {} func (x *CDOTAUserMsg_UnitEvent_BloodImpact) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[175] + mi := &file_dota_usermessages_proto_msgTypes[173] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14121,7 +13915,7 @@ func (x *CDOTAUserMsg_UnitEvent_BloodImpact) ProtoReflect() protoreflect.Message // Deprecated: Use CDOTAUserMsg_UnitEvent_BloodImpact.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_UnitEvent_BloodImpact) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{45, 5} + return file_dota_usermessages_proto_rawDescGZIP(), []int{44, 5} } func (x *CDOTAUserMsg_UnitEvent_BloodImpact) GetScale() int32 { @@ -14156,7 +13950,7 @@ type CDOTAUserMsg_UnitEvent_FadeGesture struct { func (x *CDOTAUserMsg_UnitEvent_FadeGesture) Reset() { *x = CDOTAUserMsg_UnitEvent_FadeGesture{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[176] + mi := &file_dota_usermessages_proto_msgTypes[174] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14169,7 +13963,7 @@ func (x *CDOTAUserMsg_UnitEvent_FadeGesture) String() string { func (*CDOTAUserMsg_UnitEvent_FadeGesture) ProtoMessage() {} func (x *CDOTAUserMsg_UnitEvent_FadeGesture) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[176] + mi := &file_dota_usermessages_proto_msgTypes[174] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14182,7 +13976,7 @@ func (x *CDOTAUserMsg_UnitEvent_FadeGesture) ProtoReflect() protoreflect.Message // Deprecated: Use CDOTAUserMsg_UnitEvent_FadeGesture.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_UnitEvent_FadeGesture) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{45, 6} + return file_dota_usermessages_proto_rawDescGZIP(), []int{44, 6} } func (x *CDOTAUserMsg_UnitEvent_FadeGesture) GetActivity() int32 { @@ -14204,7 +13998,7 @@ type CDOTAUserMsg_StatsHeroPositionInfo_PositionPair struct { func (x *CDOTAUserMsg_StatsHeroPositionInfo_PositionPair) Reset() { *x = CDOTAUserMsg_StatsHeroPositionInfo_PositionPair{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[177] + mi := &file_dota_usermessages_proto_msgTypes[175] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14217,7 +14011,7 @@ func (x *CDOTAUserMsg_StatsHeroPositionInfo_PositionPair) String() string { func (*CDOTAUserMsg_StatsHeroPositionInfo_PositionPair) ProtoMessage() {} func (x *CDOTAUserMsg_StatsHeroPositionInfo_PositionPair) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[177] + mi := &file_dota_usermessages_proto_msgTypes[175] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14230,7 +14024,7 @@ func (x *CDOTAUserMsg_StatsHeroPositionInfo_PositionPair) ProtoReflect() protore // Deprecated: Use CDOTAUserMsg_StatsHeroPositionInfo_PositionPair.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_StatsHeroPositionInfo_PositionPair) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{88, 0} + return file_dota_usermessages_proto_rawDescGZIP(), []int{87, 0} } func (x *CDOTAUserMsg_StatsHeroPositionInfo_PositionPair) GetPositionCategory() DOTA_POSITION_CATEGORY { @@ -14260,7 +14054,7 @@ type CDOTAUserMsg_StatsTeamMinuteDetails_LocationPerformance struct { func (x *CDOTAUserMsg_StatsTeamMinuteDetails_LocationPerformance) Reset() { *x = CDOTAUserMsg_StatsTeamMinuteDetails_LocationPerformance{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[178] + mi := &file_dota_usermessages_proto_msgTypes[176] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14273,7 +14067,7 @@ func (x *CDOTAUserMsg_StatsTeamMinuteDetails_LocationPerformance) String() strin func (*CDOTAUserMsg_StatsTeamMinuteDetails_LocationPerformance) ProtoMessage() {} func (x *CDOTAUserMsg_StatsTeamMinuteDetails_LocationPerformance) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[178] + mi := &file_dota_usermessages_proto_msgTypes[176] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14286,7 +14080,7 @@ func (x *CDOTAUserMsg_StatsTeamMinuteDetails_LocationPerformance) ProtoReflect() // Deprecated: Use CDOTAUserMsg_StatsTeamMinuteDetails_LocationPerformance.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_StatsTeamMinuteDetails_LocationPerformance) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{90, 0} + return file_dota_usermessages_proto_rawDescGZIP(), []int{89, 0} } func (x *CDOTAUserMsg_StatsTeamMinuteDetails_LocationPerformance) GetLocationCategory() uint32 { @@ -14324,7 +14118,7 @@ type CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightTeamDetails struct { func (x *CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightTeamDetails) Reset() { *x = CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightTeamDetails{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[179] + mi := &file_dota_usermessages_proto_msgTypes[177] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14337,7 +14131,7 @@ func (x *CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightTeamDetails) Stri func (*CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightTeamDetails) ProtoMessage() {} func (x *CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightTeamDetails) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[179] + mi := &file_dota_usermessages_proto_msgTypes[177] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14350,7 +14144,7 @@ func (x *CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightTeamDetails) Prot // Deprecated: Use CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightTeamDetails.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightTeamDetails) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{93, 0} + return file_dota_usermessages_proto_rawDescGZIP(), []int{92, 0} } func (x *CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightTeamDetails) GetParticipants() []int32 { @@ -14395,7 +14189,7 @@ type CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightDetails struct { func (x *CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightDetails) Reset() { *x = CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightDetails{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[180] + mi := &file_dota_usermessages_proto_msgTypes[178] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14408,7 +14202,7 @@ func (x *CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightDetails) String() func (*CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightDetails) ProtoMessage() {} func (x *CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightDetails) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[180] + mi := &file_dota_usermessages_proto_msgTypes[178] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14421,7 +14215,7 @@ func (x *CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightDetails) ProtoRef // Deprecated: Use CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightDetails.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightDetails) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{93, 1} + return file_dota_usermessages_proto_rawDescGZIP(), []int{92, 1} } func (x *CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightDetails) GetStartTime() float32 { @@ -14464,7 +14258,7 @@ type CDOTAUserMsg_AllStarEvent_PlayerScore struct { func (x *CDOTAUserMsg_AllStarEvent_PlayerScore) Reset() { *x = CDOTAUserMsg_AllStarEvent_PlayerScore{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[181] + mi := &file_dota_usermessages_proto_msgTypes[179] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14477,7 +14271,7 @@ func (x *CDOTAUserMsg_AllStarEvent_PlayerScore) String() string { func (*CDOTAUserMsg_AllStarEvent_PlayerScore) ProtoMessage() {} func (x *CDOTAUserMsg_AllStarEvent_PlayerScore) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[181] + mi := &file_dota_usermessages_proto_msgTypes[179] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14490,7 +14284,7 @@ func (x *CDOTAUserMsg_AllStarEvent_PlayerScore) ProtoReflect() protoreflect.Mess // Deprecated: Use CDOTAUserMsg_AllStarEvent_PlayerScore.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_AllStarEvent_PlayerScore) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{134, 0} + return file_dota_usermessages_proto_rawDescGZIP(), []int{133, 0} } func (x *CDOTAUserMsg_AllStarEvent_PlayerScore) GetPlayerId() int32 { @@ -14520,7 +14314,7 @@ type CDOTAUserMsg_PauseMinigameData_DataBit struct { func (x *CDOTAUserMsg_PauseMinigameData_DataBit) Reset() { *x = CDOTAUserMsg_PauseMinigameData_DataBit{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[182] + mi := &file_dota_usermessages_proto_msgTypes[180] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14533,7 +14327,7 @@ func (x *CDOTAUserMsg_PauseMinigameData_DataBit) String() string { func (*CDOTAUserMsg_PauseMinigameData_DataBit) ProtoMessage() {} func (x *CDOTAUserMsg_PauseMinigameData_DataBit) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[182] + mi := &file_dota_usermessages_proto_msgTypes[180] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14546,7 +14340,7 @@ func (x *CDOTAUserMsg_PauseMinigameData_DataBit) ProtoReflect() protoreflect.Mes // Deprecated: Use CDOTAUserMsg_PauseMinigameData_DataBit.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_PauseMinigameData_DataBit) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{141, 0} + return file_dota_usermessages_proto_rawDescGZIP(), []int{140, 0} } func (x *CDOTAUserMsg_PauseMinigameData_DataBit) GetIndex() uint32 { @@ -14582,7 +14376,7 @@ type CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress struct { func (x *CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress) Reset() { *x = CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress{} if protoimpl.UnsafeEnabled { - mi := &file_dota_usermessages_proto_msgTypes[183] + mi := &file_dota_usermessages_proto_msgTypes[181] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14595,7 +14389,7 @@ func (x *CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress) String() string { func (*CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress) ProtoMessage() {} func (x *CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress) ProtoReflect() protoreflect.Message { - mi := &file_dota_usermessages_proto_msgTypes[183] + mi := &file_dota_usermessages_proto_msgTypes[181] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14608,7 +14402,7 @@ func (x *CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress) ProtoReflect() pro // Deprecated: Use CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress.ProtoReflect.Descriptor instead. func (*CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress) Descriptor() ([]byte, []int) { - return file_dota_usermessages_proto_rawDescGZIP(), []int{147, 0} + return file_dota_usermessages_proto_rawDescGZIP(), []int{146, 0} } func (x *CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress) GetPlayerId() int32 { @@ -15075,2340 +14869,2309 @@ var file_dota_usermessages_proto_rawDesc = []byte{ 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x7a, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x72, 0x69, 0x7a, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x22, 0xe8, 0x03, 0x0a, 0x1d, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, - 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x18, - 0x0a, 0x07, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x07, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x12, 0x50, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x64, - 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, + 0x73, 0x74, 0x22, 0xaf, 0x03, 0x0a, 0x1c, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x64, 0x12, 0x3d, 0x0a, 0x05, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x72, 0x69, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x2e, 0x46, 0x61, 0x63, 0x74, 0x52, 0x05, 0x66, 0x61, 0x63, + 0x74, 0x73, 0x1a, 0xcf, 0x02, 0x0a, 0x04, 0x46, 0x61, 0x63, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x4b, 0x0a, + 0x07, 0x76, 0x61, 0x6c, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x31, + 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x2e, 0x46, 0x61, 0x63, 0x74, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x07, 0x76, 0x61, 0x6c, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x61, + 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x0a, 0x76, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x12, 0x1d, 0x0a, 0x0a, 0x76, + 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x76, 0x61, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x32, 0x0a, 0x15, 0x76, 0x61, + 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, + 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0d, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x4e, + 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x22, 0x4c, 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x4e, 0x55, 0x4d, 0x45, 0x52, 0x49, 0x43, 0x10, 0x01, + 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, + 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x49, 0x4e, 0x44, 0x45, + 0x58, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x45, 0x52, + 0x49, 0x43, 0x10, 0x04, 0x22, 0xd2, 0x01, 0x0a, 0x18, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x53, 0x70, + 0x65, 0x65, 0x63, 0x68, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x6e, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x63, + 0x65, 0x70, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x73, 0x70, 0x65, 0x65, 0x63, + 0x68, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x63, 0x69, + 0x70, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0d, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x48, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, + 0x4f, 0x54, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x61, 0x6e, + 0x64, 0x6f, 0x6d, 0x73, 0x65, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x0a, 0x72, + 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x73, 0x65, 0x65, 0x64, 0x22, 0xc0, 0x0a, 0x0a, 0x16, 0x43, 0x44, + 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x55, 0x6e, 0x69, 0x74, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x45, 0x44, + 0x6f, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x73, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x02, 0x28, 0x05, + 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3b, 0x0a, + 0x06, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, - 0x67, 0x5f, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x70, - 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xa0, 0x02, 0x0a, 0x0a, 0x50, - 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x74, 0x65, - 0x6d, 0x5f, 0x64, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x69, 0x74, 0x65, - 0x6d, 0x44, 0x65, 0x66, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x72, 0x72, - 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x43, 0x6f, - 0x72, 0x72, 0x65, 0x63, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x75, 0x6d, 0x5f, 0x66, 0x61, 0x69, - 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x46, 0x61, 0x69, - 0x6c, 0x73, 0x12, 0x4e, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, - 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x45, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x74, - 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x66, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0f, 0x67, - 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x65, 0x66, 0x73, 0x22, 0x3d, - 0x0a, 0x07, 0x45, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x19, 0x0a, 0x15, 0x6b, 0x5f, 0x65, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x47, 0x72, 0x61, 0x6e, 0x74, - 0x65, 0x64, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x5f, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x65, 0x64, 0x10, 0x02, 0x22, 0xaf, 0x03, - 0x0a, 0x1c, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x3d, - 0x0a, 0x05, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, - 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, - 0x64, 0x2e, 0x46, 0x61, 0x63, 0x74, 0x52, 0x05, 0x66, 0x61, 0x63, 0x74, 0x73, 0x1a, 0xcf, 0x02, - 0x0a, 0x04, 0x46, 0x61, 0x63, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x02, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x4b, 0x0a, 0x07, 0x76, 0x61, 0x6c, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x64, 0x6f, 0x74, 0x61, - 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x2e, 0x46, 0x61, - 0x63, 0x74, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x76, 0x61, - 0x6c, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x61, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x4e, - 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x5f, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x53, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x32, 0x0a, 0x15, 0x76, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x74, - 0x61, 0x62, 0x6c, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x76, 0x61, 0x6c, - 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x11, 0x52, 0x0d, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x22, 0x4c, 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, - 0x0a, 0x07, 0x4e, 0x55, 0x4d, 0x45, 0x52, 0x49, 0x43, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x53, - 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x52, 0x49, 0x4e, - 0x47, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x10, 0x03, 0x12, 0x0f, - 0x0a, 0x0b, 0x49, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x45, 0x52, 0x49, 0x43, 0x10, 0x04, 0x22, - 0xd2, 0x01, 0x0a, 0x18, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x4f, 0x6e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, - 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x63, - 0x65, 0x70, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x63, - 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x48, 0x0a, 0x0d, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x72, 0x69, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x71, - 0x75, 0x65, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x73, 0x65, - 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x0a, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, - 0x73, 0x65, 0x65, 0x64, 0x22, 0xc0, 0x0a, 0x0a, 0x16, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, - 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x55, 0x6e, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, - 0x34, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, - 0x0e, 0x32, 0x19, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x45, 0x44, 0x6f, 0x74, 0x61, 0x45, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x07, 0x6d, 0x73, - 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x02, 0x28, 0x05, 0x52, 0x0b, 0x65, 0x6e, 0x74, - 0x69, 0x74, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x70, 0x65, 0x65, - 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, - 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x55, 0x6e, 0x69, - 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x52, 0x06, 0x73, - 0x70, 0x65, 0x65, 0x63, 0x68, 0x12, 0x48, 0x0a, 0x0b, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x5f, - 0x6d, 0x75, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x64, 0x6f, 0x74, - 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x55, - 0x6e, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x4d, - 0x75, 0x74, 0x65, 0x52, 0x0a, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x4d, 0x75, 0x74, 0x65, 0x12, - 0x48, 0x0a, 0x0b, 0x61, 0x64, 0x64, 0x5f, 0x67, 0x65, 0x73, 0x74, 0x75, 0x72, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, - 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x55, 0x6e, 0x69, 0x74, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x2e, 0x41, 0x64, 0x64, 0x47, 0x65, 0x73, 0x74, 0x75, 0x72, 0x65, 0x52, 0x0a, 0x61, - 0x64, 0x64, 0x47, 0x65, 0x73, 0x74, 0x75, 0x72, 0x65, 0x12, 0x51, 0x0a, 0x0e, 0x72, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x5f, 0x67, 0x65, 0x73, 0x74, 0x75, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2a, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, - 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x55, 0x6e, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x65, 0x73, 0x74, 0x75, 0x72, 0x65, 0x52, 0x0d, 0x72, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x65, 0x73, 0x74, 0x75, 0x72, 0x65, 0x12, 0x4b, 0x0a, 0x0c, - 0x62, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x69, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, - 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x55, 0x6e, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x2e, 0x42, 0x6c, 0x6f, 0x6f, 0x64, 0x49, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x52, 0x0b, 0x62, 0x6c, - 0x6f, 0x6f, 0x64, 0x49, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x12, 0x4b, 0x0a, 0x0c, 0x66, 0x61, 0x64, - 0x65, 0x5f, 0x67, 0x65, 0x73, 0x74, 0x75, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x28, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, - 0x4d, 0x73, 0x67, 0x5f, 0x55, 0x6e, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x46, 0x61, - 0x64, 0x65, 0x47, 0x65, 0x73, 0x74, 0x75, 0x72, 0x65, 0x52, 0x0b, 0x66, 0x61, 0x64, 0x65, 0x47, - 0x65, 0x73, 0x74, 0x75, 0x72, 0x65, 0x12, 0x53, 0x0a, 0x16, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, - 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, - 0x4f, 0x54, 0x41, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x6e, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x13, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x4f, 0x6e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x1a, 0x36, 0x0a, 0x08, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x14, 0x0a, - 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x72, 0x61, - 0x6e, 0x67, 0x65, 0x1a, 0xe7, 0x01, 0x0a, 0x06, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x12, 0x25, - 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x43, 0x6f, - 0x6e, 0x63, 0x65, 0x70, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x69, 0x70, - 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x75, 0x74, 0x65, - 0x61, 0x62, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x75, 0x74, 0x65, - 0x61, 0x62, 0x6c, 0x65, 0x12, 0x41, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x64, 0x65, 0x6c, 0x61, 0x79, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, + 0x67, 0x5f, 0x55, 0x6e, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x70, 0x65, 0x65, + 0x63, 0x68, 0x52, 0x06, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x12, 0x48, 0x0a, 0x0b, 0x73, 0x70, + 0x65, 0x65, 0x63, 0x68, 0x5f, 0x6d, 0x75, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x27, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, + 0x4d, 0x73, 0x67, 0x5f, 0x55, 0x6e, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x70, + 0x65, 0x65, 0x63, 0x68, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x0a, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, + 0x4d, 0x75, 0x74, 0x65, 0x12, 0x48, 0x0a, 0x0b, 0x61, 0x64, 0x64, 0x5f, 0x67, 0x65, 0x73, 0x74, + 0x75, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x64, 0x6f, 0x74, 0x61, + 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x55, 0x6e, + 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x64, 0x64, 0x47, 0x65, 0x73, 0x74, 0x75, + 0x72, 0x65, 0x52, 0x0a, 0x61, 0x64, 0x64, 0x47, 0x65, 0x73, 0x74, 0x75, 0x72, 0x65, 0x12, 0x51, + 0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x67, 0x65, 0x73, 0x74, 0x75, 0x72, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x55, 0x6e, 0x69, 0x74, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x52, 0x08, 0x70, - 0x72, 0x65, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x1a, 0x22, 0x0a, - 0x0a, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x4d, 0x75, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x64, - 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, - 0x79, 0x1a, 0xc0, 0x01, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x47, 0x65, 0x73, 0x74, 0x75, 0x72, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, - 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, - 0x12, 0x17, 0x0a, 0x07, 0x66, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x02, 0x52, 0x06, 0x66, 0x61, 0x64, 0x65, 0x49, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x61, 0x64, - 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x66, 0x61, 0x64, - 0x65, 0x4f, 0x75, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x70, 0x6c, 0x61, - 0x79, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x61, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x56, 0x61, 0x72, - 0x69, 0x61, 0x6e, 0x74, 0x1a, 0x2b, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x65, 0x73, 0x74, 0x75, + 0x72, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x65, 0x73, 0x74, 0x75, 0x72, + 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x69, 0x6d, 0x70, 0x61, 0x63, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, + 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x55, 0x6e, 0x69, 0x74, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x42, 0x6c, 0x6f, 0x6f, 0x64, 0x49, 0x6d, 0x70, 0x61, 0x63, + 0x74, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x6f, 0x64, 0x49, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x12, 0x4b, + 0x0a, 0x0c, 0x66, 0x61, 0x64, 0x65, 0x5f, 0x67, 0x65, 0x73, 0x74, 0x75, 0x72, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, + 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x55, 0x6e, 0x69, 0x74, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x2e, 0x46, 0x61, 0x64, 0x65, 0x47, 0x65, 0x73, 0x74, 0x75, 0x72, 0x65, 0x52, 0x0b, + 0x66, 0x61, 0x64, 0x65, 0x47, 0x65, 0x73, 0x74, 0x75, 0x72, 0x65, 0x12, 0x53, 0x0a, 0x16, 0x73, + 0x70, 0x65, 0x65, 0x63, 0x68, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6f, 0x6e, 0x5f, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x64, 0x6f, + 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x4f, 0x6e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x13, 0x73, 0x70, 0x65, + 0x65, 0x63, 0x68, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x6e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x1a, 0x36, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x1a, 0xe7, 0x01, 0x0a, 0x06, 0x53, 0x70, 0x65, + 0x65, 0x63, 0x68, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x5f, 0x63, 0x6f, + 0x6e, 0x63, 0x65, 0x70, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x73, 0x70, 0x65, + 0x65, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, + 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, + 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x6d, 0x75, 0x74, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x08, 0x6d, 0x75, 0x74, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x41, 0x0a, 0x08, 0x70, 0x72, 0x65, + 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x64, 0x6f, + 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, + 0x55, 0x6e, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x65, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x1a, 0x22, 0x0a, 0x0a, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x4d, 0x75, 0x74, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x1a, 0xc0, 0x01, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x47, 0x65, 0x73, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, - 0x79, 0x1a, 0x59, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x6f, 0x64, 0x49, 0x6d, 0x70, 0x61, 0x63, 0x74, - 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x78, 0x5f, 0x6e, 0x6f, 0x72, 0x6d, - 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x78, 0x4e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x79, 0x5f, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x07, 0x79, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x1a, 0x29, 0x0a, 0x0b, - 0x46, 0x61, 0x64, 0x65, 0x47, 0x65, 0x73, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, - 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x61, - 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x22, 0x44, 0x0a, 0x1a, 0x43, 0x44, 0x4f, 0x54, 0x41, - 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x75, 0x72, 0x63, - 0x68, 0x61, 0x73, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, - 0x69, 0x74, 0x65, 0x6d, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x64, 0x22, 0x3f, 0x0a, - 0x15, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x49, 0x74, - 0x65, 0x6d, 0x53, 0x6f, 0x6c, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0d, 0x69, 0x74, 0x65, 0x6d, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x64, 0x22, 0x94, - 0x01, 0x0a, 0x16, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, - 0x49, 0x74, 0x65, 0x6d, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x12, 0x18, 0x0a, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x72, - 0x61, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x61, 0x72, - 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x69, - 0x74, 0x65, 0x6d, 0x64, 0x65, 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x69, 0x74, - 0x65, 0x6d, 0x64, 0x65, 0x66, 0x22, 0x85, 0x02, 0x0a, 0x1a, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, - 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x65, 0x61, 0x64, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x64, 0x6f, 0x74, - 0x61, 0x2e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, - 0x41, 0x4c, 0x45, 0x52, 0x54, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x27, - 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, - 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x4e, 0x0a, - 0x1c, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x54, 0x75, - 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x54, 0x69, 0x70, 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, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x22, 0x7d, 0x0a, - 0x1b, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x54, 0x75, - 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, - 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, - 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x6d, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x6d, 0x12, 0x12, - 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x6f, - 0x64, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x26, 0x0a, 0x24, - 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x54, 0x75, 0x74, - 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x61, 0x70, 0x50, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7d, 0x0a, 0x1f, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, - 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, - 0x54, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, - 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, - 0x05, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x63, 0x6c, - 0x6f, 0x73, 0x65, 0x22, 0x6d, 0x0a, 0x16, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, - 0x4d, 0x73, 0x67, 0x5f, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x1b, 0x0a, + 0x79, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x66, 0x61, 0x64, 0x65, 0x49, 0x6e, 0x12, 0x19, + 0x0a, 0x08, 0x66, 0x61, 0x64, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x07, 0x66, 0x61, 0x64, 0x65, 0x4f, 0x75, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x6c, 0x61, + 0x79, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x61, 0x74, 0x65, 0x12, 0x29, + 0x0a, 0x10, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x1a, 0x2b, 0x0a, 0x0d, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x47, 0x65, 0x73, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x1a, 0x59, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x6f, 0x64, 0x49, + 0x6d, 0x70, 0x61, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x78, + 0x5f, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x78, + 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x79, 0x5f, 0x6e, 0x6f, 0x72, 0x6d, + 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x79, 0x4e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x1a, 0x29, 0x0a, 0x0b, 0x46, 0x61, 0x64, 0x65, 0x47, 0x65, 0x73, 0x74, 0x75, 0x72, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x22, 0x44, 0x0a, 0x1a, + 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x49, 0x74, 0x65, + 0x6d, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x74, + 0x65, 0x6d, 0x5f, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0d, 0x69, 0x74, 0x65, 0x6d, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x49, 0x64, 0x22, 0x3f, 0x0a, 0x15, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, + 0x73, 0x67, 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x6f, 0x6c, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x69, + 0x74, 0x65, 0x6d, 0x5f, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x69, 0x74, 0x65, 0x6d, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x49, 0x64, 0x22, 0x94, 0x01, 0x0a, 0x16, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, + 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x16, + 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, + 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x72, 0x61, 0x72, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, + 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, + 0x12, 0x18, 0x0a, 0x07, 0x69, 0x74, 0x65, 0x6d, 0x64, 0x65, 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x07, 0x69, 0x74, 0x65, 0x6d, 0x64, 0x65, 0x66, 0x22, 0x85, 0x02, 0x0a, 0x1a, 0x43, + 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x4f, 0x76, 0x65, 0x72, + 0x68, 0x65, 0x61, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x0c, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, + 0x19, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4f, 0x56, 0x45, 0x52, + 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x34, 0x0a, + 0x16, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x65, + 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x6e, + 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x34, 0x0a, 0x16, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x65, 0x6e, + 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x22, 0x4e, 0x0a, 0x1c, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, + 0x73, 0x67, 0x5f, 0x54, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x54, 0x69, 0x70, 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, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x22, 0x7d, 0x0a, 0x1b, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, + 0x73, 0x67, 0x5f, 0x54, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x46, 0x69, 0x6e, 0x69, 0x73, + 0x68, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x65, + 0x6d, 0x62, 0x6c, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x6d, 0x62, + 0x6c, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x22, 0x26, 0x0a, 0x24, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, + 0x67, 0x5f, 0x54, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x61, + 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7d, 0x0a, 0x1f, 0x43, 0x44, 0x4f, + 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x65, + 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x22, 0x6d, 0x0a, 0x16, 0x43, 0x44, 0x4f, 0x54, + 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x4c, 0x69, + 0x6e, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x36, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x4d, + 0x73, 0x67, 0x5f, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x4c, 0x69, 0x6e, 0x65, 0x52, 0x09, 0x77, 0x6f, + 0x72, 0x6c, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0xc1, 0x01, 0x0a, 0x16, 0x43, 0x44, 0x4f, 0x54, + 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x68, 0x61, 0x74, 0x57, 0x68, 0x65, + 0x65, 0x6c, 0x12, 0x26, 0x0a, 0x0f, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x68, 0x61, + 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5f, + 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6d, + 0x6f, 0x74, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0a, 0x65, 0x6d, 0x6f, 0x74, 0x69, 0x63, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x80, 0x01, 0x0a, 0x1d, + 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x58, 0x6d, 0x61, 0x73, 0x47, 0x69, 0x66, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x09, 0x77, 0x6f, - 0x72, 0x6c, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, - 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x4d, 0x73, 0x67, 0x5f, 0x57, 0x6f, - 0x72, 0x6c, 0x64, 0x4c, 0x69, 0x6e, 0x65, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x6c, 0x69, - 0x6e, 0x65, 0x22, 0xc1, 0x01, 0x0a, 0x16, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, - 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x68, 0x61, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x12, 0x26, 0x0a, - 0x0f, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x74, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, - 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x48, - 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6d, 0x6f, 0x74, 0x69, 0x63, 0x6f, - 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x6d, 0x6f, 0x74, - 0x69, 0x63, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x80, 0x01, 0x0a, 0x1d, 0x43, 0x44, 0x4f, 0x54, 0x41, - 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x58, 0x6d, 0x61, 0x73, 0x47, 0x69, 0x66, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5f, - 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x6c, 0x6f, 0x74, 0x22, 0xf7, 0x01, 0x0a, 0x17, 0x43, 0x44, - 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x68, 0x6f, 0x77, 0x53, - 0x75, 0x72, 0x76, 0x65, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x75, 0x72, 0x76, 0x65, 0x79, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x75, 0x72, 0x76, 0x65, 0x79, - 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x25, 0x0a, - 0x0e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, - 0x74, 0x79, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x65, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x65, - 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, - 0x74, 0x65, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x23, - 0x0a, 0x0d, 0x74, 0x65, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x65, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x74, 0x65, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x5f, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x11, 0x74, 0x65, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x49, 0x64, 0x22, 0x3f, 0x0a, 0x20, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, - 0x4d, 0x73, 0x67, 0x5f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x6c, 0x6f, 0x74, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x6c, 0x6f, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x21, 0x0a, 0x1f, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, - 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x54, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x45, 0x78, 0x70, 0x22, 0x38, 0x0a, 0x19, 0x43, 0x44, 0x4f, 0x54, 0x41, + 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x74, + 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, + 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0d, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x6c, 0x6f, 0x74, 0x22, 0xf7, + 0x01, 0x0a, 0x17, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, + 0x53, 0x68, 0x6f, 0x77, 0x53, 0x75, 0x72, 0x76, 0x65, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x75, + 0x72, 0x76, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, + 0x75, 0x72, 0x76, 0x65, 0x79, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x73, + 0x74, 0x79, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x65, 0x61, + 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x65, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x48, 0x65, 0x72, + 0x6f, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x65, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x65, 0x61, 0x6d, + 0x6d, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x74, 0x65, 0x61, 0x6d, + 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x74, 0x65, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x3f, 0x0a, 0x20, 0x43, 0x44, 0x4f, 0x54, + 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, + 0x68, 0x61, 0x72, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, + 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x73, 0x6c, 0x6f, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x21, 0x0a, 0x1f, 0x43, 0x44, 0x4f, + 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x54, 0x75, 0x74, 0x6f, 0x72, 0x69, + 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x45, 0x78, 0x70, 0x22, 0x38, 0x0a, 0x19, + 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x54, 0x75, 0x74, + 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x46, 0x61, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x67, 0x74, + 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x74, 0x67, + 0x74, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x22, 0xa1, 0x01, 0x0a, 0x20, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x54, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, - 0x46, 0x61, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x67, 0x74, 0x5f, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x74, 0x67, 0x74, 0x41, 0x6c, 0x70, 0x68, - 0x61, 0x22, 0xa1, 0x01, 0x0a, 0x20, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, - 0x73, 0x67, 0x5f, 0x54, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x50, 0x69, 0x6e, 0x67, 0x4d, - 0x69, 0x6e, 0x69, 0x6d, 0x61, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x49, 0x64, 0x12, 0x13, 0x0a, 0x05, 0x70, 0x6f, 0x73, 0x5f, 0x78, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x02, 0x52, 0x04, 0x70, 0x6f, 0x73, 0x58, 0x12, 0x13, 0x0a, 0x05, 0x70, 0x6f, 0x73, 0x5f, - 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x70, 0x6f, 0x73, 0x59, 0x12, 0x13, 0x0a, - 0x05, 0x70, 0x6f, 0x73, 0x5f, 0x7a, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x70, 0x6f, - 0x73, 0x5a, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x3a, 0x0a, 0x22, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, - 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x22, 0x59, 0x0a, 0x1d, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, - 0x67, 0x5f, 0x41, 0x64, 0x64, 0x51, 0x75, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x70, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x70, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, - 0x0a, 0x6e, 0x70, 0x63, 0x5f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x6e, 0x70, 0x63, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x22, 0x75, 0x0a, 0x1a, - 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x65, 0x6e, - 0x64, 0x53, 0x74, 0x61, 0x74, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x74, 0x70, - 0x6f, 0x70, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x64, 0x6f, 0x74, - 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x53, - 0x74, 0x61, 0x74, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x70, 0x6f, - 0x70, 0x75, 0x70, 0x22, 0x6e, 0x0a, 0x21, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, - 0x4d, 0x73, 0x67, 0x5f, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x41, 0x6c, 0x6c, 0x53, 0x74, - 0x61, 0x74, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x73, 0x12, 0x49, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x6d, - 0x69, 0x73, 0x73, 0x61, 0x6c, 0x6c, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x4d, 0x73, 0x67, 0x5f, - 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x50, 0x6f, - 0x70, 0x75, 0x70, 0x73, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x61, 0x6c, 0x6c, - 0x6d, 0x73, 0x67, 0x22, 0xa3, 0x01, 0x0a, 0x25, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, - 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x6f, 0x73, 0x68, 0x61, 0x6e, 0x53, - 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x61, 0x73, 0x65, 0x12, 0x2d, 0x0a, - 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x64, - 0x6f, 0x74, 0x61, 0x2e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x52, 0x4f, 0x53, 0x48, 0x41, 0x4e, 0x5f, - 0x50, 0x48, 0x41, 0x53, 0x45, 0x52, 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x10, - 0x70, 0x68, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x70, 0x68, 0x61, 0x73, 0x65, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x68, 0x61, 0x73, 0x65, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x68, - 0x61, 0x73, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x58, 0x0a, 0x1c, 0x43, 0x44, 0x4f, + 0x50, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x61, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x13, 0x0a, 0x05, 0x70, 0x6f, 0x73, 0x5f, + 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x70, 0x6f, 0x73, 0x58, 0x12, 0x13, 0x0a, + 0x05, 0x70, 0x6f, 0x73, 0x5f, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x70, 0x6f, + 0x73, 0x59, 0x12, 0x13, 0x0a, 0x05, 0x70, 0x6f, 0x73, 0x5f, 0x7a, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x04, 0x70, 0x6f, 0x73, 0x5a, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x3a, 0x0a, 0x22, 0x43, 0x44, + 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, + 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x59, 0x0a, 0x1d, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, + 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x41, 0x64, 0x64, 0x51, 0x75, 0x65, 0x73, 0x74, 0x4c, + 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x70, 0x63, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x70, 0x63, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x70, 0x63, 0x5f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x70, 0x63, 0x44, 0x69, 0x61, 0x6c, 0x6f, + 0x67, 0x22, 0x75, 0x0a, 0x1a, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, + 0x67, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x12, + 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x09, + 0x73, 0x74, 0x61, 0x74, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x4d, 0x73, 0x67, 0x5f, + 0x53, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x52, 0x09, 0x73, + 0x74, 0x61, 0x74, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x22, 0x6e, 0x0a, 0x21, 0x43, 0x44, 0x4f, 0x54, + 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, + 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x73, 0x12, 0x49, 0x0a, + 0x0d, 0x64, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x61, 0x6c, 0x6c, 0x6d, 0x73, 0x67, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, + 0x41, 0x4d, 0x73, 0x67, 0x5f, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x41, 0x6c, 0x6c, 0x53, + 0x74, 0x61, 0x74, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x73, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x6d, 0x69, + 0x73, 0x73, 0x61, 0x6c, 0x6c, 0x6d, 0x73, 0x67, 0x22, 0xa3, 0x01, 0x0a, 0x25, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x6f, - 0x73, 0x68, 0x61, 0x6e, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, - 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x72, 0x65, - 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x74, - 0x69, 0x6d, 0x65, 0x22, 0x6a, 0x0a, 0x1a, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, - 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x47, 0x6f, 0x6c, - 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x67, 0x6f, - 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0c, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, - 0x6c, 0x65, 0x47, 0x6f, 0x6c, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x6e, 0x72, 0x65, 0x6c, 0x69, - 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x67, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x0e, 0x75, 0x6e, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x6f, 0x6c, 0x64, 0x22, - 0x65, 0x0a, 0x16, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, - 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x70, 0x0a, 0x19, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, - 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6f, 0x61, 0x63, 0x68, 0x48, 0x55, 0x44, 0x50, - 0x69, 0x6e, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x36, 0x0a, 0x08, 0x68, 0x75, 0x64, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x4d, - 0x73, 0x67, 0x5f, 0x43, 0x6f, 0x61, 0x63, 0x68, 0x48, 0x55, 0x44, 0x50, 0x69, 0x6e, 0x67, 0x52, - 0x07, 0x68, 0x75, 0x64, 0x50, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x0a, 0x1e, 0x43, 0x44, 0x4f, 0x54, - 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, - 0x6f, 0x61, 0x64, 0x47, 0x72, 0x69, 0x64, 0x4e, 0x61, 0x76, 0x22, 0xcc, 0x05, 0x0a, 0x1a, 0x43, - 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x54, 0x45, 0x5f, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x73, 0x68, 0x61, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x61, + 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x17, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x52, 0x4f, + 0x53, 0x48, 0x41, 0x4e, 0x5f, 0x50, 0x48, 0x41, 0x53, 0x45, 0x52, 0x05, 0x70, 0x68, 0x61, 0x73, + 0x65, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x68, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x70, 0x68, 0x61, + 0x73, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x70, + 0x68, 0x61, 0x73, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0b, 0x70, 0x68, 0x61, 0x73, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x58, + 0x0a, 0x1c, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, + 0x65, 0x6e, 0x64, 0x52, 0x6f, 0x73, 0x68, 0x61, 0x6e, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x12, 0x1c, + 0x0a, 0x09, 0x72, 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x09, 0x72, 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, + 0x67, 0x61, 0x6d, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x67, 0x61, 0x6d, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x6a, 0x0a, 0x1a, 0x43, 0x44, 0x4f, 0x54, + 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x69, 0x6e, + 0x61, 0x6c, 0x47, 0x6f, 0x6c, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x67, 0x6f, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0c, 0x72, + 0x65, 0x6c, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x6f, 0x6c, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x75, + 0x6e, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x67, 0x6f, 0x6c, 0x64, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x75, 0x6e, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x6c, 0x65, + 0x47, 0x6f, 0x6c, 0x64, 0x22, 0x65, 0x0a, 0x16, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, + 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x73, 0x67, 0x12, 0x18, + 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x70, 0x0a, 0x19, 0x43, + 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6f, 0x61, 0x63, + 0x68, 0x48, 0x55, 0x44, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x08, 0x68, 0x75, 0x64, 0x5f, 0x70, 0x69, 0x6e, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, + 0x44, 0x4f, 0x54, 0x41, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6f, 0x61, 0x63, 0x68, 0x48, 0x55, 0x44, + 0x50, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x68, 0x75, 0x64, 0x50, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x0a, + 0x1e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x61, 0x64, 0x47, 0x72, 0x69, 0x64, 0x4e, 0x61, 0x76, 0x22, + 0xcc, 0x05, 0x0a, 0x1a, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, + 0x5f, 0x54, 0x45, 0x5f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6c, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1d, + 0x0a, 0x0a, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x2b, 0x0a, + 0x11, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x61, + 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x68, 0x61, + 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x6c, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x6f, 0x64, 0x67, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x09, 0x64, 0x6f, 0x64, 0x67, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1b, + 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x1f, 0x0a, 0x0b, 0x65, + 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x74, 0x69, + 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x67, 0x65, 0x6d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x67, 0x65, 0x6d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x61, 0x75, 0x6e, + 0x63, 0x68, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6c, + 0x61, 0x75, 0x6e, 0x63, 0x68, 0x54, 0x69, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x61, 0x6e, + 0x64, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x61, 0x6e, 0x64, 0x6c, + 0x65, 0x12, 0x2f, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, + 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4c, + 0x6f, 0x63, 0x12, 0x55, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x63, + 0x70, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x64, + 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, + 0x5f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, + 0x63, 0x6c, 0x65, 0x43, 0x50, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, + 0x63, 0x6c, 0x65, 0x43, 0x70, 0x44, 0x61, 0x74, 0x61, 0x12, 0x49, 0x0a, 0x21, 0x61, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, + 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x1e, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x48, 0x61, + 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, + 0x5f, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x11, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x4d, 0x6f, 0x76, 0x65, 0x53, + 0x70, 0x65, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x22, 0xc0, + 0x05, 0x0a, 0x1d, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, + 0x54, 0x45, 0x5f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6c, 0x65, 0x4c, 0x6f, 0x63, + 0x12, 0x2f, 0x0a, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, + 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x09, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4c, 0x6f, + 0x63, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, - 0x6f, 0x76, 0x65, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, - 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, - 0x65, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x53, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, - 0x6f, 0x64, 0x67, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, - 0x64, 0x6f, 0x64, 0x67, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, - 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, - 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x65, 0x78, 0x70, - 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x70, 0x61, 0x63, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, - 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x67, 0x65, 0x6d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x07, 0x52, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x67, 0x65, 0x6d, 0x63, 0x6f, - 0x6c, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x5f, 0x74, 0x69, - 0x63, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, - 0x54, 0x69, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x2f, 0x0a, 0x0a, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4c, 0x6f, 0x63, 0x12, 0x55, 0x0a, - 0x10, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x63, 0x70, 0x5f, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, - 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x43, 0x50, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x43, 0x70, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x49, 0x0a, 0x21, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x1e, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x74, 0x69, - 0x63, 0x6c, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, - 0x2e, 0x0a, 0x13, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x6d, 0x6f, 0x76, 0x65, - 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x6f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x4d, 0x6f, 0x76, 0x65, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, - 0x18, 0x0a, 0x07, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x07, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x22, 0xc0, 0x05, 0x0a, 0x1d, 0x43, 0x44, - 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x54, 0x45, 0x5f, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6c, 0x65, 0x4c, 0x6f, 0x63, 0x12, 0x2f, 0x0a, 0x0a, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x52, 0x09, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4c, 0x6f, 0x63, 0x12, 0x16, 0x0a, 0x06, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x65, - 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x70, - 0x65, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x5f, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x14, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x53, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x6f, 0x64, - 0x67, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x64, 0x6f, - 0x64, 0x67, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x61, 0x74, - 0x74, 0x61, 0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x74, - 0x74, 0x61, 0x63, 0x6b, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, - 0x6c, 0x6f, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, - 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x09, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x4c, 0x6f, 0x63, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x67, - 0x65, 0x6d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0d, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x67, 0x65, 0x6d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b, - 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0a, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x54, 0x69, 0x63, 0x6b, 0x12, 0x16, 0x0a, - 0x06, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x2b, 0x0a, - 0x11, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x55, 0x0a, 0x10, 0x70, 0x61, - 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x63, 0x70, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x10, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, - 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x6c, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x43, 0x50, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x43, 0x70, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x49, 0x0a, 0x21, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, - 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, - 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1e, 0x61, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, - 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x2e, 0x0a, 0x13, - 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x70, - 0x65, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x6f, 0x72, 0x69, 0x67, 0x69, - 0x6e, 0x61, 0x6c, 0x4d, 0x6f, 0x76, 0x65, 0x53, 0x70, 0x65, 0x65, 0x64, 0x22, 0x3b, 0x0a, 0x21, + 0x6f, 0x76, 0x65, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x68, 0x61, 0x6e, 0x64, + 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x6c, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x64, 0x6f, 0x64, 0x67, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x09, 0x64, 0x6f, 0x64, 0x67, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x09, + 0x69, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x08, 0x69, 0x73, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x70, + 0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x0a, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, + 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4c, 0x6f, 0x63, 0x12, 0x24, 0x0a, 0x0d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x67, 0x65, 0x6d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x07, 0x52, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x67, 0x65, 0x6d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x5f, 0x74, 0x69, 0x63, 0x6b, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x54, 0x69, + 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x74, 0x74, + 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x55, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x63, 0x70, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x64, 0x6f, 0x74, 0x61, + 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, + 0x43, 0x50, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, + 0x43, 0x70, 0x44, 0x61, 0x74, 0x61, 0x12, 0x49, 0x0a, 0x21, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x73, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x1e, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, + 0x74, 0x69, 0x63, 0x6c, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x48, 0x61, 0x6e, 0x64, 0x6c, + 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x6d, 0x6f, + 0x76, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x4d, 0x6f, 0x76, 0x65, 0x53, 0x70, 0x65, 0x65, + 0x64, 0x22, 0x3b, 0x0a, 0x21, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, + 0x67, 0x5f, 0x54, 0x45, 0x5f, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x83, + 0x01, 0x0a, 0x1f, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, + 0x54, 0x45, 0x5f, 0x44, 0x6f, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x6f, 0x64, 0x49, 0x6d, 0x70, 0x61, + 0x63, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, + 0x61, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x78, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x07, 0x78, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x79, 0x6e, + 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x79, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x22, 0xda, 0x03, 0x0a, 0x18, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, + 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x50, 0x69, 0x6e, + 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, + 0x0a, 0x0a, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x30, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x64, 0x6f, + 0x74, 0x61, 0x2e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, + 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, + 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, 0x6f, 0x6f, 0x6c, 0x64, + 0x6f, 0x77, 0x6e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 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, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x07, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, + 0x6e, 0x61, 0x5f, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0a, 0x6d, 0x61, 0x6e, 0x61, 0x4e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, + 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x69, 0x6d, + 0x61, 0x72, 0x79, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0e, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, + 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x5f, 0x63, + 0x68, 0x61, 0x72, 0x67, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x73, 0x12, 0x1b, + 0x0a, 0x09, 0x63, 0x74, 0x72, 0x6c, 0x5f, 0x68, 0x65, 0x6c, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x08, 0x63, 0x74, 0x72, 0x6c, 0x48, 0x65, 0x6c, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x72, + 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x21, + 0x0a, 0x0c, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x22, 0x88, 0x02, 0x0a, 0x1d, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, + 0x73, 0x67, 0x5f, 0x54, 0x45, 0x5f, 0x55, 0x6e, 0x69, 0x74, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x56, + 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61, + 0x63, 0x6b, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x70, 0x6c, + 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x72, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, + 0x73, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x63, + 0x61, 0x73, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x32, 0x0a, 0x15, 0x6c, 0x61, 0x67, 0x5f, + 0x63, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x6d, 0x70, + 0x65, 0x6e, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x4e, 0x0a, 0x20, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x54, 0x45, 0x5f, - 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6c, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x83, 0x01, 0x0a, 0x1f, 0x43, 0x44, - 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x54, 0x45, 0x5f, 0x44, 0x6f, - 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x6f, 0x64, 0x49, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x12, 0x16, 0x0a, - 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x65, - 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x78, - 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x78, 0x6e, - 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x79, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x79, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x22, - 0xda, 0x03, 0x0a, 0x18, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, - 0x5f, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x1b, 0x0a, 0x09, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x44, 0x4f, - 0x54, 0x41, 0x5f, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, - 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x53, 0x65, - 0x63, 0x6f, 0x6e, 0x64, 0x73, 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, 0x70, - 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x70, 0x61, - 0x73, 0x73, 0x69, 0x76, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x6e, 0x61, 0x5f, 0x6e, 0x65, - 0x65, 0x64, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x61, 0x6e, 0x61, - 0x4e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x63, - 0x68, 0x61, 0x72, 0x67, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x70, 0x72, - 0x69, 0x6d, 0x61, 0x72, 0x79, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, - 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, - 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, - 0x72, 0x79, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x74, 0x72, - 0x6c, 0x5f, 0x68, 0x65, 0x6c, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x63, 0x74, - 0x72, 0x6c, 0x48, 0x65, 0x6c, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x6c, 0x61, 0x69, - 0x6d, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x72, 0x65, - 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x77, 0x6e, - 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x22, 0x88, 0x02, 0x0a, - 0x1d, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x54, 0x45, - 0x5f, 0x55, 0x6e, 0x69, 0x74, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, - 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, - 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, - 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x72, 0x61, 0x74, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, - 0x6b, 0x72, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x73, 0x74, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x63, 0x61, 0x73, 0x74, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, - 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, - 0x69, 0x74, 0x79, 0x12, 0x32, 0x0a, 0x15, 0x6c, 0x61, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x65, - 0x6e, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x02, 0x52, 0x13, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x73, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x4e, 0x0a, 0x20, 0x43, 0x44, 0x4f, 0x54, 0x41, - 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x54, 0x45, 0x5f, 0x55, 0x6e, 0x69, 0x74, 0x41, - 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x65, - 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x65, 0x6e, 0x74, - 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6e, 0x61, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x04, 0x73, 0x6e, 0x61, 0x70, 0x22, 0xcf, 0x01, 0x0a, 0x1d, 0x43, 0x44, 0x4f, 0x54, - 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x68, 0x6f, 0x77, 0x47, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x02, 0x20, 0x02, 0x28, 0x09, 0x52, - 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x12, 0x16, 0x0a, - 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x32, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x63, - 0x72, 0x65, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x74, 0x69, 0x6e, 0x74, - 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x12, 0x31, 0x0a, 0x15, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x6e, - 0x6f, 0x5f, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x6f, 0x4f, 0x74, 0x68, - 0x65, 0x72, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x22, 0x87, 0x01, 0x0a, 0x16, 0x43, 0x44, - 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x56, 0x6f, 0x74, 0x65, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x64, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x73, 0x22, 0x3e, 0x0a, 0x17, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, - 0x4d, 0x73, 0x67, 0x5f, 0x56, 0x6f, 0x74, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x23, - 0x0a, 0x0d, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x22, 0x3f, 0x0a, 0x14, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, - 0x4d, 0x73, 0x67, 0x5f, 0x56, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x73, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0xc8, 0x01, 0x0a, 0x1f, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, - 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6f, 0x6e, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0d, - 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, - 0x12, 0x2d, 0x0a, 0x13, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x5f, - 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6f, 0x6e, 0x75, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x22, - 0x6b, 0x0a, 0x19, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, - 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x4e, 0x0a, 0x0f, - 0x62, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, - 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x65, - 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x0e, 0x62, 0x6f, - 0x6f, 0x73, 0x74, 0x65, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x22, 0x2a, 0x0a, 0x16, - 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x4d, 0x4d, 0x52, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x6d, 0x72, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x11, 0x52, 0x03, 0x6d, 0x6d, 0x72, 0x22, 0x7c, 0x0a, 0x19, 0x43, 0x44, 0x4f, 0x54, - 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x53, 0x74, 0x65, 0x61, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, - 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x8b, 0x01, 0x0a, 0x1c, 0x43, 0x44, 0x4f, 0x54, 0x41, - 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x48, 0x65, 0x72, - 0x6f, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1b, 0x0a, - 0x09, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x68, 0x65, 0x72, 0x6f, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x65, - 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x65, 0x72, - 0x73, 0x6f, 0x6e, 0x61, 0x22, 0xb4, 0x02, 0x0a, 0x22, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, - 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x48, 0x65, 0x72, 0x6f, 0x50, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x29, 0x0a, 0x10, 0x61, - 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x60, 0x0a, 0x10, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x35, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, - 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x48, 0x65, 0x72, 0x6f, 0x50, 0x6f, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x1a, 0x80, 0x01, 0x0a, 0x0c, 0x50, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x12, 0x49, 0x0a, 0x11, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x44, 0x4f, 0x54, 0x41, - 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x41, 0x54, 0x45, 0x47, 0x4f, - 0x52, 0x59, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x74, 0x65, - 0x67, 0x6f, 0x72, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xd1, 0x04, 0x0a, 0x23, + 0x55, 0x6e, 0x69, 0x74, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, + 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6e, 0x61, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x73, 0x6e, 0x61, 0x70, 0x22, 0xcf, 0x01, 0x0a, + 0x1d, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x68, + 0x6f, 0x77, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x12, 0x16, + 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x06, + 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x02, + 0x20, 0x02, 0x28, 0x09, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x69, + 0x6e, 0x74, 0x5f, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0a, 0x74, 0x69, 0x6e, 0x74, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x12, 0x31, 0x0a, 0x15, 0x73, + 0x68, 0x6f, 0x77, 0x5f, 0x6e, 0x6f, 0x5f, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x64, 0x69, 0x61, + 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x73, 0x68, 0x6f, 0x77, + 0x4e, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x22, 0x87, + 0x01, 0x0a, 0x16, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, + 0x56, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0b, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x07, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x73, 0x22, 0x3e, 0x0a, 0x17, 0x43, 0x44, 0x4f, 0x54, + 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x56, 0x6f, 0x74, 0x65, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0x3f, 0x0a, 0x14, 0x43, 0x44, 0x4f, 0x54, + 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x56, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, + 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xc8, 0x01, 0x0a, 0x1f, 0x43, 0x44, + 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x42, 0x6f, 0x6f, 0x73, 0x74, + 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1b, 0x0a, + 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6f, + 0x6e, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x62, 0x6f, 0x6e, 0x75, 0x73, + 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6f, 0x6e, 0x75, + 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, + 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x49, + 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x13, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x62, + 0x6f, 0x6e, 0x75, 0x73, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x10, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6f, 0x6e, 0x75, 0x73, 0x49, 0x74, + 0x65, 0x6d, 0x49, 0x64, 0x22, 0x6b, 0x0a, 0x19, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, + 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x4e, 0x0a, 0x0f, 0x62, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x64, 0x6f, 0x74, + 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x42, + 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x52, 0x0e, 0x62, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x73, 0x22, 0x2a, 0x0a, 0x16, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, + 0x67, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x4d, 0x52, 0x12, 0x10, 0x0a, 0x03, 0x6d, + 0x6d, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x11, 0x52, 0x03, 0x6d, 0x6d, 0x72, 0x22, 0x7c, 0x0a, + 0x19, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x41, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x74, 0x65, 0x61, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x8b, 0x01, 0x0a, 0x1c, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, - 0x74, 0x73, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x69, 0x74, 0x73, - 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4b, 0x69, 0x6c, 0x6c, 0x73, 0x12, - 0x1f, 0x0a, 0x0b, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x68, 0x65, 0x72, 0x6f, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, - 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x74, 0x6f, 0x77, 0x65, 0x72, 0x44, 0x61, 0x6d, - 0x61, 0x67, 0x65, 0x12, 0x4d, 0x0a, 0x0d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x64, 0x6f, 0x74, - 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, - 0x74, 0x61, 0x74, 0x73, 0x48, 0x65, 0x72, 0x6f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x78, 0x70, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x58, 0x70, 0x12, 0x1b, 0x0a, - 0x09, 0x6e, 0x65, 0x74, 0x5f, 0x77, 0x6f, 0x72, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x08, 0x6e, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x74, 0x68, 0x12, 0x30, 0x0a, 0x14, 0x68, 0x61, - 0x72, 0x76, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x72, 0x65, 0x65, 0x70, 0x5f, 0x67, 0x6f, - 0x6c, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x68, 0x61, 0x72, 0x76, 0x65, 0x73, - 0x74, 0x65, 0x64, 0x43, 0x72, 0x65, 0x65, 0x70, 0x47, 0x6f, 0x6c, 0x64, 0x12, 0x21, 0x0a, 0x0c, - 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x5f, 0x66, 0x61, 0x72, 0x6d, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x46, 0x61, 0x72, 0x6d, 0x12, - 0x21, 0x0a, 0x0c, 0x77, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6c, 0x61, 0x63, - 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x75, 0x6e, - 0x65, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x74, - 0x70, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x74, - 0x70, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x6e, 0x61, 0x5f, 0x73, - 0x70, 0x65, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x61, 0x6e, 0x61, - 0x53, 0x70, 0x65, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x5f, - 0x61, 0x62, 0x73, 0x6f, 0x72, 0x62, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, - 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x41, 0x62, 0x73, 0x6f, 0x72, 0x62, 0x65, 0x64, 0x12, 0x1f, - 0x0a, 0x0b, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x0f, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x6f, 0x6e, 0x65, 0x22, - 0xc1, 0x05, 0x0a, 0x23, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, - 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x4c, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, - 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, + 0x74, 0x73, 0x48, 0x65, 0x72, 0x6f, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x12, 0x1b, 0x0a, 0x09, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, + 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, + 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x65, 0x72, 0x6f, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x22, 0xb4, 0x02, 0x0a, 0x22, 0x43, 0x44, + 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, + 0x48, 0x65, 0x72, 0x6f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x29, 0x0a, 0x10, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x61, 0x76, 0x65, 0x72, + 0x61, 0x67, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x60, 0x0a, 0x10, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, + 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x48, + 0x65, 0x72, 0x6f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x2e, + 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0f, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x1a, 0x80, 0x01, + 0x0a, 0x0c, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x12, 0x49, + 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, + 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x64, 0x6f, 0x74, 0x61, + 0x2e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, + 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, 0x59, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0xd1, 0x04, 0x0a, 0x23, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x69, 0x6e, 0x75, 0x74, - 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x6b, - 0x69, 0x6c, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f, 0x77, 0x65, - 0x72, 0x4b, 0x69, 0x6c, 0x6c, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x61, 0x72, 0x72, 0x61, 0x63, - 0x6b, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x62, - 0x61, 0x72, 0x72, 0x61, 0x63, 0x6b, 0x4b, 0x69, 0x6c, 0x6c, 0x73, 0x12, 0x39, 0x0a, 0x19, 0x61, - 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x63, 0x72, - 0x65, 0x65, 0x70, 0x5f, 0x67, 0x6f, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, - 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x65, 0x43, 0x72, 0x65, - 0x65, 0x70, 0x47, 0x6f, 0x6c, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x10, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4b, 0x69, 0x6c, 0x6c, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, - 0x74, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x11, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x6f, 0x77, 0x65, 0x72, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, - 0x62, 0x61, 0x72, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x61, 0x72, - 0x72, 0x61, 0x63, 0x6b, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x62, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x6c, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x47, - 0x6f, 0x6c, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x62, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x5f, 0x78, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0e, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x58, 0x70, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x12, 0x68, 0x0a, 0x10, 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x64, + 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, + 0x5f, 0x68, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x61, 0x73, + 0x74, 0x48, 0x69, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x6b, 0x69, + 0x6c, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4b, + 0x69, 0x6c, 0x6c, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x64, 0x61, 0x6d, + 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x68, 0x65, 0x72, 0x6f, 0x44, + 0x61, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x64, + 0x61, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x74, 0x6f, 0x77, + 0x65, 0x72, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x4d, 0x0a, 0x0d, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x28, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, + 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x48, 0x65, 0x72, 0x6f, 0x50, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x5f, 0x78, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x58, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x74, 0x5f, 0x77, 0x6f, 0x72, 0x74, 0x68, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6e, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x74, 0x68, 0x12, + 0x30, 0x0a, 0x14, 0x68, 0x61, 0x72, 0x76, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x72, 0x65, + 0x65, 0x70, 0x5f, 0x67, 0x6f, 0x6c, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x68, + 0x61, 0x72, 0x76, 0x65, 0x73, 0x74, 0x65, 0x64, 0x43, 0x72, 0x65, 0x65, 0x70, 0x47, 0x6f, 0x6c, + 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x5f, 0x66, 0x61, 0x72, + 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, + 0x46, 0x61, 0x72, 0x6d, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x70, 0x6c, + 0x61, 0x63, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x77, 0x61, 0x72, 0x64, + 0x73, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x65, 0x73, + 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0e, 0x72, 0x75, 0x6e, 0x65, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x12, 0x19, 0x0a, 0x08, 0x74, 0x70, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x07, 0x74, 0x70, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, + 0x61, 0x6e, 0x61, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x09, 0x6d, 0x61, 0x6e, 0x61, 0x53, 0x70, 0x65, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x61, + 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x62, 0x73, 0x6f, 0x72, 0x62, 0x65, 0x64, 0x18, 0x0e, 0x20, + 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x41, 0x62, 0x73, 0x6f, 0x72, + 0x62, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x6f, + 0x6e, 0x65, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, + 0x44, 0x6f, 0x6e, 0x65, 0x22, 0xc1, 0x05, 0x0a, 0x23, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, + 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x54, 0x65, 0x61, 0x6d, 0x4d, + 0x69, 0x6e, 0x75, 0x74, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x4c, 0x0a, 0x0c, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, + 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x48, 0x65, 0x72, 0x6f, + 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0b, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, + 0x77, 0x65, 0x72, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0a, 0x74, 0x6f, 0x77, 0x65, 0x72, 0x4b, 0x69, 0x6c, 0x6c, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x62, + 0x61, 0x72, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0c, 0x62, 0x61, 0x72, 0x72, 0x61, 0x63, 0x6b, 0x4b, 0x69, 0x6c, 0x6c, 0x73, + 0x12, 0x39, 0x0a, 0x19, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x61, + 0x6e, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x65, 0x70, 0x5f, 0x67, 0x6f, 0x6c, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x16, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x61, + 0x6e, 0x65, 0x43, 0x72, 0x65, 0x65, 0x70, 0x47, 0x6f, 0x6c, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x62, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x4b, 0x69, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x62, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x54, + 0x6f, 0x77, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x62, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x62, 0x61, 0x72, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x62, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x42, 0x61, 0x72, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x2c, 0x0a, 0x12, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x6c, 0x64, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x62, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x47, 0x6f, 0x6c, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x28, 0x0a, + 0x10, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x78, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x58, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x68, 0x0a, 0x10, 0x6c, 0x61, 0x6e, 0x65, 0x5f, + 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x3d, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, + 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x54, 0x65, 0x61, 0x6d, 0x4d, + 0x69, 0x6e, 0x75, 0x74, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x4c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, + 0x52, 0x0f, 0x6c, 0x61, 0x6e, 0x65, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, + 0x65, 0x1a, 0x75, 0x0a, 0x13, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x74, + 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xfc, 0x01, 0x0a, 0x21, 0x43, 0x44, 0x4f, + 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4b, 0x69, 0x6c, 0x6c, 0x53, 0x68, 0x61, 0x72, 0x65, 0x12, 0x1b, + 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x6b, + 0x69, 0x6c, 0x6c, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6b, 0x69, 0x6c, 0x6c, 0x53, 0x68, 0x61, + 0x72, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0c, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x5f, 0x6c, 0x6f, 0x63, 0x5f, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x58, 0x12, 0x20, 0x0a, 0x0c, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6c, 0x6f, 0x63, 0x5f, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x59, 0x12, 0x25, 0x0a, + 0x0e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x50, 0x65, 0x72, + 0x63, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x6e, 0x61, 0x5f, 0x70, 0x65, 0x72, + 0x63, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x6d, 0x61, 0x6e, 0x61, + 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x22, 0x93, 0x02, 0x0a, 0x1d, 0x43, 0x44, 0x4f, 0x54, + 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4b, 0x69, + 0x6c, 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x69, 0x63, + 0x74, 0x69, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x76, 0x69, + 0x63, 0x74, 0x69, 0x6d, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x0b, 0x6b, 0x69, 0x6c, 0x6c, 0x5f, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x64, 0x6f, + 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4b, 0x69, 0x6c, 0x6c, 0x53, + 0x68, 0x61, 0x72, 0x65, 0x52, 0x0a, 0x6b, 0x69, 0x6c, 0x6c, 0x53, 0x68, 0x61, 0x72, 0x65, 0x73, + 0x12, 0x24, 0x0a, 0x0e, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6b, 0x69, + 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, + 0x54, 0x6f, 0x4b, 0x69, 0x6c, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x48, 0x65, 0x61, 0x6c, 0x74, + 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x65, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x64, 0x65, 0x61, 0x74, 0x68, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x1b, 0x0a, 0x09, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64, 0x22, 0xe5, 0x07, + 0x0a, 0x1e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, + 0x74, 0x61, 0x74, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x12, 0x43, 0x0a, 0x0b, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, + 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x48, + 0x65, 0x72, 0x6f, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x52, 0x0a, 0x68, 0x65, 0x72, 0x6f, 0x4c, + 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x12, 0x4e, 0x0a, 0x0d, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x0f, 0x6c, 0x61, 0x6e, - 0x65, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x1a, 0x75, 0x0a, 0x13, - 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x6e, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, - 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, - 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x22, 0xfc, 0x01, 0x0a, 0x21, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, - 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x4b, 0x69, 0x6c, 0x6c, 0x53, 0x68, 0x61, 0x72, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x6b, 0x69, 0x6c, 0x6c, 0x5f, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x02, 0x52, 0x10, 0x6b, 0x69, 0x6c, 0x6c, 0x53, 0x68, 0x61, 0x72, 0x65, 0x50, 0x65, 0x72, - 0x63, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6c, - 0x6f, 0x63, 0x5f, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x58, 0x12, 0x20, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x5f, 0x6c, 0x6f, 0x63, 0x5f, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x70, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x59, 0x12, 0x25, 0x0a, 0x0e, 0x68, 0x65, 0x61, 0x6c, - 0x74, 0x68, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x0d, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, - 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x6e, 0x61, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x6d, 0x61, 0x6e, 0x61, 0x50, 0x65, 0x72, 0x63, 0x65, - 0x6e, 0x74, 0x22, 0x93, 0x02, 0x0a, 0x1d, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, - 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x69, 0x63, 0x74, 0x69, 0x6d, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x76, 0x69, 0x63, 0x74, 0x69, 0x6d, 0x49, - 0x64, 0x12, 0x48, 0x0a, 0x0b, 0x6b, 0x69, 0x6c, 0x6c, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0c, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x48, 0x0a, 0x0a, 0x64, 0x69, 0x72, 0x65, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x64, 0x6f, 0x74, 0x61, + 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, + 0x48, 0x0a, 0x0d, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4b, 0x69, 0x6c, 0x6c, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, - 0x0a, 0x6b, 0x69, 0x6c, 0x6c, 0x53, 0x68, 0x61, 0x72, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x64, - 0x61, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x4b, 0x69, 0x6c, - 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x68, - 0x65, 0x61, 0x6c, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x65, 0x66, 0x66, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x0a, - 0x64, 0x65, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x09, 0x64, 0x65, 0x61, 0x74, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6b, - 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64, 0x22, 0xe5, 0x07, 0x0a, 0x1e, 0x43, 0x44, 0x4f, - 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x43, 0x0a, 0x0b, 0x68, - 0x65, 0x72, 0x6f, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, - 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x48, 0x65, 0x72, 0x6f, 0x4c, 0x6f, - 0x6f, 0x6b, 0x75, 0x70, 0x52, 0x0a, 0x68, 0x65, 0x72, 0x6f, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, - 0x12, 0x4e, 0x0a, 0x0d, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, - 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, - 0x73, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x52, 0x0c, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, - 0x12, 0x48, 0x0a, 0x0a, 0x64, 0x69, 0x72, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, - 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x54, 0x65, - 0x61, 0x6d, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, - 0x09, 0x64, 0x69, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x48, 0x0a, 0x0d, 0x72, 0x61, - 0x64, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, - 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4b, 0x69, 0x6c, 0x6c, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0c, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x4b, - 0x69, 0x6c, 0x6c, 0x73, 0x12, 0x42, 0x0a, 0x0a, 0x64, 0x69, 0x72, 0x65, 0x5f, 0x6b, 0x69, 0x6c, - 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, - 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, - 0x74, 0x73, 0x4b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x09, 0x64, - 0x69, 0x72, 0x65, 0x4b, 0x69, 0x6c, 0x6c, 0x73, 0x12, 0x68, 0x0a, 0x0d, 0x66, 0x69, 0x67, 0x68, - 0x74, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x43, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, - 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, - 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x46, 0x69, 0x67, 0x68, 0x74, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0c, 0x66, 0x69, 0x67, 0x68, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x1a, 0x9a, 0x01, 0x0a, 0x22, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, - 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x46, 0x69, 0x67, 0x68, 0x74, 0x54, 0x65, - 0x61, 0x6d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x61, 0x72, - 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, - 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x16, 0x0a, - 0x06, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x64, - 0x65, 0x61, 0x74, 0x68, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x6f, 0x6c, 0x64, 0x5f, 0x64, 0x65, - 0x6c, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x67, 0x6f, 0x6c, 0x64, 0x44, - 0x65, 0x6c, 0x74, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x78, 0x70, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x78, 0x70, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x1a, - 0xce, 0x02, 0x0a, 0x1e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, - 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x46, 0x69, 0x67, 0x68, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x02, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x7b, 0x0a, 0x15, - 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x66, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x64, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x64, 0x6f, - 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, - 0x53, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, - 0x74, 0x61, 0x74, 0x73, 0x46, 0x69, 0x67, 0x68, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x52, 0x13, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x46, 0x69, 0x67, - 0x68, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x75, 0x0a, 0x12, 0x64, 0x69, 0x72, - 0x65, 0x5f, 0x66, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, - 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x43, 0x44, 0x4f, 0x54, + 0x4b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0c, 0x72, 0x61, 0x64, + 0x69, 0x61, 0x6e, 0x74, 0x4b, 0x69, 0x6c, 0x6c, 0x73, 0x12, 0x42, 0x0a, 0x0a, 0x64, 0x69, 0x72, + 0x65, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, + 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x4b, 0x69, 0x6c, 0x6c, 0x73, 0x12, 0x68, 0x0a, + 0x0d, 0x66, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, + 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, + 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x46, 0x69, 0x67, + 0x68, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0c, 0x66, 0x69, 0x67, 0x68, 0x74, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x1a, 0x9a, 0x01, 0x0a, 0x22, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x46, 0x69, - 0x67, 0x68, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x10, - 0x64, 0x69, 0x72, 0x65, 0x46, 0x69, 0x67, 0x68, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x22, 0x46, 0x0a, 0x16, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, - 0x5f, 0x4d, 0x69, 0x6e, 0x69, 0x54, 0x61, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x74, 0x61, - 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x74, 0x61, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x22, 0x3c, 0x0a, 0x19, 0x43, 0x44, 0x4f, 0x54, - 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x42, - 0x75, 0x62, 0x62, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, - 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x65, 0x73, 0x74, - 0x72, 0x6f, 0x79, 0x41, 0x6c, 0x6c, 0x22, 0x8b, 0x01, 0x0a, 0x20, 0x43, 0x44, 0x4f, 0x54, 0x41, - 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x13, 0x43, 0x4d, 0x73, 0x67, 0x48, 0x65, 0x72, - 0x6f, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x12, 0x30, 0x0a, 0x09, - 0x73, 0x74, 0x61, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x13, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, - 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x66, - 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x0a, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x86, 0x01, 0x0a, - 0x1c, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, - 0x7a, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x12, 0x1d, 0x0a, - 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x47, 0x0a, 0x12, - 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, - 0x43, 0x4d, 0x73, 0x67, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, - 0x74, 0x61, 0x74, 0x52, 0x10, 0x68, 0x65, 0x72, 0x6f, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x53, 0x74, 0x61, 0x74, 0x73, 0x22, 0x7b, 0x0a, 0x17, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, - 0x62, 0x61, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, - 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x0c, 0x70, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, - 0x62, 0x61, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x53, 0x74, 0x61, 0x74, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, - 0x74, 0x73, 0x22, 0x76, 0x0a, 0x16, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, - 0x73, 0x67, 0x5f, 0x42, 0x65, 0x61, 0x73, 0x74, 0x43, 0x68, 0x61, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x74, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, - 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x82, 0x01, 0x0a, 0x24, 0x43, - 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x48, 0x75, 0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x5f, 0x66, 0x69, 0x6c, - 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x79, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, - 0x80, 0x01, 0x0a, 0x24, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, + 0x67, 0x68, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x22, + 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, + 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x06, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x6f, + 0x6c, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, + 0x67, 0x6f, 0x6c, 0x64, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x78, 0x70, 0x5f, + 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x78, 0x70, 0x44, + 0x65, 0x6c, 0x74, 0x61, 0x1a, 0xce, 0x02, 0x0a, 0x1e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, + 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x46, 0x69, 0x67, 0x68, 0x74, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x7b, 0x0a, 0x15, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x66, 0x69, 0x67, + 0x68, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x47, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, + 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, + 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x46, 0x69, 0x67, 0x68, 0x74, 0x54, 0x65, + 0x61, 0x6d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x13, 0x72, 0x61, 0x64, 0x69, 0x61, + 0x6e, 0x74, 0x46, 0x69, 0x67, 0x68, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x75, + 0x0a, 0x12, 0x64, 0x69, 0x72, 0x65, 0x5f, 0x66, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x64, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x64, 0x6f, 0x74, + 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, + 0x74, 0x61, 0x74, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x46, 0x69, 0x67, 0x68, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x52, 0x10, 0x64, 0x69, 0x72, 0x65, 0x46, 0x69, 0x67, 0x68, 0x74, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x46, 0x0a, 0x16, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, + 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x4d, 0x69, 0x6e, 0x69, 0x54, 0x61, 0x75, 0x6e, 0x74, 0x12, + 0x2c, 0x0a, 0x12, 0x74, 0x61, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x74, 0x61, 0x75, + 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x22, 0x3c, 0x0a, + 0x19, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x70, + 0x65, 0x65, 0x63, 0x68, 0x42, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, + 0x73, 0x74, 0x72, 0x6f, 0x79, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0a, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x41, 0x6c, 0x6c, 0x22, 0x8b, 0x01, 0x0a, 0x20, + 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x13, 0x43, 0x4d, + 0x73, 0x67, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, + 0x74, 0x12, 0x30, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x45, 0x48, 0x65, 0x72, + 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x86, 0x01, 0x0a, 0x1c, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, + 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, + 0x61, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x47, 0x0a, 0x12, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x10, 0x68, 0x65, 0x72, 0x6f, 0x41, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x22, 0x7b, 0x0a, 0x17, 0x43, 0x4d, + 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, + 0x12, 0x45, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, + 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x22, 0x76, 0x0a, 0x16, 0x43, 0x44, 0x4f, 0x54, 0x41, + 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x42, 0x65, 0x61, 0x73, 0x74, 0x43, 0x68, 0x61, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x04, 0x74, 0x65, 0x61, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x18, 0x0a, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, + 0x82, 0x01, 0x0a, 0x24, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x75, 0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x5f, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6c, 0x65, 0x6d, + 0x74, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x6c, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x6f, 0x64, 0x69, 0x66, - 0x79, 0x5f, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x22, 0x46, 0x0a, 0x25, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, - 0x73, 0x67, 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x75, 0x64, 0x45, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x5f, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x65, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x57, 0x0a, 0x22, 0x43, 0x44, - 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6f, 0x6d, 0x70, 0x65, - 0x6e, 0x64, 0x69, 0x75, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x6c, 0x61, 0x79, 0x6f, 0x75, + 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x22, 0x80, 0x01, 0x0a, 0x24, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, + 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x75, 0x64, 0x45, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x12, 0x1d, 0x0a, + 0x0a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, + 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x5f, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x56, 0x69, 0x73, 0x69, + 0x62, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x46, 0x0a, 0x25, 0x43, 0x44, 0x4f, 0x54, 0x41, + 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x75, + 0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, + 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, + 0x57, 0x0a, 0x22, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, + 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x75, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x77, 0x0a, 0x1c, 0x43, 0x44, 0x4f, 0x54, + 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x64, + 0x69, 0x75, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x57, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x70, + 0x65, 0x6e, 0x64, 0x69, 0x75, 0x6d, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, + 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x64, + 0x69, 0x75, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x11, + 0x63, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x75, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x73, 0x22, 0xc6, 0x02, 0x0a, 0x1e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, + 0x73, 0x67, 0x5f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x65, 0x6e, + 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x63, + 0x61, 0x73, 0x74, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1f, 0x0a, + 0x0b, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0a, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x54, 0x65, 0x61, 0x6d, 0x12, 0x1f, + 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x64, 0x12, + 0x28, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x72, 0x61, + 0x63, 0x6b, 0x5f, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x43, 0x61, 0x73, 0x74, 0x65, + 0x72, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x28, 0x0a, 0x10, 0x76, 0x69, 0x63, 0x74, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x74, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x76, 0x69, 0x63, 0x74, + 0x69, 0x6d, 0x45, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x65, 0x0a, 0x1c, 0x43, 0x44, + 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x08, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x64, + 0x6f, 0x74, 0x61, 0x2e, 0x45, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x65, 0x61, + 0x6d, 0x22, 0x5c, 0x0a, 0x14, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, + 0x67, 0x5f, 0x58, 0x50, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, + 0xb1, 0x01, 0x0a, 0x1c, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, + 0x5f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x65, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, - 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x22, 0x77, 0x0a, 0x1c, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, - 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x75, 0x6d, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x57, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x75, - 0x6d, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x28, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, - 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x75, 0x6d, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x65, - 0x6e, 0x64, 0x69, 0x75, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x22, 0xc6, 0x02, 0x0a, - 0x1e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, - 0x1d, 0x0a, 0x0a, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x28, - 0x0a, 0x10, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, - 0x45, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x73, 0x74, - 0x65, 0x72, 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, - 0x61, 0x73, 0x74, 0x65, 0x72, 0x54, 0x65, 0x61, 0x6d, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x64, 0x12, 0x28, 0x0a, 0x06, 0x6f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, - 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x63, 0x61, - 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x43, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x79, - 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x02, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x76, - 0x69, 0x63, 0x74, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x76, 0x69, 0x63, 0x74, 0x69, 0x6d, 0x45, 0x6e, 0x74, - 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x65, 0x0a, 0x1c, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, - 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x45, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, - 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x22, 0x5c, 0x0a, 0x14, - 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x58, 0x50, 0x41, - 0x6c, 0x65, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, - 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xb1, 0x01, 0x0a, 0x1c, 0x43, - 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x54, 0x61, 0x6c, 0x65, - 0x6e, 0x74, 0x54, 0x72, 0x65, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, - 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x22, 0x22, - 0x0a, 0x20, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x22, 0x88, 0x02, 0x0a, 0x18, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, - 0x4d, 0x73, 0x67, 0x5f, 0x51, 0x75, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02, - 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6c, 0x6c, - 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, - 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, - 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, - 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x6f, 0x61, 0x6c, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x67, 0x6f, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, - 0x65, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, - 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x5f, 0x67, 0x61, 0x6d, 0x65, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x66, 0x61, 0x69, 0x6c, 0x47, 0x61, 0x6d, - 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, - 0x69, 0x74, 0x65, 0x6d, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x64, 0x22, 0x81, 0x01, - 0x0a, 0x1c, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, - 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x50, 0x69, 0x63, 0x6b, 0x12, 0x1b, - 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, - 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, - 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, - 0x72, 0x6f, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x61, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x03, 0x62, 0x61, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x61, 0x63, 0x65, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x74, 0x49, - 0x64, 0x22, 0x58, 0x0a, 0x1c, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, - 0x67, 0x5f, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x6f, 0x6c, - 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x02, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, - 0x0a, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x68, 0x65, 0x72, 0x6f, 0x52, 0x6f, 0x6c, 0x65, 0x22, 0xe6, 0x01, 0x0a, 0x1f, - 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x4b, 0x69, 0x6c, - 0x6c, 0x63, 0x61, 0x6d, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x61, 0x6b, 0x65, 0x6e, 0x12, - 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02, - 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, - 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x61, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0b, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x61, 0x6b, 0x65, 0x6e, 0x12, - 0x1b, 0x0a, 0x09, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0f, - 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x69, 0x74, 0x65, 0x6d, 0x41, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x65, 0x72, 0x6f, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x43, - 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0x51, 0x0a, 0x1e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, - 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x50, 0x65, 0x6e, 0x61, 0x6c, - 0x74, 0x79, 0x47, 0x6f, 0x6c, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x27, 0x0a, + 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x6e, + 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x65, 0x61, + 0x72, 0x6e, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6c, 0x65, 0x61, 0x72, + 0x6e, 0x65, 0x64, 0x22, 0x22, 0x0a, 0x20, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, + 0x4d, 0x73, 0x67, 0x5f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x73, 0x74, 0x50, + 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x22, 0x88, 0x02, 0x0a, 0x18, 0x43, 0x44, 0x4f, 0x54, + 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x51, 0x75, 0x65, 0x73, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x19, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, + 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x49, 0x64, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x67, + 0x6f, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x67, 0x6f, 0x61, 0x6c, 0x12, + 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x5f, 0x67, 0x61, + 0x6d, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x66, 0x61, + 0x69, 0x6c, 0x47, 0x61, 0x6d, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x74, + 0x65, 0x6d, 0x5f, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0d, 0x69, 0x74, 0x65, 0x6d, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x49, 0x64, 0x22, 0x81, 0x01, 0x0a, 0x1c, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, + 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x50, + 0x69, 0x63, 0x6b, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x61, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x62, 0x61, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x66, + 0x61, 0x63, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x66, + 0x61, 0x63, 0x65, 0x74, 0x49, 0x64, 0x22, 0x58, 0x0a, 0x1c, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, + 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x48, 0x65, + 0x72, 0x6f, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x11, 0x52, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x22, 0xab, 0x01, 0x0a, 0x1b, 0x43, 0x44, 0x4f, 0x54, - 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x69, 0x63, - 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, - 0x6d, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x6f, 0x6c, 0x6c, 0x4d, - 0x69, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x6f, 0x6c, 0x6c, 0x4d, 0x61, 0x78, 0x12, 0x16, 0x0a, - 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x75, 0x0a, 0x1b, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, - 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x46, 0x6c, 0x69, 0x70, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, - 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x46, 0x0a, 0x27, - 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x75, 0x67, 0x67, - 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x72, 0x6f, 0x6c, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x65, 0x72, 0x6f, 0x52, 0x6f, 0x6c, 0x65, + 0x22, 0xe6, 0x01, 0x0a, 0x1f, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, + 0x67, 0x5f, 0x4b, 0x69, 0x6c, 0x6c, 0x63, 0x61, 0x6d, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x54, + 0x61, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x61, 0x6b, 0x65, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x54, + 0x61, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x69, 0x74, 0x65, 0x6d, + 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x65, 0x72, + 0x6f, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x65, + 0x72, 0x6f, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, + 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x61, + 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0x51, 0x0a, 0x1e, 0x43, 0x44, 0x4f, + 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x47, 0x6f, 0x6c, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x08, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x73, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x22, 0xab, 0x01, 0x0a, + 0x1b, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x6f, + 0x6c, 0x6c, 0x44, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1b, 0x0a, 0x09, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, + 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x72, 0x6f, 0x6c, 0x6c, 0x4d, 0x69, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x6d, 0x61, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x6f, 0x6c, 0x6c, 0x4d, + 0x61, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x75, 0x0a, 0x1b, 0x43, 0x44, + 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x46, 0x6c, 0x69, 0x70, 0x43, + 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x22, 0x46, 0x0a, 0x27, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x74, 0x65, + 0x6d, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1b, 0x0a, 0x09, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x22, 0x65, 0x0a, 0x23, 0x43, 0x44, 0x4f, + 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x54, 0x65, + 0x61, 0x6d, 0x43, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, + 0x74, 0x65, 0x61, 0x6d, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x5f, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0f, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, + 0x22, 0x6e, 0x0a, 0x1e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, + 0x5f, 0x43, 0x68, 0x61, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, + 0x77, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, + 0x64, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x72, 0x65, + 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x63, + 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, + 0x22, 0xb8, 0x01, 0x0a, 0x1e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, + 0x67, 0x5f, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x6c, 0x69, 0x63, 0x50, 0x72, 0x6f, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x72, 0x65, 0x6c, 0x69, + 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x68, 0x65, + 0x72, 0x6f, 0x52, 0x65, 0x6c, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x22, 0x9a, 0x01, 0x0a, 0x27, + 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x41, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x44, 0x72, 0x61, 0x66, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x49, 0x64, 0x22, 0x65, 0x0a, 0x23, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, - 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x54, 0x65, 0x61, 0x6d, 0x43, 0x61, 0x70, - 0x74, 0x61, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, - 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x12, - 0x2a, 0x0a, 0x11, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x63, 0x61, 0x70, 0x74, - 0x61, 0x69, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x22, 0x6e, 0x0a, 0x1e, 0x43, - 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x68, 0x61, 0x74, - 0x57, 0x68, 0x65, 0x65, 0x6c, 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x1d, 0x0a, - 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x12, - 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, - 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, - 0x77, 0x6e, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0xb8, 0x01, 0x0a, 0x1e, - 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x48, 0x65, 0x72, - 0x6f, 0x52, 0x65, 0x6c, 0x69, 0x63, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x26, - 0x0a, 0x0f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x72, 0x65, 0x6c, 0x69, 0x63, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x68, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x6c, - 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, - 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, + 0x64, 0x5f, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x12, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x41, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x63, 0x74, 0x72, 0x6c, 0x5f, 0x69, + 0x73, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, 0x74, + 0x72, 0x6c, 0x49, 0x73, 0x44, 0x6f, 0x77, 0x6e, 0x22, 0xc7, 0x01, 0x0a, 0x19, 0x43, 0x44, 0x4f, + 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x68, 0x65, + 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, + 0x23, 0x0a, 0x0d, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x41, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, + 0x73, 0x74, 0x22, 0xfb, 0x01, 0x0a, 0x19, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, + 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x61, 0x6c, 0x75, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x12, 0x28, 0x0a, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x70, 0x5f, 0x61, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x70, 0x41, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x28, + 0x0a, 0x10, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x69, 0x70, 0x5f, 0x73, 0x74, 0x79, + 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x54, 0x69, 0x70, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x75, 0x6d, 0x5f, + 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x70, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0d, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x70, 0x73, + 0x22, 0x9c, 0x01, 0x0a, 0x17, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, + 0x67, 0x5f, 0x47, 0x69, 0x66, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x10, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x2d, 0x0a, 0x13, 0x67, 0x69, 0x66, 0x74, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x64, 0x65, + 0x66, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x67, + 0x69, 0x66, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x65, 0x66, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, + 0x4f, 0x0a, 0x15, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, + 0x54, 0x69, 0x70, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x69, 0x70, 0x5f, 0x74, 0x65, 0x78, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x69, 0x70, 0x54, 0x65, 0x78, 0x74, + 0x22, 0x8e, 0x01, 0x0a, 0x1d, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, + 0x67, 0x5f, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x55, 0x6e, + 0x69, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x27, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x45, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x22, 0x7a, 0x0a, 0x1a, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, + 0x67, 0x5f, 0x45, 0x53, 0x41, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x43, 0x6f, 0x6d, 0x62, 0x6f, 0x12, + 0x18, 0x0a, 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, + 0x62, 0x6f, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, + 0x63, 0x6f, 0x6d, 0x62, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x72, + 0x63, 0x61, 0x6e, 0x61, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0b, 0x61, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x83, 0x01, + 0x0a, 0x21, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x45, + 0x53, 0x41, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x43, 0x6f, 0x6d, 0x62, 0x6f, 0x53, 0x75, 0x6d, 0x6d, + 0x61, 0x72, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x1f, 0x0a, + 0x0b, 0x63, 0x6f, 0x6d, 0x62, 0x6f, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x62, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, + 0x0a, 0x0d, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x41, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0xaf, 0x01, 0x0a, 0x1a, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, + 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x4f, 0x4d, 0x41, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x43, 0x6f, 0x6d, + 0x62, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x29, 0x0a, 0x10, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, + 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x72, 0x63, 0x61, 0x6e, + 0x61, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, + 0x72, 0x63, 0x61, 0x6e, 0x61, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x43, + 0x68, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xb7, 0x01, 0x0a, 0x1e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, + 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x48, 0x69, 0x67, 0x68, 0x46, 0x69, 0x76, 0x65, 0x43, + 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x31, 0x12, 0x1e, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x32, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x61, 0x6c, 0x5f, 0x68, 0x69, 0x67, 0x68, 0x5f, 0x66, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x48, 0x69, 0x67, 0x68, + 0x46, 0x69, 0x76, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x5f, + 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, + 0x3f, 0x0a, 0x20, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, + 0x48, 0x69, 0x67, 0x68, 0x46, 0x69, 0x76, 0x65, 0x4c, 0x65, 0x66, 0x74, 0x48, 0x61, 0x6e, 0x67, + 0x69, 0x6e, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, + 0x22, 0x8e, 0x01, 0x0a, 0x1a, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, + 0x67, 0x5f, 0x53, 0x68, 0x6f, 0x76, 0x65, 0x6c, 0x55, 0x6e, 0x65, 0x61, 0x72, 0x74, 0x68, 0x12, + 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, + 0x61, 0x6c, 0x6c, 0x5f, 0x63, 0x68, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x61, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x22, 0xd1, 0x02, 0x0a, 0x19, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, + 0x73, 0x67, 0x5f, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, + 0x28, 0x0a, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x61, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, - 0x61, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x44, - 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x22, 0x9a, 0x01, 0x0a, 0x27, 0x43, 0x44, 0x4f, 0x54, 0x41, - 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x44, - 0x72, 0x61, 0x66, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x41, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x64, 0x12, 0x50, 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, + 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x41, 0x6c, 0x6c, + 0x53, 0x74, 0x61, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x73, 0x1a, 0x50, 0x0a, 0x0b, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x30, 0x0a, 0x14, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, - 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x63, 0x74, 0x72, 0x6c, 0x5f, 0x69, 0x73, 0x5f, 0x64, 0x6f, 0x77, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, 0x74, 0x72, 0x6c, 0x49, 0x73, 0x44, - 0x6f, 0x77, 0x6e, 0x22, 0xc7, 0x01, 0x0a, 0x19, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, - 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x24, - 0x0a, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x65, - 0x72, 0x6f, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x68, - 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x61, - 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0c, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x1c, 0x0a, 0x09, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x09, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x22, 0xfb, 0x01, - 0x0a, 0x19, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, - 0x61, 0x6c, 0x75, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x10, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x70, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x70, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x19, - 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x69, 0x70, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x69, 0x70, 0x53, 0x74, - 0x79, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x6e, - 0x74, 0x5f, 0x74, 0x69, 0x70, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6e, 0x75, - 0x6d, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x70, 0x73, 0x22, 0x9c, 0x01, 0x0a, 0x17, - 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x69, 0x66, - 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, - 0x64, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x13, 0x67, - 0x69, 0x66, 0x74, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x66, 0x5f, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x67, 0x69, 0x66, 0x74, 0x49, 0x74, - 0x65, 0x6d, 0x44, 0x65, 0x66, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x4f, 0x0a, 0x15, 0x43, 0x44, - 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x54, 0x69, 0x70, 0x41, 0x6c, - 0x65, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x19, 0x0a, 0x08, 0x74, 0x69, 0x70, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x74, 0x69, 0x70, 0x54, 0x65, 0x78, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x1d, - 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x65, 0x70, - 0x6c, 0x61, 0x63, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x1b, 0x0a, - 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, - 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x6e, - 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x7a, 0x0a, 0x1a, - 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x45, 0x53, 0x41, - 0x72, 0x63, 0x61, 0x6e, 0x61, 0x43, 0x6f, 0x6d, 0x62, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x68, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x68, 0x61, - 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x62, 0x6f, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x62, 0x6f, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x5f, - 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x72, 0x63, - 0x61, 0x6e, 0x61, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x83, 0x01, 0x0a, 0x21, 0x43, 0x44, 0x4f, - 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x45, 0x53, 0x41, 0x72, 0x63, 0x61, - 0x6e, 0x61, 0x43, 0x6f, 0x6d, 0x62, 0x6f, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x18, - 0x0a, 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x62, - 0x6f, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, - 0x6f, 0x6d, 0x62, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x61, 0x6d, - 0x61, 0x67, 0x65, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0c, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xaf, - 0x01, 0x0a, 0x1a, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, - 0x4f, 0x4d, 0x41, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x43, 0x6f, 0x6d, 0x62, 0x6f, 0x12, 0x18, 0x0a, - 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, - 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x63, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x41, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x5f, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x72, 0x63, 0x61, 0x6e, 0x61, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, - 0x73, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, - 0x22, 0xb7, 0x01, 0x0a, 0x1e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, - 0x67, 0x5f, 0x48, 0x69, 0x67, 0x68, 0x46, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x5f, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x49, 0x64, 0x31, 0x12, 0x1e, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x5f, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x49, 0x64, 0x32, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x5f, 0x68, - 0x69, 0x67, 0x68, 0x5f, 0x66, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x48, 0x69, 0x67, 0x68, 0x46, 0x69, 0x76, 0x65, 0x12, - 0x29, 0x0a, 0x10, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x3f, 0x0a, 0x20, 0x43, 0x44, - 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x48, 0x69, 0x67, 0x68, 0x46, - 0x69, 0x76, 0x65, 0x4c, 0x65, 0x66, 0x74, 0x48, 0x61, 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x1b, - 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x22, 0x8e, 0x01, 0x0a, 0x1a, - 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x68, 0x6f, - 0x76, 0x65, 0x6c, 0x55, 0x6e, 0x65, 0x61, 0x72, 0x74, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x6c, 0x6c, 0x5f, 0x63, - 0x68, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x61, 0x6c, 0x6c, 0x43, 0x68, - 0x61, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x22, 0xd1, 0x02, 0x0a, - 0x19, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x41, 0x6c, - 0x6c, 0x53, 0x74, 0x61, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x21, - 0x0a, 0x0c, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x50, 0x0a, 0x0d, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, - 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x1a, 0x50, - 0x0a, 0x0b, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1b, 0x0a, - 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x5f, 0x73, 0x61, 0x6e, 0x73, 0x5f, 0x6b, 0x64, 0x61, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0c, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x61, 0x6e, 0x73, 0x4b, 0x64, 0x61, - 0x22, 0x51, 0x0a, 0x1f, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, - 0x5f, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x11, 0x75, 0x6e, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x22, 0xac, 0x02, 0x0a, 0x1b, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, - 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, - 0x6e, 0x67, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x68, 0x61, - 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x68, - 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x10, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, - 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, - 0x65, 0x5f, 0x76, 0x61, 0x72, 0x5f, 0x30, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, - 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x56, 0x61, 0x72, 0x30, 0x12, 0x26, 0x0a, 0x0f, - 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, - 0x56, 0x61, 0x72, 0x31, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, - 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x10, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x4d, 0x61, 0x78, 0x52, 0x61, - 0x6e, 0x6b, 0x22, 0xa9, 0x01, 0x0a, 0x1d, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, - 0x4d, 0x73, 0x67, 0x5f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x65, 0x75, 0x74, 0x72, 0x61, 0x6c, - 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, + 0x24, 0x0a, 0x0e, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x73, 0x61, 0x6e, 0x73, 0x5f, 0x6b, 0x64, + 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x61, + 0x6e, 0x73, 0x4b, 0x64, 0x61, 0x22, 0x51, 0x0a, 0x1f, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, + 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x75, 0x6e, 0x69, 0x74, + 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x11, 0x75, 0x6e, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xac, 0x02, 0x0a, 0x1b, 0x43, 0x44, 0x4f, + 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, + 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x6c, + 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, + 0x52, 0x0d, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x2c, 0x0a, 0x12, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x71, 0x75, 0x65, + 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x10, 0x63, 0x68, 0x61, + 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x64, 0x12, 0x19, 0x0a, + 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x02, 0x28, 0x0d, 0x52, + 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x63, 0x68, 0x61, + 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x5f, 0x30, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x56, 0x61, 0x72, + 0x30, 0x12, 0x26, 0x0a, 0x0f, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x76, + 0x61, 0x72, 0x5f, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x6c, + 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x56, 0x61, 0x72, 0x31, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x68, 0x61, + 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, + 0x4d, 0x61, 0x78, 0x52, 0x61, 0x6e, 0x6b, 0x22, 0xa9, 0x01, 0x0a, 0x1d, 0x43, 0x44, 0x4f, 0x54, + 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x65, + 0x75, 0x74, 0x72, 0x61, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0d, 0x69, 0x74, 0x65, 0x6d, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x1b, + 0x0a, 0x09, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x74, 0x69, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x54, 0x69, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0f, 0x74, + 0x69, 0x65, 0x72, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x74, 0x69, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x62, 0x0a, 0x1c, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, + 0x4d, 0x73, 0x67, 0x5f, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, + 0x72, 0x65, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x65, + 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6f, + 0x75, 0x74, 0x70, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x17, + 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x22, 0x55, 0x0a, 0x1d, 0x43, 0x44, 0x4f, 0x54, 0x41, + 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x73, 0x74, 0x47, + 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x58, 0x50, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, + 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x78, 0x70, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x78, 0x70, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x42, + 0x0a, 0x1d, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x4d, + 0x6f, 0x76, 0x65, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x54, 0x6f, 0x55, 0x6e, 0x69, 0x74, 0x12, + 0x21, 0x0a, 0x0c, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x75, 0x6e, 0x69, 0x74, 0x45, 0x68, 0x61, 0x6e, 0x64, + 0x6c, 0x65, 0x22, 0xbf, 0x01, 0x0a, 0x1e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, + 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x75, 0x73, 0x65, 0x4d, 0x69, 0x6e, 0x69, 0x67, 0x61, 0x6d, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x69, + 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, + 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x75, + 0x73, 0x65, 0x4d, 0x69, 0x6e, 0x69, 0x67, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x44, + 0x61, 0x74, 0x61, 0x42, 0x69, 0x74, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x42, 0x69, 0x74, 0x73, + 0x1a, 0x52, 0x0a, 0x07, 0x44, 0x61, 0x74, 0x61, 0x42, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x78, + 0x74, 0x72, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x45, + 0x78, 0x74, 0x72, 0x61, 0x22, 0xce, 0x02, 0x0a, 0x27, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, + 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x56, 0x65, 0x72, 0x73, 0x75, 0x73, 0x53, 0x63, 0x65, 0x6e, + 0x65, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, + 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x40, 0x0a, + 0x08, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x24, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x56, 0x65, 0x72, 0x73, + 0x75, 0x73, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x65, 0x68, + 0x61, 0x76, 0x69, 0x6f, 0x72, 0x52, 0x08, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, + 0x43, 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x56, 0x65, + 0x72, 0x73, 0x75, 0x73, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x41, 0x63, + 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x41, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x77, 0x68, 0x65, + 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, + 0x56, 0x65, 0x72, 0x73, 0x75, 0x73, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x5f, 0x43, 0x68, 0x61, 0x74, + 0x57, 0x68, 0x65, 0x65, 0x6c, 0x52, 0x09, 0x63, 0x68, 0x61, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, + 0x12, 0x43, 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x56, + 0x65, 0x72, 0x73, 0x75, 0x73, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x62, + 0x61, 0x63, 0x6b, 0x52, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, + 0x6b, 0x52, 0x61, 0x74, 0x65, 0x22, 0xa5, 0x01, 0x0a, 0x1e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, + 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x51, 0x6f, 0x50, 0x5f, 0x41, 0x72, 0x63, 0x61, 0x6e, + 0x61, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x68, 0x61, 0x6e, + 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, + 0x6c, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x5f, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x72, 0x63, 0x61, 0x6e, 0x61, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, + 0x5f, 0x68, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x73, 0x48, 0x69, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x73, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x4b, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x22, 0x60, 0x0a, + 0x1e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x48, 0x6f, + 0x74, 0x50, 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, + 0x1e, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x31, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x31, 0x12, + 0x1e, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x32, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x32, 0x22, + 0x3e, 0x0a, 0x1f, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, + 0x48, 0x6f, 0x74, 0x50, 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x5f, 0x45, 0x78, 0x70, 0x6c, 0x6f, 0x64, + 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x22, + 0x77, 0x0a, 0x1f, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, + 0x57, 0x4b, 0x5f, 0x41, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x5f, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x21, 0x0a, 0x0c, + 0x61, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x22, 0x83, 0x05, 0x0a, 0x24, 0x43, 0x44, 0x4f, + 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, + 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x62, 0x0a, 0x0f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x64, 0x6f, 0x74, + 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x50, 0x72, + 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x72, 0x6f, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x0e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x72, 0x6f, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, + 0x12, 0x32, 0x0a, 0x15, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x13, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, + 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x12, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x60, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, + 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, + 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, + 0x67, 0x5f, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, + 0x5f, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x45, 0x43, 0x68, 0x61, 0x6c, 0x6c, + 0x65, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, + 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x1b, 0x63, 0x68, 0x61, 0x6c, 0x6c, + 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x74, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x63, 0x68, + 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, + 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x74, 0x65, 0x1a, 0x49, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, - 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x69, 0x74, 0x65, 0x6d, - 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x74, 0x65, - 0x6d, 0x5f, 0x74, 0x69, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, 0x74, - 0x65, 0x6d, 0x54, 0x69, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x69, 0x65, 0x72, 0x5f, 0x69, - 0x74, 0x65, 0x6d, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0d, 0x74, 0x69, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x62, - 0x0a, 0x1c, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x4f, - 0x75, 0x74, 0x70, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x64, 0x12, 0x29, - 0x0a, 0x10, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x73, - 0x74, 0x45, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, - 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, - 0x49, 0x64, 0x22, 0x55, 0x0a, 0x1d, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, - 0x73, 0x67, 0x5f, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x73, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x65, - 0x64, 0x58, 0x50, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, - 0x78, 0x70, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x08, 0x78, 0x70, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x42, 0x0a, 0x1d, 0x43, 0x44, 0x4f, - 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x4d, 0x6f, 0x76, 0x65, 0x43, 0x61, - 0x6d, 0x65, 0x72, 0x61, 0x54, 0x6f, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x6e, - 0x69, 0x74, 0x5f, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0b, 0x75, 0x6e, 0x69, 0x74, 0x45, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0xbf, 0x01, - 0x0a, 0x1e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x4d, 0x69, 0x6e, 0x69, 0x67, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x49, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, - 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x75, 0x73, 0x65, 0x4d, 0x69, 0x6e, - 0x69, 0x67, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x69, - 0x74, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x42, 0x69, 0x74, 0x73, 0x1a, 0x52, 0x0a, 0x07, 0x44, - 0x61, 0x74, 0x61, 0x42, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x45, 0x78, 0x74, 0x72, 0x61, 0x22, - 0xce, 0x02, 0x0a, 0x27, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, - 0x5f, 0x56, 0x65, 0x72, 0x73, 0x75, 0x73, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x5f, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x70, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x08, 0x62, 0x65, 0x68, 0x61, - 0x76, 0x69, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x64, 0x6f, 0x74, - 0x61, 0x2e, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x56, 0x65, 0x72, 0x73, 0x75, 0x73, 0x53, 0x63, 0x65, - 0x6e, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, - 0x52, 0x08, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, 0x43, 0x0a, 0x0d, 0x70, 0x6c, - 0x61, 0x79, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x75, 0x73, 0x53, - 0x63, 0x65, 0x6e, 0x65, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, - 0x79, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, - 0x3a, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x75, - 0x73, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x5f, 0x43, 0x68, 0x61, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, - 0x52, 0x09, 0x63, 0x68, 0x61, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x12, 0x43, 0x0a, 0x0d, 0x70, - 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x75, 0x73, - 0x53, 0x63, 0x65, 0x6e, 0x65, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x61, - 0x74, 0x65, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x61, 0x74, 0x65, - 0x22, 0xa5, 0x01, 0x0a, 0x1e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, - 0x67, 0x5f, 0x51, 0x6f, 0x50, 0x5f, 0x41, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x53, 0x75, 0x6d, 0x6d, - 0x61, 0x72, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x21, 0x0a, - 0x0c, 0x61, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x5f, 0x68, 0x69, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x48, 0x69, - 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x5f, 0x6b, 0x69, 0x6c, - 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x73, 0x4b, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x22, 0x60, 0x0a, 0x1e, 0x43, 0x44, 0x4f, 0x54, - 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x48, 0x6f, 0x74, 0x50, 0x6f, 0x74, 0x61, - 0x74, 0x6f, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x70, 0x6c, + 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x22, 0x6f, 0x0a, + 0x0e, 0x45, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1c, 0x0a, 0x18, 0x6b, 0x5f, 0x45, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x5f, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x00, 0x12, 0x20, 0x0a, + 0x1c, 0x6b, 0x5f, 0x45, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x5f, 0x43, 0x6f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x10, 0x01, 0x12, + 0x1d, 0x0a, 0x19, 0x6b, 0x5f, 0x45, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x5f, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x02, 0x22, 0x8c, + 0x02, 0x0a, 0x1d, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, + 0x57, 0x52, 0x41, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x18, 0x0a, 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0d, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x68, 0x61, 0x6e, 0x64, 0x6c, + 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x6c, 0x61, 0x6e, 0x64, + 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x73, + 0x4c, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, + 0x5f, 0x64, 0x65, 0x61, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x64, 0x61, + 0x6d, 0x61, 0x67, 0x65, 0x44, 0x65, 0x61, 0x6c, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x5f, 0x68, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x48, 0x70, 0x12, 0x22, 0x0a, 0x0d, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x68, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x4d, 0x61, 0x78, 0x48, 0x70, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x72, + 0x63, 0x61, 0x6e, 0x61, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0b, 0x61, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0xa5, 0x02, + 0x0a, 0x1c, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x57, + 0x52, 0x41, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x18, + 0x0a, 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x5f, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0d, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, + 0x23, 0x0a, 0x0d, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x6c, 0x61, 0x6e, 0x64, 0x65, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x73, 0x4c, 0x61, + 0x6e, 0x64, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x64, + 0x65, 0x61, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x64, 0x61, 0x6d, 0x61, + 0x67, 0x65, 0x44, 0x65, 0x61, 0x6c, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x5f, 0x68, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x48, 0x70, 0x12, 0x22, 0x0a, 0x0d, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6d, + 0x61, 0x78, 0x5f, 0x68, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x4d, 0x61, 0x78, 0x48, 0x70, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x72, 0x63, 0x61, + 0x6e, 0x61, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, + 0x61, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x73, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0xbf, 0x01, 0x0a, 0x1f, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, + 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x49, 0x74, 0x65, 0x6d, + 0x53, 0x6c, 0x6f, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, + 0x0a, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x09, 0x73, 0x6c, 0x6f, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x29, 0x0a, 0x10, + 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, + 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0xf8, 0x01, 0x0a, 0x1c, 0x43, 0x44, 0x4f, 0x54, + 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x41, 0x67, 0x68, 0x73, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x6e, 0x74, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x6c, 0x65, 0x72, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x63, 0x65, 0x70, + 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x68, 0x61, 0x73, 0x53, 0x63, + 0x65, 0x70, 0x74, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x68, 0x61, + 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, 0x61, 0x73, 0x53, 0x68, 0x61, + 0x72, 0x64, 0x22, 0x83, 0x01, 0x0a, 0x19, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, + 0x4d, 0x73, 0x67, 0x5f, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, + 0x12, 0x31, 0x0a, 0x15, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x12, 0x74, 0x65, 0x78, 0x74, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x49, 0x64, 0x73, 0x12, 0x33, 0x0a, 0x16, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x6d, 0x75, 0x74, + 0x65, 0x64, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x13, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0xd8, 0x04, 0x0a, 0x1a, 0x43, 0x44, 0x4f, + 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, + 0x74, 0x75, 0x61, 0x6c, 0x54, 0x69, 0x70, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x69, 0x70, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x69, 0x70, 0x49, 0x64, 0x12, 0x31, + 0x0a, 0x14, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, + 0x73, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x5f, + 0x75, 0x6e, 0x69, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x10, + 0x70, 0x61, 0x6e, 0x6f, 0x72, 0x61, 0x6d, 0x61, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x6e, 0x6f, 0x72, 0x61, 0x6d, 0x61, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x66, 0x6f, 0x72, 0x63, 0x65, + 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, + 0x69, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x69, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x74, + 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, + 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x0b, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x12, 0x21, 0x0a, 0x0c, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, + 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x32, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x69, 0x70, 0x5f, 0x74, 0x65, 0x78, 0x74, + 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0f, 0x74, 0x69, 0x70, 0x54, 0x65, 0x78, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, + 0x12, 0x36, 0x0a, 0x17, 0x74, 0x69, 0x70, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x15, 0x74, 0x69, 0x70, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x61, 0x6e, 0x6f, + 0x72, 0x61, 0x6d, 0x61, 0x5f, 0x73, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x6e, 0x6f, 0x72, 0x61, 0x6d, 0x61, 0x53, 0x6e, 0x69, 0x70, + 0x70, 0x65, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x18, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, + 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x68, 0x61, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x12, 0x28, 0x0a, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, + 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x65, 0x78, 0x74, + 0x22, 0x7b, 0x0a, 0x25, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, + 0x5f, 0x52, 0x6f, 0x63, 0x6b, 0x50, 0x61, 0x70, 0x65, 0x72, 0x53, 0x63, 0x69, 0x73, 0x73, 0x6f, + 0x72, 0x73, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x53, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0xb8, 0x01, + 0x0a, 0x26, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x52, + 0x6f, 0x63, 0x6b, 0x50, 0x61, 0x70, 0x65, 0x72, 0x53, 0x63, 0x69, 0x73, 0x73, 0x6f, 0x72, 0x73, + 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x31, 0x12, 0x1e, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x32, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x5f, 0x31, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x32, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x32, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x73, 0x0a, 0x1f, 0x43, 0x44, 0x4f, 0x54, + 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x44, 0x75, 0x65, 0x6c, 0x4f, 0x70, 0x70, + 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x4b, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x57, + 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x5f, 0x6c, 0x6f, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x4c, 0x6f, 0x73, 0x65, 0x72, 0x22, 0x5b, 0x0a, + 0x19, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x44, 0x75, + 0x65, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x31, 0x12, 0x1e, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x32, 0x22, 0x3e, 0x0a, 0x1f, 0x43, 0x44, - 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x48, 0x6f, 0x74, 0x50, 0x6f, - 0x74, 0x61, 0x74, 0x6f, 0x5f, 0x45, 0x78, 0x70, 0x6c, 0x6f, 0x64, 0x65, 0x64, 0x12, 0x1b, 0x0a, - 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x22, 0x77, 0x0a, 0x1f, 0x43, 0x44, - 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x57, 0x4b, 0x5f, 0x41, 0x72, - 0x63, 0x61, 0x6e, 0x61, 0x5f, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, - 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, - 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x72, 0x63, 0x61, 0x6e, - 0x61, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, - 0x72, 0x63, 0x61, 0x6e, 0x61, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, - 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, - 0x6f, 0x49, 0x64, 0x22, 0x83, 0x05, 0x0a, 0x24, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, - 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, - 0x6e, 0x67, 0x65, 0x5f, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x62, 0x0a, 0x0f, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x44, 0x4f, - 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, - 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x52, 0x0e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x63, - 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x63, 0x68, 0x61, 0x6c, - 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, - 0x2f, 0x0a, 0x13, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x63, 0x68, - 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x12, 0x60, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, - 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x75, 0x69, - 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x50, 0x72, 0x6f, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x2e, 0x45, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x1b, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, - 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, - 0x67, 0x65, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x74, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x1a, 0x49, 0x0a, - 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, - 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, - 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x22, 0x6f, 0x0a, 0x0e, 0x45, 0x43, 0x68, 0x61, - 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x6b, 0x5f, - 0x45, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x49, - 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x6b, 0x5f, 0x45, 0x43, - 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x6f, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x6b, 0x5f, - 0x45, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x02, 0x22, 0x8c, 0x02, 0x0a, 0x1d, 0x43, 0x44, - 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x57, 0x52, 0x41, 0x72, 0x63, - 0x61, 0x6e, 0x61, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, - 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x68, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, - 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x74, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x0d, - 0x61, 0x72, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x6c, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x73, 0x4c, 0x61, 0x6e, 0x64, 0x65, - 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x65, 0x61, 0x6c, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x44, - 0x65, 0x61, 0x6c, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x68, - 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, - 0x70, 0x12, 0x22, 0x0a, 0x0d, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6d, 0x61, 0x78, 0x5f, - 0x68, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x4d, 0x61, 0x78, 0x48, 0x70, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x5f, - 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x72, 0x63, - 0x61, 0x6e, 0x61, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0xa5, 0x02, 0x0a, 0x1c, 0x43, 0x44, 0x4f, - 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x57, 0x52, 0x41, 0x72, 0x63, 0x61, - 0x6e, 0x61, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x68, 0x61, - 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x68, 0x61, 0x6e, - 0x64, 0x6c, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x68, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x45, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x72, - 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x6c, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0c, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x73, 0x4c, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x12, - 0x21, 0x0a, 0x0c, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x65, 0x61, 0x6c, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x65, 0x61, - 0x6c, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x68, 0x70, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x70, 0x12, - 0x22, 0x0a, 0x0d, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x68, 0x70, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4d, 0x61, - 0x78, 0x48, 0x70, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x5f, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x72, 0x63, 0x61, 0x6e, - 0x61, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x22, 0xbf, 0x01, 0x0a, 0x1f, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, - 0x67, 0x5f, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x6c, 0x6f, 0x74, 0x41, - 0x6c, 0x65, 0x72, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, - 0x0a, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x6c, 0x6f, 0x74, - 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x73, 0x6c, - 0x6f, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6f, 0x6c, 0x64, - 0x6f, 0x77, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0f, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x53, 0x65, 0x63, 0x6f, 0x6e, - 0x64, 0x73, 0x22, 0xf8, 0x01, 0x0a, 0x1c, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, - 0x4d, 0x73, 0x67, 0x5f, 0x41, 0x67, 0x68, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x41, 0x6c, - 0x65, 0x72, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, - 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x1f, 0x0a, 0x0b, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x63, 0x65, 0x70, 0x74, 0x65, 0x72, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x68, 0x61, 0x73, 0x53, 0x63, 0x65, 0x70, 0x74, 0x65, 0x72, - 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, 0x61, 0x73, 0x53, 0x68, 0x61, 0x72, 0x64, 0x22, 0x83, 0x01, - 0x0a, 0x19, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x4d, - 0x75, 0x74, 0x65, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x31, 0x0a, 0x15, 0x74, - 0x65, 0x78, 0x74, 0x5f, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x12, 0x74, 0x65, 0x78, 0x74, - 0x4d, 0x75, 0x74, 0x65, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x33, - 0x0a, 0x16, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x13, - 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x49, 0x64, 0x73, 0x22, 0xd8, 0x04, 0x0a, 0x1a, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, - 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x54, - 0x69, 0x70, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x69, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x74, 0x69, 0x70, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x14, 0x72, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x64, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x10, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x64, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x61, 0x6e, 0x6f, 0x72, - 0x61, 0x6d, 0x61, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0f, 0x70, 0x61, 0x6e, 0x6f, 0x72, 0x61, 0x6d, 0x61, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x65, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x66, 0x6f, - 0x72, 0x63, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, - 0x07, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x32, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x66, 0x6c, 0x6f, 0x61, - 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x12, - 0x2a, 0x0a, 0x11, 0x74, 0x69, 0x70, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x6f, 0x76, 0x65, 0x72, - 0x72, 0x69, 0x64, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x69, 0x70, 0x54, - 0x65, 0x78, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x74, - 0x69, 0x70, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x76, - 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x74, 0x69, - 0x70, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x72, - 0x69, 0x64, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x61, 0x6e, 0x6f, 0x72, 0x61, 0x6d, 0x61, 0x5f, - 0x73, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, - 0x61, 0x6e, 0x6f, 0x72, 0x61, 0x6d, 0x61, 0x53, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x22, 0x8a, - 0x01, 0x0a, 0x18, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, - 0x43, 0x68, 0x61, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x65, 0x78, 0x74, 0x22, 0x7b, 0x0a, 0x25, 0x43, - 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x6f, 0x63, 0x6b, - 0x50, 0x61, 0x70, 0x65, 0x72, 0x53, 0x63, 0x69, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x28, + 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x32, 0x22, 0x4c, 0x0a, 0x1a, 0x43, 0x44, + 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x44, 0x75, 0x65, 0x6c, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x22, 0xe0, 0x01, 0x0a, 0x34, 0x43, 0x44, 0x4f, + 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x4d, 0x75, 0x65, 0x72, 0x74, 0x61, + 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x41, 0x73, 0x73, + 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4b, 0x69, 0x6c, 0x6c, 0x65, + 0x64, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6b, + 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x0e, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x49, 0x64, 0x4b, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x10, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x02, 0x28, 0x05, 0x52, 0x0e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x54, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, + 0x03, 0x20, 0x02, 0x28, 0x05, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x21, 0x0a, + 0x0c, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, + 0x02, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, + 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x05, 0x20, 0x02, + 0x28, 0x08, 0x52, 0x07, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x69, 0x74, 0x22, 0x74, 0x0a, 0x23, 0x43, + 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x44, 0x72, 0x61, 0x66, 0x74, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x50, 0x69, + 0x63, 0x6b, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x30, 0x0a, 0x14, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x73, + 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, + 0x64, 0x22, 0x88, 0x01, 0x0a, 0x1c, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, + 0x73, 0x67, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x72, 0x61, 0x66, 0x74, 0x50, 0x69, + 0x63, 0x6b, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, + 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x43, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x49, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0xb8, 0x01, 0x0a, 0x26, 0x43, 0x44, 0x4f, - 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x6f, 0x63, 0x6b, 0x50, 0x61, - 0x70, 0x65, 0x72, 0x53, 0x63, 0x69, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x46, 0x69, 0x6e, 0x69, 0x73, - 0x68, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x5f, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x49, 0x64, 0x31, 0x12, 0x1e, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x5f, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x49, 0x64, 0x32, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x31, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x31, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x70, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x32, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x32, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x73, 0x0a, 0x1f, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, - 0x4d, 0x73, 0x67, 0x5f, 0x44, 0x75, 0x65, 0x6c, 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, - 0x4b, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x5f, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x57, 0x69, 0x6e, 0x6e, 0x65, 0x72, - 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6c, 0x6f, - 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x49, 0x64, 0x4c, 0x6f, 0x73, 0x65, 0x72, 0x22, 0x5b, 0x0a, 0x19, 0x43, 0x44, 0x4f, 0x54, - 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x44, 0x75, 0x65, 0x6c, 0x41, 0x63, 0x63, - 0x65, 0x70, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x5f, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x49, 0x64, 0x31, 0x12, 0x1e, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x5f, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x49, 0x64, 0x32, 0x22, 0x4c, 0x0a, 0x1a, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, - 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x44, 0x75, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x11, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x6f, 0x72, 0x22, 0xe0, 0x01, 0x0a, 0x34, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, - 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x4d, 0x75, 0x65, 0x72, 0x74, 0x61, 0x52, 0x65, 0x6c, 0x65, 0x61, - 0x73, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4b, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x10, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x72, - 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x0e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, - 0x4b, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x02, 0x28, 0x05, - 0x52, 0x0e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x02, 0x28, 0x05, - 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x02, 0x28, 0x05, 0x52, 0x0b, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x6c, - 0x61, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x05, 0x20, 0x02, 0x28, 0x08, 0x52, 0x07, 0x6c, - 0x61, 0x73, 0x74, 0x48, 0x69, 0x74, 0x22, 0x74, 0x0a, 0x23, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, - 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x72, 0x61, - 0x66, 0x74, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x50, 0x69, 0x63, 0x6b, 0x12, 0x1b, 0x0a, - 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x75, - 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x22, 0x88, 0x01, 0x0a, - 0x1c, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x44, 0x72, 0x61, 0x66, 0x74, 0x50, 0x69, 0x63, 0x6b, 0x12, 0x2a, 0x0a, - 0x11, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x63, 0x61, 0x70, 0x74, 0x61, - 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x49, 0x64, 0x43, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x54, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x22, 0x92, 0x01, 0x0a, 0x16, 0x43, 0x44, 0x4f, 0x54, - 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x46, 0x61, 0x63, 0x65, 0x74, 0x50, 0x69, - 0x6e, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x23, 0x0a, 0x0d, 0x66, 0x61, 0x63, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x68, 0x61, 0x73, 0x68, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x66, 0x61, 0x63, 0x65, 0x74, 0x53, 0x74, 0x72, - 0x68, 0x61, 0x73, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, - 0x64, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x6c, 0x6c, 0x5f, 0x63, 0x68, 0x61, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x07, 0x61, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x74, 0x22, 0x6e, 0x0a, 0x17, - 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x49, 0x6e, 0x6e, - 0x61, 0x74, 0x65, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x49, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x22, 0x92, 0x01, 0x0a, + 0x16, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x46, 0x61, + 0x63, 0x65, 0x74, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, - 0x64, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x6c, 0x6c, 0x5f, 0x63, 0x68, 0x61, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x07, 0x61, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x74, 0x2a, 0x99, 0x26, 0x0a, - 0x11, 0x45, 0x44, 0x6f, 0x74, 0x61, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x41, 0x64, - 0x64, 0x55, 0x6e, 0x69, 0x74, 0x54, 0x6f, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x10, 0xd0, 0x03, 0x12, 0x18, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x41, - 0x49, 0x44, 0x65, 0x62, 0x75, 0x67, 0x4c, 0x69, 0x6e, 0x65, 0x10, 0xd1, 0x03, 0x12, 0x16, 0x0a, - 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x68, 0x61, 0x74, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x10, 0xd2, 0x03, 0x12, 0x20, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, - 0x5f, 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x50, 0x6f, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x10, 0xd3, 0x03, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, - 0x55, 0x4d, 0x5f, 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, - 0x10, 0xd4, 0x03, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, - 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x42, 0x75, 0x6c, 0x6b, 0x44, 0x61, 0x74, 0x61, - 0x10, 0xd6, 0x03, 0x12, 0x23, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x61, 0x72, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x6c, 0x65, 0x10, 0xd7, 0x03, 0x12, 0x24, 0x0a, 0x1f, 0x44, 0x4f, 0x54, 0x41, - 0x5f, 0x55, 0x4d, 0x5f, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x4c, 0x69, 0x6e, 0x65, 0x61, - 0x72, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6c, 0x65, 0x10, 0xd8, 0x03, 0x12, 0x25, - 0x0a, 0x20, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x44, 0x6f, 0x64, 0x67, 0x65, 0x54, - 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6c, - 0x65, 0x73, 0x10, 0xd9, 0x03, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, - 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x43, 0x6f, 0x6c, 0x6f, - 0x72, 0x10, 0xda, 0x03, 0x12, 0x21, 0x0a, 0x1c, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, - 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xdb, 0x03, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, - 0x55, 0x4d, 0x5f, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, - 0x64, 0x10, 0xdc, 0x03, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, - 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x69, 0x6e, 0x67, 0x10, 0xdd, 0x03, 0x12, - 0x14, 0x0a, 0x0f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4d, 0x61, 0x70, 0x4c, 0x69, - 0x6e, 0x65, 0x10, 0xde, 0x03, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, - 0x5f, 0x4d, 0x69, 0x6e, 0x69, 0x4b, 0x69, 0x6c, 0x6c, 0x43, 0x61, 0x6d, 0x49, 0x6e, 0x66, 0x6f, - 0x10, 0xdf, 0x03, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4d, - 0x69, 0x6e, 0x69, 0x6d, 0x61, 0x70, 0x44, 0x65, 0x62, 0x75, 0x67, 0x50, 0x6f, 0x69, 0x6e, 0x74, - 0x10, 0xe0, 0x03, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4d, - 0x69, 0x6e, 0x69, 0x6d, 0x61, 0x70, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0xe1, 0x03, 0x12, 0x1d, - 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4e, 0x65, 0x76, 0x65, 0x72, 0x6d, - 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x69, 0x65, 0x6d, 0x10, 0xe2, 0x03, 0x12, 0x1a, 0x0a, - 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x65, 0x61, - 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0xe3, 0x03, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, - 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x41, 0x75, 0x74, 0x6f, - 0x62, 0x75, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x10, 0xe4, 0x03, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x4f, - 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x43, 0x6f, 0x6f, 0x6c, - 0x64, 0x6f, 0x77, 0x6e, 0x10, 0xe5, 0x03, 0x12, 0x21, 0x0a, 0x1c, 0x44, 0x4f, 0x54, 0x41, 0x5f, - 0x55, 0x4d, 0x5f, 0x53, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x10, 0xe6, 0x03, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, - 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x54, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x54, 0x69, - 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xe7, 0x03, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, - 0x5f, 0x55, 0x4d, 0x5f, 0x55, 0x6e, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0xe8, 0x03, - 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x50, 0x61, 0x72, 0x74, - 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x10, 0xe9, 0x03, 0x12, 0x14, - 0x0a, 0x0f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x42, 0x6f, 0x74, 0x43, 0x68, 0x61, - 0x74, 0x10, 0xea, 0x03, 0x12, 0x15, 0x0a, 0x10, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, - 0x48, 0x75, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xeb, 0x03, 0x12, 0x1a, 0x0a, 0x15, 0x44, - 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x75, 0x72, 0x63, 0x68, - 0x61, 0x73, 0x65, 0x64, 0x10, 0xec, 0x03, 0x12, 0x11, 0x0a, 0x0c, 0x44, 0x4f, 0x54, 0x41, 0x5f, - 0x55, 0x4d, 0x5f, 0x50, 0x69, 0x6e, 0x67, 0x10, 0xed, 0x03, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x4f, - 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, - 0xee, 0x03, 0x12, 0x22, 0x0a, 0x1d, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x68, - 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x61, 0x6b, 0x43, 0x6f, 0x6e, 0x63, - 0x65, 0x70, 0x74, 0x10, 0xef, 0x03, 0x12, 0x17, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, - 0x4d, 0x5f, 0x53, 0x77, 0x61, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x10, 0xf0, 0x03, 0x12, - 0x16, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x57, 0x6f, 0x72, 0x6c, 0x64, - 0x4c, 0x69, 0x6e, 0x65, 0x10, 0xf1, 0x03, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, - 0x55, 0x4d, 0x5f, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x72, 0x6f, - 0x70, 0x10, 0xf2, 0x03, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, - 0x49, 0x74, 0x65, 0x6d, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xf3, 0x03, 0x12, 0x1b, 0x0a, 0x16, - 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x48, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x65, - 0x6e, 0x44, 0x72, 0x6f, 0x70, 0x73, 0x10, 0xf4, 0x03, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x4f, 0x54, - 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x68, 0x61, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x10, 0xf5, - 0x03, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x52, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x58, 0x6d, 0x61, 0x73, 0x47, 0x69, 0x66, 0x74, 0x10, 0xf6, 0x03, - 0x12, 0x20, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x10, - 0xf7, 0x03, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x54, 0x75, - 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x45, 0x78, 0x70, - 0x10, 0xf8, 0x03, 0x12, 0x20, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x54, - 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x50, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x6d, - 0x61, 0x70, 0x10, 0xf9, 0x03, 0x12, 0x22, 0x0a, 0x1d, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, - 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x10, 0xfa, 0x03, 0x12, 0x17, 0x0a, 0x12, 0x44, 0x4f, 0x54, - 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x75, 0x72, 0x76, 0x65, 0x79, 0x10, - 0xfb, 0x03, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x54, 0x75, - 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x46, 0x61, 0x64, 0x65, 0x10, 0xfc, 0x03, 0x12, 0x1d, 0x0a, - 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x41, 0x64, 0x64, 0x51, 0x75, 0x65, 0x73, - 0x74, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x10, 0xfd, 0x03, 0x12, 0x1a, 0x0a, 0x15, - 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, - 0x50, 0x6f, 0x70, 0x75, 0x70, 0x10, 0xfe, 0x03, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, - 0x5f, 0x55, 0x4d, 0x5f, 0x54, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x46, 0x69, 0x6e, 0x69, - 0x73, 0x68, 0x10, 0xff, 0x03, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, - 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x6f, 0x73, 0x68, 0x61, 0x6e, 0x50, 0x6f, 0x70, 0x75, 0x70, - 0x10, 0x80, 0x04, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, - 0x65, 0x6e, 0x64, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, 0x6f, 0x6f, 0x6c, 0x54, 0x69, - 0x70, 0x10, 0x81, 0x04, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, - 0x53, 0x65, 0x6e, 0x64, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x47, 0x6f, 0x6c, 0x64, 0x10, 0x82, 0x04, - 0x12, 0x16, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x4d, 0x73, 0x67, 0x10, 0x83, 0x04, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, - 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x6f, 0x61, 0x63, 0x68, 0x48, 0x55, 0x44, 0x50, 0x69, 0x6e, 0x67, - 0x10, 0x84, 0x04, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x61, 0x64, 0x47, 0x72, 0x69, 0x64, 0x4e, 0x61, 0x76, - 0x10, 0x85, 0x04, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x54, - 0x45, 0x5f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6c, 0x65, 0x10, 0x86, 0x04, 0x12, - 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x54, 0x45, 0x5f, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6c, 0x65, 0x4c, 0x6f, 0x63, 0x10, 0x87, 0x04, 0x12, 0x1f, - 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x54, 0x45, 0x5f, 0x44, 0x6f, 0x74, - 0x61, 0x42, 0x6c, 0x6f, 0x6f, 0x64, 0x49, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x10, 0x88, 0x04, 0x12, - 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x54, 0x45, 0x5f, 0x55, 0x6e, - 0x69, 0x74, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x89, 0x04, 0x12, 0x20, - 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x54, 0x45, 0x5f, 0x55, 0x6e, 0x69, - 0x74, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x10, 0x8a, 0x04, - 0x12, 0x18, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x41, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x50, 0x69, 0x6e, 0x67, 0x10, 0x8b, 0x04, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, - 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x68, 0x6f, 0x77, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, - 0x63, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x10, 0x8c, 0x04, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x4f, 0x54, - 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x56, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x10, 0x8d, - 0x04, 0x12, 0x17, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x56, 0x6f, 0x74, - 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x10, 0x8e, 0x04, 0x12, 0x14, 0x0a, 0x0f, 0x44, 0x4f, - 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x56, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x10, 0x8f, 0x04, - 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x42, 0x6f, 0x6f, 0x73, - 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, 0x90, 0x04, 0x12, 0x1e, 0x0a, 0x19, 0x44, - 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x57, 0x69, 0x6c, 0x6c, 0x50, 0x75, 0x72, 0x63, 0x68, - 0x61, 0x73, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0x91, 0x04, 0x12, 0x24, 0x0a, 0x1f, 0x44, - 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x54, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x4d, - 0x69, 0x6e, 0x69, 0x6d, 0x61, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x92, - 0x04, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x4d, 0x4d, 0x52, 0x10, 0x93, 0x04, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, - 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x74, 0x65, 0x61, - 0x6c, 0x10, 0x94, 0x04, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, - 0x43, 0x6f, 0x75, 0x72, 0x69, 0x65, 0x72, 0x4b, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x41, 0x6c, 0x65, - 0x72, 0x74, 0x10, 0x95, 0x04, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, - 0x5f, 0x45, 0x6e, 0x65, 0x6d, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, - 0x96, 0x04, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x74, - 0x61, 0x74, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x10, - 0x97, 0x04, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4d, 0x69, - 0x6e, 0x69, 0x54, 0x61, 0x75, 0x6e, 0x74, 0x10, 0x98, 0x04, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, - 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x42, 0x75, 0x79, 0x42, 0x61, 0x63, 0x6b, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0x99, 0x04, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, - 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x42, 0x75, 0x62, 0x62, - 0x6c, 0x65, 0x10, 0x9a, 0x04, 0x12, 0x20, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, - 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x10, 0x9b, 0x04, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, - 0x55, 0x4d, 0x5f, 0x51, 0x75, 0x69, 0x63, 0x6b, 0x42, 0x75, 0x79, 0x41, 0x6c, 0x65, 0x72, 0x74, - 0x10, 0x9c, 0x04, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, - 0x74, 0x61, 0x74, 0x73, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x10, - 0x9d, 0x04, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x50, 0x72, - 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x10, 0x9e, - 0x04, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4d, 0x6f, 0x64, - 0x69, 0x66, 0x69, 0x65, 0x72, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0x9f, 0x04, 0x12, 0x18, 0x0a, - 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x48, 0x50, 0x4d, 0x61, 0x6e, 0x61, 0x41, - 0x6c, 0x65, 0x72, 0x74, 0x10, 0xa0, 0x04, 0x12, 0x17, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, - 0x55, 0x4d, 0x5f, 0x47, 0x6c, 0x79, 0x70, 0x68, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xa1, 0x04, - 0x12, 0x16, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x42, 0x65, 0x61, 0x73, - 0x74, 0x43, 0x68, 0x61, 0x74, 0x10, 0xa2, 0x04, 0x12, 0x26, 0x0a, 0x21, 0x44, 0x4f, 0x54, 0x41, - 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x10, 0xa3, 0x04, - 0x12, 0x24, 0x0a, 0x1f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x48, 0x75, 0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x10, 0xa4, 0x04, 0x12, 0x24, 0x0a, 0x1f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, - 0x4d, 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x75, 0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x5f, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x10, 0xa5, 0x04, 0x12, 0x25, 0x0a, 0x20, - 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x75, - 0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, - 0x10, 0xa6, 0x04, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, - 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x75, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, 0xa7, - 0x04, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x10, 0xa8, - 0x04, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0xa9, 0x04, 0x12, - 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x6f, 0x6d, 0x62, 0x61, - 0x74, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x48, 0x4c, 0x54, 0x56, 0x10, 0xaa, 0x04, 0x12, - 0x14, 0x0a, 0x0f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x58, 0x50, 0x41, 0x6c, 0x65, - 0x72, 0x74, 0x10, 0xab, 0x04, 0x12, 0x20, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, - 0x5f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x10, 0xac, 0x04, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, - 0x55, 0x4d, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x10, 0xad, 0x04, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x10, 0xae, 0x04, 0x12, 0x18, - 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x51, 0x75, 0x65, 0x73, 0x74, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0xaf, 0x04, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, - 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x50, - 0x69, 0x63, 0x6b, 0x10, 0xb0, 0x04, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, - 0x4d, 0x5f, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x6f, 0x6c, - 0x65, 0x10, 0xb1, 0x04, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, - 0x4b, 0x69, 0x6c, 0x6c, 0x63, 0x61, 0x6d, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x61, 0x6b, - 0x65, 0x6e, 0x10, 0xb2, 0x04, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, - 0x5f, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x47, 0x6f, - 0x6c, 0x64, 0x10, 0xb3, 0x04, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, - 0x5f, 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x10, - 0xb4, 0x04, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x46, 0x6c, - 0x69, 0x70, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x10, 0xb5, 0x04, 0x12, - 0x23, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x10, 0xb6, 0x04, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, - 0x54, 0x65, 0x61, 0x6d, 0x43, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x64, 0x10, 0xb7, 0x04, 0x12, 0x25, 0x0a, 0x20, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, - 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x6f, 0x73, 0x68, 0x61, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x74, - 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x61, 0x73, 0x65, 0x10, 0xb8, 0x04, 0x12, 0x1e, 0x0a, 0x19, - 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x68, 0x61, 0x74, 0x57, 0x68, 0x65, 0x65, - 0x6c, 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0xb9, 0x04, 0x12, 0x21, 0x0a, 0x1c, - 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x41, - 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x73, 0x10, 0xba, 0x04, 0x12, - 0x21, 0x0a, 0x1c, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x54, 0x45, 0x5f, 0x44, 0x65, - 0x73, 0x74, 0x72, 0x6f, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6c, 0x65, 0x10, - 0xbb, 0x04, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x48, 0x65, - 0x72, 0x6f, 0x52, 0x65, 0x6c, 0x69, 0x63, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x10, - 0xbc, 0x04, 0x12, 0x27, 0x0a, 0x22, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x41, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x44, 0x72, 0x61, 0x66, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x10, 0xbd, 0x04, 0x12, 0x15, 0x0a, 0x10, 0x44, - 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x6f, 0x6c, 0x64, 0x10, - 0xbe, 0x04, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x44, 0x61, - 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x10, 0xbf, 0x04, 0x12, 0x19, 0x0a, - 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x61, 0x6c, 0x75, 0x74, 0x65, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x10, 0xc0, 0x04, 0x12, 0x15, 0x0a, 0x10, 0x44, 0x4f, 0x54, 0x41, - 0x5f, 0x55, 0x4d, 0x5f, 0x54, 0x69, 0x70, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xc1, 0x04, 0x12, - 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x52, 0x65, 0x70, 0x6c, 0x61, - 0x63, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x55, 0x6e, 0x69, 0x74, 0x10, 0xc2, 0x04, 0x12, 0x1f, - 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x54, - 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xc3, 0x04, 0x12, - 0x23, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4d, 0x61, 0x72, 0x73, 0x41, - 0x72, 0x65, 0x6e, 0x61, 0x4f, 0x66, 0x42, 0x6c, 0x6f, 0x6f, 0x64, 0x41, 0x74, 0x74, 0x61, 0x63, - 0x6b, 0x10, 0xc4, 0x04, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, - 0x45, 0x53, 0x41, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x43, 0x6f, 0x6d, 0x62, 0x6f, 0x10, 0xc5, 0x04, - 0x12, 0x21, 0x0a, 0x1c, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x45, 0x53, 0x41, 0x72, - 0x63, 0x61, 0x6e, 0x61, 0x43, 0x6f, 0x6d, 0x62, 0x6f, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, - 0x10, 0xc6, 0x04, 0x12, 0x20, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x48, - 0x69, 0x67, 0x68, 0x46, 0x69, 0x76, 0x65, 0x4c, 0x65, 0x66, 0x74, 0x48, 0x61, 0x6e, 0x67, 0x69, - 0x6e, 0x67, 0x10, 0xc7, 0x04, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, - 0x5f, 0x48, 0x69, 0x67, 0x68, 0x46, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, - 0x65, 0x64, 0x10, 0xc8, 0x04, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, - 0x5f, 0x53, 0x68, 0x6f, 0x76, 0x65, 0x6c, 0x55, 0x6e, 0x65, 0x61, 0x72, 0x74, 0x68, 0x10, 0xc9, - 0x04, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x45, 0x4d, 0x5f, 0x49, 0x6e, 0x76, - 0x6f, 0x6b, 0x65, 0x72, 0x53, 0x70, 0x65, 0x6c, 0x6c, 0x43, 0x61, 0x73, 0x74, 0x10, 0xca, 0x04, - 0x12, 0x17, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x52, 0x61, 0x64, 0x61, - 0x72, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xcb, 0x04, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, - 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x10, 0xcc, 0x04, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, - 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x65, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, - 0xcd, 0x04, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x51, 0x75, - 0x65, 0x75, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, - 0x10, 0xce, 0x04, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x44, - 0x65, 0x62, 0x75, 0x67, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x10, 0xcf, 0x04, - 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4f, 0x4d, 0x41, 0x72, - 0x63, 0x61, 0x6e, 0x61, 0x43, 0x6f, 0x6d, 0x62, 0x6f, 0x10, 0xd0, 0x04, 0x12, 0x1d, 0x0a, 0x18, - 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x65, 0x75, - 0x74, 0x72, 0x61, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x10, 0xd1, 0x04, 0x12, 0x1c, 0x0a, 0x17, 0x44, - 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x73, 0x74, 0x43, 0x61, - 0x70, 0x74, 0x75, 0x72, 0x65, 0x64, 0x10, 0xd2, 0x04, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, - 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x73, 0x74, 0x47, 0x72, 0x61, 0x6e, - 0x74, 0x65, 0x64, 0x58, 0x50, 0x10, 0xd3, 0x04, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, - 0x5f, 0x55, 0x4d, 0x5f, 0x4d, 0x6f, 0x76, 0x65, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x54, 0x6f, - 0x55, 0x6e, 0x69, 0x74, 0x10, 0xd4, 0x04, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, - 0x55, 0x4d, 0x5f, 0x50, 0x61, 0x75, 0x73, 0x65, 0x4d, 0x69, 0x6e, 0x69, 0x67, 0x61, 0x6d, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x10, 0xd5, 0x04, 0x12, 0x27, 0x0a, 0x22, 0x44, 0x4f, 0x54, 0x41, 0x5f, - 0x55, 0x4d, 0x5f, 0x56, 0x65, 0x72, 0x73, 0x75, 0x73, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x5f, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x10, 0xd6, 0x04, - 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x51, 0x6f, 0x50, 0x5f, - 0x41, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x10, 0xd8, 0x04, - 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x48, 0x6f, 0x74, 0x50, - 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x10, 0xd9, 0x04, - 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x48, 0x6f, 0x74, 0x50, - 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x5f, 0x45, 0x78, 0x70, 0x6c, 0x6f, 0x64, 0x65, 0x64, 0x10, 0xda, - 0x04, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x57, 0x4b, 0x5f, - 0x41, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x5f, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x10, - 0xdb, 0x04, 0x12, 0x24, 0x0a, 0x1f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x47, 0x75, - 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x50, 0x72, 0x6f, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x10, 0xdc, 0x04, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, - 0x5f, 0x55, 0x4d, 0x5f, 0x57, 0x52, 0x41, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x50, 0x72, 0x6f, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x10, 0xdd, 0x04, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, - 0x55, 0x4d, 0x5f, 0x57, 0x52, 0x41, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x53, 0x75, 0x6d, 0x6d, 0x61, - 0x72, 0x79, 0x10, 0xde, 0x04, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, - 0x5f, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x6c, 0x6f, 0x74, 0x41, 0x6c, - 0x65, 0x72, 0x74, 0x10, 0xdf, 0x04, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, - 0x4d, 0x5f, 0x41, 0x67, 0x68, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x41, 0x6c, 0x65, 0x72, - 0x74, 0x10, 0xe0, 0x04, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, - 0x50, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x10, 0xe1, 0x04, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4d, - 0x75, 0x74, 0x65, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x10, 0xe2, 0x04, 0x12, 0x1a, - 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, - 0x74, 0x75, 0x61, 0x6c, 0x54, 0x69, 0x70, 0x10, 0xe3, 0x04, 0x12, 0x18, 0x0a, 0x13, 0x44, 0x4f, - 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x68, 0x61, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x10, 0xe4, 0x04, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, - 0x4e, 0x65, 0x75, 0x74, 0x72, 0x61, 0x6c, 0x43, 0x61, 0x6d, 0x70, 0x41, 0x6c, 0x65, 0x72, 0x74, - 0x10, 0xe5, 0x04, 0x12, 0x25, 0x0a, 0x20, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x52, - 0x6f, 0x63, 0x6b, 0x50, 0x61, 0x70, 0x65, 0x72, 0x53, 0x63, 0x69, 0x73, 0x73, 0x6f, 0x72, 0x73, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x10, 0xe6, 0x04, 0x12, 0x26, 0x0a, 0x21, 0x44, 0x4f, - 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x52, 0x6f, 0x63, 0x6b, 0x50, 0x61, 0x70, 0x65, 0x72, 0x53, - 0x63, 0x69, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, - 0xe7, 0x04, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x44, 0x75, - 0x65, 0x6c, 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x4b, 0x69, 0x6c, 0x6c, 0x65, 0x64, - 0x10, 0xe8, 0x04, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x44, - 0x75, 0x65, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x10, 0xe9, 0x04, 0x12, 0x1a, - 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x44, 0x75, 0x65, 0x6c, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x10, 0xea, 0x04, 0x12, 0x34, 0x0a, 0x2f, 0x44, 0x4f, - 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4d, 0x75, 0x65, 0x72, 0x74, 0x61, 0x52, 0x65, 0x6c, 0x65, - 0x61, 0x73, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, - 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4b, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x10, 0xeb, 0x04, - 0x12, 0x23, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x44, 0x72, 0x61, 0x66, 0x74, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x50, 0x69, - 0x63, 0x6b, 0x10, 0xec, 0x04, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, - 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x72, 0x61, 0x66, 0x74, 0x50, 0x69, 0x63, 0x6b, - 0x10, 0xed, 0x04, 0x12, 0x29, 0x0a, 0x24, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x61, 0x72, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x6c, 0x65, 0x43, 0x50, 0x44, 0x61, 0x74, 0x61, 0x10, 0xee, 0x04, 0x12, 0x17, - 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x47, 0x69, 0x66, 0x74, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x10, 0xef, 0x04, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, - 0x55, 0x4d, 0x5f, 0x46, 0x61, 0x63, 0x65, 0x74, 0x50, 0x69, 0x6e, 0x67, 0x10, 0xf0, 0x04, 0x12, - 0x17, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x49, 0x6e, 0x6e, 0x61, 0x74, - 0x65, 0x50, 0x69, 0x6e, 0x67, 0x10, 0xf1, 0x04, 0x2a, 0xa4, 0x1f, 0x0a, 0x11, 0x44, 0x4f, 0x54, - 0x41, 0x5f, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x21, - 0x0a, 0x14, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x49, - 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, - 0x45, 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x10, 0x00, 0x12, 0x1a, 0x0a, - 0x16, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x48, 0x45, - 0x52, 0x4f, 0x5f, 0x44, 0x45, 0x4e, 0x59, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x43, 0x48, 0x41, - 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x42, 0x41, 0x52, 0x52, 0x41, 0x43, - 0x4b, 0x53, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x48, 0x41, - 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x54, 0x4f, 0x57, 0x45, 0x52, 0x5f, - 0x4b, 0x49, 0x4c, 0x4c, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, - 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x54, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x4e, - 0x59, 0x10, 0x04, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, - 0x41, 0x47, 0x45, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x42, 0x4c, 0x4f, 0x4f, 0x44, 0x10, 0x05, - 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, - 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4b, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x10, 0x06, 0x12, 0x18, - 0x0a, 0x14, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x42, - 0x55, 0x59, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x07, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x48, 0x41, 0x54, - 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x41, 0x45, 0x47, 0x49, 0x53, 0x10, 0x08, - 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, - 0x5f, 0x52, 0x4f, 0x53, 0x48, 0x41, 0x4e, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x10, 0x09, 0x12, 0x1d, - 0x0a, 0x19, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x43, - 0x4f, 0x55, 0x52, 0x49, 0x45, 0x52, 0x5f, 0x4c, 0x4f, 0x53, 0x54, 0x10, 0x0a, 0x12, 0x22, 0x0a, - 0x1e, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x43, 0x4f, - 0x55, 0x52, 0x49, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x41, 0x57, 0x4e, 0x45, 0x44, 0x10, - 0x0b, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, - 0x45, 0x5f, 0x47, 0x4c, 0x59, 0x50, 0x48, 0x5f, 0x55, 0x53, 0x45, 0x44, 0x10, 0x0c, 0x12, 0x1e, - 0x0a, 0x1a, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x49, - 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x55, 0x52, 0x43, 0x48, 0x41, 0x53, 0x45, 0x10, 0x0d, 0x12, 0x18, - 0x0a, 0x14, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x43, - 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x10, 0x0e, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x48, 0x41, 0x54, - 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, - 0x45, 0x43, 0x54, 0x10, 0x0f, 0x12, 0x2e, 0x0a, 0x2a, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, - 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, - 0x5f, 0x57, 0x41, 0x49, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x4e, - 0x45, 0x43, 0x54, 0x10, 0x10, 0x12, 0x2a, 0x0a, 0x26, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, - 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, - 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x10, - 0x11, 0x12, 0x31, 0x0a, 0x2d, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, - 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x49, 0x4d, - 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x4c, 0x55, 0x52, - 0x41, 0x4c, 0x10, 0x12, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, - 0x53, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x10, 0x13, - 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, - 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x14, 0x12, 0x1e, - 0x0a, 0x1a, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, - 0x41, 0x46, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x10, 0x15, 0x12, 0x1c, - 0x0a, 0x18, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x52, - 0x55, 0x4e, 0x45, 0x5f, 0x50, 0x49, 0x43, 0x4b, 0x55, 0x50, 0x10, 0x16, 0x12, 0x1c, 0x0a, 0x18, - 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x55, 0x4e, - 0x45, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4c, 0x45, 0x10, 0x17, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x48, - 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x45, 0x5f, - 0x44, 0x45, 0x4e, 0x59, 0x10, 0x72, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, - 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x48, 0x45, 0x42, 0x41, 0x47, 0x10, - 0x18, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, - 0x45, 0x5f, 0x53, 0x45, 0x43, 0x52, 0x45, 0x54, 0x53, 0x48, 0x4f, 0x50, 0x10, 0x19, 0x12, 0x23, - 0x0a, 0x1f, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x49, - 0x54, 0x45, 0x4d, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x50, 0x55, 0x52, 0x43, 0x48, 0x41, 0x53, 0x45, - 0x44, 0x10, 0x1a, 0x12, 0x1f, 0x0a, 0x1b, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, - 0x41, 0x47, 0x45, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x53, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x49, 0x4e, - 0x45, 0x44, 0x10, 0x1b, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, - 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x55, 0x50, 0x45, 0x52, 0x5f, 0x43, 0x52, 0x45, 0x45, 0x50, - 0x53, 0x10, 0x1c, 0x12, 0x25, 0x0a, 0x21, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, - 0x41, 0x47, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x5f, 0x41, 0x43, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x10, 0x1d, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x48, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x61, 0x63, 0x65, 0x74, 0x5f, 0x73, 0x74, + 0x72, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x66, 0x61, 0x63, + 0x65, 0x74, 0x53, 0x74, 0x72, 0x68, 0x61, 0x73, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x65, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x6c, 0x6c, 0x5f, 0x63, 0x68, + 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x61, 0x6c, 0x6c, 0x43, 0x68, 0x61, + 0x74, 0x22, 0x6e, 0x0a, 0x17, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, + 0x67, 0x5f, 0x49, 0x6e, 0x6e, 0x61, 0x74, 0x65, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x1b, 0x0a, 0x09, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x65, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x6c, 0x6c, 0x5f, 0x63, 0x68, + 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x61, 0x6c, 0x6c, 0x43, 0x68, 0x61, + 0x74, 0x2a, 0x99, 0x26, 0x0a, 0x11, 0x45, 0x44, 0x6f, 0x74, 0x61, 0x55, 0x73, 0x65, 0x72, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x55, 0x4d, 0x5f, 0x41, 0x64, 0x64, 0x55, 0x6e, 0x69, 0x74, 0x54, 0x6f, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xd0, 0x03, 0x12, 0x18, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, + 0x5f, 0x55, 0x4d, 0x5f, 0x41, 0x49, 0x44, 0x65, 0x62, 0x75, 0x67, 0x4c, 0x69, 0x6e, 0x65, 0x10, + 0xd1, 0x03, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x68, + 0x61, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0xd2, 0x03, 0x12, 0x20, 0x0a, 0x1b, 0x44, 0x4f, + 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x48, 0x65, 0x72, 0x6f, + 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x10, 0xd3, 0x03, 0x12, 0x1a, 0x0a, 0x15, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x4c, 0x6f, + 0x67, 0x44, 0x61, 0x74, 0x61, 0x10, 0xd4, 0x03, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, + 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x42, 0x75, 0x6c, + 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xd6, 0x03, 0x12, 0x23, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, + 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x61, 0x72, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6c, 0x65, 0x10, 0xd7, 0x03, 0x12, 0x24, 0x0a, + 0x1f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, + 0x4c, 0x69, 0x6e, 0x65, 0x61, 0x72, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6c, 0x65, + 0x10, 0xd8, 0x03, 0x12, 0x25, 0x0a, 0x20, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x44, + 0x6f, 0x64, 0x67, 0x65, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x10, 0xd9, 0x03, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, + 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x4c, 0x69, 0x67, 0x68, + 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x10, 0xda, 0x03, 0x12, 0x21, 0x0a, 0x1c, 0x44, 0x4f, 0x54, + 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x4c, 0x69, 0x67, 0x68, 0x74, + 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xdb, 0x03, 0x12, 0x1b, 0x0a, 0x16, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x43, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x10, 0xdc, 0x03, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, + 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x69, 0x6e, + 0x67, 0x10, 0xdd, 0x03, 0x12, 0x14, 0x0a, 0x0f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, + 0x4d, 0x61, 0x70, 0x4c, 0x69, 0x6e, 0x65, 0x10, 0xde, 0x03, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, + 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4d, 0x69, 0x6e, 0x69, 0x4b, 0x69, 0x6c, 0x6c, 0x43, 0x61, + 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xdf, 0x03, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, + 0x5f, 0x55, 0x4d, 0x5f, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x61, 0x70, 0x44, 0x65, 0x62, 0x75, 0x67, + 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x10, 0xe0, 0x03, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, + 0x5f, 0x55, 0x4d, 0x5f, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x61, 0x70, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x10, 0xe1, 0x03, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4e, + 0x65, 0x76, 0x65, 0x72, 0x6d, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x69, 0x65, 0x6d, 0x10, + 0xe2, 0x03, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4f, 0x76, + 0x65, 0x72, 0x68, 0x65, 0x61, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0xe3, 0x03, 0x12, 0x1f, + 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x65, 0x74, 0x4e, 0x65, 0x78, + 0x74, 0x41, 0x75, 0x74, 0x6f, 0x62, 0x75, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x10, 0xe4, 0x03, 0x12, + 0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x68, 0x61, 0x72, 0x65, + 0x64, 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0xe5, 0x03, 0x12, 0x21, 0x0a, 0x1c, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, + 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x10, 0xe6, 0x03, 0x12, + 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x54, 0x75, 0x74, 0x6f, 0x72, + 0x69, 0x61, 0x6c, 0x54, 0x69, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xe7, 0x03, 0x12, 0x16, 0x0a, + 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x55, 0x6e, 0x69, 0x74, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x10, 0xe8, 0x03, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, + 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, + 0x10, 0xe9, 0x03, 0x12, 0x14, 0x0a, 0x0f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x42, + 0x6f, 0x74, 0x43, 0x68, 0x61, 0x74, 0x10, 0xea, 0x03, 0x12, 0x15, 0x0a, 0x10, 0x44, 0x4f, 0x54, + 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x48, 0x75, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xeb, 0x03, + 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x49, 0x74, 0x65, 0x6d, + 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x64, 0x10, 0xec, 0x03, 0x12, 0x11, 0x0a, 0x0c, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x50, 0x69, 0x6e, 0x67, 0x10, 0xed, 0x03, 0x12, + 0x16, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x46, + 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xee, 0x03, 0x12, 0x22, 0x0a, 0x1d, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x55, 0x4d, 0x5f, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x61, + 0x6b, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, 0x10, 0xef, 0x03, 0x12, 0x17, 0x0a, 0x12, 0x44, + 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x77, 0x61, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, + 0x79, 0x10, 0xf0, 0x03, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, + 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x4c, 0x69, 0x6e, 0x65, 0x10, 0xf1, 0x03, 0x12, 0x1b, 0x0a, 0x16, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, + 0x6e, 0x74, 0x44, 0x72, 0x6f, 0x70, 0x10, 0xf2, 0x03, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x4f, 0x54, + 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xf3, + 0x03, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x48, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x65, 0x65, 0x6e, 0x44, 0x72, 0x6f, 0x70, 0x73, 0x10, 0xf4, 0x03, 0x12, 0x16, + 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x68, 0x61, 0x74, 0x57, 0x68, + 0x65, 0x65, 0x6c, 0x10, 0xf5, 0x03, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, + 0x4d, 0x5f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x58, 0x6d, 0x61, 0x73, 0x47, 0x69, + 0x66, 0x74, 0x10, 0xf6, 0x03, 0x12, 0x20, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, + 0x5f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x10, 0xf7, 0x03, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x55, 0x4d, 0x5f, 0x54, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x45, 0x78, 0x70, 0x10, 0xf8, 0x03, 0x12, 0x20, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, + 0x5f, 0x55, 0x4d, 0x5f, 0x54, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x50, 0x69, 0x6e, 0x67, + 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x61, 0x70, 0x10, 0xf9, 0x03, 0x12, 0x22, 0x0a, 0x1d, 0x44, 0x4f, + 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x10, 0xfa, 0x03, 0x12, 0x17, + 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x75, + 0x72, 0x76, 0x65, 0x79, 0x10, 0xfb, 0x03, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x55, 0x4d, 0x5f, 0x54, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x46, 0x61, 0x64, 0x65, 0x10, + 0xfc, 0x03, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x41, 0x64, + 0x64, 0x51, 0x75, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x10, 0xfd, + 0x03, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x65, 0x6e, + 0x64, 0x53, 0x74, 0x61, 0x74, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x10, 0xfe, 0x03, 0x12, 0x1b, 0x0a, + 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x54, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x10, 0xff, 0x03, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, + 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x6f, 0x73, 0x68, 0x61, 0x6e, + 0x50, 0x6f, 0x70, 0x75, 0x70, 0x10, 0x80, 0x04, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, + 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, + 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x70, 0x10, 0x81, 0x04, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, + 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x47, 0x6f, + 0x6c, 0x64, 0x10, 0x82, 0x04, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, + 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x73, 0x67, 0x10, 0x83, 0x04, 0x12, 0x19, 0x0a, + 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x6f, 0x61, 0x63, 0x68, 0x48, 0x55, + 0x44, 0x50, 0x69, 0x6e, 0x67, 0x10, 0x84, 0x04, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, + 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x61, 0x64, 0x47, 0x72, + 0x69, 0x64, 0x4e, 0x61, 0x76, 0x10, 0x85, 0x04, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, + 0x5f, 0x55, 0x4d, 0x5f, 0x54, 0x45, 0x5f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6c, + 0x65, 0x10, 0x86, 0x04, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, + 0x54, 0x45, 0x5f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6c, 0x65, 0x4c, 0x6f, 0x63, + 0x10, 0x87, 0x04, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x54, + 0x45, 0x5f, 0x44, 0x6f, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x6f, 0x64, 0x49, 0x6d, 0x70, 0x61, 0x63, + 0x74, 0x10, 0x88, 0x04, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, + 0x54, 0x45, 0x5f, 0x55, 0x6e, 0x69, 0x74, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x10, 0x89, 0x04, 0x12, 0x20, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x54, + 0x45, 0x5f, 0x55, 0x6e, 0x69, 0x74, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, + 0x6e, 0x64, 0x10, 0x8a, 0x04, 0x12, 0x18, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, + 0x5f, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x50, 0x69, 0x6e, 0x67, 0x10, 0x8b, 0x04, 0x12, + 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x68, 0x6f, 0x77, 0x47, + 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x10, 0x8c, 0x04, 0x12, 0x16, + 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x56, 0x6f, 0x74, 0x65, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x10, 0x8d, 0x04, 0x12, 0x17, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, + 0x4d, 0x5f, 0x56, 0x6f, 0x74, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x10, 0x8e, 0x04, 0x12, + 0x14, 0x0a, 0x0f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x56, 0x6f, 0x74, 0x65, 0x45, + 0x6e, 0x64, 0x10, 0x8f, 0x04, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, + 0x5f, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, 0x90, 0x04, + 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x57, 0x69, 0x6c, 0x6c, + 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0x91, 0x04, + 0x12, 0x24, 0x0a, 0x1f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x54, 0x75, 0x74, 0x6f, + 0x72, 0x69, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x61, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x10, 0x92, 0x04, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, + 0x4d, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x4d, 0x52, 0x10, 0x93, 0x04, 0x12, 0x19, + 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x53, 0x74, 0x65, 0x61, 0x6c, 0x10, 0x94, 0x04, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, + 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x6f, 0x75, 0x72, 0x69, 0x65, 0x72, 0x4b, 0x69, 0x6c, 0x6c, + 0x65, 0x64, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0x95, 0x04, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x4f, + 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x45, 0x6e, 0x65, 0x6d, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x41, + 0x6c, 0x65, 0x72, 0x74, 0x10, 0x96, 0x04, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x55, 0x4d, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x10, 0x97, 0x04, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x55, 0x4d, 0x5f, 0x4d, 0x69, 0x6e, 0x69, 0x54, 0x61, 0x75, 0x6e, 0x74, 0x10, 0x98, 0x04, 0x12, + 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x42, 0x75, 0x79, 0x42, 0x61, + 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0x99, 0x04, 0x12, + 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x70, 0x65, 0x65, 0x63, + 0x68, 0x42, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x10, 0x9a, 0x04, 0x12, 0x20, 0x0a, 0x1b, 0x44, 0x4f, + 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x10, 0x9b, 0x04, 0x12, 0x1a, 0x0a, 0x15, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x51, 0x75, 0x69, 0x63, 0x6b, 0x42, 0x75, 0x79, + 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0x9c, 0x04, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, + 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x10, 0x9d, 0x04, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x55, 0x4d, 0x5f, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x10, 0x9e, 0x04, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, + 0x4d, 0x5f, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, + 0x9f, 0x04, 0x12, 0x18, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x48, 0x50, + 0x4d, 0x61, 0x6e, 0x61, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xa0, 0x04, 0x12, 0x17, 0x0a, 0x12, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x47, 0x6c, 0x79, 0x70, 0x68, 0x41, 0x6c, 0x65, + 0x72, 0x74, 0x10, 0xa1, 0x04, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, + 0x5f, 0x42, 0x65, 0x61, 0x73, 0x74, 0x43, 0x68, 0x61, 0x74, 0x10, 0xa2, 0x04, 0x12, 0x26, 0x0a, + 0x21, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, + 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x73, 0x10, 0xa3, 0x04, 0x12, 0x24, 0x0a, 0x1f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, + 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x75, 0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x10, 0xa4, 0x04, 0x12, 0x24, 0x0a, 0x1f, 0x44, + 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x75, 0x64, + 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x10, 0xa5, + 0x04, 0x12, 0x25, 0x0a, 0x20, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x48, 0x75, 0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x44, 0x65, + 0x73, 0x74, 0x72, 0x6f, 0x79, 0x10, 0xa6, 0x04, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, + 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x75, 0x6d, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x10, 0xa7, 0x04, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, + 0x4d, 0x5f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x10, 0xa8, 0x04, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, + 0x4d, 0x5f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x10, 0xa9, 0x04, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, + 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x48, 0x4c, 0x54, + 0x56, 0x10, 0xaa, 0x04, 0x12, 0x14, 0x0a, 0x0f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, + 0x58, 0x50, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xab, 0x04, 0x12, 0x20, 0x0a, 0x1b, 0x44, 0x4f, + 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x73, + 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x10, 0xac, 0x04, 0x12, 0x1a, 0x0a, 0x15, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x10, 0xad, 0x04, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, + 0x5f, 0x55, 0x4d, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x10, 0xae, 0x04, 0x12, 0x18, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x51, + 0x75, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0xaf, 0x04, 0x12, 0x1c, 0x0a, + 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, + 0x48, 0x65, 0x72, 0x6f, 0x50, 0x69, 0x63, 0x6b, 0x10, 0xb0, 0x04, 0x12, 0x1c, 0x0a, 0x17, 0x44, + 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x48, 0x65, + 0x72, 0x6f, 0x52, 0x6f, 0x6c, 0x65, 0x10, 0xb1, 0x04, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, + 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4b, 0x69, 0x6c, 0x6c, 0x63, 0x61, 0x6d, 0x44, 0x61, 0x6d, 0x61, + 0x67, 0x65, 0x54, 0x61, 0x6b, 0x65, 0x6e, 0x10, 0xb2, 0x04, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, + 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x50, 0x65, 0x6e, 0x61, + 0x6c, 0x74, 0x79, 0x47, 0x6f, 0x6c, 0x64, 0x10, 0xb3, 0x04, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x4f, + 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x69, 0x63, 0x65, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x10, 0xb4, 0x04, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x55, 0x4d, 0x5f, 0x46, 0x6c, 0x69, 0x70, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x10, 0xb5, 0x04, 0x12, 0x23, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x75, 0x67, 0x67, 0x65, + 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x10, 0xb6, 0x04, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, + 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x54, 0x65, 0x61, 0x6d, 0x43, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x10, 0xb7, 0x04, 0x12, 0x25, 0x0a, 0x20, 0x44, 0x4f, + 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x6f, 0x73, 0x68, 0x61, 0x6e, + 0x53, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x61, 0x73, 0x65, 0x10, 0xb8, + 0x04, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x68, 0x61, + 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0xb9, + 0x04, 0x12, 0x21, 0x0a, 0x1c, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x44, 0x69, 0x73, + 0x6d, 0x69, 0x73, 0x73, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x50, 0x6f, 0x70, 0x75, 0x70, + 0x73, 0x10, 0xba, 0x04, 0x12, 0x21, 0x0a, 0x1c, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, + 0x54, 0x45, 0x5f, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x6c, 0x65, 0x10, 0xbb, 0x04, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x55, 0x4d, 0x5f, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x6c, 0x69, 0x63, 0x50, 0x72, 0x6f, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x10, 0xbc, 0x04, 0x12, 0x27, 0x0a, 0x22, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x55, 0x4d, 0x5f, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x44, 0x72, 0x61, 0x66, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x10, 0xbd, 0x04, + 0x12, 0x15, 0x0a, 0x10, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x49, 0x74, 0x65, 0x6d, + 0x53, 0x6f, 0x6c, 0x64, 0x10, 0xbe, 0x04, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x55, 0x4d, 0x5f, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x10, + 0xbf, 0x04, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x61, + 0x6c, 0x75, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x10, 0xc0, 0x04, 0x12, 0x15, 0x0a, + 0x10, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x54, 0x69, 0x70, 0x41, 0x6c, 0x65, 0x72, + 0x74, 0x10, 0xc1, 0x04, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, + 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x55, 0x6e, 0x69, 0x74, + 0x10, 0xc2, 0x04, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x6c, 0x65, 0x72, + 0x74, 0x10, 0xc3, 0x04, 0x12, 0x23, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, + 0x4d, 0x61, 0x72, 0x73, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x4f, 0x66, 0x42, 0x6c, 0x6f, 0x6f, 0x64, + 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x10, 0xc4, 0x04, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, + 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x45, 0x53, 0x41, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x43, 0x6f, 0x6d, + 0x62, 0x6f, 0x10, 0xc5, 0x04, 0x12, 0x21, 0x0a, 0x1c, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, + 0x5f, 0x45, 0x53, 0x41, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x43, 0x6f, 0x6d, 0x62, 0x6f, 0x53, 0x75, + 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x10, 0xc6, 0x04, 0x12, 0x20, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, + 0x5f, 0x55, 0x4d, 0x5f, 0x48, 0x69, 0x67, 0x68, 0x46, 0x69, 0x76, 0x65, 0x4c, 0x65, 0x66, 0x74, + 0x48, 0x61, 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x10, 0xc7, 0x04, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, + 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x48, 0x69, 0x67, 0x68, 0x46, 0x69, 0x76, 0x65, 0x43, 0x6f, + 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x10, 0xc8, 0x04, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, + 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x68, 0x6f, 0x76, 0x65, 0x6c, 0x55, 0x6e, 0x65, 0x61, + 0x72, 0x74, 0x68, 0x10, 0xc9, 0x04, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x45, + 0x4d, 0x5f, 0x49, 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x72, 0x53, 0x70, 0x65, 0x6c, 0x6c, 0x43, 0x61, + 0x73, 0x74, 0x10, 0xca, 0x04, 0x12, 0x17, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, + 0x5f, 0x52, 0x61, 0x64, 0x61, 0x72, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xcb, 0x04, 0x12, 0x19, + 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, + 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0xcc, 0x04, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, + 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x65, 0x65, 0x41, + 0x6c, 0x65, 0x72, 0x74, 0x10, 0xcd, 0x04, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x55, 0x4d, 0x5f, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x10, 0xce, 0x04, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, + 0x5f, 0x55, 0x4d, 0x5f, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, + 0x67, 0x65, 0x10, 0xcf, 0x04, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, + 0x5f, 0x4f, 0x4d, 0x41, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x43, 0x6f, 0x6d, 0x62, 0x6f, 0x10, 0xd0, + 0x04, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x46, 0x6f, 0x75, + 0x6e, 0x64, 0x4e, 0x65, 0x75, 0x74, 0x72, 0x61, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x10, 0xd1, 0x04, + 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4f, 0x75, 0x74, 0x70, + 0x6f, 0x73, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x64, 0x10, 0xd2, 0x04, 0x12, 0x1d, + 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x73, + 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x58, 0x50, 0x10, 0xd3, 0x04, 0x12, 0x1d, 0x0a, + 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4d, 0x6f, 0x76, 0x65, 0x43, 0x61, 0x6d, + 0x65, 0x72, 0x61, 0x54, 0x6f, 0x55, 0x6e, 0x69, 0x74, 0x10, 0xd4, 0x04, 0x12, 0x1e, 0x0a, 0x19, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x50, 0x61, 0x75, 0x73, 0x65, 0x4d, 0x69, 0x6e, + 0x69, 0x67, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x10, 0xd5, 0x04, 0x12, 0x27, 0x0a, 0x22, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x56, 0x65, 0x72, 0x73, 0x75, 0x73, 0x53, 0x63, + 0x65, 0x6e, 0x65, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, + 0x6f, 0x72, 0x10, 0xd6, 0x04, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, + 0x5f, 0x51, 0x6f, 0x50, 0x5f, 0x41, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x53, 0x75, 0x6d, 0x6d, 0x61, + 0x72, 0x79, 0x10, 0xd8, 0x04, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, + 0x5f, 0x48, 0x6f, 0x74, 0x50, 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x10, 0xd9, 0x04, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, + 0x5f, 0x48, 0x6f, 0x74, 0x50, 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x5f, 0x45, 0x78, 0x70, 0x6c, 0x6f, + 0x64, 0x65, 0x64, 0x10, 0xda, 0x04, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, + 0x4d, 0x5f, 0x57, 0x4b, 0x5f, 0x41, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x5f, 0x50, 0x72, 0x6f, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x10, 0xdb, 0x04, 0x12, 0x24, 0x0a, 0x1f, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x55, 0x4d, 0x5f, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, + 0x65, 0x5f, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x10, 0xdc, 0x04, 0x12, 0x1d, 0x0a, + 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x57, 0x52, 0x41, 0x72, 0x63, 0x61, 0x6e, + 0x61, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x10, 0xdd, 0x04, 0x12, 0x1c, 0x0a, 0x17, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x57, 0x52, 0x41, 0x72, 0x63, 0x61, 0x6e, 0x61, + 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x10, 0xde, 0x04, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, + 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x53, + 0x6c, 0x6f, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xdf, 0x04, 0x12, 0x1c, 0x0a, 0x17, 0x44, + 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x41, 0x67, 0x68, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xe0, 0x04, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, + 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x50, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xe1, 0x04, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, + 0x5f, 0x55, 0x4d, 0x5f, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, + 0x10, 0xe2, 0x04, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x54, 0x69, 0x70, 0x10, 0xe3, 0x04, 0x12, + 0x18, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x68, 0x61, 0x74, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x10, 0xe4, 0x04, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, + 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4e, 0x65, 0x75, 0x74, 0x72, 0x61, 0x6c, 0x43, 0x61, 0x6d, 0x70, + 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xe5, 0x04, 0x12, 0x25, 0x0a, 0x20, 0x44, 0x4f, 0x54, 0x41, + 0x5f, 0x55, 0x4d, 0x5f, 0x52, 0x6f, 0x63, 0x6b, 0x50, 0x61, 0x70, 0x65, 0x72, 0x53, 0x63, 0x69, + 0x73, 0x73, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x10, 0xe6, 0x04, 0x12, + 0x26, 0x0a, 0x21, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x52, 0x6f, 0x63, 0x6b, 0x50, + 0x61, 0x70, 0x65, 0x72, 0x53, 0x63, 0x69, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x46, 0x69, 0x6e, 0x69, + 0x73, 0x68, 0x65, 0x64, 0x10, 0xe7, 0x04, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, + 0x55, 0x4d, 0x5f, 0x44, 0x75, 0x65, 0x6c, 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x4b, + 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x10, 0xe8, 0x04, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, + 0x5f, 0x55, 0x4d, 0x5f, 0x44, 0x75, 0x65, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, + 0x10, 0xe9, 0x04, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x44, + 0x75, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x10, 0xea, 0x04, 0x12, + 0x34, 0x0a, 0x2f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4d, 0x75, 0x65, 0x72, 0x74, + 0x61, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x41, 0x73, + 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4b, 0x69, 0x6c, 0x6c, + 0x65, 0x64, 0x10, 0xeb, 0x04, 0x12, 0x23, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, + 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x72, 0x61, 0x66, 0x74, 0x53, 0x75, 0x67, 0x67, + 0x65, 0x73, 0x74, 0x50, 0x69, 0x63, 0x6b, 0x10, 0xec, 0x04, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, + 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x72, 0x61, 0x66, + 0x74, 0x50, 0x69, 0x63, 0x6b, 0x10, 0xed, 0x04, 0x12, 0x29, 0x0a, 0x24, 0x44, 0x4f, 0x54, 0x41, + 0x5f, 0x55, 0x4d, 0x5f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x61, 0x72, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6c, 0x65, 0x43, 0x50, 0x44, 0x61, 0x74, 0x61, + 0x10, 0xee, 0x04, 0x12, 0x17, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x47, + 0x69, 0x66, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x10, 0xef, 0x04, 0x12, 0x16, 0x0a, 0x11, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x46, 0x61, 0x63, 0x65, 0x74, 0x50, 0x69, 0x6e, + 0x67, 0x10, 0xf0, 0x04, 0x12, 0x17, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, + 0x49, 0x6e, 0x6e, 0x61, 0x74, 0x65, 0x50, 0x69, 0x6e, 0x67, 0x10, 0xf1, 0x04, 0x2a, 0xa4, 0x1f, + 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, + 0x41, 0x47, 0x45, 0x12, 0x21, 0x0a, 0x14, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, + 0x41, 0x47, 0x45, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, + 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, + 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, + 0x47, 0x45, 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x44, 0x45, 0x4e, 0x59, 0x10, 0x01, 0x12, 0x1e, + 0x0a, 0x1a, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x42, + 0x41, 0x52, 0x52, 0x41, 0x43, 0x4b, 0x53, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x10, 0x02, 0x12, 0x1b, + 0x0a, 0x17, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x54, + 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x43, + 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x54, 0x4f, 0x57, 0x45, + 0x52, 0x5f, 0x44, 0x45, 0x4e, 0x59, 0x10, 0x04, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x48, 0x41, 0x54, + 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x42, 0x4c, + 0x4f, 0x4f, 0x44, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, + 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4b, 0x5f, 0x4b, 0x49, 0x4c, + 0x4c, 0x10, 0x06, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, + 0x41, 0x47, 0x45, 0x5f, 0x42, 0x55, 0x59, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x07, 0x12, 0x16, 0x0a, + 0x12, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x41, 0x45, + 0x47, 0x49, 0x53, 0x10, 0x08, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, + 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x4f, 0x53, 0x48, 0x41, 0x4e, 0x5f, 0x4b, 0x49, 0x4c, + 0x4c, 0x10, 0x09, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, + 0x41, 0x47, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x52, 0x49, 0x45, 0x52, 0x5f, 0x4c, 0x4f, 0x53, 0x54, + 0x10, 0x0a, 0x12, 0x22, 0x0a, 0x1e, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, + 0x47, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x52, 0x49, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x41, + 0x57, 0x4e, 0x45, 0x44, 0x10, 0x0b, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, + 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x47, 0x4c, 0x59, 0x50, 0x48, 0x5f, 0x55, 0x53, 0x45, + 0x44, 0x10, 0x0c, 0x12, 0x1e, 0x0a, 0x1a, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, + 0x41, 0x47, 0x45, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x55, 0x52, 0x43, 0x48, 0x41, 0x53, + 0x45, 0x10, 0x0d, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, + 0x41, 0x47, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x10, 0x0e, 0x12, 0x1b, 0x0a, + 0x17, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x44, 0x49, + 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x10, 0x0f, 0x12, 0x2e, 0x0a, 0x2a, 0x43, 0x48, + 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, + 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x57, 0x41, 0x49, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x5f, 0x52, + 0x45, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x10, 0x10, 0x12, 0x2a, 0x0a, 0x26, 0x43, 0x48, + 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, + 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x41, 0x49, + 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x11, 0x12, 0x31, 0x0a, 0x2d, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, + 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, + 0x54, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, + 0x5f, 0x50, 0x4c, 0x55, 0x52, 0x41, 0x4c, 0x10, 0x12, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x48, 0x41, + 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x4e, + 0x45, 0x43, 0x54, 0x10, 0x13, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, + 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x4c, 0x45, 0x46, + 0x54, 0x10, 0x14, 0x12, 0x1e, 0x0a, 0x1a, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, + 0x41, 0x47, 0x45, 0x5f, 0x53, 0x41, 0x46, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x4c, 0x45, 0x41, 0x56, + 0x45, 0x10, 0x15, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, + 0x41, 0x47, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x45, 0x5f, 0x50, 0x49, 0x43, 0x4b, 0x55, 0x50, 0x10, + 0x16, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, + 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x45, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4c, 0x45, 0x10, 0x17, 0x12, + 0x1a, 0x0a, 0x16, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, + 0x52, 0x55, 0x4e, 0x45, 0x5f, 0x44, 0x45, 0x4e, 0x59, 0x10, 0x72, 0x12, 0x19, 0x0a, 0x15, 0x43, + 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x48, + 0x45, 0x42, 0x41, 0x47, 0x10, 0x18, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, + 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x45, 0x43, 0x52, 0x45, 0x54, 0x53, 0x48, 0x4f, + 0x50, 0x10, 0x19, 0x12, 0x23, 0x0a, 0x1f, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, + 0x41, 0x47, 0x45, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x50, 0x55, 0x52, + 0x43, 0x48, 0x41, 0x53, 0x45, 0x44, 0x10, 0x1a, 0x12, 0x1f, 0x0a, 0x1b, 0x43, 0x48, 0x41, 0x54, + 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x53, 0x5f, 0x43, + 0x4f, 0x4d, 0x42, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x1b, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x48, 0x41, + 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x55, 0x50, 0x45, 0x52, 0x5f, + 0x43, 0x52, 0x45, 0x45, 0x50, 0x53, 0x10, 0x1c, 0x12, 0x25, 0x0a, 0x21, 0x43, 0x48, 0x41, 0x54, + 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x54, 0x5f, 0x55, 0x53, + 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x10, 0x1d, 0x12, + 0x1a, 0x0a, 0x16, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, + 0x43, 0x41, 0x4e, 0x54, 0x50, 0x41, 0x55, 0x53, 0x45, 0x10, 0x1f, 0x12, 0x1d, 0x0a, 0x19, 0x43, + 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x4e, 0x4f, 0x50, 0x41, + 0x55, 0x53, 0x45, 0x53, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x20, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x54, 0x50, - 0x41, 0x55, 0x53, 0x45, 0x10, 0x1f, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, - 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x4e, 0x4f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x53, 0x4c, - 0x45, 0x46, 0x54, 0x10, 0x20, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, - 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x54, 0x50, 0x41, 0x55, 0x53, 0x45, 0x59, - 0x45, 0x54, 0x10, 0x21, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, - 0x53, 0x41, 0x47, 0x45, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x44, 0x10, 0x22, 0x12, 0x22, 0x0a, - 0x1e, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x55, 0x4e, - 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x44, 0x4f, 0x57, 0x4e, 0x10, - 0x23, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, - 0x45, 0x5f, 0x55, 0x4e, 0x50, 0x41, 0x55, 0x53, 0x45, 0x44, 0x10, 0x24, 0x12, 0x1e, 0x0a, 0x1a, - 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x41, 0x55, 0x54, - 0x4f, 0x5f, 0x55, 0x4e, 0x50, 0x41, 0x55, 0x53, 0x45, 0x44, 0x10, 0x25, 0x12, 0x1a, 0x0a, 0x16, - 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x59, 0x4f, 0x55, - 0x50, 0x41, 0x55, 0x53, 0x45, 0x44, 0x10, 0x26, 0x12, 0x20, 0x0a, 0x1c, 0x43, 0x48, 0x41, 0x54, - 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x54, 0x55, 0x4e, 0x50, - 0x41, 0x55, 0x53, 0x45, 0x54, 0x45, 0x41, 0x4d, 0x10, 0x27, 0x12, 0x22, 0x0a, 0x1e, 0x43, 0x48, - 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x56, 0x4f, 0x49, 0x43, 0x45, - 0x5f, 0x54, 0x45, 0x58, 0x54, 0x5f, 0x42, 0x41, 0x4e, 0x4e, 0x45, 0x44, 0x10, 0x29, 0x12, 0x2e, - 0x0a, 0x2a, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, - 0x50, 0x45, 0x43, 0x54, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x5f, 0x57, 0x41, 0x54, 0x43, 0x48, 0x49, - 0x4e, 0x47, 0x5f, 0x54, 0x48, 0x49, 0x53, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x10, 0x2a, 0x12, 0x20, - 0x0a, 0x1c, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x52, - 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x45, 0x4d, 0x49, 0x4e, 0x44, 0x45, 0x52, 0x10, 0x2b, - 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, - 0x5f, 0x45, 0x43, 0x4f, 0x4e, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x10, 0x2c, 0x12, 0x16, 0x0a, 0x12, - 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x54, 0x41, 0x55, - 0x4e, 0x54, 0x10, 0x2d, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, - 0x53, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x10, 0x2e, 0x12, 0x18, 0x0a, - 0x14, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x44, - 0x5f, 0x54, 0x55, 0x52, 0x4e, 0x10, 0x2f, 0x12, 0x20, 0x0a, 0x1c, 0x43, 0x48, 0x41, 0x54, 0x5f, - 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x41, 0x54, - 0x45, 0x5f, 0x42, 0x4f, 0x4e, 0x55, 0x53, 0x10, 0x31, 0x12, 0x21, 0x0a, 0x1d, 0x43, 0x48, 0x41, - 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x4e, 0x4f, 0x5f, 0x42, 0x41, 0x54, - 0x54, 0x4c, 0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x53, 0x10, 0x32, 0x12, 0x1d, 0x0a, 0x19, - 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x44, 0x45, 0x4e, - 0x49, 0x45, 0x44, 0x5f, 0x41, 0x45, 0x47, 0x49, 0x53, 0x10, 0x33, 0x12, 0x1e, 0x0a, 0x1a, 0x43, - 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x49, 0x4e, 0x46, 0x4f, - 0x52, 0x4d, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x34, 0x12, 0x1d, 0x0a, 0x19, 0x43, - 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x41, 0x45, 0x47, 0x49, - 0x53, 0x5f, 0x53, 0x54, 0x4f, 0x4c, 0x45, 0x4e, 0x10, 0x35, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x48, - 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x4f, 0x53, 0x48, 0x41, - 0x4e, 0x5f, 0x43, 0x41, 0x4e, 0x44, 0x59, 0x10, 0x36, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x48, 0x41, - 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x47, - 0x49, 0x46, 0x54, 0x45, 0x44, 0x10, 0x37, 0x12, 0x27, 0x0a, 0x23, 0x43, 0x48, 0x41, 0x54, 0x5f, - 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x4b, 0x49, 0x4c, - 0x4c, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x56, 0x49, 0x4c, 0x10, 0x38, - 0x12, 0x28, 0x0a, 0x24, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, - 0x5f, 0x48, 0x4f, 0x4c, 0x44, 0x4f, 0x55, 0x54, 0x5f, 0x54, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x44, - 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x45, 0x44, 0x10, 0x39, 0x12, 0x27, 0x0a, 0x23, 0x43, 0x48, - 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x48, 0x4f, 0x4c, 0x44, 0x4f, - 0x55, 0x54, 0x5f, 0x57, 0x41, 0x4c, 0x4c, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x45, - 0x44, 0x10, 0x3a, 0x12, 0x26, 0x0a, 0x22, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, - 0x41, 0x47, 0x45, 0x5f, 0x48, 0x4f, 0x4c, 0x44, 0x4f, 0x55, 0x54, 0x5f, 0x57, 0x41, 0x4c, 0x4c, - 0x5f, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48, 0x45, 0x44, 0x10, 0x3b, 0x12, 0x29, 0x0a, 0x25, 0x43, - 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x50, 0x4c, 0x41, 0x59, - 0x45, 0x52, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x5f, - 0x48, 0x45, 0x52, 0x4f, 0x10, 0x3e, 0x12, 0x31, 0x0a, 0x2d, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, - 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x41, 0x42, 0x41, 0x4e, 0x44, 0x4f, 0x4e, 0x5f, 0x4c, - 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x45, 0x58, 0x50, 0x4c, - 0x41, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x3f, 0x12, 0x28, 0x0a, 0x24, 0x43, 0x48, 0x41, - 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, - 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x48, 0x45, 0x52, - 0x4f, 0x10, 0x40, 0x12, 0x33, 0x0a, 0x2f, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, - 0x41, 0x47, 0x45, 0x5f, 0x4c, 0x4f, 0x57, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, - 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x5f, 0x45, 0x58, 0x50, 0x4c, 0x41, - 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x41, 0x12, 0x2c, 0x0a, 0x28, 0x43, 0x48, 0x41, 0x54, - 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x52, 0x55, 0x49, 0x54, - 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x42, - 0x4f, 0x4e, 0x55, 0x53, 0x10, 0x42, 0x12, 0x31, 0x0a, 0x2d, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, - 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x46, 0x52, 0x4f, 0x53, 0x54, 0x49, 0x56, 0x55, 0x53, - 0x5f, 0x53, 0x48, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x42, 0x4f, 0x4f, 0x53, 0x54, 0x45, 0x52, - 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x43, 0x12, 0x20, 0x0a, 0x1c, 0x43, 0x48, 0x41, - 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, - 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x41, 0x46, 0x4b, 0x10, 0x49, 0x12, 0x32, 0x0a, 0x2e, 0x43, - 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x50, 0x4c, 0x41, 0x59, - 0x45, 0x52, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, - 0x43, 0x54, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x4f, 0x5f, 0x4c, 0x4f, 0x4e, 0x47, 0x10, 0x4a, 0x12, - 0x21, 0x0a, 0x1d, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, - 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x41, 0x42, 0x41, 0x4e, 0x44, 0x4f, 0x4e, 0x45, 0x44, - 0x10, 0x4b, 0x12, 0x25, 0x0a, 0x21, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, - 0x47, 0x45, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x41, 0x42, 0x41, 0x4e, 0x44, 0x4f, - 0x4e, 0x45, 0x44, 0x5f, 0x41, 0x46, 0x4b, 0x10, 0x4c, 0x12, 0x37, 0x0a, 0x33, 0x43, 0x48, 0x41, - 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, - 0x5f, 0x41, 0x42, 0x41, 0x4e, 0x44, 0x4f, 0x4e, 0x45, 0x44, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, - 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x4f, 0x5f, 0x4c, 0x4f, 0x4e, 0x47, - 0x10, 0x4d, 0x12, 0x23, 0x0a, 0x1f, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, - 0x47, 0x45, 0x5f, 0x57, 0x49, 0x4c, 0x4c, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x42, 0x45, 0x5f, 0x53, - 0x43, 0x4f, 0x52, 0x45, 0x44, 0x10, 0x4e, 0x12, 0x2a, 0x0a, 0x26, 0x43, 0x48, 0x41, 0x54, 0x5f, - 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x57, 0x49, 0x4c, 0x4c, 0x5f, 0x4e, 0x4f, 0x54, - 0x5f, 0x42, 0x45, 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x45, 0x44, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x45, - 0x44, 0x10, 0x4f, 0x12, 0x2b, 0x0a, 0x27, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, - 0x41, 0x47, 0x45, 0x5f, 0x57, 0x49, 0x4c, 0x4c, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x42, 0x45, 0x5f, - 0x53, 0x43, 0x4f, 0x52, 0x45, 0x44, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x10, 0x50, - 0x12, 0x32, 0x0a, 0x2e, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, - 0x5f, 0x57, 0x49, 0x4c, 0x4c, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x42, 0x45, 0x5f, 0x53, 0x43, 0x4f, - 0x52, 0x45, 0x44, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x52, 0x41, 0x4e, 0x4b, - 0x45, 0x44, 0x10, 0x51, 0x12, 0x29, 0x0a, 0x25, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, - 0x53, 0x41, 0x47, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x5f, 0x51, 0x55, 0x49, 0x54, 0x5f, 0x57, 0x49, - 0x54, 0x48, 0x4f, 0x55, 0x54, 0x5f, 0x41, 0x42, 0x41, 0x4e, 0x44, 0x4f, 0x4e, 0x10, 0x52, 0x12, - 0x3a, 0x0a, 0x36, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, - 0x52, 0x41, 0x4e, 0x4b, 0x45, 0x44, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x49, 0x4c, - 0x4c, 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x45, 0x44, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x52, 0x53, - 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x4c, 0x4f, 0x53, 0x53, 0x10, 0x53, 0x12, 0x38, 0x0a, 0x34, 0x43, + 0x41, 0x55, 0x53, 0x45, 0x59, 0x45, 0x54, 0x10, 0x21, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x48, 0x41, + 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x44, + 0x10, 0x22, 0x12, 0x22, 0x0a, 0x1e, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, + 0x47, 0x45, 0x5f, 0x55, 0x4e, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, + 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x23, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, + 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x55, 0x4e, 0x50, 0x41, 0x55, 0x53, 0x45, 0x44, 0x10, + 0x24, 0x12, 0x1e, 0x0a, 0x1a, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, + 0x45, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x55, 0x4e, 0x50, 0x41, 0x55, 0x53, 0x45, 0x44, 0x10, + 0x25, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, + 0x45, 0x5f, 0x59, 0x4f, 0x55, 0x50, 0x41, 0x55, 0x53, 0x45, 0x44, 0x10, 0x26, 0x12, 0x20, 0x0a, + 0x1c, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x43, 0x41, + 0x4e, 0x54, 0x55, 0x4e, 0x50, 0x41, 0x55, 0x53, 0x45, 0x54, 0x45, 0x41, 0x4d, 0x10, 0x27, 0x12, + 0x22, 0x0a, 0x1e, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, + 0x56, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x5f, 0x42, 0x41, 0x4e, 0x4e, 0x45, + 0x44, 0x10, 0x29, 0x12, 0x2e, 0x0a, 0x2a, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, + 0x41, 0x47, 0x45, 0x5f, 0x53, 0x50, 0x45, 0x43, 0x54, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x5f, 0x57, + 0x41, 0x54, 0x43, 0x48, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x48, 0x49, 0x53, 0x5f, 0x47, 0x41, 0x4d, + 0x45, 0x10, 0x2a, 0x12, 0x20, 0x0a, 0x1c, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, + 0x41, 0x47, 0x45, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x45, 0x4d, 0x49, 0x4e, + 0x44, 0x45, 0x52, 0x10, 0x2b, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, + 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x45, 0x43, 0x4f, 0x4e, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x10, + 0x2c, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, + 0x45, 0x5f, 0x54, 0x41, 0x55, 0x4e, 0x54, 0x10, 0x2d, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x48, 0x41, + 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, + 0x10, 0x2e, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, + 0x47, 0x45, 0x5f, 0x52, 0x44, 0x5f, 0x54, 0x55, 0x52, 0x4e, 0x10, 0x2f, 0x12, 0x20, 0x0a, 0x1c, + 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x44, 0x52, 0x4f, + 0x50, 0x5f, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x42, 0x4f, 0x4e, 0x55, 0x53, 0x10, 0x31, 0x12, 0x21, + 0x0a, 0x1d, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x4e, + 0x4f, 0x5f, 0x42, 0x41, 0x54, 0x54, 0x4c, 0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x53, 0x10, + 0x32, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, + 0x45, 0x5f, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44, 0x5f, 0x41, 0x45, 0x47, 0x49, 0x53, 0x10, 0x33, + 0x12, 0x1e, 0x0a, 0x1a, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, + 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x34, + 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, + 0x5f, 0x41, 0x45, 0x47, 0x49, 0x53, 0x5f, 0x53, 0x54, 0x4f, 0x4c, 0x45, 0x4e, 0x10, 0x35, 0x12, + 0x1d, 0x0a, 0x19, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, + 0x52, 0x4f, 0x53, 0x48, 0x41, 0x4e, 0x5f, 0x43, 0x41, 0x4e, 0x44, 0x59, 0x10, 0x36, 0x12, 0x1c, + 0x0a, 0x18, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x49, + 0x54, 0x45, 0x4d, 0x5f, 0x47, 0x49, 0x46, 0x54, 0x45, 0x44, 0x10, 0x37, 0x12, 0x27, 0x0a, 0x23, + 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x48, 0x45, 0x52, + 0x4f, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x47, 0x52, 0x45, 0x45, + 0x56, 0x49, 0x4c, 0x10, 0x38, 0x12, 0x28, 0x0a, 0x24, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, + 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x48, 0x4f, 0x4c, 0x44, 0x4f, 0x55, 0x54, 0x5f, 0x54, 0x4f, + 0x57, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x45, 0x44, 0x10, 0x39, 0x12, + 0x27, 0x0a, 0x23, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, + 0x48, 0x4f, 0x4c, 0x44, 0x4f, 0x55, 0x54, 0x5f, 0x57, 0x41, 0x4c, 0x4c, 0x5f, 0x44, 0x45, 0x53, + 0x54, 0x52, 0x4f, 0x59, 0x45, 0x44, 0x10, 0x3a, 0x12, 0x26, 0x0a, 0x22, 0x43, 0x48, 0x41, 0x54, + 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x48, 0x4f, 0x4c, 0x44, 0x4f, 0x55, 0x54, + 0x5f, 0x57, 0x41, 0x4c, 0x4c, 0x5f, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48, 0x45, 0x44, 0x10, 0x3b, + 0x12, 0x29, 0x0a, 0x25, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, + 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x4c, 0x49, 0x4d, + 0x49, 0x54, 0x45, 0x44, 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x10, 0x3e, 0x12, 0x31, 0x0a, 0x2d, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x41, 0x42, 0x41, 0x4e, - 0x44, 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x45, 0x44, 0x5f, 0x42, 0x45, 0x46, 0x4f, 0x52, - 0x45, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x50, 0x41, - 0x52, 0x54, 0x59, 0x10, 0x54, 0x12, 0x21, 0x0a, 0x1d, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, - 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x55, 0x4d, - 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x10, 0x55, 0x12, 0x2a, 0x0a, 0x26, 0x43, 0x48, 0x41, 0x54, - 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x56, 0x49, 0x43, 0x54, 0x4f, 0x52, 0x59, - 0x5f, 0x50, 0x52, 0x45, 0x44, 0x49, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x52, 0x45, - 0x41, 0x4b, 0x10, 0x56, 0x12, 0x22, 0x0a, 0x1e, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, - 0x53, 0x41, 0x47, 0x45, 0x5f, 0x41, 0x53, 0x53, 0x41, 0x53, 0x53, 0x49, 0x4e, 0x5f, 0x41, 0x4e, - 0x4e, 0x4f, 0x55, 0x4e, 0x43, 0x45, 0x10, 0x57, 0x12, 0x21, 0x0a, 0x1d, 0x43, 0x48, 0x41, 0x54, - 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x41, 0x53, 0x53, 0x41, 0x53, 0x53, 0x49, - 0x4e, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x58, 0x12, 0x20, 0x0a, 0x1c, 0x43, - 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x41, 0x53, 0x53, 0x41, - 0x53, 0x53, 0x49, 0x4e, 0x5f, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44, 0x10, 0x59, 0x12, 0x37, 0x0a, - 0x33, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x56, 0x49, + 0x44, 0x4f, 0x4e, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x48, 0x45, 0x52, 0x4f, + 0x5f, 0x45, 0x58, 0x50, 0x4c, 0x41, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x3f, 0x12, 0x28, + 0x0a, 0x24, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x44, + 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, + 0x44, 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x10, 0x40, 0x12, 0x33, 0x0a, 0x2f, 0x43, 0x48, 0x41, 0x54, + 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x4c, 0x4f, 0x57, 0x5f, 0x50, 0x52, 0x49, + 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x5f, + 0x45, 0x58, 0x50, 0x4c, 0x41, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x41, 0x12, 0x2c, 0x0a, + 0x28, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x45, + 0x43, 0x52, 0x55, 0x49, 0x54, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, + 0x41, 0x54, 0x45, 0x5f, 0x42, 0x4f, 0x4e, 0x55, 0x53, 0x10, 0x42, 0x12, 0x31, 0x0a, 0x2d, 0x43, + 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x46, 0x52, 0x4f, 0x53, + 0x54, 0x49, 0x56, 0x55, 0x53, 0x5f, 0x53, 0x48, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x42, 0x4f, + 0x4f, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x43, 0x12, 0x20, + 0x0a, 0x1c, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x50, + 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x41, 0x46, 0x4b, 0x10, 0x49, + 0x12, 0x32, 0x0a, 0x2e, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, + 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x44, 0x49, 0x53, + 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x4f, 0x5f, 0x4c, 0x4f, + 0x4e, 0x47, 0x10, 0x4a, 0x12, 0x21, 0x0a, 0x1d, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, + 0x53, 0x41, 0x47, 0x45, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x41, 0x42, 0x41, 0x4e, + 0x44, 0x4f, 0x4e, 0x45, 0x44, 0x10, 0x4b, 0x12, 0x25, 0x0a, 0x21, 0x43, 0x48, 0x41, 0x54, 0x5f, + 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x41, + 0x42, 0x41, 0x4e, 0x44, 0x4f, 0x4e, 0x45, 0x44, 0x5f, 0x41, 0x46, 0x4b, 0x10, 0x4c, 0x12, 0x37, + 0x0a, 0x33, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x50, + 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x41, 0x42, 0x41, 0x4e, 0x44, 0x4f, 0x4e, 0x45, 0x44, 0x5f, + 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x4f, + 0x5f, 0x4c, 0x4f, 0x4e, 0x47, 0x10, 0x4d, 0x12, 0x23, 0x0a, 0x1f, 0x43, 0x48, 0x41, 0x54, 0x5f, + 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x57, 0x49, 0x4c, 0x4c, 0x5f, 0x4e, 0x4f, 0x54, + 0x5f, 0x42, 0x45, 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x45, 0x44, 0x10, 0x4e, 0x12, 0x2a, 0x0a, 0x26, + 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x57, 0x49, 0x4c, + 0x4c, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x42, 0x45, 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x45, 0x44, 0x5f, + 0x52, 0x41, 0x4e, 0x4b, 0x45, 0x44, 0x10, 0x4f, 0x12, 0x2b, 0x0a, 0x27, 0x43, 0x48, 0x41, 0x54, + 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x57, 0x49, 0x4c, 0x4c, 0x5f, 0x4e, 0x4f, + 0x54, 0x5f, 0x42, 0x45, 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x45, 0x44, 0x5f, 0x4e, 0x45, 0x54, 0x57, + 0x4f, 0x52, 0x4b, 0x10, 0x50, 0x12, 0x32, 0x0a, 0x2e, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, + 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x57, 0x49, 0x4c, 0x4c, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x42, + 0x45, 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x45, 0x44, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, + 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x45, 0x44, 0x10, 0x51, 0x12, 0x29, 0x0a, 0x25, 0x43, 0x48, 0x41, + 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x5f, 0x51, 0x55, + 0x49, 0x54, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x4f, 0x55, 0x54, 0x5f, 0x41, 0x42, 0x41, 0x4e, 0x44, + 0x4f, 0x4e, 0x10, 0x52, 0x12, 0x3a, 0x0a, 0x36, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, + 0x53, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x45, 0x44, 0x5f, 0x47, 0x41, 0x4d, 0x45, + 0x5f, 0x53, 0x54, 0x49, 0x4c, 0x4c, 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x45, 0x44, 0x5f, 0x4c, 0x45, + 0x41, 0x56, 0x45, 0x52, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x4c, 0x4f, 0x53, 0x53, 0x10, 0x53, + 0x12, 0x38, 0x0a, 0x34, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, + 0x5f, 0x41, 0x42, 0x41, 0x4e, 0x44, 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x45, 0x44, 0x5f, + 0x42, 0x45, 0x46, 0x4f, 0x52, 0x45, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x5f, 0x42, 0x4c, 0x4f, + 0x4f, 0x44, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x59, 0x10, 0x54, 0x12, 0x21, 0x0a, 0x1d, 0x43, 0x48, + 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x45, + 0x4e, 0x44, 0x49, 0x55, 0x4d, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x10, 0x55, 0x12, 0x2a, 0x0a, + 0x26, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x56, 0x49, 0x43, 0x54, 0x4f, 0x52, 0x59, 0x5f, 0x50, 0x52, 0x45, 0x44, 0x49, 0x43, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x43, 0x4f, 0x4e, - 0x46, 0x49, 0x52, 0x4d, 0x10, 0x5a, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, - 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x45, 0x46, 0x46, 0x49, 0x47, 0x59, 0x5f, 0x4b, 0x49, - 0x4c, 0x4c, 0x10, 0x5b, 0x12, 0x2b, 0x0a, 0x27, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, - 0x53, 0x41, 0x47, 0x45, 0x5f, 0x56, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x5f, - 0x42, 0x41, 0x4e, 0x4e, 0x45, 0x44, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x10, - 0x5c, 0x12, 0x22, 0x0a, 0x1e, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, - 0x45, 0x5f, 0x59, 0x45, 0x41, 0x52, 0x5f, 0x42, 0x45, 0x41, 0x53, 0x54, 0x5f, 0x4b, 0x49, 0x4c, - 0x4c, 0x45, 0x44, 0x10, 0x5d, 0x12, 0x20, 0x0a, 0x1c, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, - 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x4e, - 0x54, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x5e, 0x12, 0x1e, 0x0a, 0x1a, 0x43, 0x48, 0x41, 0x54, 0x5f, - 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x43, 0x4f, 0x49, 0x4e, 0x53, 0x5f, 0x57, 0x41, - 0x47, 0x45, 0x52, 0x45, 0x44, 0x10, 0x5f, 0x12, 0x23, 0x0a, 0x1f, 0x43, 0x48, 0x41, 0x54, 0x5f, - 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x4e, 0x4f, 0x4d, - 0x49, 0x4e, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x42, 0x41, 0x4e, 0x10, 0x60, 0x12, 0x1c, 0x0a, 0x18, + 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4b, 0x10, 0x56, 0x12, 0x22, 0x0a, 0x1e, 0x43, 0x48, 0x41, + 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x41, 0x53, 0x53, 0x41, 0x53, 0x53, + 0x49, 0x4e, 0x5f, 0x41, 0x4e, 0x4e, 0x4f, 0x55, 0x4e, 0x43, 0x45, 0x10, 0x57, 0x12, 0x21, 0x0a, + 0x1d, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x41, 0x53, + 0x53, 0x41, 0x53, 0x53, 0x49, 0x4e, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x58, + 0x12, 0x20, 0x0a, 0x1c, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, + 0x5f, 0x41, 0x53, 0x53, 0x41, 0x53, 0x53, 0x49, 0x4e, 0x5f, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44, + 0x10, 0x59, 0x12, 0x37, 0x0a, 0x33, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, + 0x47, 0x45, 0x5f, 0x56, 0x49, 0x43, 0x54, 0x4f, 0x52, 0x59, 0x5f, 0x50, 0x52, 0x45, 0x44, 0x49, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x5f, 0x55, 0x53, 0x45, + 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x52, 0x4d, 0x10, 0x5a, 0x12, 0x1c, 0x0a, 0x18, 0x43, + 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x45, 0x46, 0x46, 0x49, + 0x47, 0x59, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x10, 0x5b, 0x12, 0x2b, 0x0a, 0x27, 0x43, 0x48, 0x41, + 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x56, 0x4f, 0x49, 0x43, 0x45, 0x5f, + 0x54, 0x45, 0x58, 0x54, 0x5f, 0x42, 0x41, 0x4e, 0x4e, 0x45, 0x44, 0x5f, 0x4f, 0x56, 0x45, 0x52, + 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x5c, 0x12, 0x22, 0x0a, 0x1e, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, + 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x59, 0x45, 0x41, 0x52, 0x5f, 0x42, 0x45, 0x41, 0x53, + 0x54, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x5d, 0x12, 0x20, 0x0a, 0x1c, 0x43, 0x48, + 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, + 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x5e, 0x12, 0x1e, 0x0a, 0x1a, + 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x43, 0x4f, 0x49, + 0x4e, 0x53, 0x5f, 0x57, 0x41, 0x47, 0x45, 0x52, 0x45, 0x44, 0x10, 0x5f, 0x12, 0x23, 0x0a, 0x1f, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x48, 0x45, 0x52, - 0x4f, 0x5f, 0x42, 0x41, 0x4e, 0x4e, 0x45, 0x44, 0x10, 0x61, 0x12, 0x1f, 0x0a, 0x1b, 0x43, 0x48, - 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x5f, - 0x42, 0x41, 0x4e, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x62, 0x12, 0x1e, 0x0a, 0x1a, 0x43, - 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x49, 0x56, 0x45, - 0x52, 0x5f, 0x50, 0x41, 0x49, 0x4e, 0x54, 0x45, 0x44, 0x10, 0x63, 0x12, 0x1a, 0x0a, 0x16, 0x43, - 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x43, 0x41, 0x4e, - 0x5f, 0x55, 0x53, 0x45, 0x44, 0x10, 0x64, 0x12, 0x1e, 0x0a, 0x1a, 0x43, 0x48, 0x41, 0x54, 0x5f, - 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x48, 0x52, 0x49, 0x4e, 0x45, 0x5f, 0x4b, - 0x49, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x43, 0x48, 0x41, 0x54, 0x5f, - 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x57, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x54, 0x4f, - 0x4b, 0x45, 0x4e, 0x5f, 0x53, 0x50, 0x45, 0x4e, 0x54, 0x10, 0x66, 0x12, 0x1b, 0x0a, 0x17, 0x43, - 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x41, 0x4e, 0x4b, - 0x5f, 0x57, 0x41, 0x47, 0x45, 0x52, 0x10, 0x67, 0x12, 0x24, 0x0a, 0x20, 0x43, 0x48, 0x41, 0x54, - 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x4c, 0x41, - 0x59, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x4d, 0x49, 0x4e, 0x44, 0x45, 0x52, 0x10, 0x68, 0x12, 0x25, - 0x0a, 0x21, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x4f, - 0x42, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x41, 0x52, 0x44, 0x5f, 0x4b, 0x49, 0x4c, - 0x4c, 0x45, 0x44, 0x10, 0x69, 0x12, 0x23, 0x0a, 0x1f, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, - 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x57, 0x41, 0x52, - 0x44, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x6a, 0x12, 0x2d, 0x0a, 0x29, 0x43, 0x48, - 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x5f, - 0x50, 0x4c, 0x41, 0x43, 0x45, 0x44, 0x5f, 0x49, 0x4e, 0x5f, 0x4e, 0x45, 0x55, 0x54, 0x52, 0x41, - 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x53, 0x48, 0x10, 0x6b, 0x12, 0x24, 0x0a, 0x20, 0x43, 0x48, 0x41, - 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x43, - 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x6c, 0x12, - 0x17, 0x0a, 0x13, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, - 0x42, 0x4f, 0x55, 0x4e, 0x54, 0x59, 0x10, 0x6d, 0x12, 0x24, 0x0a, 0x20, 0x43, 0x48, 0x41, 0x54, - 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, - 0x5f, 0x44, 0x52, 0x41, 0x46, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x6e, 0x12, 0x21, - 0x0a, 0x1d, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x48, - 0x45, 0x52, 0x4f, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x5f, 0x43, 0x41, 0x4e, 0x44, 0x59, 0x10, - 0x6f, 0x12, 0x27, 0x0a, 0x23, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, - 0x45, 0x5f, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x44, 0x52, 0x41, 0x46, 0x54, 0x5f, - 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x45, 0x44, 0x10, 0x70, 0x12, 0x28, 0x0a, 0x24, 0x43, 0x48, - 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x50, 0x52, 0x49, 0x56, 0x41, - 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x41, 0x43, 0x48, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, - 0x45, 0x44, 0x10, 0x71, 0x12, 0x25, 0x0a, 0x21, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, - 0x53, 0x41, 0x47, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x54, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, - 0x54, 0x4f, 0x4f, 0x5f, 0x45, 0x41, 0x52, 0x4c, 0x59, 0x10, 0x73, 0x12, 0x27, 0x0a, 0x23, 0x43, - 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x48, 0x45, 0x52, 0x4f, - 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x50, 0x45, 0x4e, 0x47, 0x55, - 0x49, 0x4e, 0x10, 0x74, 0x12, 0x1e, 0x0a, 0x1a, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, - 0x53, 0x41, 0x47, 0x45, 0x5f, 0x4d, 0x49, 0x4e, 0x49, 0x42, 0x4f, 0x53, 0x53, 0x5f, 0x4b, 0x49, - 0x4c, 0x4c, 0x10, 0x75, 0x12, 0x28, 0x0a, 0x24, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, - 0x53, 0x41, 0x47, 0x45, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x5f, 0x47, - 0x41, 0x4d, 0x45, 0x5f, 0x42, 0x41, 0x4e, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x10, 0x76, 0x12, 0x1f, - 0x0a, 0x1b, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x42, - 0x41, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x54, 0x45, 0x44, 0x10, 0x77, 0x2a, - 0xb2, 0x01, 0x0a, 0x1d, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4e, 0x4f, 0x5f, 0x42, 0x41, 0x54, 0x54, - 0x4c, 0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x53, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, - 0x53, 0x12, 0x25, 0x0a, 0x21, 0x4e, 0x4f, 0x5f, 0x42, 0x41, 0x54, 0x54, 0x4c, 0x45, 0x5f, 0x50, - 0x4f, 0x49, 0x4e, 0x54, 0x53, 0x5f, 0x57, 0x52, 0x4f, 0x4e, 0x47, 0x5f, 0x4c, 0x4f, 0x42, 0x42, - 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x4e, 0x4f, 0x5f, 0x42, - 0x41, 0x54, 0x54, 0x4c, 0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x53, 0x5f, 0x50, 0x52, 0x41, - 0x43, 0x54, 0x49, 0x43, 0x45, 0x5f, 0x42, 0x4f, 0x54, 0x53, 0x10, 0x02, 0x12, 0x23, 0x0a, 0x1f, - 0x4e, 0x4f, 0x5f, 0x42, 0x41, 0x54, 0x54, 0x4c, 0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x53, - 0x5f, 0x43, 0x48, 0x45, 0x41, 0x54, 0x53, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, - 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x4e, 0x4f, 0x5f, 0x42, 0x41, 0x54, 0x54, 0x4c, 0x45, 0x5f, 0x50, - 0x4f, 0x49, 0x4e, 0x54, 0x53, 0x5f, 0x4c, 0x4f, 0x57, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, - 0x54, 0x59, 0x10, 0x04, 0x2a, 0xcf, 0x01, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x48, - 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, - 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x43, 0x4f, 0x4f, 0x50, 0x5f, 0x42, 0x41, - 0x54, 0x54, 0x4c, 0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x53, 0x5f, 0x52, 0x55, 0x4c, 0x45, - 0x53, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x46, 0x52, 0x4f, 0x53, - 0x54, 0x49, 0x56, 0x55, 0x53, 0x5f, 0x41, 0x42, 0x41, 0x4e, 0x44, 0x4f, 0x4e, 0x5f, 0x52, 0x45, - 0x4d, 0x49, 0x4e, 0x44, 0x45, 0x52, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x49, 0x4e, 0x46, 0x4f, - 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x4d, 0x49, 0x4e, 0x44, 0x45, 0x52, - 0x10, 0x03, 0x12, 0x2b, 0x0a, 0x27, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x43, 0x4f, 0x4f, 0x50, 0x5f, - 0x4c, 0x4f, 0x57, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x41, 0x53, - 0x53, 0x49, 0x56, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x49, 0x4e, 0x44, 0x45, 0x52, 0x10, 0x04, 0x12, - 0x25, 0x0a, 0x21, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x47, - 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x45, 0x4e, 0x41, 0x4c, 0x54, 0x59, 0x5f, 0x52, 0x45, 0x4d, 0x49, - 0x4e, 0x44, 0x45, 0x52, 0x10, 0x05, 0x2a, 0xe0, 0x03, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, - 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, - 0x47, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x42, 0x49, - 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x10, 0x02, - 0x12, 0x19, 0x0a, 0x15, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, - 0x5f, 0x43, 0x4f, 0x4f, 0x4c, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x41, - 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x45, 0x4e, 0x45, 0x4d, - 0x59, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, - 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x4e, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x45, 0x44, 0x10, 0x05, 0x12, - 0x1b, 0x0a, 0x17, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, - 0x49, 0x4e, 0x42, 0x41, 0x43, 0x4b, 0x50, 0x41, 0x43, 0x4b, 0x10, 0x06, 0x12, 0x18, 0x0a, 0x14, - 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x4e, 0x53, - 0x54, 0x41, 0x53, 0x48, 0x10, 0x07, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, - 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x4f, 0x4e, 0x43, 0x4f, 0x55, 0x52, 0x49, 0x45, 0x52, - 0x10, 0x08, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, - 0x4e, 0x47, 0x5f, 0x41, 0x4c, 0x4c, 0x59, 0x10, 0x09, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x42, 0x49, - 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x5f, - 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x0a, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x42, 0x49, 0x4c, 0x49, - 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x57, 0x49, 0x4c, 0x4c, 0x5f, 0x4c, 0x45, 0x41, - 0x52, 0x4e, 0x10, 0x0b, 0x12, 0x1d, 0x0a, 0x19, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, - 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x55, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x4c, 0x45, 0x41, 0x52, - 0x4e, 0x10, 0x0c, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, - 0x49, 0x4e, 0x47, 0x5f, 0x4e, 0x45, 0x55, 0x54, 0x52, 0x41, 0x4c, 0x5f, 0x4f, 0x46, 0x46, 0x45, - 0x52, 0x10, 0x0d, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, - 0x49, 0x4e, 0x47, 0x5f, 0x4e, 0x45, 0x55, 0x54, 0x52, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, - 0x45, 0x53, 0x54, 0x10, 0x0e, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, - 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x4e, 0x45, 0x55, 0x54, 0x52, 0x41, 0x4c, 0x5f, 0x45, 0x51, - 0x55, 0x49, 0x50, 0x10, 0x0f, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, - 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x4e, 0x43, 0x4f, 0x55, 0x52, 0x49, 0x45, 0x52, 0x42, - 0x41, 0x43, 0x4b, 0x50, 0x41, 0x43, 0x4b, 0x10, 0x10, 0x2a, 0x8c, 0x02, 0x0a, 0x17, 0x44, 0x4f, + 0x4f, 0x5f, 0x4e, 0x4f, 0x4d, 0x49, 0x4e, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x42, 0x41, 0x4e, 0x10, + 0x60, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, + 0x45, 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x42, 0x41, 0x4e, 0x4e, 0x45, 0x44, 0x10, 0x61, 0x12, + 0x1f, 0x0a, 0x1b, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, + 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x42, 0x41, 0x4e, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x62, + 0x12, 0x1e, 0x0a, 0x1a, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, + 0x5f, 0x52, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x49, 0x4e, 0x54, 0x45, 0x44, 0x10, 0x63, + 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, + 0x5f, 0x53, 0x43, 0x41, 0x4e, 0x5f, 0x55, 0x53, 0x45, 0x44, 0x10, 0x64, 0x12, 0x1e, 0x0a, 0x1a, + 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x48, 0x52, + 0x49, 0x4e, 0x45, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x65, 0x12, 0x22, 0x0a, 0x1e, + 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x57, 0x41, 0x47, + 0x45, 0x52, 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x5f, 0x53, 0x50, 0x45, 0x4e, 0x54, 0x10, 0x66, + 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, + 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x57, 0x41, 0x47, 0x45, 0x52, 0x10, 0x67, 0x12, 0x24, 0x0a, + 0x20, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x4e, 0x45, + 0x57, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x4d, 0x49, 0x4e, 0x44, 0x45, + 0x52, 0x10, 0x68, 0x12, 0x25, 0x0a, 0x21, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, + 0x41, 0x47, 0x45, 0x5f, 0x4f, 0x42, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x41, 0x52, + 0x44, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x69, 0x12, 0x23, 0x0a, 0x1f, 0x43, 0x48, + 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x45, 0x4e, 0x54, 0x52, + 0x59, 0x5f, 0x57, 0x41, 0x52, 0x44, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x6a, 0x12, + 0x2d, 0x0a, 0x29, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, + 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4c, 0x41, 0x43, 0x45, 0x44, 0x5f, 0x49, 0x4e, 0x5f, 0x4e, + 0x45, 0x55, 0x54, 0x52, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x53, 0x48, 0x10, 0x6b, 0x12, 0x24, + 0x0a, 0x20, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x48, + 0x45, 0x52, 0x4f, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, + 0x49, 0x44, 0x10, 0x6c, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, + 0x53, 0x41, 0x47, 0x45, 0x5f, 0x42, 0x4f, 0x55, 0x4e, 0x54, 0x59, 0x10, 0x6d, 0x12, 0x24, 0x0a, + 0x20, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x41, 0x42, + 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x44, 0x52, 0x41, 0x46, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x52, + 0x54, 0x10, 0x6e, 0x12, 0x21, 0x0a, 0x1d, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, + 0x41, 0x47, 0x45, 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x5f, 0x43, + 0x41, 0x4e, 0x44, 0x59, 0x10, 0x6f, 0x12, 0x27, 0x0a, 0x23, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, + 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x44, + 0x52, 0x41, 0x46, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x45, 0x44, 0x10, 0x70, 0x12, + 0x28, 0x0a, 0x24, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, + 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x41, 0x43, 0x48, 0x5f, 0x43, 0x4f, + 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x71, 0x12, 0x25, 0x0a, 0x21, 0x43, 0x48, 0x41, + 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x54, 0x5f, 0x50, + 0x41, 0x55, 0x53, 0x45, 0x5f, 0x54, 0x4f, 0x4f, 0x5f, 0x45, 0x41, 0x52, 0x4c, 0x59, 0x10, 0x73, + 0x12, 0x27, 0x0a, 0x23, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, + 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, + 0x50, 0x45, 0x4e, 0x47, 0x55, 0x49, 0x4e, 0x10, 0x74, 0x12, 0x1e, 0x0a, 0x1a, 0x43, 0x48, 0x41, + 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x4d, 0x49, 0x4e, 0x49, 0x42, 0x4f, + 0x53, 0x53, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x10, 0x75, 0x12, 0x28, 0x0a, 0x24, 0x43, 0x48, 0x41, + 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, + 0x5f, 0x49, 0x4e, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x42, 0x41, 0x4e, 0x5f, 0x54, 0x45, 0x58, + 0x54, 0x10, 0x76, 0x12, 0x1f, 0x0a, 0x1b, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, + 0x41, 0x47, 0x45, 0x5f, 0x42, 0x41, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x54, + 0x45, 0x44, 0x10, 0x77, 0x2a, 0xb2, 0x01, 0x0a, 0x1d, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4e, 0x4f, + 0x5f, 0x42, 0x41, 0x54, 0x54, 0x4c, 0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x53, 0x5f, 0x52, + 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x12, 0x25, 0x0a, 0x21, 0x4e, 0x4f, 0x5f, 0x42, 0x41, 0x54, + 0x54, 0x4c, 0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x53, 0x5f, 0x57, 0x52, 0x4f, 0x4e, 0x47, + 0x5f, 0x4c, 0x4f, 0x42, 0x42, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x22, 0x0a, + 0x1e, 0x4e, 0x4f, 0x5f, 0x42, 0x41, 0x54, 0x54, 0x4c, 0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, + 0x53, 0x5f, 0x50, 0x52, 0x41, 0x43, 0x54, 0x49, 0x43, 0x45, 0x5f, 0x42, 0x4f, 0x54, 0x53, 0x10, + 0x02, 0x12, 0x23, 0x0a, 0x1f, 0x4e, 0x4f, 0x5f, 0x42, 0x41, 0x54, 0x54, 0x4c, 0x45, 0x5f, 0x50, + 0x4f, 0x49, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x48, 0x45, 0x41, 0x54, 0x53, 0x5f, 0x45, 0x4e, 0x41, + 0x42, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x4e, 0x4f, 0x5f, 0x42, 0x41, 0x54, + 0x54, 0x4c, 0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x53, 0x5f, 0x4c, 0x4f, 0x57, 0x5f, 0x50, + 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x10, 0x04, 0x2a, 0xcf, 0x01, 0x0a, 0x17, 0x44, 0x4f, + 0x54, 0x41, 0x5f, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x43, 0x4f, + 0x4f, 0x50, 0x5f, 0x42, 0x41, 0x54, 0x54, 0x4c, 0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x53, + 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x53, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x49, 0x4e, 0x46, 0x4f, + 0x5f, 0x46, 0x52, 0x4f, 0x53, 0x54, 0x49, 0x56, 0x55, 0x53, 0x5f, 0x41, 0x42, 0x41, 0x4e, 0x44, + 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x4d, 0x49, 0x4e, 0x44, 0x45, 0x52, 0x10, 0x02, 0x12, 0x18, 0x0a, + 0x14, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x4d, + 0x49, 0x4e, 0x44, 0x45, 0x52, 0x10, 0x03, 0x12, 0x2b, 0x0a, 0x27, 0x49, 0x4e, 0x46, 0x4f, 0x5f, + 0x43, 0x4f, 0x4f, 0x50, 0x5f, 0x4c, 0x4f, 0x57, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, + 0x59, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x49, 0x56, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x49, 0x4e, 0x44, + 0x45, 0x52, 0x10, 0x04, 0x12, 0x25, 0x0a, 0x21, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x43, 0x55, 0x53, + 0x54, 0x4f, 0x4d, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x45, 0x4e, 0x41, 0x4c, 0x54, 0x59, + 0x5f, 0x52, 0x45, 0x4d, 0x49, 0x4e, 0x44, 0x45, 0x52, 0x10, 0x05, 0x2a, 0xe0, 0x03, 0x0a, 0x16, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, + 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, + 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x01, 0x12, 0x15, + 0x0a, 0x11, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x4d, + 0x41, 0x4e, 0x41, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, + 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x4f, 0x4f, 0x4c, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x03, + 0x12, 0x16, 0x0a, 0x12, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, + 0x5f, 0x45, 0x4e, 0x45, 0x4d, 0x59, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x42, 0x49, 0x4c, + 0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x4e, 0x4c, 0x45, 0x41, 0x52, 0x4e, + 0x45, 0x44, 0x10, 0x05, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, + 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x4e, 0x42, 0x41, 0x43, 0x4b, 0x50, 0x41, 0x43, 0x4b, 0x10, + 0x06, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, + 0x47, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x53, 0x48, 0x10, 0x07, 0x12, 0x1a, 0x0a, 0x16, 0x41, + 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x4f, 0x4e, 0x43, 0x4f, + 0x55, 0x52, 0x49, 0x45, 0x52, 0x10, 0x08, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x42, 0x49, 0x4c, 0x49, + 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x4c, 0x4c, 0x59, 0x10, 0x09, 0x12, 0x1c, + 0x0a, 0x18, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x4c, + 0x45, 0x41, 0x52, 0x4e, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x0a, 0x12, 0x1b, 0x0a, 0x17, + 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x57, 0x49, 0x4c, + 0x4c, 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x10, 0x0b, 0x12, 0x1d, 0x0a, 0x19, 0x41, 0x42, 0x49, + 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x55, 0x54, 0x55, 0x52, 0x45, + 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x10, 0x0c, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x42, 0x49, 0x4c, + 0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x4e, 0x45, 0x55, 0x54, 0x52, 0x41, 0x4c, + 0x5f, 0x4f, 0x46, 0x46, 0x45, 0x52, 0x10, 0x0d, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x42, 0x49, 0x4c, + 0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x4e, 0x45, 0x55, 0x54, 0x52, 0x41, 0x4c, + 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x0e, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x42, + 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x4e, 0x45, 0x55, 0x54, 0x52, + 0x41, 0x4c, 0x5f, 0x45, 0x51, 0x55, 0x49, 0x50, 0x10, 0x0f, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x42, + 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x4e, 0x43, 0x4f, 0x55, + 0x52, 0x49, 0x45, 0x52, 0x42, 0x41, 0x43, 0x4b, 0x50, 0x41, 0x43, 0x4b, 0x10, 0x10, 0x2a, 0x8c, + 0x02, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x12, 0x26, 0x0a, 0x22, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, - 0x45, 0x56, 0x45, 0x4e, 0x54, 0x12, 0x26, 0x0a, 0x22, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x52, 0x45, - 0x50, 0x4c, 0x41, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x01, 0x12, 0x29, 0x0a, - 0x25, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x49, 0x4e, - 0x47, 0x5f, 0x48, 0x4f, 0x52, 0x4e, 0x10, 0x02, 0x12, 0x27, 0x0a, 0x23, 0x44, 0x4f, 0x54, 0x41, - 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x4f, 0x44, 0x10, - 0x03, 0x12, 0x24, 0x0a, 0x20, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x48, 0x4f, - 0x57, 0x43, 0x41, 0x53, 0x45, 0x10, 0x04, 0x12, 0x25, 0x0a, 0x21, 0x44, 0x4f, 0x54, 0x41, 0x5f, - 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x10, 0x05, 0x12, 0x28, - 0x0a, 0x24, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x41, 0x49, 0x54, 0x5f, 0x46, - 0x4f, 0x52, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x06, 0x2a, 0xe5, 0x01, 0x0a, 0x13, 0x45, 0x44, 0x6f, - 0x74, 0x61, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, - 0x12, 0x14, 0x0a, 0x10, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x53, 0x50, - 0x45, 0x45, 0x43, 0x48, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, - 0x4e, 0x49, 0x54, 0x5f, 0x53, 0x50, 0x45, 0x45, 0x43, 0x48, 0x5f, 0x4d, 0x55, 0x54, 0x45, 0x10, - 0x01, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x41, - 0x44, 0x44, 0x5f, 0x47, 0x45, 0x53, 0x54, 0x55, 0x52, 0x45, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, - 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, - 0x5f, 0x47, 0x45, 0x53, 0x54, 0x55, 0x52, 0x45, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x44, 0x4f, - 0x54, 0x41, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x41, - 0x4c, 0x4c, 0x5f, 0x47, 0x45, 0x53, 0x54, 0x55, 0x52, 0x45, 0x53, 0x10, 0x04, 0x12, 0x1a, 0x0a, - 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x46, 0x41, 0x44, 0x45, 0x5f, - 0x47, 0x45, 0x53, 0x54, 0x55, 0x52, 0x45, 0x10, 0x06, 0x12, 0x25, 0x0a, 0x21, 0x44, 0x4f, 0x54, - 0x41, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x53, 0x50, 0x45, 0x45, 0x43, 0x48, 0x5f, 0x43, 0x4c, - 0x49, 0x45, 0x4e, 0x54, 0x53, 0x49, 0x44, 0x45, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x53, 0x10, 0x07, - 0x2a, 0xac, 0x06, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, - 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x56, 0x45, 0x52, - 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x47, 0x4f, 0x4c, 0x44, 0x10, - 0x00, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, - 0x45, 0x52, 0x54, 0x5f, 0x44, 0x45, 0x4e, 0x59, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x56, - 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x43, 0x52, 0x49, - 0x54, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x56, 0x45, 0x52, 0x48, - 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x58, 0x50, 0x10, 0x03, 0x12, 0x25, - 0x0a, 0x21, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, - 0x5f, 0x42, 0x4f, 0x4e, 0x55, 0x53, 0x5f, 0x53, 0x50, 0x45, 0x4c, 0x4c, 0x5f, 0x44, 0x41, 0x4d, - 0x41, 0x47, 0x45, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, - 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x10, 0x05, 0x12, 0x19, - 0x0a, 0x15, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, - 0x5f, 0x44, 0x41, 0x4d, 0x41, 0x47, 0x45, 0x10, 0x06, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x56, 0x45, - 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x45, 0x56, 0x41, 0x44, - 0x45, 0x10, 0x07, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, - 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x08, 0x12, 0x26, 0x0a, - 0x22, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, - 0x42, 0x4f, 0x4e, 0x55, 0x53, 0x5f, 0x50, 0x4f, 0x49, 0x53, 0x4f, 0x4e, 0x5f, 0x44, 0x41, 0x4d, - 0x41, 0x47, 0x45, 0x10, 0x09, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, - 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x48, 0x45, 0x41, 0x4c, 0x10, 0x0a, 0x12, 0x1b, - 0x0a, 0x17, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, - 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x5f, 0x41, 0x44, 0x44, 0x10, 0x0b, 0x12, 0x1c, 0x0a, 0x18, 0x4f, - 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x4d, 0x41, - 0x4e, 0x41, 0x5f, 0x4c, 0x4f, 0x53, 0x53, 0x10, 0x0c, 0x12, 0x21, 0x0a, 0x1d, 0x4f, 0x56, 0x45, - 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x4c, 0x41, 0x53, 0x54, - 0x5f, 0x48, 0x49, 0x54, 0x5f, 0x45, 0x41, 0x52, 0x4c, 0x59, 0x10, 0x0d, 0x12, 0x21, 0x0a, 0x1d, - 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x4c, - 0x41, 0x53, 0x54, 0x5f, 0x48, 0x49, 0x54, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x10, 0x0e, 0x12, - 0x20, 0x0a, 0x1c, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, - 0x54, 0x5f, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x48, 0x49, 0x54, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x10, - 0x0f, 0x12, 0x20, 0x0a, 0x1c, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, - 0x45, 0x52, 0x54, 0x5f, 0x4d, 0x41, 0x47, 0x49, 0x43, 0x41, 0x4c, 0x5f, 0x42, 0x4c, 0x4f, 0x43, - 0x4b, 0x10, 0x10, 0x12, 0x22, 0x0a, 0x1e, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, - 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x44, - 0x41, 0x4d, 0x41, 0x47, 0x45, 0x10, 0x11, 0x12, 0x22, 0x0a, 0x1e, 0x4f, 0x56, 0x45, 0x52, 0x48, - 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, - 0x4e, 0x47, 0x5f, 0x44, 0x41, 0x4d, 0x41, 0x47, 0x45, 0x10, 0x12, 0x12, 0x21, 0x0a, 0x1d, 0x4f, - 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x44, 0x49, - 0x53, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x49, 0x53, 0x54, 0x10, 0x13, 0x12, 0x18, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, + 0x10, 0x01, 0x12, 0x29, 0x0a, 0x25, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, + 0x59, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, + 0x41, 0x52, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x48, 0x4f, 0x52, 0x4e, 0x10, 0x02, 0x12, 0x27, 0x0a, + 0x23, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x5f, 0x42, + 0x4c, 0x4f, 0x4f, 0x44, 0x10, 0x03, 0x12, 0x24, 0x0a, 0x20, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x52, + 0x45, 0x50, 0x4c, 0x41, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, + 0x54, 0x5f, 0x53, 0x48, 0x4f, 0x57, 0x43, 0x41, 0x53, 0x45, 0x10, 0x04, 0x12, 0x25, 0x0a, 0x21, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x5f, 0x47, 0x41, 0x4d, + 0x45, 0x10, 0x05, 0x12, 0x28, 0x0a, 0x24, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x52, 0x45, 0x50, 0x4c, + 0x41, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x57, + 0x41, 0x49, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x06, 0x2a, 0xe5, 0x01, + 0x0a, 0x13, 0x45, 0x44, 0x6f, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4e, + 0x49, 0x54, 0x5f, 0x53, 0x50, 0x45, 0x45, 0x43, 0x48, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x44, + 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x53, 0x50, 0x45, 0x45, 0x43, 0x48, 0x5f, + 0x4d, 0x55, 0x54, 0x45, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, + 0x4e, 0x49, 0x54, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x47, 0x45, 0x53, 0x54, 0x55, 0x52, 0x45, 0x10, + 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x52, + 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x47, 0x45, 0x53, 0x54, 0x55, 0x52, 0x45, 0x10, 0x03, 0x12, + 0x21, 0x0a, 0x1d, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x52, 0x45, 0x4d, + 0x4f, 0x56, 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x5f, 0x47, 0x45, 0x53, 0x54, 0x55, 0x52, 0x45, 0x53, + 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, + 0x46, 0x41, 0x44, 0x45, 0x5f, 0x47, 0x45, 0x53, 0x54, 0x55, 0x52, 0x45, 0x10, 0x06, 0x12, 0x25, + 0x0a, 0x21, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x53, 0x50, 0x45, 0x45, + 0x43, 0x48, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x53, 0x49, 0x44, 0x45, 0x5f, 0x52, 0x55, + 0x4c, 0x45, 0x53, 0x10, 0x07, 0x2a, 0xac, 0x06, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4f, + 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x12, 0x17, 0x0a, + 0x13, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, + 0x47, 0x4f, 0x4c, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, + 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x44, 0x45, 0x4e, 0x59, 0x10, 0x01, 0x12, + 0x1b, 0x0a, 0x17, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, + 0x54, 0x5f, 0x43, 0x52, 0x49, 0x54, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, + 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x58, + 0x50, 0x10, 0x03, 0x12, 0x25, 0x0a, 0x21, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, + 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x42, 0x4f, 0x4e, 0x55, 0x53, 0x5f, 0x53, 0x50, 0x45, 0x4c, + 0x4c, 0x5f, 0x44, 0x41, 0x4d, 0x41, 0x47, 0x45, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x56, + 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x4d, 0x49, 0x53, + 0x53, 0x10, 0x05, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, + 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x44, 0x41, 0x4d, 0x41, 0x47, 0x45, 0x10, 0x06, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, - 0x5f, 0x44, 0x45, 0x41, 0x54, 0x48, 0x10, 0x14, 0x12, 0x1a, 0x0a, 0x16, 0x4f, 0x56, 0x45, 0x52, + 0x5f, 0x45, 0x56, 0x41, 0x44, 0x45, 0x10, 0x07, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, - 0x45, 0x44, 0x10, 0x15, 0x12, 0x20, 0x0a, 0x1c, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, - 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x52, 0x45, 0x43, 0x45, - 0x49, 0x56, 0x45, 0x44, 0x10, 0x16, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, - 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x44, 0x10, 0x17, - 0x12, 0x1e, 0x0a, 0x1a, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, - 0x52, 0x54, 0x5f, 0x44, 0x45, 0x41, 0x44, 0x4c, 0x59, 0x5f, 0x42, 0x4c, 0x4f, 0x57, 0x10, 0x18, - 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, - 0x52, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x10, 0x19, 0x2a, - 0x6b, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x52, 0x4f, 0x53, 0x48, 0x41, 0x4e, 0x5f, 0x50, - 0x48, 0x41, 0x53, 0x45, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, 0x53, 0x52, 0x53, 0x50, 0x5f, 0x52, - 0x4f, 0x53, 0x48, 0x41, 0x4e, 0x5f, 0x41, 0x4c, 0x49, 0x56, 0x45, 0x10, 0x00, 0x12, 0x1c, 0x0a, - 0x18, 0x6b, 0x5f, 0x53, 0x52, 0x53, 0x50, 0x5f, 0x52, 0x4f, 0x53, 0x48, 0x41, 0x4e, 0x5f, 0x42, - 0x41, 0x53, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x52, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x6b, - 0x5f, 0x53, 0x52, 0x53, 0x50, 0x5f, 0x52, 0x4f, 0x53, 0x48, 0x41, 0x4e, 0x5f, 0x56, 0x49, 0x53, - 0x49, 0x42, 0x4c, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x52, 0x10, 0x02, 0x2a, 0x81, 0x04, 0x0a, - 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, - 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, 0x59, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, - 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, - 0x1d, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x5f, 0x4c, 0x41, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x1a, - 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x4d, 0x49, 0x44, 0x5f, 0x4c, 0x41, 0x4e, 0x45, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x4f, - 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x4f, 0x50, 0x5f, - 0x4c, 0x41, 0x4e, 0x45, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, - 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x44, 0x49, 0x41, 0x4e, 0x54, 0x5f, - 0x4a, 0x55, 0x4e, 0x47, 0x4c, 0x45, 0x10, 0x04, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, - 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x5f, 0x4a, - 0x55, 0x4e, 0x47, 0x4c, 0x45, 0x10, 0x05, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, - 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x44, 0x49, 0x41, 0x4e, 0x54, - 0x5f, 0x41, 0x4e, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x53, 0x10, 0x06, 0x12, 0x1f, 0x0a, 0x1b, 0x44, - 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x49, 0x52, - 0x45, 0x5f, 0x41, 0x4e, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x53, 0x10, 0x07, 0x12, 0x25, 0x0a, 0x21, + 0x10, 0x08, 0x12, 0x26, 0x0a, 0x22, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, + 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x42, 0x4f, 0x4e, 0x55, 0x53, 0x5f, 0x50, 0x4f, 0x49, 0x53, 0x4f, + 0x4e, 0x5f, 0x44, 0x41, 0x4d, 0x41, 0x47, 0x45, 0x10, 0x09, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x56, + 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x48, 0x45, 0x41, + 0x4c, 0x10, 0x0a, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, + 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x5f, 0x41, 0x44, 0x44, 0x10, 0x0b, + 0x12, 0x1c, 0x0a, 0x18, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, + 0x52, 0x54, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x5f, 0x4c, 0x4f, 0x53, 0x53, 0x10, 0x0c, 0x12, 0x21, + 0x0a, 0x1d, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, + 0x5f, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x48, 0x49, 0x54, 0x5f, 0x45, 0x41, 0x52, 0x4c, 0x59, 0x10, + 0x0d, 0x12, 0x21, 0x0a, 0x1d, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, + 0x45, 0x52, 0x54, 0x5f, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x48, 0x49, 0x54, 0x5f, 0x43, 0x4c, 0x4f, + 0x53, 0x45, 0x10, 0x0e, 0x12, 0x20, 0x0a, 0x1c, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, + 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x48, 0x49, 0x54, 0x5f, + 0x4d, 0x49, 0x53, 0x53, 0x10, 0x0f, 0x12, 0x20, 0x0a, 0x1c, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, + 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x4d, 0x41, 0x47, 0x49, 0x43, 0x41, 0x4c, + 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x10, 0x12, 0x22, 0x0a, 0x1e, 0x4f, 0x56, 0x45, 0x52, + 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x43, 0x4f, 0x4d, + 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x41, 0x4d, 0x41, 0x47, 0x45, 0x10, 0x11, 0x12, 0x22, 0x0a, 0x1e, + 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x4f, + 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x41, 0x4d, 0x41, 0x47, 0x45, 0x10, 0x12, + 0x12, 0x21, 0x0a, 0x1d, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, + 0x52, 0x54, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x49, 0x53, + 0x54, 0x10, 0x13, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, + 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x44, 0x45, 0x41, 0x54, 0x48, 0x10, 0x14, 0x12, 0x1a, 0x0a, + 0x16, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, + 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x15, 0x12, 0x20, 0x0a, 0x1c, 0x4f, 0x56, 0x45, + 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x49, 0x54, 0x45, 0x4d, + 0x5f, 0x52, 0x45, 0x43, 0x45, 0x49, 0x56, 0x45, 0x44, 0x10, 0x16, 0x12, 0x18, 0x0a, 0x14, 0x4f, + 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x53, 0x48, + 0x41, 0x52, 0x44, 0x10, 0x17, 0x12, 0x1e, 0x0a, 0x1a, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, + 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x44, 0x45, 0x41, 0x44, 0x4c, 0x59, 0x5f, 0x42, + 0x4c, 0x4f, 0x57, 0x10, 0x18, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, + 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x5f, 0x4d, 0x49, + 0x53, 0x53, 0x10, 0x19, 0x2a, 0x6b, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x52, 0x4f, 0x53, + 0x48, 0x41, 0x4e, 0x5f, 0x50, 0x48, 0x41, 0x53, 0x45, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, 0x53, + 0x52, 0x53, 0x50, 0x5f, 0x52, 0x4f, 0x53, 0x48, 0x41, 0x4e, 0x5f, 0x41, 0x4c, 0x49, 0x56, 0x45, + 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x6b, 0x5f, 0x53, 0x52, 0x53, 0x50, 0x5f, 0x52, 0x4f, 0x53, + 0x48, 0x41, 0x4e, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x52, 0x10, 0x01, + 0x12, 0x1f, 0x0a, 0x1b, 0x6b, 0x5f, 0x53, 0x52, 0x53, 0x50, 0x5f, 0x52, 0x4f, 0x53, 0x48, 0x41, + 0x4e, 0x5f, 0x56, 0x49, 0x53, 0x49, 0x42, 0x4c, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x52, 0x10, + 0x02, 0x2a, 0x81, 0x04, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, 0x59, 0x12, 0x16, 0x0a, 0x12, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, + 0x4e, 0x45, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, + 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x5f, 0x4c, 0x41, 0x4e, + 0x45, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x49, 0x44, 0x5f, 0x4c, 0x41, 0x4e, 0x45, 0x10, 0x02, 0x12, + 0x1a, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x54, 0x4f, 0x50, 0x5f, 0x4c, 0x41, 0x4e, 0x45, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, 0x44, + 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x44, + 0x49, 0x41, 0x4e, 0x54, 0x5f, 0x4a, 0x55, 0x4e, 0x47, 0x4c, 0x45, 0x10, 0x04, 0x12, 0x1d, 0x0a, + 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, + 0x49, 0x52, 0x45, 0x5f, 0x4a, 0x55, 0x4e, 0x47, 0x4c, 0x45, 0x10, 0x05, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x41, - 0x44, 0x49, 0x41, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x43, 0x52, 0x45, 0x54, 0x5f, 0x53, 0x48, 0x4f, - 0x50, 0x10, 0x08, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x5f, 0x53, 0x45, 0x43, 0x52, 0x45, 0x54, - 0x5f, 0x53, 0x48, 0x4f, 0x50, 0x10, 0x09, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, - 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x49, 0x56, 0x45, 0x52, 0x10, 0x0a, - 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x52, 0x4f, 0x53, 0x48, 0x41, 0x4e, 0x5f, 0x50, 0x49, 0x54, 0x10, 0x0b, 0x12, 0x1e, - 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x52, 0x41, 0x44, 0x49, 0x41, 0x4e, 0x54, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0x0c, 0x12, 0x1b, - 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x44, 0x49, 0x52, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0x0d, 0x12, 0x1a, 0x0a, 0x16, 0x44, - 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x4f, 0x55, - 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x10, 0x0e, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, - 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x10, 0x0f, - 0x2a, 0xe6, 0x01, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, - 0x59, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x12, 0x1c, 0x0a, - 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x41, - 0x52, 0x47, 0x45, 0x54, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x44, - 0x4f, 0x54, 0x41, 0x5f, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x41, 0x52, 0x47, - 0x45, 0x54, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x44, 0x4f, 0x54, + 0x44, 0x49, 0x41, 0x4e, 0x54, 0x5f, 0x41, 0x4e, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x53, 0x10, 0x06, + 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x5f, 0x41, 0x4e, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x53, 0x10, + 0x07, 0x12, 0x25, 0x0a, 0x21, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x44, 0x49, 0x41, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x43, 0x52, 0x45, + 0x54, 0x5f, 0x53, 0x48, 0x4f, 0x50, 0x10, 0x08, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, + 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x5f, 0x53, + 0x45, 0x43, 0x52, 0x45, 0x54, 0x5f, 0x53, 0x48, 0x4f, 0x50, 0x10, 0x09, 0x12, 0x17, 0x0a, 0x13, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x49, + 0x56, 0x45, 0x52, 0x10, 0x0a, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, + 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x4f, 0x53, 0x48, 0x41, 0x4e, 0x5f, 0x50, 0x49, + 0x54, 0x10, 0x0b, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x44, 0x49, 0x41, 0x4e, 0x54, 0x5f, 0x42, 0x41, 0x53, + 0x45, 0x10, 0x0c, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0x0d, + 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x10, 0x0e, 0x12, 0x17, 0x0a, 0x13, + 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x54, + 0x48, 0x45, 0x52, 0x10, 0x0f, 0x2a, 0xe6, 0x01, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x41, + 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x41, 0x42, 0x49, 0x4c, 0x49, + 0x54, 0x59, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, + 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, + 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x10, 0x01, 0x12, 0x21, + 0x0a, 0x1d, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x54, + 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x59, 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x10, + 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, + 0x59, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x59, 0x5f, 0x43, 0x52, + 0x45, 0x45, 0x50, 0x10, 0x03, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x41, 0x42, + 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x45, 0x4e, 0x45, + 0x4d, 0x59, 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x10, 0x04, 0x12, 0x23, 0x0a, 0x1f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, - 0x5f, 0x41, 0x4c, 0x4c, 0x59, 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, - 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x41, 0x52, - 0x47, 0x45, 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x59, 0x5f, 0x43, 0x52, 0x45, 0x45, 0x50, 0x10, 0x03, - 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, - 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x45, 0x4e, 0x45, 0x4d, 0x59, 0x5f, 0x48, 0x45, - 0x52, 0x4f, 0x10, 0x04, 0x12, 0x23, 0x0a, 0x1f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x41, 0x42, 0x49, - 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x45, 0x4e, 0x45, 0x4d, - 0x59, 0x5f, 0x43, 0x52, 0x45, 0x45, 0x50, 0x10, 0x05, 0x2a, 0x98, 0x08, 0x0a, 0x0d, 0x45, 0x48, - 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x6b, - 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4e, - 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1e, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, - 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x41, 0x78, 0x65, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x10, 0xd0, 0x0f, 0x12, 0x27, 0x0a, 0x22, 0x6b, 0x5f, - 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x42, 0x61, - 0x74, 0x74, 0x6c, 0x65, 0x48, 0x75, 0x6e, 0x67, 0x65, 0x72, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, - 0x10, 0xd1, 0x0f, 0x12, 0x27, 0x0a, 0x22, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, - 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x65, - 0x6c, 0x69, 0x78, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x10, 0xd2, 0x0f, 0x12, 0x27, 0x0a, 0x22, - 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, - 0x43, 0x75, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x61, 0x64, 0x65, 0x44, 0x61, 0x6d, 0x61, - 0x67, 0x65, 0x10, 0xd3, 0x0f, 0x12, 0x2c, 0x0a, 0x27, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, - 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x42, 0x65, 0x72, 0x73, 0x65, 0x72, 0x6b, - 0x65, 0x72, 0x73, 0x43, 0x61, 0x6c, 0x6c, 0x43, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x10, 0xd4, 0x0f, 0x12, 0x33, 0x0a, 0x2e, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, - 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x42, 0x65, 0x72, 0x73, 0x65, 0x72, 0x6b, 0x65, 0x72, - 0x73, 0x43, 0x61, 0x6c, 0x6c, 0x48, 0x65, 0x72, 0x6f, 0x65, 0x73, 0x48, 0x69, 0x74, 0x41, 0x76, - 0x65, 0x72, 0x61, 0x67, 0x65, 0x10, 0xd5, 0x0f, 0x12, 0x30, 0x0a, 0x2b, 0x6b, 0x5f, 0x45, 0x48, - 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x42, 0x65, 0x72, 0x73, - 0x65, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x43, 0x61, 0x6c, 0x6c, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x55, - 0x6e, 0x69, 0x74, 0x73, 0x48, 0x69, 0x74, 0x10, 0xd6, 0x0f, 0x12, 0x33, 0x0a, 0x2e, 0x6b, 0x5f, + 0x5f, 0x45, 0x4e, 0x45, 0x4d, 0x59, 0x5f, 0x43, 0x52, 0x45, 0x45, 0x50, 0x10, 0x05, 0x2a, 0x98, + 0x08, 0x0a, 0x0d, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x18, 0x0a, 0x14, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x5f, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1e, 0x6b, 0x5f, + 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x41, 0x78, + 0x65, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x10, 0xd0, 0x0f, 0x12, + 0x27, 0x0a, 0x22, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x5f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x48, 0x75, 0x6e, 0x67, 0x65, 0x72, 0x44, + 0x61, 0x6d, 0x61, 0x67, 0x65, 0x10, 0xd1, 0x0f, 0x12, 0x27, 0x0a, 0x22, 0x6b, 0x5f, 0x45, 0x48, + 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x65, 0x6c, 0x69, 0x78, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x10, 0xd2, + 0x0f, 0x12, 0x27, 0x0a, 0x22, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x75, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x61, 0x64, + 0x65, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x10, 0xd3, 0x0f, 0x12, 0x2c, 0x0a, 0x27, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x42, 0x65, - 0x72, 0x73, 0x65, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x43, 0x61, 0x6c, 0x6c, 0x48, 0x65, 0x72, 0x6f, - 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x73, 0x54, 0x61, 0x6b, 0x65, 0x6e, 0x10, 0xd7, 0x0f, 0x12, - 0x34, 0x0a, 0x2f, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, + 0x72, 0x73, 0x65, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x43, 0x61, 0x6c, 0x6c, 0x43, 0x61, 0x73, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xd4, 0x0f, 0x12, 0x33, 0x0a, 0x2e, 0x6b, 0x5f, 0x45, 0x48, + 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x42, 0x65, 0x72, 0x73, + 0x65, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x43, 0x61, 0x6c, 0x6c, 0x48, 0x65, 0x72, 0x6f, 0x65, 0x73, + 0x48, 0x69, 0x74, 0x41, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x10, 0xd5, 0x0f, 0x12, 0x30, 0x0a, + 0x2b, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x5f, 0x42, 0x65, 0x72, 0x73, 0x65, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x43, 0x61, 0x6c, 0x6c, 0x4f, + 0x74, 0x68, 0x65, 0x72, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x48, 0x69, 0x74, 0x10, 0xd6, 0x0f, 0x12, + 0x33, 0x0a, 0x2e, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x42, 0x65, 0x72, 0x73, 0x65, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x43, 0x61, 0x6c, - 0x6c, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x73, 0x54, 0x61, 0x6b, - 0x65, 0x6e, 0x10, 0xd8, 0x0f, 0x12, 0x2a, 0x0a, 0x25, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, - 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x48, - 0x75, 0x6e, 0x67, 0x65, 0x72, 0x43, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xd9, - 0x0f, 0x12, 0x32, 0x0a, 0x2d, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x5f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x48, 0x75, 0x6e, 0x67, 0x65, - 0x72, 0x50, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x10, 0xda, 0x0f, 0x12, 0x30, 0x0a, 0x2b, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, - 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x48, - 0x75, 0x6e, 0x67, 0x65, 0x72, 0x41, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x44, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xdb, 0x0f, 0x12, 0x2a, 0x0a, 0x25, 0x6b, 0x5f, 0x45, 0x48, 0x65, - 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x65, 0x6c, 0x69, 0x78, 0x50, 0x72, 0x6f, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x10, 0xdc, 0x0f, 0x12, 0x2e, 0x0a, 0x29, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, - 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x65, - 0x6c, 0x69, 0x78, 0x48, 0x65, 0x72, 0x6f, 0x50, 0x72, 0x6f, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x10, 0xdd, 0x0f, 0x12, 0x31, 0x0a, 0x2c, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, - 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x65, - 0x6c, 0x69, 0x78, 0x48, 0x65, 0x72, 0x6f, 0x65, 0x73, 0x48, 0x69, 0x74, 0x41, 0x76, 0x65, 0x72, - 0x61, 0x67, 0x65, 0x10, 0xde, 0x0f, 0x12, 0x33, 0x0a, 0x2e, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, - 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x65, 0x6c, 0x69, 0x78, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x55, 0x6e, 0x69, 0x74, 0x73, - 0x48, 0x69, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xdf, 0x0f, 0x12, 0x2a, 0x0a, 0x25, 0x6b, + 0x6c, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x73, 0x54, 0x61, 0x6b, 0x65, + 0x6e, 0x10, 0xd7, 0x0f, 0x12, 0x34, 0x0a, 0x2f, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, + 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x42, 0x65, 0x72, 0x73, 0x65, 0x72, 0x6b, 0x65, + 0x72, 0x73, 0x43, 0x61, 0x6c, 0x6c, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x41, 0x74, 0x74, 0x61, 0x63, + 0x6b, 0x73, 0x54, 0x61, 0x6b, 0x65, 0x6e, 0x10, 0xd8, 0x0f, 0x12, 0x2a, 0x0a, 0x25, 0x6b, 0x5f, + 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x42, 0x61, + 0x74, 0x74, 0x6c, 0x65, 0x48, 0x75, 0x6e, 0x67, 0x65, 0x72, 0x43, 0x61, 0x73, 0x74, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x10, 0xd9, 0x0f, 0x12, 0x32, 0x0a, 0x2d, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, + 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, + 0x48, 0x75, 0x6e, 0x67, 0x65, 0x72, 0x50, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x44, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xda, 0x0f, 0x12, 0x30, 0x0a, 0x2b, 0x6b, 0x5f, + 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x42, 0x61, + 0x74, 0x74, 0x6c, 0x65, 0x48, 0x75, 0x6e, 0x67, 0x65, 0x72, 0x41, 0x76, 0x65, 0x72, 0x61, 0x67, + 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xdb, 0x0f, 0x12, 0x2a, 0x0a, 0x25, + 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x65, 0x6c, 0x69, 0x78, 0x50, 0x72, 0x6f, 0x63, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xdc, 0x0f, 0x12, 0x2e, 0x0a, 0x29, 0x6b, 0x5f, 0x45, 0x48, + 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x65, 0x6c, 0x69, 0x78, 0x48, 0x65, 0x72, 0x6f, 0x50, 0x72, 0x6f, 0x63, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xdd, 0x0f, 0x12, 0x31, 0x0a, 0x2c, 0x6b, 0x5f, 0x45, 0x48, + 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x65, 0x6c, 0x69, 0x78, 0x48, 0x65, 0x72, 0x6f, 0x65, 0x73, 0x48, 0x69, + 0x74, 0x41, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x10, 0xde, 0x0f, 0x12, 0x33, 0x0a, 0x2e, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, - 0x75, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x61, 0x64, 0x65, 0x43, 0x61, 0x73, 0x74, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xe0, 0x0f, 0x12, 0x2a, 0x0a, 0x25, 0x6b, 0x5f, 0x45, 0x48, 0x65, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x65, 0x6c, 0x69, 0x78, 0x4f, 0x74, 0x68, 0x65, 0x72, + 0x55, 0x6e, 0x69, 0x74, 0x73, 0x48, 0x69, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xdf, 0x0f, + 0x12, 0x2a, 0x0a, 0x25, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x5f, 0x43, 0x75, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x61, 0x64, 0x65, + 0x43, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xe0, 0x0f, 0x12, 0x2a, 0x0a, 0x25, + 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, + 0x43, 0x75, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x61, 0x64, 0x65, 0x4b, 0x69, 0x6c, 0x6c, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xe1, 0x0f, 0x12, 0x34, 0x0a, 0x2f, 0x6b, 0x5f, 0x45, 0x48, + 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x75, 0x6c, 0x6c, + 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x61, 0x64, 0x65, 0x41, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x48, + 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x75, 0x6c, 0x6c, 0x65, 0x64, 0x10, 0xe2, 0x0f, 0x12, 0x37, + 0x0a, 0x32, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x5f, 0x43, 0x75, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x61, 0x64, 0x65, 0x41, 0x76, + 0x65, 0x72, 0x61, 0x67, 0x65, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x10, 0xe3, 0x0f, 0x12, 0x30, 0x0a, 0x2b, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x75, 0x6c, 0x6c, 0x69, - 0x6e, 0x67, 0x42, 0x6c, 0x61, 0x64, 0x65, 0x4b, 0x69, 0x6c, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x10, 0xe1, 0x0f, 0x12, 0x34, 0x0a, 0x2f, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, - 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x75, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x42, 0x6c, - 0x61, 0x64, 0x65, 0x41, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, - 0x43, 0x75, 0x6c, 0x6c, 0x65, 0x64, 0x10, 0xe2, 0x0f, 0x12, 0x37, 0x0a, 0x32, 0x6b, 0x5f, 0x45, - 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x75, 0x6c, - 0x6c, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x61, 0x64, 0x65, 0x41, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, - 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x10, - 0xe3, 0x0f, 0x12, 0x30, 0x0a, 0x2b, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x75, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x61, - 0x64, 0x65, 0x48, 0x65, 0x72, 0x6f, 0x42, 0x75, 0x66, 0x66, 0x41, 0x76, 0x65, 0x72, 0x61, 0x67, - 0x65, 0x10, 0xe4, 0x0f, 0x2a, 0xe4, 0x04, 0x0a, 0x17, 0x45, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x56, 0x6f, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, - 0x12, 0x1a, 0x0a, 0x16, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x44, 0x65, 0x6e, 0x69, 0x65, 0x64, - 0x43, 0x68, 0x61, 0x74, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, - 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x44, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x50, 0x61, 0x72, 0x74, - 0x6e, 0x65, 0x72, 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x44, - 0x65, 0x6e, 0x69, 0x65, 0x64, 0x48, 0x4c, 0x54, 0x56, 0x54, 0x61, 0x6c, 0x6b, 0x65, 0x72, 0x4e, - 0x6f, 0x74, 0x53, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x03, 0x12, 0x24, 0x0a, - 0x20, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x44, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x48, 0x4c, 0x54, - 0x56, 0x4e, 0x6f, 0x54, 0x61, 0x6c, 0x6b, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, - 0x44, 0x10, 0x04, 0x12, 0x28, 0x0a, 0x24, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x44, 0x65, 0x6e, - 0x69, 0x65, 0x64, 0x48, 0x4c, 0x54, 0x56, 0x54, 0x61, 0x6c, 0x6b, 0x65, 0x72, 0x4e, 0x6f, 0x74, - 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x10, 0x05, 0x12, 0x1d, 0x0a, - 0x19, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x44, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x54, 0x65, 0x61, - 0x6d, 0x53, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x06, 0x12, 0x17, 0x0a, 0x13, - 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x44, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x10, 0x08, 0x12, 0x1c, 0x0a, 0x18, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x44, - 0x65, 0x6e, 0x69, 0x65, 0x64, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x61, 0x63, - 0x68, 0x10, 0x09, 0x12, 0x10, 0x0a, 0x0c, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x44, 0x65, 0x6e, - 0x69, 0x65, 0x64, 0x10, 0x40, 0x12, 0x26, 0x0a, 0x22, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x41, - 0x6c, 0x6c, 0x6f, 0x77, 0x48, 0x4c, 0x54, 0x56, 0x54, 0x61, 0x6c, 0x6b, 0x65, 0x72, 0x49, 0x73, - 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x10, 0x41, 0x12, 0x1c, 0x0a, - 0x18, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x42, 0x72, - 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x10, 0x42, 0x12, 0x16, 0x0a, 0x12, 0x6b, - 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x41, 0x6c, 0x6c, 0x43, 0x68, 0x61, - 0x74, 0x10, 0x43, 0x12, 0x1d, 0x0a, 0x19, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x41, 0x6c, 0x6c, - 0x6f, 0x77, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x43, 0x6f, 0x61, 0x63, 0x68, - 0x10, 0x44, 0x12, 0x1c, 0x0a, 0x18, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x41, 0x6c, 0x6c, 0x6f, - 0x77, 0x46, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x10, 0x45, - 0x12, 0x1c, 0x0a, 0x18, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x54, - 0x61, 0x6c, 0x6b, 0x65, 0x72, 0x49, 0x73, 0x43, 0x6f, 0x61, 0x63, 0x68, 0x10, 0x46, 0x12, 0x1c, - 0x0a, 0x18, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x61, - 0x63, 0x68, 0x48, 0x65, 0x61, 0x72, 0x54, 0x65, 0x61, 0x6d, 0x10, 0x47, 0x12, 0x17, 0x0a, 0x13, - 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x53, 0x61, 0x6d, 0x65, 0x54, - 0x65, 0x61, 0x6d, 0x10, 0x48, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x41, - 0x6c, 0x6c, 0x6f, 0x77, 0x53, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x10, 0x49, 0x12, 0x1b, - 0x0a, 0x17, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x50, 0x72, 0x69, - 0x76, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x61, 0x63, 0x68, 0x10, 0x4a, 0x2a, 0x42, 0x0a, 0x10, 0x45, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, - 0x12, 0x0a, 0x0e, 0x65, 0x50, 0x45, 0x5f, 0x46, 0x69, 0x72, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x6f, - 0x64, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x65, 0x50, 0x45, 0x5f, 0x4b, 0x69, 0x6c, 0x6c, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6b, 0x5f, 0x67, 0x6f, 0x64, 0x6c, 0x69, 0x6b, 0x65, 0x10, 0x01, 0x42, - 0x25, 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x6f, - 0x74, 0x61, 0x62, 0x75, 0x66, 0x66, 0x2f, 0x6d, 0x61, 0x6e, 0x74, 0x61, 0x2f, 0x64, 0x6f, 0x74, - 0x61, 0x3b, 0x64, 0x6f, 0x74, 0x61, + 0x6e, 0x67, 0x42, 0x6c, 0x61, 0x64, 0x65, 0x48, 0x65, 0x72, 0x6f, 0x42, 0x75, 0x66, 0x66, 0x41, + 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x10, 0xe4, 0x0f, 0x2a, 0xe4, 0x04, 0x0a, 0x17, 0x45, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x4e, + 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x44, + 0x65, 0x6e, 0x69, 0x65, 0x64, 0x43, 0x68, 0x61, 0x74, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x10, + 0x01, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x44, 0x65, 0x6e, 0x69, 0x65, + 0x64, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22, 0x6b, 0x50, + 0x56, 0x4c, 0x53, 0x5f, 0x44, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x48, 0x4c, 0x54, 0x56, 0x54, 0x61, + 0x6c, 0x6b, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x53, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, + 0x10, 0x03, 0x12, 0x24, 0x0a, 0x20, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x44, 0x65, 0x6e, 0x69, + 0x65, 0x64, 0x48, 0x4c, 0x54, 0x56, 0x4e, 0x6f, 0x54, 0x61, 0x6c, 0x6b, 0x65, 0x72, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x49, 0x44, 0x10, 0x04, 0x12, 0x28, 0x0a, 0x24, 0x6b, 0x50, 0x56, 0x4c, + 0x53, 0x5f, 0x44, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x48, 0x4c, 0x54, 0x56, 0x54, 0x61, 0x6c, 0x6b, + 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, + 0x10, 0x05, 0x12, 0x1d, 0x0a, 0x19, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x44, 0x65, 0x6e, 0x69, + 0x65, 0x64, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x10, + 0x06, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x44, 0x65, 0x6e, 0x69, 0x65, + 0x64, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x10, 0x08, 0x12, 0x1c, 0x0a, 0x18, 0x6b, 0x50, + 0x56, 0x4c, 0x53, 0x5f, 0x44, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, + 0x65, 0x43, 0x6f, 0x61, 0x63, 0x68, 0x10, 0x09, 0x12, 0x10, 0x0a, 0x0c, 0x6b, 0x50, 0x56, 0x4c, + 0x53, 0x5f, 0x44, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x10, 0x40, 0x12, 0x26, 0x0a, 0x22, 0x6b, 0x50, + 0x56, 0x4c, 0x53, 0x5f, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x48, 0x4c, 0x54, 0x56, 0x54, 0x61, 0x6c, + 0x6b, 0x65, 0x72, 0x49, 0x73, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, + 0x10, 0x41, 0x12, 0x1c, 0x0a, 0x18, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x41, 0x6c, 0x6c, 0x6f, + 0x77, 0x43, 0x6f, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x10, 0x42, + 0x12, 0x16, 0x0a, 0x12, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x41, + 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x74, 0x10, 0x43, 0x12, 0x1d, 0x0a, 0x19, 0x6b, 0x50, 0x56, 0x4c, + 0x53, 0x5f, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x54, 0x6f, + 0x43, 0x6f, 0x61, 0x63, 0x68, 0x10, 0x44, 0x12, 0x1c, 0x0a, 0x18, 0x6b, 0x50, 0x56, 0x4c, 0x53, + 0x5f, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x46, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x10, 0x45, 0x12, 0x1c, 0x0a, 0x18, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x41, + 0x6c, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x6c, 0x6b, 0x65, 0x72, 0x49, 0x73, 0x43, 0x6f, 0x61, 0x63, + 0x68, 0x10, 0x46, 0x12, 0x1c, 0x0a, 0x18, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x41, 0x6c, 0x6c, + 0x6f, 0x77, 0x43, 0x6f, 0x61, 0x63, 0x68, 0x48, 0x65, 0x61, 0x72, 0x54, 0x65, 0x61, 0x6d, 0x10, + 0x47, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x41, 0x6c, 0x6c, 0x6f, 0x77, + 0x53, 0x61, 0x6d, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x10, 0x48, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x50, + 0x56, 0x4c, 0x53, 0x5f, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x53, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, + 0x65, 0x10, 0x49, 0x12, 0x1b, 0x0a, 0x17, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x41, 0x6c, 0x6c, + 0x6f, 0x77, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x61, 0x63, 0x68, 0x10, 0x4a, + 0x2a, 0x42, 0x0a, 0x10, 0x45, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x0e, 0x65, 0x50, 0x45, 0x5f, 0x46, 0x69, 0x72, 0x73, + 0x74, 0x42, 0x6c, 0x6f, 0x6f, 0x64, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x65, 0x50, 0x45, 0x5f, + 0x4b, 0x69, 0x6c, 0x6c, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6b, 0x5f, 0x67, 0x6f, 0x64, 0x6c, 0x69, + 0x6b, 0x65, 0x10, 0x01, 0x42, 0x25, 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x62, 0x75, 0x66, 0x66, 0x2f, 0x6d, 0x61, 0x6e, 0x74, + 0x61, 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x3b, 0x64, 0x6f, 0x74, 0x61, } var ( @@ -17423,8 +17186,8 @@ func file_dota_usermessages_proto_rawDescGZIP() []byte { return file_dota_usermessages_proto_rawDescData } -var file_dota_usermessages_proto_enumTypes = make([]protoimpl.EnumInfo, 17) -var file_dota_usermessages_proto_msgTypes = make([]protoimpl.MessageInfo, 184) +var file_dota_usermessages_proto_enumTypes = make([]protoimpl.EnumInfo, 16) +var file_dota_usermessages_proto_msgTypes = make([]protoimpl.MessageInfo, 182) var file_dota_usermessages_proto_goTypes = []interface{}{ (EDotaUserMessages)(0), // 0: dota.EDotaUserMessages (DOTA_CHAT_MESSAGE)(0), // 1: dota.DOTA_CHAT_MESSAGE @@ -17440,291 +17203,286 @@ var file_dota_usermessages_proto_goTypes = []interface{}{ (EHeroStatType)(0), // 11: dota.EHeroStatType (EPlayerVoiceListenState)(0), // 12: dota.EPlayerVoiceListenState (EProjectionEvent)(0), // 13: dota.EProjectionEvent - (CDOTAUserMsg_PredictionResult_Prediction_EResult)(0), // 14: dota.CDOTAUserMsg_PredictionResult.Prediction.EResult - (CDOTAResponseQuerySerialized_Fact_ValueType)(0), // 15: dota.CDOTAResponseQuerySerialized.Fact.ValueType - (CDOTAUserMsg_GuildChallenge_Progress_EChallengeType)(0), // 16: dota.CDOTAUserMsg_GuildChallenge_Progress.EChallengeType - (*CDOTAUserMsg_AIDebugLine)(nil), // 17: dota.CDOTAUserMsg_AIDebugLine - (*CDOTAUserMsg_Ping)(nil), // 18: dota.CDOTAUserMsg_Ping - (*CDOTAUserMsg_SwapVerify)(nil), // 19: dota.CDOTAUserMsg_SwapVerify - (*CDOTAUserMsg_ChatEvent)(nil), // 20: dota.CDOTAUserMsg_ChatEvent - (*CDOTAUserMsg_BotChat)(nil), // 21: dota.CDOTAUserMsg_BotChat - (*CDOTAUserMsg_CombatHeroPositions)(nil), // 22: dota.CDOTAUserMsg_CombatHeroPositions - (*CDOTAUserMsg_CombatLogBulkData)(nil), // 23: dota.CDOTAUserMsg_CombatLogBulkData - (*CDOTAUserMsg_ProjectileParticleCPData)(nil), // 24: dota.CDOTAUserMsg_ProjectileParticleCPData - (*CDOTAUserMsg_UpdateLinearProjectileCPData)(nil), // 25: dota.CDOTAUserMsg_UpdateLinearProjectileCPData - (*CDOTAUserMsg_MiniKillCamInfo)(nil), // 26: dota.CDOTAUserMsg_MiniKillCamInfo - (*CDOTAUserMsg_GlobalLightColor)(nil), // 27: dota.CDOTAUserMsg_GlobalLightColor - (*CDOTAUserMsg_GlobalLightDirection)(nil), // 28: dota.CDOTAUserMsg_GlobalLightDirection - (*CDOTAUserMsg_LocationPing)(nil), // 29: dota.CDOTAUserMsg_LocationPing - (*CDOTAUserMsg_PingConfirmation)(nil), // 30: dota.CDOTAUserMsg_PingConfirmation - (*CDOTAUserMsg_ItemAlert)(nil), // 31: dota.CDOTAUserMsg_ItemAlert - (*CDOTAUserMsg_EnemyItemAlert)(nil), // 32: dota.CDOTAUserMsg_EnemyItemAlert - (*CDOTAUserMsg_ModifierAlert)(nil), // 33: dota.CDOTAUserMsg_ModifierAlert - (*CDOTAUserMsg_HPManaAlert)(nil), // 34: dota.CDOTAUserMsg_HPManaAlert - (*CDOTAUserMsg_NeutralCampAlert)(nil), // 35: dota.CDOTAUserMsg_NeutralCampAlert - (*CDOTAUserMsg_GlyphAlert)(nil), // 36: dota.CDOTAUserMsg_GlyphAlert - (*CDOTAUserMsg_RadarAlert)(nil), // 37: dota.CDOTAUserMsg_RadarAlert - (*CDOTAUserMsg_WillPurchaseAlert)(nil), // 38: dota.CDOTAUserMsg_WillPurchaseAlert - (*CDOTAUserMsg_EmptyTeleportAlert)(nil), // 39: dota.CDOTAUserMsg_EmptyTeleportAlert - (*CDOTAUserMsg_MarsArenaOfBloodAttack)(nil), // 40: dota.CDOTAUserMsg_MarsArenaOfBloodAttack - (*CDOTAEntityMsg_InvokerSpellCast)(nil), // 41: dota.CDOTAEntityMsg_InvokerSpellCast - (*CDOTAUserMsg_BuyBackStateAlert)(nil), // 42: dota.CDOTAUserMsg_BuyBackStateAlert - (*CDOTAUserMsg_QuickBuyAlert)(nil), // 43: dota.CDOTAUserMsg_QuickBuyAlert - (*CDOTAUserMsg_CourierKilledAlert)(nil), // 44: dota.CDOTAUserMsg_CourierKilledAlert - (*CDOTAUserMsg_MinimapEvent)(nil), // 45: dota.CDOTAUserMsg_MinimapEvent - (*CDOTAUserMsg_MapLine)(nil), // 46: dota.CDOTAUserMsg_MapLine - (*CDOTAUserMsg_MinimapDebugPoint)(nil), // 47: dota.CDOTAUserMsg_MinimapDebugPoint - (*CDOTAUserMsg_CreateLinearProjectile)(nil), // 48: dota.CDOTAUserMsg_CreateLinearProjectile - (*CDOTAUserMsg_DestroyLinearProjectile)(nil), // 49: dota.CDOTAUserMsg_DestroyLinearProjectile - (*CDOTAUserMsg_DodgeTrackingProjectiles)(nil), // 50: dota.CDOTAUserMsg_DodgeTrackingProjectiles - (*CDOTAUserMsg_SpectatorPlayerClick)(nil), // 51: dota.CDOTAUserMsg_SpectatorPlayerClick - (*CDOTAUserMsg_SpectatorPlayerUnitOrders)(nil), // 52: dota.CDOTAUserMsg_SpectatorPlayerUnitOrders - (*CDOTAUserMsg_NevermoreRequiem)(nil), // 53: dota.CDOTAUserMsg_NevermoreRequiem - (*CDOTAUserMsg_InvalidCommand)(nil), // 54: dota.CDOTAUserMsg_InvalidCommand - (*CDOTAUserMsg_HudError)(nil), // 55: dota.CDOTAUserMsg_HudError - (*CDOTAUserMsg_SharedCooldown)(nil), // 56: dota.CDOTAUserMsg_SharedCooldown - (*CDOTAUserMsg_SetNextAutobuyItem)(nil), // 57: dota.CDOTAUserMsg_SetNextAutobuyItem - (*CDOTAUserMsg_HalloweenDrops)(nil), // 58: dota.CDOTAUserMsg_HalloweenDrops - (*CDOTAUserMsg_PredictionResult)(nil), // 59: dota.CDOTAUserMsg_PredictionResult - (*CDOTAResponseQuerySerialized)(nil), // 60: dota.CDOTAResponseQuerySerialized - (*CDOTASpeechMatchOnClient)(nil), // 61: dota.CDOTASpeechMatchOnClient - (*CDOTAUserMsg_UnitEvent)(nil), // 62: dota.CDOTAUserMsg_UnitEvent - (*CDOTAUserMsg_ItemPurchased)(nil), // 63: dota.CDOTAUserMsg_ItemPurchased - (*CDOTAUserMsg_ItemSold)(nil), // 64: dota.CDOTAUserMsg_ItemSold - (*CDOTAUserMsg_ItemFound)(nil), // 65: dota.CDOTAUserMsg_ItemFound - (*CDOTAUserMsg_OverheadEvent)(nil), // 66: dota.CDOTAUserMsg_OverheadEvent - (*CDOTAUserMsg_TutorialTipInfo)(nil), // 67: dota.CDOTAUserMsg_TutorialTipInfo - (*CDOTAUserMsg_TutorialFinish)(nil), // 68: dota.CDOTAUserMsg_TutorialFinish - (*CDOTAUserMsg_TutorialMinimapPosition)(nil), // 69: dota.CDOTAUserMsg_TutorialMinimapPosition - (*CDOTAUserMsg_SendGenericToolTip)(nil), // 70: dota.CDOTAUserMsg_SendGenericToolTip - (*CDOTAUserMsg_WorldLine)(nil), // 71: dota.CDOTAUserMsg_WorldLine - (*CDOTAUserMsg_ChatWheel)(nil), // 72: dota.CDOTAUserMsg_ChatWheel - (*CDOTAUserMsg_ReceivedXmasGift)(nil), // 73: dota.CDOTAUserMsg_ReceivedXmasGift - (*CDOTAUserMsg_ShowSurvey)(nil), // 74: dota.CDOTAUserMsg_ShowSurvey - (*CDOTAUserMsg_UpdateSharedContent)(nil), // 75: dota.CDOTAUserMsg_UpdateSharedContent - (*CDOTAUserMsg_TutorialRequestExp)(nil), // 76: dota.CDOTAUserMsg_TutorialRequestExp - (*CDOTAUserMsg_TutorialFade)(nil), // 77: dota.CDOTAUserMsg_TutorialFade - (*CDOTAUserMsg_TutorialPingMinimap)(nil), // 78: dota.CDOTAUserMsg_TutorialPingMinimap - (*CDOTAUserMsg_GamerulesStateChanged)(nil), // 79: dota.CDOTAUserMsg_GamerulesStateChanged - (*CDOTAUserMsg_AddQuestLogEntry)(nil), // 80: dota.CDOTAUserMsg_AddQuestLogEntry - (*CDOTAUserMsg_SendStatPopup)(nil), // 81: dota.CDOTAUserMsg_SendStatPopup - (*CDOTAUserMsg_DismissAllStatPopups)(nil), // 82: dota.CDOTAUserMsg_DismissAllStatPopups - (*CDOTAUserMsg_SendRoshanSpectatorPhase)(nil), // 83: dota.CDOTAUserMsg_SendRoshanSpectatorPhase - (*CDOTAUserMsg_SendRoshanPopup)(nil), // 84: dota.CDOTAUserMsg_SendRoshanPopup - (*CDOTAUserMsg_SendFinalGold)(nil), // 85: dota.CDOTAUserMsg_SendFinalGold - (*CDOTAUserMsg_CustomMsg)(nil), // 86: dota.CDOTAUserMsg_CustomMsg - (*CDOTAUserMsg_CoachHUDPing)(nil), // 87: dota.CDOTAUserMsg_CoachHUDPing - (*CDOTAUserMsg_ClientLoadGridNav)(nil), // 88: dota.CDOTAUserMsg_ClientLoadGridNav - (*CDOTAUserMsg_TE_Projectile)(nil), // 89: dota.CDOTAUserMsg_TE_Projectile - (*CDOTAUserMsg_TE_ProjectileLoc)(nil), // 90: dota.CDOTAUserMsg_TE_ProjectileLoc - (*CDOTAUserMsg_TE_DestroyProjectile)(nil), // 91: dota.CDOTAUserMsg_TE_DestroyProjectile - (*CDOTAUserMsg_TE_DotaBloodImpact)(nil), // 92: dota.CDOTAUserMsg_TE_DotaBloodImpact - (*CDOTAUserMsg_AbilityPing)(nil), // 93: dota.CDOTAUserMsg_AbilityPing - (*CDOTAUserMsg_TE_UnitAnimation)(nil), // 94: dota.CDOTAUserMsg_TE_UnitAnimation - (*CDOTAUserMsg_TE_UnitAnimationEnd)(nil), // 95: dota.CDOTAUserMsg_TE_UnitAnimationEnd - (*CDOTAUserMsg_ShowGenericPopup)(nil), // 96: dota.CDOTAUserMsg_ShowGenericPopup - (*CDOTAUserMsg_VoteStart)(nil), // 97: dota.CDOTAUserMsg_VoteStart - (*CDOTAUserMsg_VoteUpdate)(nil), // 98: dota.CDOTAUserMsg_VoteUpdate - (*CDOTAUserMsg_VoteEnd)(nil), // 99: dota.CDOTAUserMsg_VoteEnd - (*CDOTAUserMsg_BoosterStatePlayer)(nil), // 100: dota.CDOTAUserMsg_BoosterStatePlayer - (*CDOTAUserMsg_BoosterState)(nil), // 101: dota.CDOTAUserMsg_BoosterState - (*CDOTAUserMsg_PlayerMMR)(nil), // 102: dota.CDOTAUserMsg_PlayerMMR - (*CDOTAUserMsg_AbilitySteal)(nil), // 103: dota.CDOTAUserMsg_AbilitySteal - (*CDOTAUserMsg_StatsHeroLookup)(nil), // 104: dota.CDOTAUserMsg_StatsHeroLookup - (*CDOTAUserMsg_StatsHeroPositionInfo)(nil), // 105: dota.CDOTAUserMsg_StatsHeroPositionInfo - (*CDOTAUserMsg_StatsHeroMinuteDetails)(nil), // 106: dota.CDOTAUserMsg_StatsHeroMinuteDetails - (*CDOTAUserMsg_StatsTeamMinuteDetails)(nil), // 107: dota.CDOTAUserMsg_StatsTeamMinuteDetails - (*CDOTAUserMsg_StatsPlayerKillShare)(nil), // 108: dota.CDOTAUserMsg_StatsPlayerKillShare - (*CDOTAUserMsg_StatsKillDetails)(nil), // 109: dota.CDOTAUserMsg_StatsKillDetails - (*CDOTAUserMsg_StatsMatchDetails)(nil), // 110: dota.CDOTAUserMsg_StatsMatchDetails - (*CDOTAUserMsg_MiniTaunt)(nil), // 111: dota.CDOTAUserMsg_MiniTaunt - (*CDOTAUserMsg_SpeechBubble)(nil), // 112: dota.CDOTAUserMsg_SpeechBubble - (*CDOTAUserMsg_CustomHeaderMessage)(nil), // 113: dota.CDOTAUserMsg_CustomHeaderMessage - (*CMsgHeroAbilityStat)(nil), // 114: dota.CMsgHeroAbilityStat - (*CMsgCombatAnalyzerPlayerStat)(nil), // 115: dota.CMsgCombatAnalyzerPlayerStat - (*CMsgCombatAnalyzerStats)(nil), // 116: dota.CMsgCombatAnalyzerStats - (*CDOTAUserMsg_BeastChat)(nil), // 117: dota.CDOTAUserMsg_BeastChat - (*CDOTAUserMsg_CustomHudElement_Create)(nil), // 118: dota.CDOTAUserMsg_CustomHudElement_Create - (*CDOTAUserMsg_CustomHudElement_Modify)(nil), // 119: dota.CDOTAUserMsg_CustomHudElement_Modify - (*CDOTAUserMsg_CustomHudElement_Destroy)(nil), // 120: dota.CDOTAUserMsg_CustomHudElement_Destroy - (*CDOTAUserMsg_CompendiumStatePlayer)(nil), // 121: dota.CDOTAUserMsg_CompendiumStatePlayer - (*CDOTAUserMsg_CompendiumState)(nil), // 122: dota.CDOTAUserMsg_CompendiumState - (*CDOTAUserMsg_ProjectionAbility)(nil), // 123: dota.CDOTAUserMsg_ProjectionAbility - (*CDOTAUserMsg_ProjectionEvent)(nil), // 124: dota.CDOTAUserMsg_ProjectionEvent - (*CDOTAUserMsg_XPAlert)(nil), // 125: dota.CDOTAUserMsg_XPAlert - (*CDOTAUserMsg_TalentTreeAlert)(nil), // 126: dota.CDOTAUserMsg_TalentTreeAlert - (*CDOTAUserMsg_UpdateQuestProgress)(nil), // 127: dota.CDOTAUserMsg_UpdateQuestProgress - (*CDOTAUserMsg_QuestStatus)(nil), // 128: dota.CDOTAUserMsg_QuestStatus - (*CDOTAUserMsg_SuggestHeroPick)(nil), // 129: dota.CDOTAUserMsg_SuggestHeroPick - (*CDOTAUserMsg_SuggestHeroRole)(nil), // 130: dota.CDOTAUserMsg_SuggestHeroRole - (*CDOTAUserMsg_KillcamDamageTaken)(nil), // 131: dota.CDOTAUserMsg_KillcamDamageTaken - (*CDOTAUserMsg_SelectPenaltyGold)(nil), // 132: dota.CDOTAUserMsg_SelectPenaltyGold - (*CDOTAUserMsg_RollDiceResult)(nil), // 133: dota.CDOTAUserMsg_RollDiceResult - (*CDOTAUserMsg_FlipCoinResult)(nil), // 134: dota.CDOTAUserMsg_FlipCoinResult - (*CDOTAUserMessage_RequestItemSuggestions)(nil), // 135: dota.CDOTAUserMessage_RequestItemSuggestions - (*CDOTAUserMessage_TeamCaptainChanged)(nil), // 136: dota.CDOTAUserMessage_TeamCaptainChanged - (*CDOTAUserMsg_ChatWheelCooldown)(nil), // 137: dota.CDOTAUserMsg_ChatWheelCooldown - (*CDOTAUserMsg_HeroRelicProgress)(nil), // 138: dota.CDOTAUserMsg_HeroRelicProgress - (*CDOTAUserMsg_AbilityDraftRequestAbility)(nil), // 139: dota.CDOTAUserMsg_AbilityDraftRequestAbility - (*CDOTAUserMsg_DamageReport)(nil), // 140: dota.CDOTAUserMsg_DamageReport - (*CDOTAUserMsg_SalutePlayer)(nil), // 141: dota.CDOTAUserMsg_SalutePlayer - (*CDOTAUserMsg_GiftPlayer)(nil), // 142: dota.CDOTAUserMsg_GiftPlayer - (*CDOTAUserMsg_TipAlert)(nil), // 143: dota.CDOTAUserMsg_TipAlert - (*CDOTAUserMsg_ReplaceQueryUnit)(nil), // 144: dota.CDOTAUserMsg_ReplaceQueryUnit - (*CDOTAUserMsg_ESArcanaCombo)(nil), // 145: dota.CDOTAUserMsg_ESArcanaCombo - (*CDOTAUserMsg_ESArcanaComboSummary)(nil), // 146: dota.CDOTAUserMsg_ESArcanaComboSummary - (*CDOTAUserMsg_OMArcanaCombo)(nil), // 147: dota.CDOTAUserMsg_OMArcanaCombo - (*CDOTAUserMsg_HighFiveCompleted)(nil), // 148: dota.CDOTAUserMsg_HighFiveCompleted - (*CDOTAUserMsg_HighFiveLeftHanging)(nil), // 149: dota.CDOTAUserMsg_HighFiveLeftHanging - (*CDOTAUserMsg_ShovelUnearth)(nil), // 150: dota.CDOTAUserMsg_ShovelUnearth - (*CDOTAUserMsg_AllStarEvent)(nil), // 151: dota.CDOTAUserMsg_AllStarEvent - (*CDOTAUserMsg_QueuedOrderRemoved)(nil), // 152: dota.CDOTAUserMsg_QueuedOrderRemoved - (*CDOTAUserMsg_DebugChallenge)(nil), // 153: dota.CDOTAUserMsg_DebugChallenge - (*CDOTAUserMsg_FoundNeutralItem)(nil), // 154: dota.CDOTAUserMsg_FoundNeutralItem - (*CDOTAUserMsg_OutpostCaptured)(nil), // 155: dota.CDOTAUserMsg_OutpostCaptured - (*CDOTAUserMsg_OutpostGrantedXP)(nil), // 156: dota.CDOTAUserMsg_OutpostGrantedXP - (*CDOTAUserMsg_MoveCameraToUnit)(nil), // 157: dota.CDOTAUserMsg_MoveCameraToUnit - (*CDOTAUserMsg_PauseMinigameData)(nil), // 158: dota.CDOTAUserMsg_PauseMinigameData - (*CDOTAUserMsg_VersusScene_PlayerBehavior)(nil), // 159: dota.CDOTAUserMsg_VersusScene_PlayerBehavior - (*CDOTAUserMsg_QoP_ArcanaSummary)(nil), // 160: dota.CDOTAUserMsg_QoP_ArcanaSummary - (*CDOTAUserMsg_HotPotato_Created)(nil), // 161: dota.CDOTAUserMsg_HotPotato_Created - (*CDOTAUserMsg_HotPotato_Exploded)(nil), // 162: dota.CDOTAUserMsg_HotPotato_Exploded - (*CDOTAUserMsg_WK_Arcana_Progress)(nil), // 163: dota.CDOTAUserMsg_WK_Arcana_Progress - (*CDOTAUserMsg_GuildChallenge_Progress)(nil), // 164: dota.CDOTAUserMsg_GuildChallenge_Progress - (*CDOTAUserMsg_WRArcanaProgress)(nil), // 165: dota.CDOTAUserMsg_WRArcanaProgress - (*CDOTAUserMsg_WRArcanaSummary)(nil), // 166: dota.CDOTAUserMsg_WRArcanaSummary - (*CDOTAUserMsg_EmptyItemSlotAlert)(nil), // 167: dota.CDOTAUserMsg_EmptyItemSlotAlert - (*CDOTAUserMsg_AghsStatusAlert)(nil), // 168: dota.CDOTAUserMsg_AghsStatusAlert - (*CDOTAUserMsg_MutedPlayers)(nil), // 169: dota.CDOTAUserMsg_MutedPlayers - (*CDOTAUserMsg_ContextualTip)(nil), // 170: dota.CDOTAUserMsg_ContextualTip - (*CDOTAUserMsg_ChatMessage)(nil), // 171: dota.CDOTAUserMsg_ChatMessage - (*CDOTAUserMsg_RockPaperScissorsStarted)(nil), // 172: dota.CDOTAUserMsg_RockPaperScissorsStarted - (*CDOTAUserMsg_RockPaperScissorsFinished)(nil), // 173: dota.CDOTAUserMsg_RockPaperScissorsFinished - (*CDOTAUserMsg_DuelOpponentKilled)(nil), // 174: dota.CDOTAUserMsg_DuelOpponentKilled - (*CDOTAUserMsg_DuelAccepted)(nil), // 175: dota.CDOTAUserMsg_DuelAccepted - (*CDOTAUserMsg_DuelRequested)(nil), // 176: dota.CDOTAUserMsg_DuelRequested - (*CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled)(nil), // 177: dota.CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled - (*CDOTAUserMsg_PlayerDraftSuggestPick)(nil), // 178: dota.CDOTAUserMsg_PlayerDraftSuggestPick - (*CDOTAUserMsg_PlayerDraftPick)(nil), // 179: dota.CDOTAUserMsg_PlayerDraftPick - (*CDOTAUserMsg_FacetPing)(nil), // 180: dota.CDOTAUserMsg_FacetPing - (*CDOTAUserMsg_InnatePing)(nil), // 181: dota.CDOTAUserMsg_InnatePing - (*CDOTAUserMsg_MiniKillCamInfo_Attacker)(nil), // 182: dota.CDOTAUserMsg_MiniKillCamInfo.Attacker - (*CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability)(nil), // 183: dota.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability - (*CDOTAUserMsg_CourierKilledAlert_LostItem)(nil), // 184: dota.CDOTAUserMsg_CourierKilledAlert.LostItem - (*CDOTAUserMsg_PredictionResult_Prediction)(nil), // 185: dota.CDOTAUserMsg_PredictionResult.Prediction - (*CDOTAResponseQuerySerialized_Fact)(nil), // 186: dota.CDOTAResponseQuerySerialized.Fact - (*CDOTAUserMsg_UnitEvent_Interval)(nil), // 187: dota.CDOTAUserMsg_UnitEvent.Interval - (*CDOTAUserMsg_UnitEvent_Speech)(nil), // 188: dota.CDOTAUserMsg_UnitEvent.Speech - (*CDOTAUserMsg_UnitEvent_SpeechMute)(nil), // 189: dota.CDOTAUserMsg_UnitEvent.SpeechMute - (*CDOTAUserMsg_UnitEvent_AddGesture)(nil), // 190: dota.CDOTAUserMsg_UnitEvent.AddGesture - (*CDOTAUserMsg_UnitEvent_RemoveGesture)(nil), // 191: dota.CDOTAUserMsg_UnitEvent.RemoveGesture - (*CDOTAUserMsg_UnitEvent_BloodImpact)(nil), // 192: dota.CDOTAUserMsg_UnitEvent.BloodImpact - (*CDOTAUserMsg_UnitEvent_FadeGesture)(nil), // 193: dota.CDOTAUserMsg_UnitEvent.FadeGesture - (*CDOTAUserMsg_StatsHeroPositionInfo_PositionPair)(nil), // 194: dota.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair - (*CDOTAUserMsg_StatsTeamMinuteDetails_LocationPerformance)(nil), // 195: dota.CDOTAUserMsg_StatsTeamMinuteDetails.LocationPerformance - (*CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightTeamDetails)(nil), // 196: dota.CDOTAUserMsg_StatsMatchDetails.CDOTAUserMsg_StatsFightTeamDetails - (*CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightDetails)(nil), // 197: dota.CDOTAUserMsg_StatsMatchDetails.CDOTAUserMsg_StatsFightDetails - (*CDOTAUserMsg_AllStarEvent_PlayerScore)(nil), // 198: dota.CDOTAUserMsg_AllStarEvent.PlayerScore - (*CDOTAUserMsg_PauseMinigameData_DataBit)(nil), // 199: dota.CDOTAUserMsg_PauseMinigameData.DataBit - (*CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress)(nil), // 200: dota.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress - (*CMsgVector2D)(nil), // 201: dota.CMsgVector2D - (*CMsgDOTACombatLogEntry)(nil), // 202: dota.CMsgDOTACombatLogEntry - (*CMsgVector)(nil), // 203: dota.CMsgVector - (*CDOTAMsg_LocationPing)(nil), // 204: dota.CDOTAMsg_LocationPing - (*CDOTAMsg_ItemAlert)(nil), // 205: dota.CDOTAMsg_ItemAlert - (*CEntityMsg)(nil), // 206: dota.CEntityMsg - (*CDOTAMsg_MapLine)(nil), // 207: dota.CDOTAMsg_MapLine - (*CDOTAMsg_WorldLine)(nil), // 208: dota.CDOTAMsg_WorldLine - (*CDOTAMsg_SendStatPopup)(nil), // 209: dota.CDOTAMsg_SendStatPopup - (*CDOTAMsg_DismissAllStatPopups)(nil), // 210: dota.CDOTAMsg_DismissAllStatPopups - (*CDOTAMsg_CoachHUDPing)(nil), // 211: dota.CDOTAMsg_CoachHUDPing - (EDOTAVersusScenePlayerBehavior)(0), // 212: dota.EDOTAVersusScenePlayerBehavior - (*VersusScene_PlayActivity)(nil), // 213: dota.VersusScene_PlayActivity - (*VersusScene_ChatWheel)(nil), // 214: dota.VersusScene_ChatWheel - (*VersusScene_PlaybackRate)(nil), // 215: dota.VersusScene_PlaybackRate + (CDOTAResponseQuerySerialized_Fact_ValueType)(0), // 14: dota.CDOTAResponseQuerySerialized.Fact.ValueType + (CDOTAUserMsg_GuildChallenge_Progress_EChallengeType)(0), // 15: dota.CDOTAUserMsg_GuildChallenge_Progress.EChallengeType + (*CDOTAUserMsg_AIDebugLine)(nil), // 16: dota.CDOTAUserMsg_AIDebugLine + (*CDOTAUserMsg_Ping)(nil), // 17: dota.CDOTAUserMsg_Ping + (*CDOTAUserMsg_SwapVerify)(nil), // 18: dota.CDOTAUserMsg_SwapVerify + (*CDOTAUserMsg_ChatEvent)(nil), // 19: dota.CDOTAUserMsg_ChatEvent + (*CDOTAUserMsg_BotChat)(nil), // 20: dota.CDOTAUserMsg_BotChat + (*CDOTAUserMsg_CombatHeroPositions)(nil), // 21: dota.CDOTAUserMsg_CombatHeroPositions + (*CDOTAUserMsg_CombatLogBulkData)(nil), // 22: dota.CDOTAUserMsg_CombatLogBulkData + (*CDOTAUserMsg_ProjectileParticleCPData)(nil), // 23: dota.CDOTAUserMsg_ProjectileParticleCPData + (*CDOTAUserMsg_UpdateLinearProjectileCPData)(nil), // 24: dota.CDOTAUserMsg_UpdateLinearProjectileCPData + (*CDOTAUserMsg_MiniKillCamInfo)(nil), // 25: dota.CDOTAUserMsg_MiniKillCamInfo + (*CDOTAUserMsg_GlobalLightColor)(nil), // 26: dota.CDOTAUserMsg_GlobalLightColor + (*CDOTAUserMsg_GlobalLightDirection)(nil), // 27: dota.CDOTAUserMsg_GlobalLightDirection + (*CDOTAUserMsg_LocationPing)(nil), // 28: dota.CDOTAUserMsg_LocationPing + (*CDOTAUserMsg_PingConfirmation)(nil), // 29: dota.CDOTAUserMsg_PingConfirmation + (*CDOTAUserMsg_ItemAlert)(nil), // 30: dota.CDOTAUserMsg_ItemAlert + (*CDOTAUserMsg_EnemyItemAlert)(nil), // 31: dota.CDOTAUserMsg_EnemyItemAlert + (*CDOTAUserMsg_ModifierAlert)(nil), // 32: dota.CDOTAUserMsg_ModifierAlert + (*CDOTAUserMsg_HPManaAlert)(nil), // 33: dota.CDOTAUserMsg_HPManaAlert + (*CDOTAUserMsg_NeutralCampAlert)(nil), // 34: dota.CDOTAUserMsg_NeutralCampAlert + (*CDOTAUserMsg_GlyphAlert)(nil), // 35: dota.CDOTAUserMsg_GlyphAlert + (*CDOTAUserMsg_RadarAlert)(nil), // 36: dota.CDOTAUserMsg_RadarAlert + (*CDOTAUserMsg_WillPurchaseAlert)(nil), // 37: dota.CDOTAUserMsg_WillPurchaseAlert + (*CDOTAUserMsg_EmptyTeleportAlert)(nil), // 38: dota.CDOTAUserMsg_EmptyTeleportAlert + (*CDOTAUserMsg_MarsArenaOfBloodAttack)(nil), // 39: dota.CDOTAUserMsg_MarsArenaOfBloodAttack + (*CDOTAEntityMsg_InvokerSpellCast)(nil), // 40: dota.CDOTAEntityMsg_InvokerSpellCast + (*CDOTAUserMsg_BuyBackStateAlert)(nil), // 41: dota.CDOTAUserMsg_BuyBackStateAlert + (*CDOTAUserMsg_QuickBuyAlert)(nil), // 42: dota.CDOTAUserMsg_QuickBuyAlert + (*CDOTAUserMsg_CourierKilledAlert)(nil), // 43: dota.CDOTAUserMsg_CourierKilledAlert + (*CDOTAUserMsg_MinimapEvent)(nil), // 44: dota.CDOTAUserMsg_MinimapEvent + (*CDOTAUserMsg_MapLine)(nil), // 45: dota.CDOTAUserMsg_MapLine + (*CDOTAUserMsg_MinimapDebugPoint)(nil), // 46: dota.CDOTAUserMsg_MinimapDebugPoint + (*CDOTAUserMsg_CreateLinearProjectile)(nil), // 47: dota.CDOTAUserMsg_CreateLinearProjectile + (*CDOTAUserMsg_DestroyLinearProjectile)(nil), // 48: dota.CDOTAUserMsg_DestroyLinearProjectile + (*CDOTAUserMsg_DodgeTrackingProjectiles)(nil), // 49: dota.CDOTAUserMsg_DodgeTrackingProjectiles + (*CDOTAUserMsg_SpectatorPlayerClick)(nil), // 50: dota.CDOTAUserMsg_SpectatorPlayerClick + (*CDOTAUserMsg_SpectatorPlayerUnitOrders)(nil), // 51: dota.CDOTAUserMsg_SpectatorPlayerUnitOrders + (*CDOTAUserMsg_NevermoreRequiem)(nil), // 52: dota.CDOTAUserMsg_NevermoreRequiem + (*CDOTAUserMsg_InvalidCommand)(nil), // 53: dota.CDOTAUserMsg_InvalidCommand + (*CDOTAUserMsg_HudError)(nil), // 54: dota.CDOTAUserMsg_HudError + (*CDOTAUserMsg_SharedCooldown)(nil), // 55: dota.CDOTAUserMsg_SharedCooldown + (*CDOTAUserMsg_SetNextAutobuyItem)(nil), // 56: dota.CDOTAUserMsg_SetNextAutobuyItem + (*CDOTAUserMsg_HalloweenDrops)(nil), // 57: dota.CDOTAUserMsg_HalloweenDrops + (*CDOTAResponseQuerySerialized)(nil), // 58: dota.CDOTAResponseQuerySerialized + (*CDOTASpeechMatchOnClient)(nil), // 59: dota.CDOTASpeechMatchOnClient + (*CDOTAUserMsg_UnitEvent)(nil), // 60: dota.CDOTAUserMsg_UnitEvent + (*CDOTAUserMsg_ItemPurchased)(nil), // 61: dota.CDOTAUserMsg_ItemPurchased + (*CDOTAUserMsg_ItemSold)(nil), // 62: dota.CDOTAUserMsg_ItemSold + (*CDOTAUserMsg_ItemFound)(nil), // 63: dota.CDOTAUserMsg_ItemFound + (*CDOTAUserMsg_OverheadEvent)(nil), // 64: dota.CDOTAUserMsg_OverheadEvent + (*CDOTAUserMsg_TutorialTipInfo)(nil), // 65: dota.CDOTAUserMsg_TutorialTipInfo + (*CDOTAUserMsg_TutorialFinish)(nil), // 66: dota.CDOTAUserMsg_TutorialFinish + (*CDOTAUserMsg_TutorialMinimapPosition)(nil), // 67: dota.CDOTAUserMsg_TutorialMinimapPosition + (*CDOTAUserMsg_SendGenericToolTip)(nil), // 68: dota.CDOTAUserMsg_SendGenericToolTip + (*CDOTAUserMsg_WorldLine)(nil), // 69: dota.CDOTAUserMsg_WorldLine + (*CDOTAUserMsg_ChatWheel)(nil), // 70: dota.CDOTAUserMsg_ChatWheel + (*CDOTAUserMsg_ReceivedXmasGift)(nil), // 71: dota.CDOTAUserMsg_ReceivedXmasGift + (*CDOTAUserMsg_ShowSurvey)(nil), // 72: dota.CDOTAUserMsg_ShowSurvey + (*CDOTAUserMsg_UpdateSharedContent)(nil), // 73: dota.CDOTAUserMsg_UpdateSharedContent + (*CDOTAUserMsg_TutorialRequestExp)(nil), // 74: dota.CDOTAUserMsg_TutorialRequestExp + (*CDOTAUserMsg_TutorialFade)(nil), // 75: dota.CDOTAUserMsg_TutorialFade + (*CDOTAUserMsg_TutorialPingMinimap)(nil), // 76: dota.CDOTAUserMsg_TutorialPingMinimap + (*CDOTAUserMsg_GamerulesStateChanged)(nil), // 77: dota.CDOTAUserMsg_GamerulesStateChanged + (*CDOTAUserMsg_AddQuestLogEntry)(nil), // 78: dota.CDOTAUserMsg_AddQuestLogEntry + (*CDOTAUserMsg_SendStatPopup)(nil), // 79: dota.CDOTAUserMsg_SendStatPopup + (*CDOTAUserMsg_DismissAllStatPopups)(nil), // 80: dota.CDOTAUserMsg_DismissAllStatPopups + (*CDOTAUserMsg_SendRoshanSpectatorPhase)(nil), // 81: dota.CDOTAUserMsg_SendRoshanSpectatorPhase + (*CDOTAUserMsg_SendRoshanPopup)(nil), // 82: dota.CDOTAUserMsg_SendRoshanPopup + (*CDOTAUserMsg_SendFinalGold)(nil), // 83: dota.CDOTAUserMsg_SendFinalGold + (*CDOTAUserMsg_CustomMsg)(nil), // 84: dota.CDOTAUserMsg_CustomMsg + (*CDOTAUserMsg_CoachHUDPing)(nil), // 85: dota.CDOTAUserMsg_CoachHUDPing + (*CDOTAUserMsg_ClientLoadGridNav)(nil), // 86: dota.CDOTAUserMsg_ClientLoadGridNav + (*CDOTAUserMsg_TE_Projectile)(nil), // 87: dota.CDOTAUserMsg_TE_Projectile + (*CDOTAUserMsg_TE_ProjectileLoc)(nil), // 88: dota.CDOTAUserMsg_TE_ProjectileLoc + (*CDOTAUserMsg_TE_DestroyProjectile)(nil), // 89: dota.CDOTAUserMsg_TE_DestroyProjectile + (*CDOTAUserMsg_TE_DotaBloodImpact)(nil), // 90: dota.CDOTAUserMsg_TE_DotaBloodImpact + (*CDOTAUserMsg_AbilityPing)(nil), // 91: dota.CDOTAUserMsg_AbilityPing + (*CDOTAUserMsg_TE_UnitAnimation)(nil), // 92: dota.CDOTAUserMsg_TE_UnitAnimation + (*CDOTAUserMsg_TE_UnitAnimationEnd)(nil), // 93: dota.CDOTAUserMsg_TE_UnitAnimationEnd + (*CDOTAUserMsg_ShowGenericPopup)(nil), // 94: dota.CDOTAUserMsg_ShowGenericPopup + (*CDOTAUserMsg_VoteStart)(nil), // 95: dota.CDOTAUserMsg_VoteStart + (*CDOTAUserMsg_VoteUpdate)(nil), // 96: dota.CDOTAUserMsg_VoteUpdate + (*CDOTAUserMsg_VoteEnd)(nil), // 97: dota.CDOTAUserMsg_VoteEnd + (*CDOTAUserMsg_BoosterStatePlayer)(nil), // 98: dota.CDOTAUserMsg_BoosterStatePlayer + (*CDOTAUserMsg_BoosterState)(nil), // 99: dota.CDOTAUserMsg_BoosterState + (*CDOTAUserMsg_PlayerMMR)(nil), // 100: dota.CDOTAUserMsg_PlayerMMR + (*CDOTAUserMsg_AbilitySteal)(nil), // 101: dota.CDOTAUserMsg_AbilitySteal + (*CDOTAUserMsg_StatsHeroLookup)(nil), // 102: dota.CDOTAUserMsg_StatsHeroLookup + (*CDOTAUserMsg_StatsHeroPositionInfo)(nil), // 103: dota.CDOTAUserMsg_StatsHeroPositionInfo + (*CDOTAUserMsg_StatsHeroMinuteDetails)(nil), // 104: dota.CDOTAUserMsg_StatsHeroMinuteDetails + (*CDOTAUserMsg_StatsTeamMinuteDetails)(nil), // 105: dota.CDOTAUserMsg_StatsTeamMinuteDetails + (*CDOTAUserMsg_StatsPlayerKillShare)(nil), // 106: dota.CDOTAUserMsg_StatsPlayerKillShare + (*CDOTAUserMsg_StatsKillDetails)(nil), // 107: dota.CDOTAUserMsg_StatsKillDetails + (*CDOTAUserMsg_StatsMatchDetails)(nil), // 108: dota.CDOTAUserMsg_StatsMatchDetails + (*CDOTAUserMsg_MiniTaunt)(nil), // 109: dota.CDOTAUserMsg_MiniTaunt + (*CDOTAUserMsg_SpeechBubble)(nil), // 110: dota.CDOTAUserMsg_SpeechBubble + (*CDOTAUserMsg_CustomHeaderMessage)(nil), // 111: dota.CDOTAUserMsg_CustomHeaderMessage + (*CMsgHeroAbilityStat)(nil), // 112: dota.CMsgHeroAbilityStat + (*CMsgCombatAnalyzerPlayerStat)(nil), // 113: dota.CMsgCombatAnalyzerPlayerStat + (*CMsgCombatAnalyzerStats)(nil), // 114: dota.CMsgCombatAnalyzerStats + (*CDOTAUserMsg_BeastChat)(nil), // 115: dota.CDOTAUserMsg_BeastChat + (*CDOTAUserMsg_CustomHudElement_Create)(nil), // 116: dota.CDOTAUserMsg_CustomHudElement_Create + (*CDOTAUserMsg_CustomHudElement_Modify)(nil), // 117: dota.CDOTAUserMsg_CustomHudElement_Modify + (*CDOTAUserMsg_CustomHudElement_Destroy)(nil), // 118: dota.CDOTAUserMsg_CustomHudElement_Destroy + (*CDOTAUserMsg_CompendiumStatePlayer)(nil), // 119: dota.CDOTAUserMsg_CompendiumStatePlayer + (*CDOTAUserMsg_CompendiumState)(nil), // 120: dota.CDOTAUserMsg_CompendiumState + (*CDOTAUserMsg_ProjectionAbility)(nil), // 121: dota.CDOTAUserMsg_ProjectionAbility + (*CDOTAUserMsg_ProjectionEvent)(nil), // 122: dota.CDOTAUserMsg_ProjectionEvent + (*CDOTAUserMsg_XPAlert)(nil), // 123: dota.CDOTAUserMsg_XPAlert + (*CDOTAUserMsg_TalentTreeAlert)(nil), // 124: dota.CDOTAUserMsg_TalentTreeAlert + (*CDOTAUserMsg_UpdateQuestProgress)(nil), // 125: dota.CDOTAUserMsg_UpdateQuestProgress + (*CDOTAUserMsg_QuestStatus)(nil), // 126: dota.CDOTAUserMsg_QuestStatus + (*CDOTAUserMsg_SuggestHeroPick)(nil), // 127: dota.CDOTAUserMsg_SuggestHeroPick + (*CDOTAUserMsg_SuggestHeroRole)(nil), // 128: dota.CDOTAUserMsg_SuggestHeroRole + (*CDOTAUserMsg_KillcamDamageTaken)(nil), // 129: dota.CDOTAUserMsg_KillcamDamageTaken + (*CDOTAUserMsg_SelectPenaltyGold)(nil), // 130: dota.CDOTAUserMsg_SelectPenaltyGold + (*CDOTAUserMsg_RollDiceResult)(nil), // 131: dota.CDOTAUserMsg_RollDiceResult + (*CDOTAUserMsg_FlipCoinResult)(nil), // 132: dota.CDOTAUserMsg_FlipCoinResult + (*CDOTAUserMessage_RequestItemSuggestions)(nil), // 133: dota.CDOTAUserMessage_RequestItemSuggestions + (*CDOTAUserMessage_TeamCaptainChanged)(nil), // 134: dota.CDOTAUserMessage_TeamCaptainChanged + (*CDOTAUserMsg_ChatWheelCooldown)(nil), // 135: dota.CDOTAUserMsg_ChatWheelCooldown + (*CDOTAUserMsg_HeroRelicProgress)(nil), // 136: dota.CDOTAUserMsg_HeroRelicProgress + (*CDOTAUserMsg_AbilityDraftRequestAbility)(nil), // 137: dota.CDOTAUserMsg_AbilityDraftRequestAbility + (*CDOTAUserMsg_DamageReport)(nil), // 138: dota.CDOTAUserMsg_DamageReport + (*CDOTAUserMsg_SalutePlayer)(nil), // 139: dota.CDOTAUserMsg_SalutePlayer + (*CDOTAUserMsg_GiftPlayer)(nil), // 140: dota.CDOTAUserMsg_GiftPlayer + (*CDOTAUserMsg_TipAlert)(nil), // 141: dota.CDOTAUserMsg_TipAlert + (*CDOTAUserMsg_ReplaceQueryUnit)(nil), // 142: dota.CDOTAUserMsg_ReplaceQueryUnit + (*CDOTAUserMsg_ESArcanaCombo)(nil), // 143: dota.CDOTAUserMsg_ESArcanaCombo + (*CDOTAUserMsg_ESArcanaComboSummary)(nil), // 144: dota.CDOTAUserMsg_ESArcanaComboSummary + (*CDOTAUserMsg_OMArcanaCombo)(nil), // 145: dota.CDOTAUserMsg_OMArcanaCombo + (*CDOTAUserMsg_HighFiveCompleted)(nil), // 146: dota.CDOTAUserMsg_HighFiveCompleted + (*CDOTAUserMsg_HighFiveLeftHanging)(nil), // 147: dota.CDOTAUserMsg_HighFiveLeftHanging + (*CDOTAUserMsg_ShovelUnearth)(nil), // 148: dota.CDOTAUserMsg_ShovelUnearth + (*CDOTAUserMsg_AllStarEvent)(nil), // 149: dota.CDOTAUserMsg_AllStarEvent + (*CDOTAUserMsg_QueuedOrderRemoved)(nil), // 150: dota.CDOTAUserMsg_QueuedOrderRemoved + (*CDOTAUserMsg_DebugChallenge)(nil), // 151: dota.CDOTAUserMsg_DebugChallenge + (*CDOTAUserMsg_FoundNeutralItem)(nil), // 152: dota.CDOTAUserMsg_FoundNeutralItem + (*CDOTAUserMsg_OutpostCaptured)(nil), // 153: dota.CDOTAUserMsg_OutpostCaptured + (*CDOTAUserMsg_OutpostGrantedXP)(nil), // 154: dota.CDOTAUserMsg_OutpostGrantedXP + (*CDOTAUserMsg_MoveCameraToUnit)(nil), // 155: dota.CDOTAUserMsg_MoveCameraToUnit + (*CDOTAUserMsg_PauseMinigameData)(nil), // 156: dota.CDOTAUserMsg_PauseMinigameData + (*CDOTAUserMsg_VersusScene_PlayerBehavior)(nil), // 157: dota.CDOTAUserMsg_VersusScene_PlayerBehavior + (*CDOTAUserMsg_QoP_ArcanaSummary)(nil), // 158: dota.CDOTAUserMsg_QoP_ArcanaSummary + (*CDOTAUserMsg_HotPotato_Created)(nil), // 159: dota.CDOTAUserMsg_HotPotato_Created + (*CDOTAUserMsg_HotPotato_Exploded)(nil), // 160: dota.CDOTAUserMsg_HotPotato_Exploded + (*CDOTAUserMsg_WK_Arcana_Progress)(nil), // 161: dota.CDOTAUserMsg_WK_Arcana_Progress + (*CDOTAUserMsg_GuildChallenge_Progress)(nil), // 162: dota.CDOTAUserMsg_GuildChallenge_Progress + (*CDOTAUserMsg_WRArcanaProgress)(nil), // 163: dota.CDOTAUserMsg_WRArcanaProgress + (*CDOTAUserMsg_WRArcanaSummary)(nil), // 164: dota.CDOTAUserMsg_WRArcanaSummary + (*CDOTAUserMsg_EmptyItemSlotAlert)(nil), // 165: dota.CDOTAUserMsg_EmptyItemSlotAlert + (*CDOTAUserMsg_AghsStatusAlert)(nil), // 166: dota.CDOTAUserMsg_AghsStatusAlert + (*CDOTAUserMsg_MutedPlayers)(nil), // 167: dota.CDOTAUserMsg_MutedPlayers + (*CDOTAUserMsg_ContextualTip)(nil), // 168: dota.CDOTAUserMsg_ContextualTip + (*CDOTAUserMsg_ChatMessage)(nil), // 169: dota.CDOTAUserMsg_ChatMessage + (*CDOTAUserMsg_RockPaperScissorsStarted)(nil), // 170: dota.CDOTAUserMsg_RockPaperScissorsStarted + (*CDOTAUserMsg_RockPaperScissorsFinished)(nil), // 171: dota.CDOTAUserMsg_RockPaperScissorsFinished + (*CDOTAUserMsg_DuelOpponentKilled)(nil), // 172: dota.CDOTAUserMsg_DuelOpponentKilled + (*CDOTAUserMsg_DuelAccepted)(nil), // 173: dota.CDOTAUserMsg_DuelAccepted + (*CDOTAUserMsg_DuelRequested)(nil), // 174: dota.CDOTAUserMsg_DuelRequested + (*CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled)(nil), // 175: dota.CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled + (*CDOTAUserMsg_PlayerDraftSuggestPick)(nil), // 176: dota.CDOTAUserMsg_PlayerDraftSuggestPick + (*CDOTAUserMsg_PlayerDraftPick)(nil), // 177: dota.CDOTAUserMsg_PlayerDraftPick + (*CDOTAUserMsg_FacetPing)(nil), // 178: dota.CDOTAUserMsg_FacetPing + (*CDOTAUserMsg_InnatePing)(nil), // 179: dota.CDOTAUserMsg_InnatePing + (*CDOTAUserMsg_MiniKillCamInfo_Attacker)(nil), // 180: dota.CDOTAUserMsg_MiniKillCamInfo.Attacker + (*CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability)(nil), // 181: dota.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability + (*CDOTAUserMsg_CourierKilledAlert_LostItem)(nil), // 182: dota.CDOTAUserMsg_CourierKilledAlert.LostItem + (*CDOTAResponseQuerySerialized_Fact)(nil), // 183: dota.CDOTAResponseQuerySerialized.Fact + (*CDOTAUserMsg_UnitEvent_Interval)(nil), // 184: dota.CDOTAUserMsg_UnitEvent.Interval + (*CDOTAUserMsg_UnitEvent_Speech)(nil), // 185: dota.CDOTAUserMsg_UnitEvent.Speech + (*CDOTAUserMsg_UnitEvent_SpeechMute)(nil), // 186: dota.CDOTAUserMsg_UnitEvent.SpeechMute + (*CDOTAUserMsg_UnitEvent_AddGesture)(nil), // 187: dota.CDOTAUserMsg_UnitEvent.AddGesture + (*CDOTAUserMsg_UnitEvent_RemoveGesture)(nil), // 188: dota.CDOTAUserMsg_UnitEvent.RemoveGesture + (*CDOTAUserMsg_UnitEvent_BloodImpact)(nil), // 189: dota.CDOTAUserMsg_UnitEvent.BloodImpact + (*CDOTAUserMsg_UnitEvent_FadeGesture)(nil), // 190: dota.CDOTAUserMsg_UnitEvent.FadeGesture + (*CDOTAUserMsg_StatsHeroPositionInfo_PositionPair)(nil), // 191: dota.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair + (*CDOTAUserMsg_StatsTeamMinuteDetails_LocationPerformance)(nil), // 192: dota.CDOTAUserMsg_StatsTeamMinuteDetails.LocationPerformance + (*CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightTeamDetails)(nil), // 193: dota.CDOTAUserMsg_StatsMatchDetails.CDOTAUserMsg_StatsFightTeamDetails + (*CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightDetails)(nil), // 194: dota.CDOTAUserMsg_StatsMatchDetails.CDOTAUserMsg_StatsFightDetails + (*CDOTAUserMsg_AllStarEvent_PlayerScore)(nil), // 195: dota.CDOTAUserMsg_AllStarEvent.PlayerScore + (*CDOTAUserMsg_PauseMinigameData_DataBit)(nil), // 196: dota.CDOTAUserMsg_PauseMinigameData.DataBit + (*CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress)(nil), // 197: dota.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress + (*CMsgVector2D)(nil), // 198: dota.CMsgVector2D + (*CMsgDOTACombatLogEntry)(nil), // 199: dota.CMsgDOTACombatLogEntry + (*CMsgVector)(nil), // 200: dota.CMsgVector + (*CDOTAMsg_LocationPing)(nil), // 201: dota.CDOTAMsg_LocationPing + (*CDOTAMsg_ItemAlert)(nil), // 202: dota.CDOTAMsg_ItemAlert + (*CEntityMsg)(nil), // 203: dota.CEntityMsg + (*CDOTAMsg_MapLine)(nil), // 204: dota.CDOTAMsg_MapLine + (*CDOTAMsg_WorldLine)(nil), // 205: dota.CDOTAMsg_WorldLine + (*CDOTAMsg_SendStatPopup)(nil), // 206: dota.CDOTAMsg_SendStatPopup + (*CDOTAMsg_DismissAllStatPopups)(nil), // 207: dota.CDOTAMsg_DismissAllStatPopups + (*CDOTAMsg_CoachHUDPing)(nil), // 208: dota.CDOTAMsg_CoachHUDPing + (EDOTAVersusScenePlayerBehavior)(0), // 209: dota.EDOTAVersusScenePlayerBehavior + (*VersusScene_PlayActivity)(nil), // 210: dota.VersusScene_PlayActivity + (*VersusScene_ChatWheel)(nil), // 211: dota.VersusScene_ChatWheel + (*VersusScene_PlaybackRate)(nil), // 212: dota.VersusScene_PlaybackRate } var file_dota_usermessages_proto_depIdxs = []int32{ 1, // 0: dota.CDOTAUserMsg_ChatEvent.type:type_name -> dota.DOTA_CHAT_MESSAGE - 201, // 1: dota.CDOTAUserMsg_CombatHeroPositions.world_pos:type_name -> dota.CMsgVector2D - 202, // 2: dota.CDOTAUserMsg_CombatLogBulkData.combat_entries:type_name -> dota.CMsgDOTACombatLogEntry - 203, // 3: dota.CDOTAUserMsg_ProjectileParticleCPData.vector:type_name -> dota.CMsgVector - 203, // 4: dota.CDOTAUserMsg_UpdateLinearProjectileCPData.vector:type_name -> dota.CMsgVector - 182, // 5: dota.CDOTAUserMsg_MiniKillCamInfo.attackers:type_name -> dota.CDOTAUserMsg_MiniKillCamInfo.Attacker - 203, // 6: dota.CDOTAUserMsg_GlobalLightDirection.direction:type_name -> dota.CMsgVector - 204, // 7: dota.CDOTAUserMsg_LocationPing.location_ping:type_name -> dota.CDOTAMsg_LocationPing - 203, // 8: dota.CDOTAUserMsg_PingConfirmation.location:type_name -> dota.CMsgVector - 205, // 9: dota.CDOTAUserMsg_ItemAlert.item_alert:type_name -> dota.CDOTAMsg_ItemAlert - 206, // 10: dota.CDOTAEntityMsg_InvokerSpellCast.entity_msg:type_name -> dota.CEntityMsg - 184, // 11: dota.CDOTAUserMsg_CourierKilledAlert.lost_items:type_name -> dota.CDOTAUserMsg_CourierKilledAlert.LostItem - 207, // 12: dota.CDOTAUserMsg_MapLine.mapline:type_name -> dota.CDOTAMsg_MapLine - 203, // 13: dota.CDOTAUserMsg_MinimapDebugPoint.location:type_name -> dota.CMsgVector - 203, // 14: dota.CDOTAUserMsg_CreateLinearProjectile.origin:type_name -> dota.CMsgVector - 201, // 15: dota.CDOTAUserMsg_CreateLinearProjectile.velocity:type_name -> dota.CMsgVector2D - 201, // 16: dota.CDOTAUserMsg_CreateLinearProjectile.acceleration:type_name -> dota.CMsgVector2D - 24, // 17: dota.CDOTAUserMsg_CreateLinearProjectile.particle_cp_data:type_name -> dota.CDOTAUserMsg_ProjectileParticleCPData - 203, // 18: dota.CDOTAUserMsg_SpectatorPlayerUnitOrders.position:type_name -> dota.CMsgVector - 203, // 19: dota.CDOTAUserMsg_NevermoreRequiem.origin:type_name -> dota.CMsgVector - 185, // 20: dota.CDOTAUserMsg_PredictionResult.predictions:type_name -> dota.CDOTAUserMsg_PredictionResult.Prediction - 186, // 21: dota.CDOTAResponseQuerySerialized.facts:type_name -> dota.CDOTAResponseQuerySerialized.Fact - 60, // 22: dota.CDOTASpeechMatchOnClient.responsequery:type_name -> dota.CDOTAResponseQuerySerialized - 6, // 23: dota.CDOTAUserMsg_UnitEvent.msg_type:type_name -> dota.EDotaEntityMessages - 188, // 24: dota.CDOTAUserMsg_UnitEvent.speech:type_name -> dota.CDOTAUserMsg_UnitEvent.Speech - 189, // 25: dota.CDOTAUserMsg_UnitEvent.speech_mute:type_name -> dota.CDOTAUserMsg_UnitEvent.SpeechMute - 190, // 26: dota.CDOTAUserMsg_UnitEvent.add_gesture:type_name -> dota.CDOTAUserMsg_UnitEvent.AddGesture - 191, // 27: dota.CDOTAUserMsg_UnitEvent.remove_gesture:type_name -> dota.CDOTAUserMsg_UnitEvent.RemoveGesture - 192, // 28: dota.CDOTAUserMsg_UnitEvent.blood_impact:type_name -> dota.CDOTAUserMsg_UnitEvent.BloodImpact - 193, // 29: dota.CDOTAUserMsg_UnitEvent.fade_gesture:type_name -> dota.CDOTAUserMsg_UnitEvent.FadeGesture - 61, // 30: dota.CDOTAUserMsg_UnitEvent.speech_match_on_client:type_name -> dota.CDOTASpeechMatchOnClient - 7, // 31: dota.CDOTAUserMsg_OverheadEvent.message_type:type_name -> dota.DOTA_OVERHEAD_ALERT - 208, // 32: dota.CDOTAUserMsg_WorldLine.worldline:type_name -> dota.CDOTAMsg_WorldLine - 209, // 33: dota.CDOTAUserMsg_SendStatPopup.statpopup:type_name -> dota.CDOTAMsg_SendStatPopup - 210, // 34: dota.CDOTAUserMsg_DismissAllStatPopups.dismissallmsg:type_name -> dota.CDOTAMsg_DismissAllStatPopups - 8, // 35: dota.CDOTAUserMsg_SendRoshanSpectatorPhase.phase:type_name -> dota.DOTA_ROSHAN_PHASE - 211, // 36: dota.CDOTAUserMsg_CoachHUDPing.hud_ping:type_name -> dota.CDOTAMsg_CoachHUDPing - 203, // 37: dota.CDOTAUserMsg_TE_Projectile.target_loc:type_name -> dota.CMsgVector - 24, // 38: dota.CDOTAUserMsg_TE_Projectile.particle_cp_data:type_name -> dota.CDOTAUserMsg_ProjectileParticleCPData - 203, // 39: dota.CDOTAUserMsg_TE_ProjectileLoc.source_loc:type_name -> dota.CMsgVector - 203, // 40: dota.CDOTAUserMsg_TE_ProjectileLoc.target_loc:type_name -> dota.CMsgVector - 24, // 41: dota.CDOTAUserMsg_TE_ProjectileLoc.particle_cp_data:type_name -> dota.CDOTAUserMsg_ProjectileParticleCPData - 4, // 42: dota.CDOTAUserMsg_AbilityPing.type:type_name -> dota.DOTA_ABILITY_PING_TYPE - 100, // 43: dota.CDOTAUserMsg_BoosterState.boosted_players:type_name -> dota.CDOTAUserMsg_BoosterStatePlayer - 194, // 44: dota.CDOTAUserMsg_StatsHeroPositionInfo.position_details:type_name -> dota.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair - 105, // 45: dota.CDOTAUserMsg_StatsHeroMinuteDetails.position_info:type_name -> dota.CDOTAUserMsg_StatsHeroPositionInfo - 106, // 46: dota.CDOTAUserMsg_StatsTeamMinuteDetails.player_stats:type_name -> dota.CDOTAUserMsg_StatsHeroMinuteDetails - 195, // 47: dota.CDOTAUserMsg_StatsTeamMinuteDetails.lane_performance:type_name -> dota.CDOTAUserMsg_StatsTeamMinuteDetails.LocationPerformance - 108, // 48: dota.CDOTAUserMsg_StatsKillDetails.kill_shares:type_name -> dota.CDOTAUserMsg_StatsPlayerKillShare - 104, // 49: dota.CDOTAUserMsg_StatsMatchDetails.hero_lookup:type_name -> dota.CDOTAUserMsg_StatsHeroLookup - 107, // 50: dota.CDOTAUserMsg_StatsMatchDetails.radiant_stats:type_name -> dota.CDOTAUserMsg_StatsTeamMinuteDetails - 107, // 51: dota.CDOTAUserMsg_StatsMatchDetails.dire_stats:type_name -> dota.CDOTAUserMsg_StatsTeamMinuteDetails - 109, // 52: dota.CDOTAUserMsg_StatsMatchDetails.radiant_kills:type_name -> dota.CDOTAUserMsg_StatsKillDetails - 109, // 53: dota.CDOTAUserMsg_StatsMatchDetails.dire_kills:type_name -> dota.CDOTAUserMsg_StatsKillDetails - 197, // 54: dota.CDOTAUserMsg_StatsMatchDetails.fight_details:type_name -> dota.CDOTAUserMsg_StatsMatchDetails.CDOTAUserMsg_StatsFightDetails - 11, // 55: dota.CMsgHeroAbilityStat.stat_type:type_name -> dota.EHeroStatType - 114, // 56: dota.CMsgCombatAnalyzerPlayerStat.hero_ability_stats:type_name -> dota.CMsgHeroAbilityStat - 115, // 57: dota.CMsgCombatAnalyzerStats.player_stats:type_name -> dota.CMsgCombatAnalyzerPlayerStat - 121, // 58: dota.CDOTAUserMsg_CompendiumState.compendium_players:type_name -> dota.CDOTAUserMsg_CompendiumStatePlayer - 203, // 59: dota.CDOTAUserMsg_ProjectionAbility.origin:type_name -> dota.CMsgVector - 13, // 60: dota.CDOTAUserMsg_ProjectionEvent.event_id:type_name -> dota.EProjectionEvent - 198, // 61: dota.CDOTAUserMsg_AllStarEvent.player_scores:type_name -> dota.CDOTAUserMsg_AllStarEvent.PlayerScore - 199, // 62: dota.CDOTAUserMsg_PauseMinigameData.data_bits:type_name -> dota.CDOTAUserMsg_PauseMinigameData.DataBit - 212, // 63: dota.CDOTAUserMsg_VersusScene_PlayerBehavior.behavior:type_name -> dota.EDOTAVersusScenePlayerBehavior - 213, // 64: dota.CDOTAUserMsg_VersusScene_PlayerBehavior.play_activity:type_name -> dota.VersusScene_PlayActivity - 214, // 65: dota.CDOTAUserMsg_VersusScene_PlayerBehavior.chat_wheel:type_name -> dota.VersusScene_ChatWheel - 215, // 66: dota.CDOTAUserMsg_VersusScene_PlayerBehavior.playback_rate:type_name -> dota.VersusScene_PlaybackRate - 200, // 67: dota.CDOTAUserMsg_GuildChallenge_Progress.player_progress:type_name -> dota.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress - 16, // 68: dota.CDOTAUserMsg_GuildChallenge_Progress.challenge_type:type_name -> dota.CDOTAUserMsg_GuildChallenge_Progress.EChallengeType - 183, // 69: dota.CDOTAUserMsg_MiniKillCamInfo.Attacker.abilities:type_name -> dota.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability - 14, // 70: dota.CDOTAUserMsg_PredictionResult.Prediction.result:type_name -> dota.CDOTAUserMsg_PredictionResult.Prediction.EResult - 15, // 71: dota.CDOTAResponseQuerySerialized.Fact.valtype:type_name -> dota.CDOTAResponseQuerySerialized.Fact.ValueType - 187, // 72: dota.CDOTAUserMsg_UnitEvent.Speech.predelay:type_name -> dota.CDOTAUserMsg_UnitEvent.Interval - 9, // 73: dota.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.position_category:type_name -> dota.DOTA_POSITION_CATEGORY - 196, // 74: dota.CDOTAUserMsg_StatsMatchDetails.CDOTAUserMsg_StatsFightDetails.radiant_fight_details:type_name -> dota.CDOTAUserMsg_StatsMatchDetails.CDOTAUserMsg_StatsFightTeamDetails - 196, // 75: dota.CDOTAUserMsg_StatsMatchDetails.CDOTAUserMsg_StatsFightDetails.dire_fight_details:type_name -> dota.CDOTAUserMsg_StatsMatchDetails.CDOTAUserMsg_StatsFightTeamDetails - 76, // [76:76] is the sub-list for method output_type - 76, // [76:76] is the sub-list for method input_type - 76, // [76:76] is the sub-list for extension type_name - 76, // [76:76] is the sub-list for extension extendee - 0, // [0:76] is the sub-list for field type_name + 198, // 1: dota.CDOTAUserMsg_CombatHeroPositions.world_pos:type_name -> dota.CMsgVector2D + 199, // 2: dota.CDOTAUserMsg_CombatLogBulkData.combat_entries:type_name -> dota.CMsgDOTACombatLogEntry + 200, // 3: dota.CDOTAUserMsg_ProjectileParticleCPData.vector:type_name -> dota.CMsgVector + 200, // 4: dota.CDOTAUserMsg_UpdateLinearProjectileCPData.vector:type_name -> dota.CMsgVector + 180, // 5: dota.CDOTAUserMsg_MiniKillCamInfo.attackers:type_name -> dota.CDOTAUserMsg_MiniKillCamInfo.Attacker + 200, // 6: dota.CDOTAUserMsg_GlobalLightDirection.direction:type_name -> dota.CMsgVector + 201, // 7: dota.CDOTAUserMsg_LocationPing.location_ping:type_name -> dota.CDOTAMsg_LocationPing + 200, // 8: dota.CDOTAUserMsg_PingConfirmation.location:type_name -> dota.CMsgVector + 202, // 9: dota.CDOTAUserMsg_ItemAlert.item_alert:type_name -> dota.CDOTAMsg_ItemAlert + 203, // 10: dota.CDOTAEntityMsg_InvokerSpellCast.entity_msg:type_name -> dota.CEntityMsg + 182, // 11: dota.CDOTAUserMsg_CourierKilledAlert.lost_items:type_name -> dota.CDOTAUserMsg_CourierKilledAlert.LostItem + 204, // 12: dota.CDOTAUserMsg_MapLine.mapline:type_name -> dota.CDOTAMsg_MapLine + 200, // 13: dota.CDOTAUserMsg_MinimapDebugPoint.location:type_name -> dota.CMsgVector + 200, // 14: dota.CDOTAUserMsg_CreateLinearProjectile.origin:type_name -> dota.CMsgVector + 198, // 15: dota.CDOTAUserMsg_CreateLinearProjectile.velocity:type_name -> dota.CMsgVector2D + 198, // 16: dota.CDOTAUserMsg_CreateLinearProjectile.acceleration:type_name -> dota.CMsgVector2D + 23, // 17: dota.CDOTAUserMsg_CreateLinearProjectile.particle_cp_data:type_name -> dota.CDOTAUserMsg_ProjectileParticleCPData + 200, // 18: dota.CDOTAUserMsg_SpectatorPlayerUnitOrders.position:type_name -> dota.CMsgVector + 200, // 19: dota.CDOTAUserMsg_NevermoreRequiem.origin:type_name -> dota.CMsgVector + 183, // 20: dota.CDOTAResponseQuerySerialized.facts:type_name -> dota.CDOTAResponseQuerySerialized.Fact + 58, // 21: dota.CDOTASpeechMatchOnClient.responsequery:type_name -> dota.CDOTAResponseQuerySerialized + 6, // 22: dota.CDOTAUserMsg_UnitEvent.msg_type:type_name -> dota.EDotaEntityMessages + 185, // 23: dota.CDOTAUserMsg_UnitEvent.speech:type_name -> dota.CDOTAUserMsg_UnitEvent.Speech + 186, // 24: dota.CDOTAUserMsg_UnitEvent.speech_mute:type_name -> dota.CDOTAUserMsg_UnitEvent.SpeechMute + 187, // 25: dota.CDOTAUserMsg_UnitEvent.add_gesture:type_name -> dota.CDOTAUserMsg_UnitEvent.AddGesture + 188, // 26: dota.CDOTAUserMsg_UnitEvent.remove_gesture:type_name -> dota.CDOTAUserMsg_UnitEvent.RemoveGesture + 189, // 27: dota.CDOTAUserMsg_UnitEvent.blood_impact:type_name -> dota.CDOTAUserMsg_UnitEvent.BloodImpact + 190, // 28: dota.CDOTAUserMsg_UnitEvent.fade_gesture:type_name -> dota.CDOTAUserMsg_UnitEvent.FadeGesture + 59, // 29: dota.CDOTAUserMsg_UnitEvent.speech_match_on_client:type_name -> dota.CDOTASpeechMatchOnClient + 7, // 30: dota.CDOTAUserMsg_OverheadEvent.message_type:type_name -> dota.DOTA_OVERHEAD_ALERT + 205, // 31: dota.CDOTAUserMsg_WorldLine.worldline:type_name -> dota.CDOTAMsg_WorldLine + 206, // 32: dota.CDOTAUserMsg_SendStatPopup.statpopup:type_name -> dota.CDOTAMsg_SendStatPopup + 207, // 33: dota.CDOTAUserMsg_DismissAllStatPopups.dismissallmsg:type_name -> dota.CDOTAMsg_DismissAllStatPopups + 8, // 34: dota.CDOTAUserMsg_SendRoshanSpectatorPhase.phase:type_name -> dota.DOTA_ROSHAN_PHASE + 208, // 35: dota.CDOTAUserMsg_CoachHUDPing.hud_ping:type_name -> dota.CDOTAMsg_CoachHUDPing + 200, // 36: dota.CDOTAUserMsg_TE_Projectile.target_loc:type_name -> dota.CMsgVector + 23, // 37: dota.CDOTAUserMsg_TE_Projectile.particle_cp_data:type_name -> dota.CDOTAUserMsg_ProjectileParticleCPData + 200, // 38: dota.CDOTAUserMsg_TE_ProjectileLoc.source_loc:type_name -> dota.CMsgVector + 200, // 39: dota.CDOTAUserMsg_TE_ProjectileLoc.target_loc:type_name -> dota.CMsgVector + 23, // 40: dota.CDOTAUserMsg_TE_ProjectileLoc.particle_cp_data:type_name -> dota.CDOTAUserMsg_ProjectileParticleCPData + 4, // 41: dota.CDOTAUserMsg_AbilityPing.type:type_name -> dota.DOTA_ABILITY_PING_TYPE + 98, // 42: dota.CDOTAUserMsg_BoosterState.boosted_players:type_name -> dota.CDOTAUserMsg_BoosterStatePlayer + 191, // 43: dota.CDOTAUserMsg_StatsHeroPositionInfo.position_details:type_name -> dota.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair + 103, // 44: dota.CDOTAUserMsg_StatsHeroMinuteDetails.position_info:type_name -> dota.CDOTAUserMsg_StatsHeroPositionInfo + 104, // 45: dota.CDOTAUserMsg_StatsTeamMinuteDetails.player_stats:type_name -> dota.CDOTAUserMsg_StatsHeroMinuteDetails + 192, // 46: dota.CDOTAUserMsg_StatsTeamMinuteDetails.lane_performance:type_name -> dota.CDOTAUserMsg_StatsTeamMinuteDetails.LocationPerformance + 106, // 47: dota.CDOTAUserMsg_StatsKillDetails.kill_shares:type_name -> dota.CDOTAUserMsg_StatsPlayerKillShare + 102, // 48: dota.CDOTAUserMsg_StatsMatchDetails.hero_lookup:type_name -> dota.CDOTAUserMsg_StatsHeroLookup + 105, // 49: dota.CDOTAUserMsg_StatsMatchDetails.radiant_stats:type_name -> dota.CDOTAUserMsg_StatsTeamMinuteDetails + 105, // 50: dota.CDOTAUserMsg_StatsMatchDetails.dire_stats:type_name -> dota.CDOTAUserMsg_StatsTeamMinuteDetails + 107, // 51: dota.CDOTAUserMsg_StatsMatchDetails.radiant_kills:type_name -> dota.CDOTAUserMsg_StatsKillDetails + 107, // 52: dota.CDOTAUserMsg_StatsMatchDetails.dire_kills:type_name -> dota.CDOTAUserMsg_StatsKillDetails + 194, // 53: dota.CDOTAUserMsg_StatsMatchDetails.fight_details:type_name -> dota.CDOTAUserMsg_StatsMatchDetails.CDOTAUserMsg_StatsFightDetails + 11, // 54: dota.CMsgHeroAbilityStat.stat_type:type_name -> dota.EHeroStatType + 112, // 55: dota.CMsgCombatAnalyzerPlayerStat.hero_ability_stats:type_name -> dota.CMsgHeroAbilityStat + 113, // 56: dota.CMsgCombatAnalyzerStats.player_stats:type_name -> dota.CMsgCombatAnalyzerPlayerStat + 119, // 57: dota.CDOTAUserMsg_CompendiumState.compendium_players:type_name -> dota.CDOTAUserMsg_CompendiumStatePlayer + 200, // 58: dota.CDOTAUserMsg_ProjectionAbility.origin:type_name -> dota.CMsgVector + 13, // 59: dota.CDOTAUserMsg_ProjectionEvent.event_id:type_name -> dota.EProjectionEvent + 195, // 60: dota.CDOTAUserMsg_AllStarEvent.player_scores:type_name -> dota.CDOTAUserMsg_AllStarEvent.PlayerScore + 196, // 61: dota.CDOTAUserMsg_PauseMinigameData.data_bits:type_name -> dota.CDOTAUserMsg_PauseMinigameData.DataBit + 209, // 62: dota.CDOTAUserMsg_VersusScene_PlayerBehavior.behavior:type_name -> dota.EDOTAVersusScenePlayerBehavior + 210, // 63: dota.CDOTAUserMsg_VersusScene_PlayerBehavior.play_activity:type_name -> dota.VersusScene_PlayActivity + 211, // 64: dota.CDOTAUserMsg_VersusScene_PlayerBehavior.chat_wheel:type_name -> dota.VersusScene_ChatWheel + 212, // 65: dota.CDOTAUserMsg_VersusScene_PlayerBehavior.playback_rate:type_name -> dota.VersusScene_PlaybackRate + 197, // 66: dota.CDOTAUserMsg_GuildChallenge_Progress.player_progress:type_name -> dota.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress + 15, // 67: dota.CDOTAUserMsg_GuildChallenge_Progress.challenge_type:type_name -> dota.CDOTAUserMsg_GuildChallenge_Progress.EChallengeType + 181, // 68: dota.CDOTAUserMsg_MiniKillCamInfo.Attacker.abilities:type_name -> dota.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability + 14, // 69: dota.CDOTAResponseQuerySerialized.Fact.valtype:type_name -> dota.CDOTAResponseQuerySerialized.Fact.ValueType + 184, // 70: dota.CDOTAUserMsg_UnitEvent.Speech.predelay:type_name -> dota.CDOTAUserMsg_UnitEvent.Interval + 9, // 71: dota.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.position_category:type_name -> dota.DOTA_POSITION_CATEGORY + 193, // 72: dota.CDOTAUserMsg_StatsMatchDetails.CDOTAUserMsg_StatsFightDetails.radiant_fight_details:type_name -> dota.CDOTAUserMsg_StatsMatchDetails.CDOTAUserMsg_StatsFightTeamDetails + 193, // 73: dota.CDOTAUserMsg_StatsMatchDetails.CDOTAUserMsg_StatsFightDetails.dire_fight_details:type_name -> dota.CDOTAUserMsg_StatsMatchDetails.CDOTAUserMsg_StatsFightTeamDetails + 74, // [74:74] is the sub-list for method output_type + 74, // [74:74] is the sub-list for method input_type + 74, // [74:74] is the sub-list for extension type_name + 74, // [74:74] is the sub-list for extension extendee + 0, // [0:74] is the sub-list for field type_name } func init() { file_dota_usermessages_proto_init() } @@ -18241,18 +17999,6 @@ func file_dota_usermessages_proto_init() { } } file_dota_usermessages_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CDOTAUserMsg_PredictionResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_dota_usermessages_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAResponseQuerySerialized); i { case 0: return &v.state @@ -18264,7 +18010,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTASpeechMatchOnClient); i { case 0: return &v.state @@ -18276,7 +18022,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_UnitEvent); i { case 0: return &v.state @@ -18288,7 +18034,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_ItemPurchased); i { case 0: return &v.state @@ -18300,7 +18046,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_ItemSold); i { case 0: return &v.state @@ -18312,7 +18058,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_ItemFound); i { case 0: return &v.state @@ -18324,7 +18070,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_OverheadEvent); i { case 0: return &v.state @@ -18336,7 +18082,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_TutorialTipInfo); i { case 0: return &v.state @@ -18348,7 +18094,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_TutorialFinish); i { case 0: return &v.state @@ -18360,7 +18106,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_TutorialMinimapPosition); i { case 0: return &v.state @@ -18372,7 +18118,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_SendGenericToolTip); i { case 0: return &v.state @@ -18384,7 +18130,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_WorldLine); i { case 0: return &v.state @@ -18396,7 +18142,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_ChatWheel); i { case 0: return &v.state @@ -18408,7 +18154,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_ReceivedXmasGift); i { case 0: return &v.state @@ -18420,7 +18166,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_ShowSurvey); i { case 0: return &v.state @@ -18432,7 +18178,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_UpdateSharedContent); i { case 0: return &v.state @@ -18444,7 +18190,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_TutorialRequestExp); i { case 0: return &v.state @@ -18456,7 +18202,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_TutorialFade); i { case 0: return &v.state @@ -18468,7 +18214,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_TutorialPingMinimap); i { case 0: return &v.state @@ -18480,7 +18226,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_GamerulesStateChanged); i { case 0: return &v.state @@ -18492,7 +18238,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_AddQuestLogEntry); i { case 0: return &v.state @@ -18504,7 +18250,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_SendStatPopup); i { case 0: return &v.state @@ -18516,7 +18262,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_DismissAllStatPopups); i { case 0: return &v.state @@ -18528,7 +18274,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_SendRoshanSpectatorPhase); i { case 0: return &v.state @@ -18540,7 +18286,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_SendRoshanPopup); i { case 0: return &v.state @@ -18552,7 +18298,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_SendFinalGold); i { case 0: return &v.state @@ -18564,7 +18310,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_CustomMsg); i { case 0: return &v.state @@ -18576,7 +18322,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_CoachHUDPing); i { case 0: return &v.state @@ -18588,7 +18334,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_ClientLoadGridNav); i { case 0: return &v.state @@ -18600,7 +18346,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_TE_Projectile); i { case 0: return &v.state @@ -18612,7 +18358,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_TE_ProjectileLoc); i { case 0: return &v.state @@ -18624,7 +18370,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_TE_DestroyProjectile); i { case 0: return &v.state @@ -18636,7 +18382,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_TE_DotaBloodImpact); i { case 0: return &v.state @@ -18648,7 +18394,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_AbilityPing); i { case 0: return &v.state @@ -18660,7 +18406,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_TE_UnitAnimation); i { case 0: return &v.state @@ -18672,7 +18418,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_TE_UnitAnimationEnd); i { case 0: return &v.state @@ -18684,7 +18430,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_ShowGenericPopup); i { case 0: return &v.state @@ -18696,7 +18442,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_VoteStart); i { case 0: return &v.state @@ -18708,7 +18454,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_VoteUpdate); i { case 0: return &v.state @@ -18720,7 +18466,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_VoteEnd); i { case 0: return &v.state @@ -18732,7 +18478,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_BoosterStatePlayer); i { case 0: return &v.state @@ -18744,7 +18490,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_BoosterState); i { case 0: return &v.state @@ -18756,7 +18502,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_PlayerMMR); i { case 0: return &v.state @@ -18768,7 +18514,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_AbilitySteal); i { case 0: return &v.state @@ -18780,7 +18526,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_StatsHeroLookup); i { case 0: return &v.state @@ -18792,7 +18538,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_StatsHeroPositionInfo); i { case 0: return &v.state @@ -18804,7 +18550,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_StatsHeroMinuteDetails); i { case 0: return &v.state @@ -18816,7 +18562,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_StatsTeamMinuteDetails); i { case 0: return &v.state @@ -18828,7 +18574,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_StatsPlayerKillShare); i { case 0: return &v.state @@ -18840,7 +18586,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_StatsKillDetails); i { case 0: return &v.state @@ -18852,7 +18598,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_StatsMatchDetails); i { case 0: return &v.state @@ -18864,7 +18610,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_MiniTaunt); i { case 0: return &v.state @@ -18876,7 +18622,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_SpeechBubble); i { case 0: return &v.state @@ -18888,7 +18634,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_CustomHeaderMessage); i { case 0: return &v.state @@ -18900,7 +18646,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgHeroAbilityStat); i { case 0: return &v.state @@ -18912,7 +18658,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgCombatAnalyzerPlayerStat); i { case 0: return &v.state @@ -18924,7 +18670,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgCombatAnalyzerStats); i { case 0: return &v.state @@ -18936,7 +18682,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_BeastChat); i { case 0: return &v.state @@ -18948,7 +18694,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_CustomHudElement_Create); i { case 0: return &v.state @@ -18960,7 +18706,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_CustomHudElement_Modify); i { case 0: return &v.state @@ -18972,7 +18718,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_CustomHudElement_Destroy); i { case 0: return &v.state @@ -18984,7 +18730,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_CompendiumStatePlayer); i { case 0: return &v.state @@ -18996,7 +18742,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_CompendiumState); i { case 0: return &v.state @@ -19008,7 +18754,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_ProjectionAbility); i { case 0: return &v.state @@ -19020,7 +18766,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_ProjectionEvent); i { case 0: return &v.state @@ -19032,7 +18778,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_XPAlert); i { case 0: return &v.state @@ -19044,7 +18790,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_TalentTreeAlert); i { case 0: return &v.state @@ -19056,7 +18802,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_UpdateQuestProgress); i { case 0: return &v.state @@ -19068,7 +18814,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_QuestStatus); i { case 0: return &v.state @@ -19080,7 +18826,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_SuggestHeroPick); i { case 0: return &v.state @@ -19092,7 +18838,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_SuggestHeroRole); i { case 0: return &v.state @@ -19104,7 +18850,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_KillcamDamageTaken); i { case 0: return &v.state @@ -19116,7 +18862,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_SelectPenaltyGold); i { case 0: return &v.state @@ -19128,7 +18874,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_RollDiceResult); i { case 0: return &v.state @@ -19140,7 +18886,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_FlipCoinResult); i { case 0: return &v.state @@ -19152,7 +18898,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMessage_RequestItemSuggestions); i { case 0: return &v.state @@ -19164,7 +18910,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMessage_TeamCaptainChanged); i { case 0: return &v.state @@ -19176,7 +18922,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_ChatWheelCooldown); i { case 0: return &v.state @@ -19188,7 +18934,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_HeroRelicProgress); i { case 0: return &v.state @@ -19200,7 +18946,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_AbilityDraftRequestAbility); i { case 0: return &v.state @@ -19212,7 +18958,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_DamageReport); i { case 0: return &v.state @@ -19224,7 +18970,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_SalutePlayer); i { case 0: return &v.state @@ -19236,7 +18982,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_GiftPlayer); i { case 0: return &v.state @@ -19248,7 +18994,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_TipAlert); i { case 0: return &v.state @@ -19260,7 +19006,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_ReplaceQueryUnit); i { case 0: return &v.state @@ -19272,7 +19018,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_ESArcanaCombo); i { case 0: return &v.state @@ -19284,7 +19030,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_ESArcanaComboSummary); i { case 0: return &v.state @@ -19296,7 +19042,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_OMArcanaCombo); i { case 0: return &v.state @@ -19308,7 +19054,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_HighFiveCompleted); i { case 0: return &v.state @@ -19320,7 +19066,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_HighFiveLeftHanging); i { case 0: return &v.state @@ -19332,7 +19078,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_ShovelUnearth); i { case 0: return &v.state @@ -19344,7 +19090,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_AllStarEvent); i { case 0: return &v.state @@ -19356,7 +19102,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_QueuedOrderRemoved); i { case 0: return &v.state @@ -19368,7 +19114,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_DebugChallenge); i { case 0: return &v.state @@ -19380,7 +19126,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_FoundNeutralItem); i { case 0: return &v.state @@ -19392,7 +19138,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_OutpostCaptured); i { case 0: return &v.state @@ -19404,7 +19150,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_OutpostGrantedXP); i { case 0: return &v.state @@ -19416,7 +19162,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_MoveCameraToUnit); i { case 0: return &v.state @@ -19428,7 +19174,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_PauseMinigameData); i { case 0: return &v.state @@ -19440,7 +19186,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_VersusScene_PlayerBehavior); i { case 0: return &v.state @@ -19452,7 +19198,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_QoP_ArcanaSummary); i { case 0: return &v.state @@ -19464,7 +19210,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_HotPotato_Created); i { case 0: return &v.state @@ -19476,7 +19222,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_HotPotato_Exploded); i { case 0: return &v.state @@ -19488,7 +19234,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_WK_Arcana_Progress); i { case 0: return &v.state @@ -19500,7 +19246,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_GuildChallenge_Progress); i { case 0: return &v.state @@ -19512,7 +19258,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_WRArcanaProgress); i { case 0: return &v.state @@ -19524,7 +19270,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_WRArcanaSummary); i { case 0: return &v.state @@ -19536,7 +19282,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_EmptyItemSlotAlert); i { case 0: return &v.state @@ -19548,7 +19294,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_AghsStatusAlert); i { case 0: return &v.state @@ -19560,7 +19306,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_MutedPlayers); i { case 0: return &v.state @@ -19572,7 +19318,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_ContextualTip); i { case 0: return &v.state @@ -19584,7 +19330,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_ChatMessage); i { case 0: return &v.state @@ -19596,7 +19342,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_RockPaperScissorsStarted); i { case 0: return &v.state @@ -19608,7 +19354,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_RockPaperScissorsFinished); i { case 0: return &v.state @@ -19620,7 +19366,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_DuelOpponentKilled); i { case 0: return &v.state @@ -19632,7 +19378,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_DuelAccepted); i { case 0: return &v.state @@ -19644,7 +19390,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_DuelRequested); i { case 0: return &v.state @@ -19656,7 +19402,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[160].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled); i { case 0: return &v.state @@ -19668,7 +19414,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[161].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[160].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_PlayerDraftSuggestPick); i { case 0: return &v.state @@ -19680,7 +19426,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[162].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[161].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_PlayerDraftPick); i { case 0: return &v.state @@ -19692,7 +19438,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[163].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[162].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_FacetPing); i { case 0: return &v.state @@ -19704,7 +19450,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[164].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[163].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_InnatePing); i { case 0: return &v.state @@ -19716,7 +19462,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[165].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[164].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_MiniKillCamInfo_Attacker); i { case 0: return &v.state @@ -19728,7 +19474,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[166].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[165].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability); i { case 0: return &v.state @@ -19740,7 +19486,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[167].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[166].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_CourierKilledAlert_LostItem); i { case 0: return &v.state @@ -19752,19 +19498,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[168].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CDOTAUserMsg_PredictionResult_Prediction); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_dota_usermessages_proto_msgTypes[169].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[167].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAResponseQuerySerialized_Fact); i { case 0: return &v.state @@ -19776,7 +19510,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[170].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[168].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_UnitEvent_Interval); i { case 0: return &v.state @@ -19788,7 +19522,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[171].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[169].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_UnitEvent_Speech); i { case 0: return &v.state @@ -19800,7 +19534,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[172].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[170].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_UnitEvent_SpeechMute); i { case 0: return &v.state @@ -19812,7 +19546,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[173].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[171].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_UnitEvent_AddGesture); i { case 0: return &v.state @@ -19824,7 +19558,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[174].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[172].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_UnitEvent_RemoveGesture); i { case 0: return &v.state @@ -19836,7 +19570,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[175].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[173].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_UnitEvent_BloodImpact); i { case 0: return &v.state @@ -19848,7 +19582,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[176].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[174].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_UnitEvent_FadeGesture); i { case 0: return &v.state @@ -19860,7 +19594,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[177].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[175].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_StatsHeroPositionInfo_PositionPair); i { case 0: return &v.state @@ -19872,7 +19606,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[178].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[176].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_StatsTeamMinuteDetails_LocationPerformance); i { case 0: return &v.state @@ -19884,7 +19618,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[179].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[177].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightTeamDetails); i { case 0: return &v.state @@ -19896,7 +19630,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[180].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[178].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightDetails); i { case 0: return &v.state @@ -19908,7 +19642,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[181].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[179].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_AllStarEvent_PlayerScore); i { case 0: return &v.state @@ -19920,7 +19654,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[182].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[180].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_PauseMinigameData_DataBit); i { case 0: return &v.state @@ -19932,7 +19666,7 @@ func file_dota_usermessages_proto_init() { return nil } } - file_dota_usermessages_proto_msgTypes[183].Exporter = func(v interface{}, i int) interface{} { + file_dota_usermessages_proto_msgTypes[181].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress); i { case 0: return &v.state @@ -19950,8 +19684,8 @@ func file_dota_usermessages_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_dota_usermessages_proto_rawDesc, - NumEnums: 17, - NumMessages: 184, + NumEnums: 16, + NumMessages: 182, NumExtensions: 0, NumServices: 0, }, diff --git a/dota/dota_usermessages.proto b/dota/dota_usermessages.proto index 2282b3a..f21f03f 100644 --- a/dota/dota_usermessages.proto +++ b/dota/dota_usermessages.proto @@ -750,26 +750,6 @@ message CDOTAUserMsg_HalloweenDrops { optional uint32 prize_list = 3; } -message CDOTAUserMsg_PredictionResult { - message Prediction { - enum EResult { - k_eResult_ItemGranted = 1; - k_eResult_Destroyed = 2; - } - - optional uint32 item_def = 1; - optional uint32 num_correct = 2; - optional uint32 num_fails = 3; - optional CDOTAUserMsg_PredictionResult.Prediction.EResult result = 4; - repeated uint32 granted_item_defs = 6; - } - - optional uint32 account_id = 1; - optional uint64 match_id = 2; - optional bool correct = 3; - repeated CDOTAUserMsg_PredictionResult.Prediction predictions = 4; -} - message CDOTAResponseQuerySerialized { message Fact { enum ValueType { @@ -905,7 +885,7 @@ message CDOTAUserMsg_ChatWheel { optional uint32 chat_message_id = 1; optional int32 player_id = 2; optional uint32 account_id = 3; - optional uint32 param_hero_id = 4; + optional int32 param_hero_id = 4; optional uint32 emoticon_id = 5; } @@ -919,7 +899,7 @@ message CDOTAUserMsg_ShowSurvey { optional int32 survey_id = 1; optional uint64 match_id = 2; optional string response_style = 3; - optional uint32 teammate_hero_id = 4; + optional int32 teammate_hero_id = 4; optional string teammate_name = 5; optional uint32 teammate_account_id = 6; } @@ -1321,7 +1301,7 @@ message CDOTAUserMsg_QuestStatus { message CDOTAUserMsg_SuggestHeroPick { required int32 player_id = 1; - optional uint32 hero_id = 2; + optional int32 hero_id = 2; optional bool ban = 3; optional uint32 facet_id = 4; } @@ -1389,8 +1369,8 @@ message CDOTAUserMsg_AbilityDraftRequestAbility { message CDOTAUserMsg_DamageReport { optional int32 player_id = 1; - optional uint32 target_hero_id = 2; - optional uint32 source_hero_id = 3; + optional int32 target_hero_id = 2; + optional int32 source_hero_id = 3; optional int32 damage_amount = 4; optional bool broadcast = 5; } @@ -1543,7 +1523,7 @@ message CDOTAUserMsg_HotPotato_Exploded { message CDOTAUserMsg_WK_Arcana_Progress { optional uint32 ehandle = 1; optional uint32 arcana_level = 2; - optional uint32 hero_id = 3; + optional int32 hero_id = 3; } message CDOTAUserMsg_GuildChallenge_Progress { diff --git a/dota/netmessages.pb.go b/dota/netmessages.pb.go index c4249e0..9f21c05 100644 --- a/dota/netmessages.pb.go +++ b/dota/netmessages.pb.go @@ -27,19 +27,17 @@ const ( CLC_Messages_clc_Move CLC_Messages = 21 CLC_Messages_clc_VoiceData CLC_Messages = 22 CLC_Messages_clc_BaselineAck CLC_Messages = 23 - CLC_Messages_clc_ListenEvents CLC_Messages = 24 CLC_Messages_clc_RespondCvarValue CLC_Messages = 25 CLC_Messages_clc_FileCRCCheck CLC_Messages = 26 CLC_Messages_clc_LoadingProgress CLC_Messages = 27 CLC_Messages_clc_SplitPlayerConnect CLC_Messages = 28 - CLC_Messages_clc_ClientMessage CLC_Messages = 29 CLC_Messages_clc_SplitPlayerDisconnect CLC_Messages = 30 CLC_Messages_clc_ServerStatus CLC_Messages = 31 - CLC_Messages_clc_ServerPing CLC_Messages = 32 CLC_Messages_clc_RequestPause CLC_Messages = 33 CLC_Messages_clc_CmdKeyValues CLC_Messages = 34 CLC_Messages_clc_RconServerDetails CLC_Messages = 35 CLC_Messages_clc_HltvReplay CLC_Messages = 36 + CLC_Messages_clc_Diagnostic CLC_Messages = 37 ) // Enum value maps for CLC_Messages. @@ -49,38 +47,34 @@ var ( 21: "clc_Move", 22: "clc_VoiceData", 23: "clc_BaselineAck", - 24: "clc_ListenEvents", 25: "clc_RespondCvarValue", 26: "clc_FileCRCCheck", 27: "clc_LoadingProgress", 28: "clc_SplitPlayerConnect", - 29: "clc_ClientMessage", 30: "clc_SplitPlayerDisconnect", 31: "clc_ServerStatus", - 32: "clc_ServerPing", 33: "clc_RequestPause", 34: "clc_CmdKeyValues", 35: "clc_RconServerDetails", 36: "clc_HltvReplay", + 37: "clc_Diagnostic", } CLC_Messages_value = map[string]int32{ "clc_ClientInfo": 20, "clc_Move": 21, "clc_VoiceData": 22, "clc_BaselineAck": 23, - "clc_ListenEvents": 24, "clc_RespondCvarValue": 25, "clc_FileCRCCheck": 26, "clc_LoadingProgress": 27, "clc_SplitPlayerConnect": 28, - "clc_ClientMessage": 29, "clc_SplitPlayerDisconnect": 30, "clc_ServerStatus": 31, - "clc_ServerPing": 32, "clc_RequestPause": 33, "clc_CmdKeyValues": 34, "clc_RconServerDetails": 35, "clc_HltvReplay": 36, + "clc_Diagnostic": 37, } ) @@ -151,9 +145,9 @@ const ( SVC_Messages_svc_FullFrameSplit SVC_Messages = 70 SVC_Messages_svc_RconServerDetails SVC_Messages = 71 SVC_Messages_svc_UserMessage SVC_Messages = 72 - SVC_Messages_svc_HltvReplay SVC_Messages = 73 SVC_Messages_svc_Broadcast_Command SVC_Messages = 74 SVC_Messages_svc_HltvFixupOperatorStatus SVC_Messages = 75 + SVC_Messages_svc_UserCmds SVC_Messages = 76 ) // Enum value maps for SVC_Messages. @@ -186,9 +180,9 @@ var ( 70: "svc_FullFrameSplit", 71: "svc_RconServerDetails", 72: "svc_UserMessage", - 73: "svc_HltvReplay", 74: "svc_Broadcast_Command", 75: "svc_HltvFixupOperatorStatus", + 76: "svc_UserCmds", } SVC_Messages_value = map[string]int32{ "svc_ServerInfo": 40, @@ -218,9 +212,9 @@ var ( "svc_FullFrameSplit": 70, "svc_RconServerDetails": 71, "svc_UserMessage": 72, - "svc_HltvReplay": 73, "svc_Broadcast_Command": 74, "svc_HltvFixupOperatorStatus": 75, + "svc_UserCmds": 76, } ) @@ -932,9 +926,8 @@ type CCLCMsg_Move struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Data []byte `protobuf:"bytes,3,opt,name=data" json:"data,omitempty"` - CommandNumber *uint32 `protobuf:"varint,4,opt,name=command_number,json=commandNumber" json:"command_number,omitempty"` - NumCommands *uint32 `protobuf:"varint,5,opt,name=num_commands,json=numCommands" json:"num_commands,omitempty"` + Data []byte `protobuf:"bytes,3,opt,name=data" json:"data,omitempty"` + LastCommandNumber *uint32 `protobuf:"varint,4,opt,name=last_command_number,json=lastCommandNumber" json:"last_command_number,omitempty"` } func (x *CCLCMsg_Move) Reset() { @@ -976,16 +969,9 @@ func (x *CCLCMsg_Move) GetData() []byte { return nil } -func (x *CCLCMsg_Move) GetCommandNumber() uint32 { - if x != nil && x.CommandNumber != nil { - return *x.CommandNumber - } - return 0 -} - -func (x *CCLCMsg_Move) GetNumCommands() uint32 { - if x != nil && x.NumCommands != nil { - return *x.NumCommands +func (x *CCLCMsg_Move) GetLastCommandNumber() uint32 { + if x != nil && x.LastCommandNumber != nil { + return *x.LastCommandNumber } return 0 } @@ -1510,17 +1496,16 @@ func (x *CCLCMsg_SplitPlayerConnect) GetPlayername() string { return "" } -type CCLCMsg_ClientMessage struct { +type CCLCMsg_SplitPlayerDisconnect struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - MsgType *int32 `protobuf:"varint,1,opt,name=msg_type,json=msgType" json:"msg_type,omitempty"` - Data []byte `protobuf:"bytes,2,opt,name=data" json:"data,omitempty"` + Slot *int32 `protobuf:"varint,1,opt,name=slot" json:"slot,omitempty"` } -func (x *CCLCMsg_ClientMessage) Reset() { - *x = CCLCMsg_ClientMessage{} +func (x *CCLCMsg_SplitPlayerDisconnect) Reset() { + *x = CCLCMsg_SplitPlayerDisconnect{} if protoimpl.UnsafeEnabled { mi := &file_netmessages_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1528,13 +1513,13 @@ func (x *CCLCMsg_ClientMessage) Reset() { } } -func (x *CCLCMsg_ClientMessage) String() string { +func (x *CCLCMsg_SplitPlayerDisconnect) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CCLCMsg_ClientMessage) ProtoMessage() {} +func (*CCLCMsg_SplitPlayerDisconnect) ProtoMessage() {} -func (x *CCLCMsg_ClientMessage) ProtoReflect() protoreflect.Message { +func (x *CCLCMsg_SplitPlayerDisconnect) ProtoReflect() protoreflect.Message { mi := &file_netmessages_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1546,50 +1531,192 @@ func (x *CCLCMsg_ClientMessage) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CCLCMsg_ClientMessage.ProtoReflect.Descriptor instead. -func (*CCLCMsg_ClientMessage) Descriptor() ([]byte, []int) { +// Deprecated: Use CCLCMsg_SplitPlayerDisconnect.ProtoReflect.Descriptor instead. +func (*CCLCMsg_SplitPlayerDisconnect) Descriptor() ([]byte, []int) { return file_netmessages_proto_rawDescGZIP(), []int{10} } -func (x *CCLCMsg_ClientMessage) GetMsgType() int32 { - if x != nil && x.MsgType != nil { - return *x.MsgType +func (x *CCLCMsg_SplitPlayerDisconnect) GetSlot() int32 { + if x != nil && x.Slot != nil { + return *x.Slot + } + return 0 +} + +type CCLCMsg_ServerStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Simplified *bool `protobuf:"varint,1,opt,name=simplified" json:"simplified,omitempty"` +} + +func (x *CCLCMsg_ServerStatus) Reset() { + *x = CCLCMsg_ServerStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_netmessages_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCLCMsg_ServerStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCLCMsg_ServerStatus) ProtoMessage() {} + +func (x *CCLCMsg_ServerStatus) ProtoReflect() protoreflect.Message { + mi := &file_netmessages_proto_msgTypes[11] + 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 CCLCMsg_ServerStatus.ProtoReflect.Descriptor instead. +func (*CCLCMsg_ServerStatus) Descriptor() ([]byte, []int) { + return file_netmessages_proto_rawDescGZIP(), []int{11} +} + +func (x *CCLCMsg_ServerStatus) GetSimplified() bool { + if x != nil && x.Simplified != nil { + return *x.Simplified + } + return false +} + +type CCLCMsg_RequestPause struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PauseType *RequestPauseT `protobuf:"varint,1,opt,name=pause_type,json=pauseType,enum=dota.RequestPauseT" json:"pause_type,omitempty"` + PauseGroup *int32 `protobuf:"varint,2,opt,name=pause_group,json=pauseGroup" json:"pause_group,omitempty"` +} + +func (x *CCLCMsg_RequestPause) Reset() { + *x = CCLCMsg_RequestPause{} + if protoimpl.UnsafeEnabled { + mi := &file_netmessages_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCLCMsg_RequestPause) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCLCMsg_RequestPause) ProtoMessage() {} + +func (x *CCLCMsg_RequestPause) ProtoReflect() protoreflect.Message { + mi := &file_netmessages_proto_msgTypes[12] + 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 CCLCMsg_RequestPause.ProtoReflect.Descriptor instead. +func (*CCLCMsg_RequestPause) Descriptor() ([]byte, []int) { + return file_netmessages_proto_rawDescGZIP(), []int{12} +} + +func (x *CCLCMsg_RequestPause) GetPauseType() RequestPauseT { + if x != nil && x.PauseType != nil { + return *x.PauseType + } + return RequestPauseT_RP_PAUSE +} + +func (x *CCLCMsg_RequestPause) GetPauseGroup() int32 { + if x != nil && x.PauseGroup != nil { + return *x.PauseGroup } return 0 } -func (x *CCLCMsg_ClientMessage) GetData() []byte { +type CCLCMsg_CmdKeyValues struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data []byte `protobuf:"bytes,1,opt,name=data" json:"data,omitempty"` +} + +func (x *CCLCMsg_CmdKeyValues) Reset() { + *x = CCLCMsg_CmdKeyValues{} + if protoimpl.UnsafeEnabled { + mi := &file_netmessages_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCLCMsg_CmdKeyValues) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCLCMsg_CmdKeyValues) ProtoMessage() {} + +func (x *CCLCMsg_CmdKeyValues) ProtoReflect() protoreflect.Message { + mi := &file_netmessages_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 CCLCMsg_CmdKeyValues.ProtoReflect.Descriptor instead. +func (*CCLCMsg_CmdKeyValues) Descriptor() ([]byte, []int) { + return file_netmessages_proto_rawDescGZIP(), []int{13} +} + +func (x *CCLCMsg_CmdKeyValues) GetData() []byte { if x != nil { return x.Data } return nil } -type CCLCMsg_SplitPlayerDisconnect struct { +type CCLCMsg_RconServerDetails struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Slot *int32 `protobuf:"varint,1,opt,name=slot" json:"slot,omitempty"` + Token []byte `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"` } -func (x *CCLCMsg_SplitPlayerDisconnect) Reset() { - *x = CCLCMsg_SplitPlayerDisconnect{} +func (x *CCLCMsg_RconServerDetails) Reset() { + *x = CCLCMsg_RconServerDetails{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[11] + mi := &file_netmessages_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CCLCMsg_SplitPlayerDisconnect) String() string { +func (x *CCLCMsg_RconServerDetails) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CCLCMsg_SplitPlayerDisconnect) ProtoMessage() {} +func (*CCLCMsg_RconServerDetails) ProtoMessage() {} -func (x *CCLCMsg_SplitPlayerDisconnect) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[11] +func (x *CCLCMsg_RconServerDetails) ProtoReflect() protoreflect.Message { + mi := &file_netmessages_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1600,43 +1727,186 @@ func (x *CCLCMsg_SplitPlayerDisconnect) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CCLCMsg_SplitPlayerDisconnect.ProtoReflect.Descriptor instead. -func (*CCLCMsg_SplitPlayerDisconnect) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{11} +// Deprecated: Use CCLCMsg_RconServerDetails.ProtoReflect.Descriptor instead. +func (*CCLCMsg_RconServerDetails) Descriptor() ([]byte, []int) { + return file_netmessages_proto_rawDescGZIP(), []int{14} } -func (x *CCLCMsg_SplitPlayerDisconnect) GetSlot() int32 { - if x != nil && x.Slot != nil { - return *x.Slot +func (x *CCLCMsg_RconServerDetails) GetToken() []byte { + if x != nil { + return x.Token + } + return nil +} + +type CMsgSource2SystemSpecs struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CpuId *string `protobuf:"bytes,1,opt,name=cpu_id,json=cpuId" json:"cpu_id,omitempty"` + CpuBrand *string `protobuf:"bytes,2,opt,name=cpu_brand,json=cpuBrand" json:"cpu_brand,omitempty"` + CpuModel *uint32 `protobuf:"varint,3,opt,name=cpu_model,json=cpuModel" json:"cpu_model,omitempty"` + CpuNumPhysical *uint32 `protobuf:"varint,4,opt,name=cpu_num_physical,json=cpuNumPhysical" json:"cpu_num_physical,omitempty"` + RamPhysicalTotalMb *uint32 `protobuf:"varint,21,opt,name=ram_physical_total_mb,json=ramPhysicalTotalMb" json:"ram_physical_total_mb,omitempty"` + GpuRendersystemDllName *string `protobuf:"bytes,41,opt,name=gpu_rendersystem_dll_name,json=gpuRendersystemDllName" json:"gpu_rendersystem_dll_name,omitempty"` + GpuVendorId *uint32 `protobuf:"varint,42,opt,name=gpu_vendor_id,json=gpuVendorId" json:"gpu_vendor_id,omitempty"` + GpuDriverName *string `protobuf:"bytes,43,opt,name=gpu_driver_name,json=gpuDriverName" json:"gpu_driver_name,omitempty"` + GpuDriverVersionHigh *uint32 `protobuf:"varint,44,opt,name=gpu_driver_version_high,json=gpuDriverVersionHigh" json:"gpu_driver_version_high,omitempty"` + GpuDriverVersionLow *uint32 `protobuf:"varint,45,opt,name=gpu_driver_version_low,json=gpuDriverVersionLow" json:"gpu_driver_version_low,omitempty"` + GpuDxSupportLevel *uint32 `protobuf:"varint,46,opt,name=gpu_dx_support_level,json=gpuDxSupportLevel" json:"gpu_dx_support_level,omitempty"` + GpuTextureMemorySizeMb *uint32 `protobuf:"varint,47,opt,name=gpu_texture_memory_size_mb,json=gpuTextureMemorySizeMb" json:"gpu_texture_memory_size_mb,omitempty"` +} + +func (x *CMsgSource2SystemSpecs) Reset() { + *x = CMsgSource2SystemSpecs{} + if protoimpl.UnsafeEnabled { + mi := &file_netmessages_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgSource2SystemSpecs) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgSource2SystemSpecs) ProtoMessage() {} + +func (x *CMsgSource2SystemSpecs) ProtoReflect() protoreflect.Message { + mi := &file_netmessages_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 CMsgSource2SystemSpecs.ProtoReflect.Descriptor instead. +func (*CMsgSource2SystemSpecs) Descriptor() ([]byte, []int) { + return file_netmessages_proto_rawDescGZIP(), []int{15} +} + +func (x *CMsgSource2SystemSpecs) GetCpuId() string { + if x != nil && x.CpuId != nil { + return *x.CpuId + } + return "" +} + +func (x *CMsgSource2SystemSpecs) GetCpuBrand() string { + if x != nil && x.CpuBrand != nil { + return *x.CpuBrand + } + return "" +} + +func (x *CMsgSource2SystemSpecs) GetCpuModel() uint32 { + if x != nil && x.CpuModel != nil { + return *x.CpuModel } return 0 } -type CCLCMsg_ServerStatus struct { +func (x *CMsgSource2SystemSpecs) GetCpuNumPhysical() uint32 { + if x != nil && x.CpuNumPhysical != nil { + return *x.CpuNumPhysical + } + return 0 +} + +func (x *CMsgSource2SystemSpecs) GetRamPhysicalTotalMb() uint32 { + if x != nil && x.RamPhysicalTotalMb != nil { + return *x.RamPhysicalTotalMb + } + return 0 +} + +func (x *CMsgSource2SystemSpecs) GetGpuRendersystemDllName() string { + if x != nil && x.GpuRendersystemDllName != nil { + return *x.GpuRendersystemDllName + } + return "" +} + +func (x *CMsgSource2SystemSpecs) GetGpuVendorId() uint32 { + if x != nil && x.GpuVendorId != nil { + return *x.GpuVendorId + } + return 0 +} + +func (x *CMsgSource2SystemSpecs) GetGpuDriverName() string { + if x != nil && x.GpuDriverName != nil { + return *x.GpuDriverName + } + return "" +} + +func (x *CMsgSource2SystemSpecs) GetGpuDriverVersionHigh() uint32 { + if x != nil && x.GpuDriverVersionHigh != nil { + return *x.GpuDriverVersionHigh + } + return 0 +} + +func (x *CMsgSource2SystemSpecs) GetGpuDriverVersionLow() uint32 { + if x != nil && x.GpuDriverVersionLow != nil { + return *x.GpuDriverVersionLow + } + return 0 +} + +func (x *CMsgSource2SystemSpecs) GetGpuDxSupportLevel() uint32 { + if x != nil && x.GpuDxSupportLevel != nil { + return *x.GpuDxSupportLevel + } + return 0 +} + +func (x *CMsgSource2SystemSpecs) GetGpuTextureMemorySizeMb() uint32 { + if x != nil && x.GpuTextureMemorySizeMb != nil { + return *x.GpuTextureMemorySizeMb + } + return 0 +} + +type CMsgSource2VProfLiteReportItem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Simplified *bool `protobuf:"varint,1,opt,name=simplified" json:"simplified,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + ActiveSamples *uint32 `protobuf:"varint,2,opt,name=active_samples,json=activeSamples" json:"active_samples,omitempty"` + UsecMax *uint32 `protobuf:"varint,3,opt,name=usec_max,json=usecMax" json:"usec_max,omitempty"` + UsecAvgActive *uint32 `protobuf:"varint,11,opt,name=usec_avg_active,json=usecAvgActive" json:"usec_avg_active,omitempty"` + UsecP50Active *uint32 `protobuf:"varint,12,opt,name=usec_p50_active,json=usecP50Active" json:"usec_p50_active,omitempty"` + UsecP99Active *uint32 `protobuf:"varint,13,opt,name=usec_p99_active,json=usecP99Active" json:"usec_p99_active,omitempty"` + UsecAvgAll *uint32 `protobuf:"varint,21,opt,name=usec_avg_all,json=usecAvgAll" json:"usec_avg_all,omitempty"` + UsecP50All *uint32 `protobuf:"varint,22,opt,name=usec_p50_all,json=usecP50All" json:"usec_p50_all,omitempty"` + UsecP99All *uint32 `protobuf:"varint,23,opt,name=usec_p99_all,json=usecP99All" json:"usec_p99_all,omitempty"` } -func (x *CCLCMsg_ServerStatus) Reset() { - *x = CCLCMsg_ServerStatus{} +func (x *CMsgSource2VProfLiteReportItem) Reset() { + *x = CMsgSource2VProfLiteReportItem{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[12] + mi := &file_netmessages_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CCLCMsg_ServerStatus) String() string { +func (x *CMsgSource2VProfLiteReportItem) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CCLCMsg_ServerStatus) ProtoMessage() {} +func (*CMsgSource2VProfLiteReportItem) ProtoMessage() {} -func (x *CCLCMsg_ServerStatus) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[12] +func (x *CMsgSource2VProfLiteReportItem) ProtoReflect() protoreflect.Message { + mi := &file_netmessages_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1647,44 +1917,101 @@ func (x *CCLCMsg_ServerStatus) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CCLCMsg_ServerStatus.ProtoReflect.Descriptor instead. -func (*CCLCMsg_ServerStatus) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{12} +// Deprecated: Use CMsgSource2VProfLiteReportItem.ProtoReflect.Descriptor instead. +func (*CMsgSource2VProfLiteReportItem) Descriptor() ([]byte, []int) { + return file_netmessages_proto_rawDescGZIP(), []int{16} +} + +func (x *CMsgSource2VProfLiteReportItem) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *CMsgSource2VProfLiteReportItem) GetActiveSamples() uint32 { + if x != nil && x.ActiveSamples != nil { + return *x.ActiveSamples + } + return 0 +} + +func (x *CMsgSource2VProfLiteReportItem) GetUsecMax() uint32 { + if x != nil && x.UsecMax != nil { + return *x.UsecMax + } + return 0 +} + +func (x *CMsgSource2VProfLiteReportItem) GetUsecAvgActive() uint32 { + if x != nil && x.UsecAvgActive != nil { + return *x.UsecAvgActive + } + return 0 +} + +func (x *CMsgSource2VProfLiteReportItem) GetUsecP50Active() uint32 { + if x != nil && x.UsecP50Active != nil { + return *x.UsecP50Active + } + return 0 +} + +func (x *CMsgSource2VProfLiteReportItem) GetUsecP99Active() uint32 { + if x != nil && x.UsecP99Active != nil { + return *x.UsecP99Active + } + return 0 +} + +func (x *CMsgSource2VProfLiteReportItem) GetUsecAvgAll() uint32 { + if x != nil && x.UsecAvgAll != nil { + return *x.UsecAvgAll + } + return 0 +} + +func (x *CMsgSource2VProfLiteReportItem) GetUsecP50All() uint32 { + if x != nil && x.UsecP50All != nil { + return *x.UsecP50All + } + return 0 } -func (x *CCLCMsg_ServerStatus) GetSimplified() bool { - if x != nil && x.Simplified != nil { - return *x.Simplified +func (x *CMsgSource2VProfLiteReportItem) GetUsecP99All() uint32 { + if x != nil && x.UsecP99All != nil { + return *x.UsecP99All } - return false + return 0 } -type CCLCMsg_RequestPause struct { +type CMsgSource2VProfLiteReport struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - PauseType *RequestPauseT `protobuf:"varint,1,opt,name=pause_type,json=pauseType,enum=dota.RequestPauseT" json:"pause_type,omitempty"` - PauseGroup *int32 `protobuf:"varint,2,opt,name=pause_group,json=pauseGroup" json:"pause_group,omitempty"` + Total *CMsgSource2VProfLiteReportItem `protobuf:"bytes,1,opt,name=total" json:"total,omitempty"` + Items []*CMsgSource2VProfLiteReportItem `protobuf:"bytes,2,rep,name=items" json:"items,omitempty"` + DiscardedFrames *uint32 `protobuf:"varint,3,opt,name=discarded_frames,json=discardedFrames" json:"discarded_frames,omitempty"` } -func (x *CCLCMsg_RequestPause) Reset() { - *x = CCLCMsg_RequestPause{} +func (x *CMsgSource2VProfLiteReport) Reset() { + *x = CMsgSource2VProfLiteReport{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[13] + mi := &file_netmessages_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CCLCMsg_RequestPause) String() string { +func (x *CMsgSource2VProfLiteReport) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CCLCMsg_RequestPause) ProtoMessage() {} +func (*CMsgSource2VProfLiteReport) ProtoMessage() {} -func (x *CCLCMsg_RequestPause) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[13] +func (x *CMsgSource2VProfLiteReport) ProtoReflect() protoreflect.Message { + mi := &file_netmessages_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1695,50 +2022,58 @@ func (x *CCLCMsg_RequestPause) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CCLCMsg_RequestPause.ProtoReflect.Descriptor instead. -func (*CCLCMsg_RequestPause) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{13} +// Deprecated: Use CMsgSource2VProfLiteReport.ProtoReflect.Descriptor instead. +func (*CMsgSource2VProfLiteReport) Descriptor() ([]byte, []int) { + return file_netmessages_proto_rawDescGZIP(), []int{17} } -func (x *CCLCMsg_RequestPause) GetPauseType() RequestPauseT { - if x != nil && x.PauseType != nil { - return *x.PauseType +func (x *CMsgSource2VProfLiteReport) GetTotal() *CMsgSource2VProfLiteReportItem { + if x != nil { + return x.Total } - return RequestPauseT_RP_PAUSE + return nil } -func (x *CCLCMsg_RequestPause) GetPauseGroup() int32 { - if x != nil && x.PauseGroup != nil { - return *x.PauseGroup +func (x *CMsgSource2VProfLiteReport) GetItems() []*CMsgSource2VProfLiteReportItem { + if x != nil { + return x.Items + } + return nil +} + +func (x *CMsgSource2VProfLiteReport) GetDiscardedFrames() uint32 { + if x != nil && x.DiscardedFrames != nil { + return *x.DiscardedFrames } return 0 } -type CCLCMsg_CmdKeyValues struct { +type CCLCMsg_Diagnostic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Data []byte `protobuf:"bytes,1,opt,name=data" json:"data,omitempty"` + SystemSpecs *CMsgSource2SystemSpecs `protobuf:"bytes,1,opt,name=system_specs,json=systemSpecs" json:"system_specs,omitempty"` + VprofReport *CMsgSource2VProfLiteReport `protobuf:"bytes,2,opt,name=vprof_report,json=vprofReport" json:"vprof_report,omitempty"` } -func (x *CCLCMsg_CmdKeyValues) Reset() { - *x = CCLCMsg_CmdKeyValues{} +func (x *CCLCMsg_Diagnostic) Reset() { + *x = CCLCMsg_Diagnostic{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[14] + mi := &file_netmessages_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CCLCMsg_CmdKeyValues) String() string { +func (x *CCLCMsg_Diagnostic) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CCLCMsg_CmdKeyValues) ProtoMessage() {} +func (*CCLCMsg_Diagnostic) ProtoMessage() {} -func (x *CCLCMsg_CmdKeyValues) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[14] +func (x *CCLCMsg_Diagnostic) ProtoReflect() protoreflect.Message { + mi := &file_netmessages_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1749,43 +2084,55 @@ func (x *CCLCMsg_CmdKeyValues) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CCLCMsg_CmdKeyValues.ProtoReflect.Descriptor instead. -func (*CCLCMsg_CmdKeyValues) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{14} +// Deprecated: Use CCLCMsg_Diagnostic.ProtoReflect.Descriptor instead. +func (*CCLCMsg_Diagnostic) Descriptor() ([]byte, []int) { + return file_netmessages_proto_rawDescGZIP(), []int{18} } -func (x *CCLCMsg_CmdKeyValues) GetData() []byte { +func (x *CCLCMsg_Diagnostic) GetSystemSpecs() *CMsgSource2SystemSpecs { if x != nil { - return x.Data + return x.SystemSpecs } return nil } -type CCLCMsg_RconServerDetails struct { +func (x *CCLCMsg_Diagnostic) GetVprofReport() *CMsgSource2VProfLiteReport { + if x != nil { + return x.VprofReport + } + return nil +} + +type CSource2Metrics_MatchPerfSummary_Notification struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Token []byte `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"` + Appid *uint32 `protobuf:"varint,1,opt,name=appid" json:"appid,omitempty"` + GameMode *string `protobuf:"bytes,2,opt,name=game_mode,json=gameMode" json:"game_mode,omitempty"` + ServerBuildId *uint32 `protobuf:"varint,3,opt,name=server_build_id,json=serverBuildId" json:"server_build_id,omitempty"` + ServerProfile *CMsgSource2VProfLiteReport `protobuf:"bytes,10,opt,name=server_profile,json=serverProfile" json:"server_profile,omitempty"` + Clients []*CSource2Metrics_MatchPerfSummary_Notification_Client `protobuf:"bytes,11,rep,name=clients" json:"clients,omitempty"` + Map *string `protobuf:"bytes,20,opt,name=map" json:"map,omitempty"` } -func (x *CCLCMsg_RconServerDetails) Reset() { - *x = CCLCMsg_RconServerDetails{} +func (x *CSource2Metrics_MatchPerfSummary_Notification) Reset() { + *x = CSource2Metrics_MatchPerfSummary_Notification{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[15] + mi := &file_netmessages_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CCLCMsg_RconServerDetails) String() string { +func (x *CSource2Metrics_MatchPerfSummary_Notification) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CCLCMsg_RconServerDetails) ProtoMessage() {} +func (*CSource2Metrics_MatchPerfSummary_Notification) ProtoMessage() {} -func (x *CCLCMsg_RconServerDetails) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[15] +func (x *CSource2Metrics_MatchPerfSummary_Notification) ProtoReflect() protoreflect.Message { + mi := &file_netmessages_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1796,18 +2143,53 @@ func (x *CCLCMsg_RconServerDetails) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CCLCMsg_RconServerDetails.ProtoReflect.Descriptor instead. -func (*CCLCMsg_RconServerDetails) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{15} +// Deprecated: Use CSource2Metrics_MatchPerfSummary_Notification.ProtoReflect.Descriptor instead. +func (*CSource2Metrics_MatchPerfSummary_Notification) Descriptor() ([]byte, []int) { + return file_netmessages_proto_rawDescGZIP(), []int{19} } -func (x *CCLCMsg_RconServerDetails) GetToken() []byte { +func (x *CSource2Metrics_MatchPerfSummary_Notification) GetAppid() uint32 { + if x != nil && x.Appid != nil { + return *x.Appid + } + return 0 +} + +func (x *CSource2Metrics_MatchPerfSummary_Notification) GetGameMode() string { + if x != nil && x.GameMode != nil { + return *x.GameMode + } + return "" +} + +func (x *CSource2Metrics_MatchPerfSummary_Notification) GetServerBuildId() uint32 { + if x != nil && x.ServerBuildId != nil { + return *x.ServerBuildId + } + return 0 +} + +func (x *CSource2Metrics_MatchPerfSummary_Notification) GetServerProfile() *CMsgSource2VProfLiteReport { if x != nil { - return x.Token + return x.ServerProfile + } + return nil +} + +func (x *CSource2Metrics_MatchPerfSummary_Notification) GetClients() []*CSource2Metrics_MatchPerfSummary_Notification_Client { + if x != nil { + return x.Clients } return nil } +func (x *CSource2Metrics_MatchPerfSummary_Notification) GetMap() string { + if x != nil && x.Map != nil { + return *x.Map + } + return "" +} + type CSVCMsg_ServerInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1834,7 +2216,7 @@ type CSVCMsg_ServerInfo struct { func (x *CSVCMsg_ServerInfo) Reset() { *x = CSVCMsg_ServerInfo{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[16] + mi := &file_netmessages_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1847,7 +2229,7 @@ func (x *CSVCMsg_ServerInfo) String() string { func (*CSVCMsg_ServerInfo) ProtoMessage() {} func (x *CSVCMsg_ServerInfo) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[16] + mi := &file_netmessages_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1860,7 +2242,7 @@ func (x *CSVCMsg_ServerInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_ServerInfo.ProtoReflect.Descriptor instead. func (*CSVCMsg_ServerInfo) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{16} + return file_netmessages_proto_rawDescGZIP(), []int{20} } func (x *CSVCMsg_ServerInfo) GetProtocol() int32 { @@ -1987,7 +2369,7 @@ type CSVCMsg_ClassInfo struct { func (x *CSVCMsg_ClassInfo) Reset() { *x = CSVCMsg_ClassInfo{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[17] + mi := &file_netmessages_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2000,7 +2382,7 @@ func (x *CSVCMsg_ClassInfo) String() string { func (*CSVCMsg_ClassInfo) ProtoMessage() {} func (x *CSVCMsg_ClassInfo) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[17] + mi := &file_netmessages_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2013,7 +2395,7 @@ func (x *CSVCMsg_ClassInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_ClassInfo.ProtoReflect.Descriptor instead. func (*CSVCMsg_ClassInfo) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{17} + return file_netmessages_proto_rawDescGZIP(), []int{21} } func (x *CSVCMsg_ClassInfo) GetCreateOnClient() bool { @@ -2041,7 +2423,7 @@ type CSVCMsg_SetPause struct { func (x *CSVCMsg_SetPause) Reset() { *x = CSVCMsg_SetPause{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[18] + mi := &file_netmessages_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2054,7 +2436,7 @@ func (x *CSVCMsg_SetPause) String() string { func (*CSVCMsg_SetPause) ProtoMessage() {} func (x *CSVCMsg_SetPause) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[18] + mi := &file_netmessages_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2067,7 +2449,7 @@ func (x *CSVCMsg_SetPause) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_SetPause.ProtoReflect.Descriptor instead. func (*CSVCMsg_SetPause) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{18} + return file_netmessages_proto_rawDescGZIP(), []int{22} } func (x *CSVCMsg_SetPause) GetPaused() bool { @@ -2090,7 +2472,7 @@ type CSVCMsg_VoiceInit struct { func (x *CSVCMsg_VoiceInit) Reset() { *x = CSVCMsg_VoiceInit{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[19] + mi := &file_netmessages_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2103,7 +2485,7 @@ func (x *CSVCMsg_VoiceInit) String() string { func (*CSVCMsg_VoiceInit) ProtoMessage() {} func (x *CSVCMsg_VoiceInit) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[19] + mi := &file_netmessages_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2116,7 +2498,7 @@ func (x *CSVCMsg_VoiceInit) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_VoiceInit.ProtoReflect.Descriptor instead. func (*CSVCMsg_VoiceInit) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{19} + return file_netmessages_proto_rawDescGZIP(), []int{23} } func (x *CSVCMsg_VoiceInit) GetQuality() int32 { @@ -2151,7 +2533,7 @@ type CSVCMsg_Print struct { func (x *CSVCMsg_Print) Reset() { *x = CSVCMsg_Print{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[20] + mi := &file_netmessages_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2164,7 +2546,7 @@ func (x *CSVCMsg_Print) String() string { func (*CSVCMsg_Print) ProtoMessage() {} func (x *CSVCMsg_Print) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[20] + mi := &file_netmessages_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2177,7 +2559,7 @@ func (x *CSVCMsg_Print) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_Print.ProtoReflect.Descriptor instead. func (*CSVCMsg_Print) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{20} + return file_netmessages_proto_rawDescGZIP(), []int{24} } func (x *CSVCMsg_Print) GetText() string { @@ -2199,7 +2581,7 @@ type CSVCMsg_Sounds struct { func (x *CSVCMsg_Sounds) Reset() { *x = CSVCMsg_Sounds{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[21] + mi := &file_netmessages_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2212,7 +2594,7 @@ func (x *CSVCMsg_Sounds) String() string { func (*CSVCMsg_Sounds) ProtoMessage() {} func (x *CSVCMsg_Sounds) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[21] + mi := &file_netmessages_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2225,7 +2607,7 @@ func (x *CSVCMsg_Sounds) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_Sounds.ProtoReflect.Descriptor instead. func (*CSVCMsg_Sounds) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{21} + return file_netmessages_proto_rawDescGZIP(), []int{25} } func (x *CSVCMsg_Sounds) GetReliableSound() bool { @@ -2254,7 +2636,7 @@ type CSVCMsg_Prefetch struct { func (x *CSVCMsg_Prefetch) Reset() { *x = CSVCMsg_Prefetch{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[22] + mi := &file_netmessages_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2267,7 +2649,7 @@ func (x *CSVCMsg_Prefetch) String() string { func (*CSVCMsg_Prefetch) ProtoMessage() {} func (x *CSVCMsg_Prefetch) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[22] + mi := &file_netmessages_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2280,7 +2662,7 @@ func (x *CSVCMsg_Prefetch) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_Prefetch.ProtoReflect.Descriptor instead. func (*CSVCMsg_Prefetch) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{22} + return file_netmessages_proto_rawDescGZIP(), []int{26} } func (x *CSVCMsg_Prefetch) GetSoundIndex() int32 { @@ -2309,7 +2691,7 @@ type CSVCMsg_SetView struct { func (x *CSVCMsg_SetView) Reset() { *x = CSVCMsg_SetView{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[23] + mi := &file_netmessages_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2322,7 +2704,7 @@ func (x *CSVCMsg_SetView) String() string { func (*CSVCMsg_SetView) ProtoMessage() {} func (x *CSVCMsg_SetView) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[23] + mi := &file_netmessages_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2335,7 +2717,7 @@ func (x *CSVCMsg_SetView) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_SetView.ProtoReflect.Descriptor instead. func (*CSVCMsg_SetView) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{23} + return file_netmessages_proto_rawDescGZIP(), []int{27} } func (x *CSVCMsg_SetView) GetEntityIndex() int32 { @@ -2364,7 +2746,7 @@ type CSVCMsg_FixAngle struct { func (x *CSVCMsg_FixAngle) Reset() { *x = CSVCMsg_FixAngle{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[24] + mi := &file_netmessages_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2377,7 +2759,7 @@ func (x *CSVCMsg_FixAngle) String() string { func (*CSVCMsg_FixAngle) ProtoMessage() {} func (x *CSVCMsg_FixAngle) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[24] + mi := &file_netmessages_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2390,7 +2772,7 @@ func (x *CSVCMsg_FixAngle) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_FixAngle.ProtoReflect.Descriptor instead. func (*CSVCMsg_FixAngle) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{24} + return file_netmessages_proto_rawDescGZIP(), []int{28} } func (x *CSVCMsg_FixAngle) GetRelative() bool { @@ -2418,7 +2800,7 @@ type CSVCMsg_CrosshairAngle struct { func (x *CSVCMsg_CrosshairAngle) Reset() { *x = CSVCMsg_CrosshairAngle{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[25] + mi := &file_netmessages_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2431,7 +2813,7 @@ func (x *CSVCMsg_CrosshairAngle) String() string { func (*CSVCMsg_CrosshairAngle) ProtoMessage() {} func (x *CSVCMsg_CrosshairAngle) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[25] + mi := &file_netmessages_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2444,7 +2826,7 @@ func (x *CSVCMsg_CrosshairAngle) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_CrosshairAngle.ProtoReflect.Descriptor instead. func (*CSVCMsg_CrosshairAngle) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{25} + return file_netmessages_proto_rawDescGZIP(), []int{29} } func (x *CSVCMsg_CrosshairAngle) GetAngle() *CMsgQAngle { @@ -2469,7 +2851,7 @@ type CSVCMsg_BSPDecal struct { func (x *CSVCMsg_BSPDecal) Reset() { *x = CSVCMsg_BSPDecal{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[26] + mi := &file_netmessages_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2482,7 +2864,7 @@ func (x *CSVCMsg_BSPDecal) String() string { func (*CSVCMsg_BSPDecal) ProtoMessage() {} func (x *CSVCMsg_BSPDecal) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[26] + mi := &file_netmessages_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2495,7 +2877,7 @@ func (x *CSVCMsg_BSPDecal) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_BSPDecal.ProtoReflect.Descriptor instead. func (*CSVCMsg_BSPDecal) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{26} + return file_netmessages_proto_rawDescGZIP(), []int{30} } func (x *CSVCMsg_BSPDecal) GetPos() *CMsgVector { @@ -2546,7 +2928,7 @@ type CSVCMsg_SplitScreen struct { func (x *CSVCMsg_SplitScreen) Reset() { *x = CSVCMsg_SplitScreen{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[27] + mi := &file_netmessages_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2559,7 +2941,7 @@ func (x *CSVCMsg_SplitScreen) String() string { func (*CSVCMsg_SplitScreen) ProtoMessage() {} func (x *CSVCMsg_SplitScreen) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[27] + mi := &file_netmessages_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2572,7 +2954,7 @@ func (x *CSVCMsg_SplitScreen) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_SplitScreen.ProtoReflect.Descriptor instead. func (*CSVCMsg_SplitScreen) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{27} + return file_netmessages_proto_rawDescGZIP(), []int{31} } func (x *CSVCMsg_SplitScreen) GetType() ESplitScreenMessageType { @@ -2608,7 +2990,7 @@ type CSVCMsg_GetCvarValue struct { func (x *CSVCMsg_GetCvarValue) Reset() { *x = CSVCMsg_GetCvarValue{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[28] + mi := &file_netmessages_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2621,7 +3003,7 @@ func (x *CSVCMsg_GetCvarValue) String() string { func (*CSVCMsg_GetCvarValue) ProtoMessage() {} func (x *CSVCMsg_GetCvarValue) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[28] + mi := &file_netmessages_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2634,7 +3016,7 @@ func (x *CSVCMsg_GetCvarValue) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_GetCvarValue.ProtoReflect.Descriptor instead. func (*CSVCMsg_GetCvarValue) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{28} + return file_netmessages_proto_rawDescGZIP(), []int{32} } func (x *CSVCMsg_GetCvarValue) GetCookie() int32 { @@ -2663,7 +3045,7 @@ type CSVCMsg_Menu struct { func (x *CSVCMsg_Menu) Reset() { *x = CSVCMsg_Menu{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[29] + mi := &file_netmessages_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2676,7 +3058,7 @@ func (x *CSVCMsg_Menu) String() string { func (*CSVCMsg_Menu) ProtoMessage() {} func (x *CSVCMsg_Menu) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[29] + mi := &file_netmessages_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2689,7 +3071,7 @@ func (x *CSVCMsg_Menu) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_Menu.ProtoReflect.Descriptor instead. func (*CSVCMsg_Menu) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{29} + return file_netmessages_proto_rawDescGZIP(), []int{33} } func (x *CSVCMsg_Menu) GetDialogType() int32 { @@ -2719,7 +3101,7 @@ type CSVCMsg_UserMessage struct { func (x *CSVCMsg_UserMessage) Reset() { *x = CSVCMsg_UserMessage{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[30] + mi := &file_netmessages_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2732,7 +3114,7 @@ func (x *CSVCMsg_UserMessage) String() string { func (*CSVCMsg_UserMessage) ProtoMessage() {} func (x *CSVCMsg_UserMessage) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[30] + mi := &file_netmessages_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2745,7 +3127,7 @@ func (x *CSVCMsg_UserMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_UserMessage.ProtoReflect.Descriptor instead. func (*CSVCMsg_UserMessage) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{30} + return file_netmessages_proto_rawDescGZIP(), []int{34} } func (x *CSVCMsg_UserMessage) GetMsgType() int32 { @@ -2783,7 +3165,7 @@ type CSVCMsg_SendTable struct { func (x *CSVCMsg_SendTable) Reset() { *x = CSVCMsg_SendTable{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[31] + mi := &file_netmessages_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2796,7 +3178,7 @@ func (x *CSVCMsg_SendTable) String() string { func (*CSVCMsg_SendTable) ProtoMessage() {} func (x *CSVCMsg_SendTable) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[31] + mi := &file_netmessages_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2809,7 +3191,7 @@ func (x *CSVCMsg_SendTable) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_SendTable.ProtoReflect.Descriptor instead. func (*CSVCMsg_SendTable) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{31} + return file_netmessages_proto_rawDescGZIP(), []int{35} } func (x *CSVCMsg_SendTable) GetIsEnd() bool { @@ -2851,7 +3233,7 @@ type CSVCMsg_GameEventList struct { func (x *CSVCMsg_GameEventList) Reset() { *x = CSVCMsg_GameEventList{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[32] + mi := &file_netmessages_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2864,7 +3246,7 @@ func (x *CSVCMsg_GameEventList) String() string { func (*CSVCMsg_GameEventList) ProtoMessage() {} func (x *CSVCMsg_GameEventList) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[32] + mi := &file_netmessages_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2877,7 +3259,7 @@ func (x *CSVCMsg_GameEventList) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_GameEventList.ProtoReflect.Descriptor instead. func (*CSVCMsg_GameEventList) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{32} + return file_netmessages_proto_rawDescGZIP(), []int{36} } func (x *CSVCMsg_GameEventList) GetDescriptors() []*CSVCMsg_GameEventListDescriptorT { @@ -2906,18 +3288,19 @@ type CSVCMsg_PacketEntities struct { LastCmdNumberRecvDelta *int32 `protobuf:"zigzag32,17,opt,name=last_cmd_number_recv_delta,json=lastCmdNumberRecvDelta" json:"last_cmd_number_recv_delta,omitempty"` ServerTick *uint32 `protobuf:"varint,12,opt,name=server_tick,json=serverTick" json:"server_tick,omitempty"` SerializedEntities []byte `protobuf:"bytes,13,opt,name=serialized_entities,json=serializedEntities" json:"serialized_entities,omitempty"` - CommandQueueInfo *CSVCMsg_PacketEntitiesCommandQueueInfoT `protobuf:"bytes,14,opt,name=command_queue_info,json=commandQueueInfo" json:"command_queue_info,omitempty"` AlternateBaselines []*CSVCMsg_PacketEntitiesAlternateBaselineT `protobuf:"bytes,15,rep,name=alternate_baselines,json=alternateBaselines" json:"alternate_baselines,omitempty"` HasPvsVisBits *uint32 `protobuf:"varint,16,opt,name=has_pvs_vis_bits,json=hasPvsVisBits" json:"has_pvs_vis_bits,omitempty"` - LastCmdRecvMargin *uint32 `protobuf:"varint,18,opt,name=last_cmd_recv_margin,json=lastCmdRecvMargin" json:"last_cmd_recv_margin,omitempty"` + CmdRecvStatus []int32 `protobuf:"zigzag32,22,rep,name=cmd_recv_status,json=cmdRecvStatus" json:"cmd_recv_status,omitempty"` NonTransmittedEntities *CSVCMsg_PacketEntitiesNonTransmittedEntitiesT `protobuf:"bytes,19,opt,name=non_transmitted_entities,json=nonTransmittedEntities" json:"non_transmitted_entities,omitempty"` + CqStarvedCommandTicks *uint32 `protobuf:"varint,20,opt,name=cq_starved_command_ticks,json=cqStarvedCommandTicks" json:"cq_starved_command_ticks,omitempty"` + CqDiscardedCommandTicks *uint32 `protobuf:"varint,21,opt,name=cq_discarded_command_ticks,json=cqDiscardedCommandTicks" json:"cq_discarded_command_ticks,omitempty"` DevPadding []byte `protobuf:"bytes,999,opt,name=dev_padding,json=devPadding" json:"dev_padding,omitempty"` } func (x *CSVCMsg_PacketEntities) Reset() { *x = CSVCMsg_PacketEntities{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[33] + mi := &file_netmessages_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2930,7 +3313,7 @@ func (x *CSVCMsg_PacketEntities) String() string { func (*CSVCMsg_PacketEntities) ProtoMessage() {} func (x *CSVCMsg_PacketEntities) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[33] + mi := &file_netmessages_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2943,7 +3326,7 @@ func (x *CSVCMsg_PacketEntities) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_PacketEntities.ProtoReflect.Descriptor instead. func (*CSVCMsg_PacketEntities) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{33} + return file_netmessages_proto_rawDescGZIP(), []int{37} } func (x *CSVCMsg_PacketEntities) GetMaxEntries() int32 { @@ -3044,13 +3427,6 @@ func (x *CSVCMsg_PacketEntities) GetSerializedEntities() []byte { return nil } -func (x *CSVCMsg_PacketEntities) GetCommandQueueInfo() *CSVCMsg_PacketEntitiesCommandQueueInfoT { - if x != nil { - return x.CommandQueueInfo - } - return nil -} - func (x *CSVCMsg_PacketEntities) GetAlternateBaselines() []*CSVCMsg_PacketEntitiesAlternateBaselineT { if x != nil { return x.AlternateBaselines @@ -3065,11 +3441,11 @@ func (x *CSVCMsg_PacketEntities) GetHasPvsVisBits() uint32 { return 0 } -func (x *CSVCMsg_PacketEntities) GetLastCmdRecvMargin() uint32 { - if x != nil && x.LastCmdRecvMargin != nil { - return *x.LastCmdRecvMargin +func (x *CSVCMsg_PacketEntities) GetCmdRecvStatus() []int32 { + if x != nil { + return x.CmdRecvStatus } - return 0 + return nil } func (x *CSVCMsg_PacketEntities) GetNonTransmittedEntities() *CSVCMsg_PacketEntitiesNonTransmittedEntitiesT { @@ -3079,6 +3455,20 @@ func (x *CSVCMsg_PacketEntities) GetNonTransmittedEntities() *CSVCMsg_PacketEnti return nil } +func (x *CSVCMsg_PacketEntities) GetCqStarvedCommandTicks() uint32 { + if x != nil && x.CqStarvedCommandTicks != nil { + return *x.CqStarvedCommandTicks + } + return 0 +} + +func (x *CSVCMsg_PacketEntities) GetCqDiscardedCommandTicks() uint32 { + if x != nil && x.CqDiscardedCommandTicks != nil { + return *x.CqDiscardedCommandTicks + } + return 0 +} + func (x *CSVCMsg_PacketEntities) GetDevPadding() []byte { if x != nil { return x.DevPadding @@ -3099,7 +3489,7 @@ type CSVCMsg_TempEntities struct { func (x *CSVCMsg_TempEntities) Reset() { *x = CSVCMsg_TempEntities{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[34] + mi := &file_netmessages_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3112,7 +3502,7 @@ func (x *CSVCMsg_TempEntities) String() string { func (*CSVCMsg_TempEntities) ProtoMessage() {} func (x *CSVCMsg_TempEntities) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[34] + mi := &file_netmessages_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3125,7 +3515,7 @@ func (x *CSVCMsg_TempEntities) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_TempEntities.ProtoReflect.Descriptor instead. func (*CSVCMsg_TempEntities) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{34} + return file_netmessages_proto_rawDescGZIP(), []int{38} } func (x *CSVCMsg_TempEntities) GetReliable() bool { @@ -3169,7 +3559,7 @@ type CSVCMsg_CreateStringTable struct { func (x *CSVCMsg_CreateStringTable) Reset() { *x = CSVCMsg_CreateStringTable{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[35] + mi := &file_netmessages_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3182,7 +3572,7 @@ func (x *CSVCMsg_CreateStringTable) String() string { func (*CSVCMsg_CreateStringTable) ProtoMessage() {} func (x *CSVCMsg_CreateStringTable) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[35] + mi := &file_netmessages_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3195,7 +3585,7 @@ func (x *CSVCMsg_CreateStringTable) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_CreateStringTable.ProtoReflect.Descriptor instead. func (*CSVCMsg_CreateStringTable) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{35} + return file_netmessages_proto_rawDescGZIP(), []int{39} } func (x *CSVCMsg_CreateStringTable) GetName() string { @@ -3281,7 +3671,7 @@ type CSVCMsg_UpdateStringTable struct { func (x *CSVCMsg_UpdateStringTable) Reset() { *x = CSVCMsg_UpdateStringTable{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[36] + mi := &file_netmessages_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3294,7 +3684,7 @@ func (x *CSVCMsg_UpdateStringTable) String() string { func (*CSVCMsg_UpdateStringTable) ProtoMessage() {} func (x *CSVCMsg_UpdateStringTable) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[36] + mi := &file_netmessages_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3307,7 +3697,7 @@ func (x *CSVCMsg_UpdateStringTable) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_UpdateStringTable.ProtoReflect.Descriptor instead. func (*CSVCMsg_UpdateStringTable) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{36} + return file_netmessages_proto_rawDescGZIP(), []int{40} } func (x *CSVCMsg_UpdateStringTable) GetTableId() int32 { @@ -3348,7 +3738,7 @@ type CSVCMsg_VoiceData struct { func (x *CSVCMsg_VoiceData) Reset() { *x = CSVCMsg_VoiceData{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[37] + mi := &file_netmessages_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3361,7 +3751,7 @@ func (x *CSVCMsg_VoiceData) String() string { func (*CSVCMsg_VoiceData) ProtoMessage() {} func (x *CSVCMsg_VoiceData) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[37] + mi := &file_netmessages_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3374,7 +3764,7 @@ func (x *CSVCMsg_VoiceData) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_VoiceData.ProtoReflect.Descriptor instead. func (*CSVCMsg_VoiceData) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{37} + return file_netmessages_proto_rawDescGZIP(), []int{41} } func (x *CSVCMsg_VoiceData) GetAudio() *CMsgVoiceAudio { @@ -3439,7 +3829,7 @@ type CSVCMsg_PacketReliable struct { func (x *CSVCMsg_PacketReliable) Reset() { *x = CSVCMsg_PacketReliable{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[38] + mi := &file_netmessages_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3452,7 +3842,7 @@ func (x *CSVCMsg_PacketReliable) String() string { func (*CSVCMsg_PacketReliable) ProtoMessage() {} func (x *CSVCMsg_PacketReliable) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[38] + mi := &file_netmessages_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3465,7 +3855,7 @@ func (x *CSVCMsg_PacketReliable) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_PacketReliable.ProtoReflect.Descriptor instead. func (*CSVCMsg_PacketReliable) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{38} + return file_netmessages_proto_rawDescGZIP(), []int{42} } func (x *CSVCMsg_PacketReliable) GetTick() int32 { @@ -3503,7 +3893,7 @@ type CSVCMsg_FullFrameSplit struct { func (x *CSVCMsg_FullFrameSplit) Reset() { *x = CSVCMsg_FullFrameSplit{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[39] + mi := &file_netmessages_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3516,7 +3906,7 @@ func (x *CSVCMsg_FullFrameSplit) String() string { func (*CSVCMsg_FullFrameSplit) ProtoMessage() {} func (x *CSVCMsg_FullFrameSplit) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[39] + mi := &file_netmessages_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3529,7 +3919,7 @@ func (x *CSVCMsg_FullFrameSplit) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_FullFrameSplit.ProtoReflect.Descriptor instead. func (*CSVCMsg_FullFrameSplit) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{39} + return file_netmessages_proto_rawDescGZIP(), []int{43} } func (x *CSVCMsg_FullFrameSplit) GetTick() int32 { @@ -3574,7 +3964,7 @@ type CSVCMsg_HLTVStatus struct { func (x *CSVCMsg_HLTVStatus) Reset() { *x = CSVCMsg_HLTVStatus{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[40] + mi := &file_netmessages_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3587,7 +3977,7 @@ func (x *CSVCMsg_HLTVStatus) String() string { func (*CSVCMsg_HLTVStatus) ProtoMessage() {} func (x *CSVCMsg_HLTVStatus) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[40] + mi := &file_netmessages_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3600,7 +3990,7 @@ func (x *CSVCMsg_HLTVStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_HLTVStatus.ProtoReflect.Descriptor instead. func (*CSVCMsg_HLTVStatus) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{40} + return file_netmessages_proto_rawDescGZIP(), []int{44} } func (x *CSVCMsg_HLTVStatus) GetMaster() string { @@ -3642,7 +4032,7 @@ type CSVCMsg_ServerSteamID struct { func (x *CSVCMsg_ServerSteamID) Reset() { *x = CSVCMsg_ServerSteamID{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[41] + mi := &file_netmessages_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3655,7 +4045,7 @@ func (x *CSVCMsg_ServerSteamID) String() string { func (*CSVCMsg_ServerSteamID) ProtoMessage() {} func (x *CSVCMsg_ServerSteamID) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[41] + mi := &file_netmessages_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3668,7 +4058,7 @@ func (x *CSVCMsg_ServerSteamID) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_ServerSteamID.ProtoReflect.Descriptor instead. func (*CSVCMsg_ServerSteamID) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{41} + return file_netmessages_proto_rawDescGZIP(), []int{45} } func (x *CSVCMsg_ServerSteamID) GetSteamId() uint64 { @@ -3689,7 +4079,7 @@ type CSVCMsg_CmdKeyValues struct { func (x *CSVCMsg_CmdKeyValues) Reset() { *x = CSVCMsg_CmdKeyValues{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[42] + mi := &file_netmessages_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3702,7 +4092,7 @@ func (x *CSVCMsg_CmdKeyValues) String() string { func (*CSVCMsg_CmdKeyValues) ProtoMessage() {} func (x *CSVCMsg_CmdKeyValues) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[42] + mi := &file_netmessages_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3715,7 +4105,7 @@ func (x *CSVCMsg_CmdKeyValues) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_CmdKeyValues.ProtoReflect.Descriptor instead. func (*CSVCMsg_CmdKeyValues) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{42} + return file_netmessages_proto_rawDescGZIP(), []int{46} } func (x *CSVCMsg_CmdKeyValues) GetData() []byte { @@ -3737,7 +4127,7 @@ type CSVCMsg_RconServerDetails struct { func (x *CSVCMsg_RconServerDetails) Reset() { *x = CSVCMsg_RconServerDetails{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[43] + mi := &file_netmessages_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3750,7 +4140,7 @@ func (x *CSVCMsg_RconServerDetails) String() string { func (*CSVCMsg_RconServerDetails) ProtoMessage() {} func (x *CSVCMsg_RconServerDetails) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[43] + mi := &file_netmessages_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3763,7 +4153,7 @@ func (x *CSVCMsg_RconServerDetails) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_RconServerDetails.ProtoReflect.Descriptor instead. func (*CSVCMsg_RconServerDetails) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{43} + return file_netmessages_proto_rawDescGZIP(), []int{47} } func (x *CSVCMsg_RconServerDetails) GetToken() []byte { @@ -3792,7 +4182,7 @@ type CMsgIPCAddress struct { func (x *CMsgIPCAddress) Reset() { *x = CMsgIPCAddress{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[44] + mi := &file_netmessages_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3805,7 +4195,7 @@ func (x *CMsgIPCAddress) String() string { func (*CMsgIPCAddress) ProtoMessage() {} func (x *CMsgIPCAddress) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[44] + mi := &file_netmessages_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3818,7 +4208,7 @@ func (x *CMsgIPCAddress) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgIPCAddress.ProtoReflect.Descriptor instead. func (*CMsgIPCAddress) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{44} + return file_netmessages_proto_rawDescGZIP(), []int{48} } func (x *CMsgIPCAddress) GetComputerGuid() uint64 { @@ -3851,7 +4241,7 @@ type CMsgServerPeer struct { func (x *CMsgServerPeer) Reset() { *x = CMsgServerPeer{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[45] + mi := &file_netmessages_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3864,7 +4254,7 @@ func (x *CMsgServerPeer) String() string { func (*CMsgServerPeer) ProtoMessage() {} func (x *CMsgServerPeer) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[45] + mi := &file_netmessages_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3877,7 +4267,7 @@ func (x *CMsgServerPeer) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgServerPeer.ProtoReflect.Descriptor instead. func (*CMsgServerPeer) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{45} + return file_netmessages_proto_rawDescGZIP(), []int{49} } func (x *CMsgServerPeer) GetPlayerSlot() int32 { @@ -3933,7 +4323,7 @@ type CSVCMsg_PeerList struct { func (x *CSVCMsg_PeerList) Reset() { *x = CSVCMsg_PeerList{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[46] + mi := &file_netmessages_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3946,7 +4336,7 @@ func (x *CSVCMsg_PeerList) String() string { func (*CSVCMsg_PeerList) ProtoMessage() {} func (x *CSVCMsg_PeerList) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[46] + mi := &file_netmessages_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3959,7 +4349,7 @@ func (x *CSVCMsg_PeerList) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_PeerList.ProtoReflect.Descriptor instead. func (*CSVCMsg_PeerList) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{46} + return file_netmessages_proto_rawDescGZIP(), []int{50} } func (x *CSVCMsg_PeerList) GetPeer() []*CMsgServerPeer { @@ -3981,7 +4371,7 @@ type CSVCMsg_ClearAllStringTables struct { func (x *CSVCMsg_ClearAllStringTables) Reset() { *x = CSVCMsg_ClearAllStringTables{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[47] + mi := &file_netmessages_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3994,7 +4384,7 @@ func (x *CSVCMsg_ClearAllStringTables) String() string { func (*CSVCMsg_ClearAllStringTables) ProtoMessage() {} func (x *CSVCMsg_ClearAllStringTables) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[47] + mi := &file_netmessages_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4007,7 +4397,7 @@ func (x *CSVCMsg_ClearAllStringTables) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_ClearAllStringTables.ProtoReflect.Descriptor instead. func (*CSVCMsg_ClearAllStringTables) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{47} + return file_netmessages_proto_rawDescGZIP(), []int{51} } func (x *CSVCMsg_ClearAllStringTables) GetMapname() string { @@ -4046,7 +4436,7 @@ type ProtoFlattenedSerializerFieldT struct { func (x *ProtoFlattenedSerializerFieldT) Reset() { *x = ProtoFlattenedSerializerFieldT{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[48] + mi := &file_netmessages_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4059,7 +4449,7 @@ func (x *ProtoFlattenedSerializerFieldT) String() string { func (*ProtoFlattenedSerializerFieldT) ProtoMessage() {} func (x *ProtoFlattenedSerializerFieldT) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[48] + mi := &file_netmessages_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4072,7 +4462,7 @@ func (x *ProtoFlattenedSerializerFieldT) ProtoReflect() protoreflect.Message { // Deprecated: Use ProtoFlattenedSerializerFieldT.ProtoReflect.Descriptor instead. func (*ProtoFlattenedSerializerFieldT) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{48} + return file_netmessages_proto_rawDescGZIP(), []int{52} } func (x *ProtoFlattenedSerializerFieldT) GetVarTypeSym() int32 { @@ -4172,7 +4562,7 @@ type ProtoFlattenedSerializerT struct { func (x *ProtoFlattenedSerializerT) Reset() { *x = ProtoFlattenedSerializerT{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[49] + mi := &file_netmessages_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4185,7 +4575,7 @@ func (x *ProtoFlattenedSerializerT) String() string { func (*ProtoFlattenedSerializerT) ProtoMessage() {} func (x *ProtoFlattenedSerializerT) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[49] + mi := &file_netmessages_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4198,7 +4588,7 @@ func (x *ProtoFlattenedSerializerT) ProtoReflect() protoreflect.Message { // Deprecated: Use ProtoFlattenedSerializerT.ProtoReflect.Descriptor instead. func (*ProtoFlattenedSerializerT) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{49} + return file_netmessages_proto_rawDescGZIP(), []int{53} } func (x *ProtoFlattenedSerializerT) GetSerializerNameSym() int32 { @@ -4235,7 +4625,7 @@ type CSVCMsg_FlattenedSerializer struct { func (x *CSVCMsg_FlattenedSerializer) Reset() { *x = CSVCMsg_FlattenedSerializer{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[50] + mi := &file_netmessages_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4248,7 +4638,7 @@ func (x *CSVCMsg_FlattenedSerializer) String() string { func (*CSVCMsg_FlattenedSerializer) ProtoMessage() {} func (x *CSVCMsg_FlattenedSerializer) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[50] + mi := &file_netmessages_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4261,7 +4651,7 @@ func (x *CSVCMsg_FlattenedSerializer) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_FlattenedSerializer.ProtoReflect.Descriptor instead. func (*CSVCMsg_FlattenedSerializer) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{50} + return file_netmessages_proto_rawDescGZIP(), []int{54} } func (x *CSVCMsg_FlattenedSerializer) GetSerializers() []*ProtoFlattenedSerializerT { @@ -4296,7 +4686,7 @@ type CSVCMsg_StopSound struct { func (x *CSVCMsg_StopSound) Reset() { *x = CSVCMsg_StopSound{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[51] + mi := &file_netmessages_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4309,7 +4699,7 @@ func (x *CSVCMsg_StopSound) String() string { func (*CSVCMsg_StopSound) ProtoMessage() {} func (x *CSVCMsg_StopSound) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[51] + mi := &file_netmessages_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4322,7 +4712,7 @@ func (x *CSVCMsg_StopSound) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_StopSound.ProtoReflect.Descriptor instead. func (*CSVCMsg_StopSound) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{51} + return file_netmessages_proto_rawDescGZIP(), []int{55} } func (x *CSVCMsg_StopSound) GetGuid() uint32 { @@ -4346,7 +4736,7 @@ type CBidirMsg_RebroadcastGameEvent struct { func (x *CBidirMsg_RebroadcastGameEvent) Reset() { *x = CBidirMsg_RebroadcastGameEvent{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[52] + mi := &file_netmessages_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4359,7 +4749,7 @@ func (x *CBidirMsg_RebroadcastGameEvent) String() string { func (*CBidirMsg_RebroadcastGameEvent) ProtoMessage() {} func (x *CBidirMsg_RebroadcastGameEvent) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[52] + mi := &file_netmessages_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4372,7 +4762,7 @@ func (x *CBidirMsg_RebroadcastGameEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use CBidirMsg_RebroadcastGameEvent.ProtoReflect.Descriptor instead. func (*CBidirMsg_RebroadcastGameEvent) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{52} + return file_netmessages_proto_rawDescGZIP(), []int{56} } func (x *CBidirMsg_RebroadcastGameEvent) GetPosttoserver() bool { @@ -4414,7 +4804,7 @@ type CBidirMsg_RebroadcastSource struct { func (x *CBidirMsg_RebroadcastSource) Reset() { *x = CBidirMsg_RebroadcastSource{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[53] + mi := &file_netmessages_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4427,7 +4817,7 @@ func (x *CBidirMsg_RebroadcastSource) String() string { func (*CBidirMsg_RebroadcastSource) ProtoMessage() {} func (x *CBidirMsg_RebroadcastSource) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[53] + mi := &file_netmessages_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4440,7 +4830,7 @@ func (x *CBidirMsg_RebroadcastSource) ProtoReflect() protoreflect.Message { // Deprecated: Use CBidirMsg_RebroadcastSource.ProtoReflect.Descriptor instead. func (*CBidirMsg_RebroadcastSource) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{53} + return file_netmessages_proto_rawDescGZIP(), []int{57} } func (x *CBidirMsg_RebroadcastSource) GetEventsource() int32 { @@ -4485,7 +4875,7 @@ type CMsgServerNetworkStats struct { func (x *CMsgServerNetworkStats) Reset() { *x = CMsgServerNetworkStats{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[54] + mi := &file_netmessages_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4498,7 +4888,7 @@ func (x *CMsgServerNetworkStats) String() string { func (*CMsgServerNetworkStats) ProtoMessage() {} func (x *CMsgServerNetworkStats) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[54] + mi := &file_netmessages_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4511,7 +4901,7 @@ func (x *CMsgServerNetworkStats) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgServerNetworkStats.ProtoReflect.Descriptor instead. func (*CMsgServerNetworkStats) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{54} + return file_netmessages_proto_rawDescGZIP(), []int{58} } func (x *CMsgServerNetworkStats) GetDedicated() bool { @@ -4707,7 +5097,7 @@ type CSVCMsg_HltvReplay struct { func (x *CSVCMsg_HltvReplay) Reset() { *x = CSVCMsg_HltvReplay{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[55] + mi := &file_netmessages_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4720,7 +5110,7 @@ func (x *CSVCMsg_HltvReplay) String() string { func (*CSVCMsg_HltvReplay) ProtoMessage() {} func (x *CSVCMsg_HltvReplay) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[55] + mi := &file_netmessages_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4733,7 +5123,7 @@ func (x *CSVCMsg_HltvReplay) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_HltvReplay.ProtoReflect.Descriptor instead. func (*CSVCMsg_HltvReplay) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{55} + return file_netmessages_proto_rawDescGZIP(), []int{59} } func (x *CSVCMsg_HltvReplay) GetDelay() int32 { @@ -4807,7 +5197,7 @@ type CCLCMsg_HltvReplay struct { func (x *CCLCMsg_HltvReplay) Reset() { *x = CCLCMsg_HltvReplay{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[56] + mi := &file_netmessages_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4820,7 +5210,7 @@ func (x *CCLCMsg_HltvReplay) String() string { func (*CCLCMsg_HltvReplay) ProtoMessage() {} func (x *CCLCMsg_HltvReplay) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[56] + mi := &file_netmessages_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4833,7 +5223,7 @@ func (x *CCLCMsg_HltvReplay) ProtoReflect() protoreflect.Message { // Deprecated: Use CCLCMsg_HltvReplay.ProtoReflect.Descriptor instead. func (*CCLCMsg_HltvReplay) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{56} + return file_netmessages_proto_rawDescGZIP(), []int{60} } func (x *CCLCMsg_HltvReplay) GetRequest() int32 { @@ -4882,7 +5272,7 @@ type CSVCMsg_Broadcast_Command struct { func (x *CSVCMsg_Broadcast_Command) Reset() { *x = CSVCMsg_Broadcast_Command{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[57] + mi := &file_netmessages_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4895,7 +5285,7 @@ func (x *CSVCMsg_Broadcast_Command) String() string { func (*CSVCMsg_Broadcast_Command) ProtoMessage() {} func (x *CSVCMsg_Broadcast_Command) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[57] + mi := &file_netmessages_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4908,7 +5298,7 @@ func (x *CSVCMsg_Broadcast_Command) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_Broadcast_Command.ProtoReflect.Descriptor instead. func (*CSVCMsg_Broadcast_Command) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{57} + return file_netmessages_proto_rawDescGZIP(), []int{61} } func (x *CSVCMsg_Broadcast_Command) GetCmd() string { @@ -4936,7 +5326,7 @@ type CCLCMsg_HltvFixupOperatorTick struct { func (x *CCLCMsg_HltvFixupOperatorTick) Reset() { *x = CCLCMsg_HltvFixupOperatorTick{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[58] + mi := &file_netmessages_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4949,7 +5339,7 @@ func (x *CCLCMsg_HltvFixupOperatorTick) String() string { func (*CCLCMsg_HltvFixupOperatorTick) ProtoMessage() {} func (x *CCLCMsg_HltvFixupOperatorTick) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[58] + mi := &file_netmessages_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4962,7 +5352,7 @@ func (x *CCLCMsg_HltvFixupOperatorTick) ProtoReflect() protoreflect.Message { // Deprecated: Use CCLCMsg_HltvFixupOperatorTick.ProtoReflect.Descriptor instead. func (*CCLCMsg_HltvFixupOperatorTick) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{58} + return file_netmessages_proto_rawDescGZIP(), []int{62} } func (x *CCLCMsg_HltvFixupOperatorTick) GetTick() int32 { @@ -5033,7 +5423,7 @@ type CSVCMsg_HltvFixupOperatorStatus struct { func (x *CSVCMsg_HltvFixupOperatorStatus) Reset() { *x = CSVCMsg_HltvFixupOperatorStatus{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[59] + mi := &file_netmessages_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5046,7 +5436,7 @@ func (x *CSVCMsg_HltvFixupOperatorStatus) String() string { func (*CSVCMsg_HltvFixupOperatorStatus) ProtoMessage() {} func (x *CSVCMsg_HltvFixupOperatorStatus) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[59] + mi := &file_netmessages_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5059,7 +5449,7 @@ func (x *CSVCMsg_HltvFixupOperatorStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_HltvFixupOperatorStatus.ProtoReflect.Descriptor instead. func (*CSVCMsg_HltvFixupOperatorStatus) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{59} + return file_netmessages_proto_rawDescGZIP(), []int{63} } func (x *CSVCMsg_HltvFixupOperatorStatus) GetMode() uint32 { @@ -5073,7 +5463,204 @@ func (x *CSVCMsg_HltvFixupOperatorStatus) GetOverrideOperatorName() string { if x != nil && x.OverrideOperatorName != nil { return *x.OverrideOperatorName } - return "" + return "" +} + +type CMsgServerUserCmd struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data []byte `protobuf:"bytes,1,opt,name=data" json:"data,omitempty"` + CmdNumber *int32 `protobuf:"varint,2,opt,name=cmd_number,json=cmdNumber" json:"cmd_number,omitempty"` + PlayerSlot *int32 `protobuf:"varint,3,opt,name=player_slot,json=playerSlot" json:"player_slot,omitempty"` + ServerTickExecuted *int32 `protobuf:"varint,4,opt,name=server_tick_executed,json=serverTickExecuted" json:"server_tick_executed,omitempty"` + ClientTick *int32 `protobuf:"varint,5,opt,name=client_tick,json=clientTick" json:"client_tick,omitempty"` +} + +func (x *CMsgServerUserCmd) Reset() { + *x = CMsgServerUserCmd{} + if protoimpl.UnsafeEnabled { + mi := &file_netmessages_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgServerUserCmd) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgServerUserCmd) ProtoMessage() {} + +func (x *CMsgServerUserCmd) ProtoReflect() protoreflect.Message { + mi := &file_netmessages_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 CMsgServerUserCmd.ProtoReflect.Descriptor instead. +func (*CMsgServerUserCmd) Descriptor() ([]byte, []int) { + return file_netmessages_proto_rawDescGZIP(), []int{64} +} + +func (x *CMsgServerUserCmd) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +func (x *CMsgServerUserCmd) GetCmdNumber() int32 { + if x != nil && x.CmdNumber != nil { + return *x.CmdNumber + } + return 0 +} + +func (x *CMsgServerUserCmd) GetPlayerSlot() int32 { + if x != nil && x.PlayerSlot != nil { + return *x.PlayerSlot + } + return 0 +} + +func (x *CMsgServerUserCmd) GetServerTickExecuted() int32 { + if x != nil && x.ServerTickExecuted != nil { + return *x.ServerTickExecuted + } + return 0 +} + +func (x *CMsgServerUserCmd) GetClientTick() int32 { + if x != nil && x.ClientTick != nil { + return *x.ClientTick + } + return 0 +} + +type CSVCMsg_UserCommands struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Commands []*CMsgServerUserCmd `protobuf:"bytes,1,rep,name=commands" json:"commands,omitempty"` +} + +func (x *CSVCMsg_UserCommands) Reset() { + *x = CSVCMsg_UserCommands{} + if protoimpl.UnsafeEnabled { + mi := &file_netmessages_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_UserCommands) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_UserCommands) ProtoMessage() {} + +func (x *CSVCMsg_UserCommands) ProtoReflect() protoreflect.Message { + mi := &file_netmessages_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 CSVCMsg_UserCommands.ProtoReflect.Descriptor instead. +func (*CSVCMsg_UserCommands) Descriptor() ([]byte, []int) { + return file_netmessages_proto_rawDescGZIP(), []int{65} +} + +func (x *CSVCMsg_UserCommands) GetCommands() []*CMsgServerUserCmd { + if x != nil { + return x.Commands + } + return nil +} + +type CSource2Metrics_MatchPerfSummary_Notification_Client struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SystemSpecs *CMsgSource2SystemSpecs `protobuf:"bytes,1,opt,name=system_specs,json=systemSpecs" json:"system_specs,omitempty"` + Profile *CMsgSource2VProfLiteReport `protobuf:"bytes,2,opt,name=profile" json:"profile,omitempty"` + BuildId *uint32 `protobuf:"varint,3,opt,name=build_id,json=buildId" json:"build_id,omitempty"` + Steamid *uint64 `protobuf:"fixed64,10,opt,name=steamid" json:"steamid,omitempty"` +} + +func (x *CSource2Metrics_MatchPerfSummary_Notification_Client) Reset() { + *x = CSource2Metrics_MatchPerfSummary_Notification_Client{} + if protoimpl.UnsafeEnabled { + mi := &file_netmessages_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSource2Metrics_MatchPerfSummary_Notification_Client) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSource2Metrics_MatchPerfSummary_Notification_Client) ProtoMessage() {} + +func (x *CSource2Metrics_MatchPerfSummary_Notification_Client) ProtoReflect() protoreflect.Message { + mi := &file_netmessages_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 CSource2Metrics_MatchPerfSummary_Notification_Client.ProtoReflect.Descriptor instead. +func (*CSource2Metrics_MatchPerfSummary_Notification_Client) Descriptor() ([]byte, []int) { + return file_netmessages_proto_rawDescGZIP(), []int{19, 0} +} + +func (x *CSource2Metrics_MatchPerfSummary_Notification_Client) GetSystemSpecs() *CMsgSource2SystemSpecs { + if x != nil { + return x.SystemSpecs + } + return nil +} + +func (x *CSource2Metrics_MatchPerfSummary_Notification_Client) GetProfile() *CMsgSource2VProfLiteReport { + if x != nil { + return x.Profile + } + return nil +} + +func (x *CSource2Metrics_MatchPerfSummary_Notification_Client) GetBuildId() uint32 { + if x != nil && x.BuildId != nil { + return *x.BuildId + } + return 0 +} + +func (x *CSource2Metrics_MatchPerfSummary_Notification_Client) GetSteamid() uint64 { + if x != nil && x.Steamid != nil { + return *x.Steamid + } + return 0 } type CSVCMsg_ClassInfoClassT struct { @@ -5088,7 +5675,7 @@ type CSVCMsg_ClassInfoClassT struct { func (x *CSVCMsg_ClassInfoClassT) Reset() { *x = CSVCMsg_ClassInfoClassT{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[60] + mi := &file_netmessages_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5101,7 +5688,7 @@ func (x *CSVCMsg_ClassInfoClassT) String() string { func (*CSVCMsg_ClassInfoClassT) ProtoMessage() {} func (x *CSVCMsg_ClassInfoClassT) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[60] + mi := &file_netmessages_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5114,7 +5701,7 @@ func (x *CSVCMsg_ClassInfoClassT) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_ClassInfoClassT.ProtoReflect.Descriptor instead. func (*CSVCMsg_ClassInfoClassT) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{17, 0} + return file_netmessages_proto_rawDescGZIP(), []int{21, 0} } func (x *CSVCMsg_ClassInfoClassT) GetClassId() int32 { @@ -5160,7 +5747,7 @@ type CSVCMsg_SoundsSounddataT struct { func (x *CSVCMsg_SoundsSounddataT) Reset() { *x = CSVCMsg_SoundsSounddataT{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[61] + mi := &file_netmessages_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5173,7 +5760,7 @@ func (x *CSVCMsg_SoundsSounddataT) String() string { func (*CSVCMsg_SoundsSounddataT) ProtoMessage() {} func (x *CSVCMsg_SoundsSounddataT) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[61] + mi := &file_netmessages_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5186,7 +5773,7 @@ func (x *CSVCMsg_SoundsSounddataT) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_SoundsSounddataT.ProtoReflect.Descriptor instead. func (*CSVCMsg_SoundsSounddataT) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{21, 0} + return file_netmessages_proto_rawDescGZIP(), []int{25, 0} } func (x *CSVCMsg_SoundsSounddataT) GetOriginX() int32 { @@ -5341,7 +5928,7 @@ type CSVCMsg_SendTableSendpropT struct { func (x *CSVCMsg_SendTableSendpropT) Reset() { *x = CSVCMsg_SendTableSendpropT{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[62] + mi := &file_netmessages_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5354,7 +5941,7 @@ func (x *CSVCMsg_SendTableSendpropT) String() string { func (*CSVCMsg_SendTableSendpropT) ProtoMessage() {} func (x *CSVCMsg_SendTableSendpropT) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[62] + mi := &file_netmessages_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5367,7 +5954,7 @@ func (x *CSVCMsg_SendTableSendpropT) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_SendTableSendpropT.ProtoReflect.Descriptor instead. func (*CSVCMsg_SendTableSendpropT) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{31, 0} + return file_netmessages_proto_rawDescGZIP(), []int{35, 0} } func (x *CSVCMsg_SendTableSendpropT) GetType() int32 { @@ -5445,7 +6032,7 @@ type CSVCMsg_GameEventListKeyT struct { func (x *CSVCMsg_GameEventListKeyT) Reset() { *x = CSVCMsg_GameEventListKeyT{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[63] + mi := &file_netmessages_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5458,7 +6045,7 @@ func (x *CSVCMsg_GameEventListKeyT) String() string { func (*CSVCMsg_GameEventListKeyT) ProtoMessage() {} func (x *CSVCMsg_GameEventListKeyT) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[63] + mi := &file_netmessages_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5471,7 +6058,7 @@ func (x *CSVCMsg_GameEventListKeyT) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_GameEventListKeyT.ProtoReflect.Descriptor instead. func (*CSVCMsg_GameEventListKeyT) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{32, 0} + return file_netmessages_proto_rawDescGZIP(), []int{36, 0} } func (x *CSVCMsg_GameEventListKeyT) GetType() int32 { @@ -5501,7 +6088,7 @@ type CSVCMsg_GameEventListDescriptorT struct { func (x *CSVCMsg_GameEventListDescriptorT) Reset() { *x = CSVCMsg_GameEventListDescriptorT{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[64] + mi := &file_netmessages_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5514,7 +6101,7 @@ func (x *CSVCMsg_GameEventListDescriptorT) String() string { func (*CSVCMsg_GameEventListDescriptorT) ProtoMessage() {} func (x *CSVCMsg_GameEventListDescriptorT) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[64] + mi := &file_netmessages_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5527,7 +6114,7 @@ func (x *CSVCMsg_GameEventListDescriptorT) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_GameEventListDescriptorT.ProtoReflect.Descriptor instead. func (*CSVCMsg_GameEventListDescriptorT) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{32, 1} + return file_netmessages_proto_rawDescGZIP(), []int{36, 1} } func (x *CSVCMsg_GameEventListDescriptorT) GetEventid() int32 { @@ -5551,69 +6138,6 @@ func (x *CSVCMsg_GameEventListDescriptorT) GetKeys() []*CSVCMsg_GameEventListKey return nil } -type CSVCMsg_PacketEntitiesCommandQueueInfoT struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommandsQueued *uint32 `protobuf:"varint,1,opt,name=commands_queued,json=commandsQueued" json:"commands_queued,omitempty"` - StarvedCommandTicks *uint32 `protobuf:"varint,3,opt,name=starved_command_ticks,json=starvedCommandTicks" json:"starved_command_ticks,omitempty"` - DiscardedCommandTicks *uint32 `protobuf:"varint,5,opt,name=discarded_command_ticks,json=discardedCommandTicks" json:"discarded_command_ticks,omitempty"` -} - -func (x *CSVCMsg_PacketEntitiesCommandQueueInfoT) Reset() { - *x = CSVCMsg_PacketEntitiesCommandQueueInfoT{} - if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[65] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CSVCMsg_PacketEntitiesCommandQueueInfoT) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CSVCMsg_PacketEntitiesCommandQueueInfoT) ProtoMessage() {} - -func (x *CSVCMsg_PacketEntitiesCommandQueueInfoT) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_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 CSVCMsg_PacketEntitiesCommandQueueInfoT.ProtoReflect.Descriptor instead. -func (*CSVCMsg_PacketEntitiesCommandQueueInfoT) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{33, 0} -} - -func (x *CSVCMsg_PacketEntitiesCommandQueueInfoT) GetCommandsQueued() uint32 { - if x != nil && x.CommandsQueued != nil { - return *x.CommandsQueued - } - return 0 -} - -func (x *CSVCMsg_PacketEntitiesCommandQueueInfoT) GetStarvedCommandTicks() uint32 { - if x != nil && x.StarvedCommandTicks != nil { - return *x.StarvedCommandTicks - } - return 0 -} - -func (x *CSVCMsg_PacketEntitiesCommandQueueInfoT) GetDiscardedCommandTicks() uint32 { - if x != nil && x.DiscardedCommandTicks != nil { - return *x.DiscardedCommandTicks - } - return 0 -} - type CSVCMsg_PacketEntitiesAlternateBaselineT struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -5626,7 +6150,7 @@ type CSVCMsg_PacketEntitiesAlternateBaselineT struct { func (x *CSVCMsg_PacketEntitiesAlternateBaselineT) Reset() { *x = CSVCMsg_PacketEntitiesAlternateBaselineT{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[66] + mi := &file_netmessages_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5639,7 +6163,7 @@ func (x *CSVCMsg_PacketEntitiesAlternateBaselineT) String() string { func (*CSVCMsg_PacketEntitiesAlternateBaselineT) ProtoMessage() {} func (x *CSVCMsg_PacketEntitiesAlternateBaselineT) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[66] + mi := &file_netmessages_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5652,7 +6176,7 @@ func (x *CSVCMsg_PacketEntitiesAlternateBaselineT) ProtoReflect() protoreflect.M // Deprecated: Use CSVCMsg_PacketEntitiesAlternateBaselineT.ProtoReflect.Descriptor instead. func (*CSVCMsg_PacketEntitiesAlternateBaselineT) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{33, 1} + return file_netmessages_proto_rawDescGZIP(), []int{37, 0} } func (x *CSVCMsg_PacketEntitiesAlternateBaselineT) GetEntityIndex() int32 { @@ -5681,7 +6205,7 @@ type CSVCMsg_PacketEntitiesNonTransmittedEntitiesT struct { func (x *CSVCMsg_PacketEntitiesNonTransmittedEntitiesT) Reset() { *x = CSVCMsg_PacketEntitiesNonTransmittedEntitiesT{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[67] + mi := &file_netmessages_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5694,7 +6218,7 @@ func (x *CSVCMsg_PacketEntitiesNonTransmittedEntitiesT) String() string { func (*CSVCMsg_PacketEntitiesNonTransmittedEntitiesT) ProtoMessage() {} func (x *CSVCMsg_PacketEntitiesNonTransmittedEntitiesT) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[67] + mi := &file_netmessages_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5707,7 +6231,7 @@ func (x *CSVCMsg_PacketEntitiesNonTransmittedEntitiesT) ProtoReflect() protorefl // Deprecated: Use CSVCMsg_PacketEntitiesNonTransmittedEntitiesT.ProtoReflect.Descriptor instead. func (*CSVCMsg_PacketEntitiesNonTransmittedEntitiesT) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{33, 2} + return file_netmessages_proto_rawDescGZIP(), []int{37, 1} } func (x *CSVCMsg_PacketEntitiesNonTransmittedEntitiesT) GetHeaderCount() int32 { @@ -5736,7 +6260,7 @@ type ProtoFlattenedSerializerFieldTPolymorphicFieldT struct { func (x *ProtoFlattenedSerializerFieldTPolymorphicFieldT) Reset() { *x = ProtoFlattenedSerializerFieldTPolymorphicFieldT{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[68] + mi := &file_netmessages_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5749,7 +6273,7 @@ func (x *ProtoFlattenedSerializerFieldTPolymorphicFieldT) String() string { func (*ProtoFlattenedSerializerFieldTPolymorphicFieldT) ProtoMessage() {} func (x *ProtoFlattenedSerializerFieldTPolymorphicFieldT) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[68] + mi := &file_netmessages_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5762,7 +6286,7 @@ func (x *ProtoFlattenedSerializerFieldTPolymorphicFieldT) ProtoReflect() protore // Deprecated: Use ProtoFlattenedSerializerFieldTPolymorphicFieldT.ProtoReflect.Descriptor instead. func (*ProtoFlattenedSerializerFieldTPolymorphicFieldT) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{48, 0} + return file_netmessages_proto_rawDescGZIP(), []int{52, 0} } func (x *ProtoFlattenedSerializerFieldTPolymorphicFieldT) GetPolymorphicFieldSerializerNameSym() int32 { @@ -5791,7 +6315,7 @@ type CMsgServerNetworkStats_Port struct { func (x *CMsgServerNetworkStats_Port) Reset() { *x = CMsgServerNetworkStats_Port{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[69] + mi := &file_netmessages_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5804,7 +6328,7 @@ func (x *CMsgServerNetworkStats_Port) String() string { func (*CMsgServerNetworkStats_Port) ProtoMessage() {} func (x *CMsgServerNetworkStats_Port) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[69] + mi := &file_netmessages_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5817,7 +6341,7 @@ func (x *CMsgServerNetworkStats_Port) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgServerNetworkStats_Port.ProtoReflect.Descriptor instead. func (*CMsgServerNetworkStats_Port) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{54, 0} + return file_netmessages_proto_rawDescGZIP(), []int{58, 0} } func (x *CMsgServerNetworkStats_Port) GetPort() int32 { @@ -5852,7 +6376,7 @@ type CMsgServerNetworkStats_Player struct { func (x *CMsgServerNetworkStats_Player) Reset() { *x = CMsgServerNetworkStats_Player{} if protoimpl.UnsafeEnabled { - mi := &file_netmessages_proto_msgTypes[70] + mi := &file_netmessages_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5865,7 +6389,7 @@ func (x *CMsgServerNetworkStats_Player) String() string { func (*CMsgServerNetworkStats_Player) ProtoMessage() {} func (x *CMsgServerNetworkStats_Player) ProtoReflect() protoreflect.Message { - mi := &file_netmessages_proto_msgTypes[70] + mi := &file_netmessages_proto_msgTypes[76] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5878,7 +6402,7 @@ func (x *CMsgServerNetworkStats_Player) ProtoReflect() protoreflect.Message { // Deprecated: Use CMsgServerNetworkStats_Player.ProtoReflect.Descriptor instead. func (*CMsgServerNetworkStats_Player) Descriptor() ([]byte, []int) { - return file_netmessages_proto_rawDescGZIP(), []int{54, 1} + return file_netmessages_proto_rawDescGZIP(), []int{58, 1} } func (x *CMsgServerNetworkStats_Player) GetSteamid() uint64 { @@ -5954,881 +6478,988 @@ var file_netmessages_proto_rawDesc = []byte{ 0x69, 0x65, 0x6e, 0x64, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x6c, 0x0a, 0x0c, + 0x0b, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x52, 0x0a, 0x0c, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x4d, 0x6f, 0x76, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, - 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x75, 0x6d, 0x5f, 0x63, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6e, - 0x75, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x22, 0xf6, 0x02, 0x0a, 0x0e, 0x43, - 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x12, 0x2f, 0x0a, - 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, - 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x5f, 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1d, - 0x0a, 0x0a, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x09, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x25, 0x0a, - 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x42, - 0x79, 0x74, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x73, - 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0a, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x1a, - 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x61, 0x6d, - 0x70, 0x6c, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x18, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x53, 0x61, - 0x6d, 0x70, 0x6c, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x75, - 0x6d, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0a, 0x6e, 0x75, 0x6d, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x70, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x73, 0x18, 0x08, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, - 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x22, 0x67, 0x0a, 0x11, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x56, - 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x05, 0x61, 0x75, 0x64, 0x69, - 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, - 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x52, 0x05, 0x61, - 0x75, 0x64, 0x69, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x78, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x06, 0x52, 0x04, 0x78, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x63, 0x6b, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x69, 0x63, 0x6b, 0x22, 0x5b, 0x0a, 0x13, - 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x42, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, - 0x41, 0x63, 0x6b, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, - 0x74, 0x69, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x62, 0x61, 0x73, 0x65, - 0x6c, 0x69, 0x6e, 0x65, 0x54, 0x69, 0x63, 0x6b, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x73, 0x65, - 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6e, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x62, - 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x72, 0x22, 0x35, 0x0a, 0x14, 0x43, 0x43, 0x4c, - 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x07, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x73, 0x6b, - 0x22, 0x7d, 0x0a, 0x18, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x64, 0x43, 0x76, 0x61, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x63, 0x6f, - 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, - 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, - 0x9a, 0x01, 0x0a, 0x14, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x46, 0x69, 0x6c, 0x65, - 0x43, 0x52, 0x43, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, - 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x6f, 0x64, - 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x64, - 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0c, 0x63, 0x6f, 0x64, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x72, - 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, 0x63, 0x72, 0x63, 0x22, 0x35, 0x0a, 0x17, - 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x4c, 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, - 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x22, 0x3c, 0x0a, 0x1a, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x53, - 0x70, 0x6c, 0x69, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, - 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0x46, 0x0a, 0x15, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x73, - 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, - 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x33, 0x0a, 0x1d, 0x43, 0x43, 0x4c, + 0x12, 0x2e, 0x0a, 0x13, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x6c, + 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x22, 0xf6, 0x02, 0x0a, 0x0e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x41, 0x75, + 0x64, 0x69, 0x6f, 0x12, 0x2f, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x56, 0x6f, 0x69, 0x63, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x5f, 0x74, 0x52, 0x06, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x61, + 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x1a, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x65, 0x64, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x65, 0x64, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x75, 0x6d, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x6f, 0x69, 0x63, + 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x76, + 0x6f, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x67, 0x0a, 0x11, 0x43, 0x43, 0x4c, + 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2a, + 0x0a, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x41, 0x75, + 0x64, 0x69, 0x6f, 0x52, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x78, 0x75, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x04, 0x78, 0x75, 0x69, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x69, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x69, + 0x63, 0x6b, 0x22, 0x5b, 0x0a, 0x13, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x42, 0x61, + 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x41, 0x63, 0x6b, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x61, 0x73, + 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x54, 0x69, 0x63, 0x6b, 0x12, 0x1f, + 0x0a, 0x0b, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6e, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0a, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x72, 0x22, + 0x35, 0x0a, 0x14, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x4c, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x03, 0x28, 0x07, 0x52, 0x09, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x7d, 0x0a, 0x18, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, + 0x67, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x43, 0x76, 0x61, 0x72, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9a, 0x01, 0x0a, 0x14, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, + 0x67, 0x5f, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x52, 0x43, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x1b, + 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x63, 0x6f, 0x64, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x70, + 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, + 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x6f, 0x64, 0x65, 0x46, 0x69, 0x6c, 0x65, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x63, 0x72, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, 0x63, + 0x72, 0x63, 0x22, 0x35, 0x0a, 0x17, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x4c, 0x6f, + 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x22, 0x3c, 0x0a, 0x1a, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, - 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x22, 0x36, - 0x0a, 0x14, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x69, 0x6d, 0x70, - 0x6c, 0x69, 0x66, 0x69, 0x65, 0x64, 0x22, 0x6c, 0x0a, 0x14, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, - 0x67, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x12, 0x33, - 0x0a, 0x0a, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x52, 0x09, 0x70, 0x61, 0x75, 0x73, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x75, 0x73, 0x65, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x22, 0x2a, 0x0a, 0x14, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, - 0x43, 0x6d, 0x64, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x22, 0x31, 0x0a, 0x19, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x63, 0x6f, 0x6e, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x14, 0x0a, - 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x22, 0xc3, 0x04, 0x0a, 0x12, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, - 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0b, 0x69, 0x73, 0x44, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, - 0x69, 0x73, 0x5f, 0x68, 0x6c, 0x74, 0x76, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, - 0x73, 0x48, 0x6c, 0x74, 0x76, 0x12, 0x11, 0x0a, 0x04, 0x63, 0x5f, 0x6f, 0x73, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x03, 0x63, 0x4f, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, - 0x61, 0x78, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x78, - 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, - 0x6d, 0x61, 0x78, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x74, - 0x69, 0x63, 0x6b, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x02, 0x52, 0x0c, 0x74, 0x69, 0x63, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, - 0x12, 0x19, 0x0a, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x67, 0x61, 0x6d, 0x65, 0x44, 0x69, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6d, - 0x61, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, - 0x61, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x6b, 0x79, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x6b, 0x79, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x11, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, - 0x0a, 0x0a, 0x61, 0x64, 0x64, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x56, 0x0a, - 0x13, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x64, 0x6f, 0x74, - 0x61, 0x2e, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x11, 0x67, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x32, 0x0a, 0x15, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x18, 0x14, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x13, 0x67, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x22, 0xbd, 0x01, 0x0a, 0x11, 0x43, 0x53, - 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x28, 0x0a, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x4f, 0x6e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x07, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x64, 0x6f, 0x74, - 0x61, 0x2e, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, - 0x6e, 0x66, 0x6f, 0x2e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x74, 0x52, 0x07, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x65, 0x73, 0x1a, 0x43, 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x74, 0x12, - 0x19, 0x0a, 0x08, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x2a, 0x0a, 0x10, 0x43, 0x53, 0x56, - 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x70, 0x61, 0x75, 0x73, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, - 0x61, 0x75, 0x73, 0x65, 0x64, 0x22, 0x5d, 0x0a, 0x11, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, - 0x5f, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x71, 0x75, - 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x71, 0x75, 0x61, - 0x6c, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x23, 0x0a, 0x0d, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, - 0x50, 0x72, 0x69, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x22, 0xcd, 0x05, 0x0a, 0x0e, 0x43, 0x53, - 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, - 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x6f, - 0x75, 0x6e, 0x64, 0x12, 0x38, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x53, 0x56, 0x43, 0x4d, - 0x73, 0x67, 0x5f, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x2e, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x64, - 0x61, 0x74, 0x61, 0x5f, 0x74, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x1a, 0xd9, 0x04, - 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x12, 0x19, 0x0a, - 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, - 0x07, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x58, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x5f, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x6f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x59, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x7a, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5a, 0x12, 0x16, - 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, - 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x64, 0x65, 0x6c, - 0x61, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x14, 0x0a, - 0x05, 0x70, 0x69, 0x74, 0x63, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x70, 0x69, - 0x74, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x6f, 0x75, - 0x6e, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x6f, - 0x75, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x5f, - 0x6e, 0x75, 0x6d, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x07, - 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, - 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x65, - 0x72, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x61, 0x6e, 0x64, 0x6f, - 0x6d, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x61, - 0x6e, 0x64, 0x6f, 0x6d, 0x53, 0x65, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x6e, - 0x64, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, - 0x6f, 0x75, 0x6e, 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, - 0x73, 0x65, 0x6e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, - 0x69, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, - 0x5f, 0x61, 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, - 0x69, 0x73, 0x41, 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, - 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, 0x12, 0x2a, 0x0a, - 0x11, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x22, 0x6c, 0x0a, 0x10, 0x43, 0x53, 0x56, - 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x72, 0x65, 0x66, 0x65, 0x74, 0x63, 0x68, 0x12, 0x1f, 0x0a, - 0x0b, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x37, - 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x65, - 0x66, 0x65, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x48, 0x0a, 0x0f, 0x43, 0x53, 0x56, 0x43, 0x4d, - 0x73, 0x67, 0x5f, 0x53, 0x65, 0x74, 0x56, 0x69, 0x65, 0x77, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x12, 0x0a, + 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x33, 0x0a, 0x1d, 0x43, 0x43, 0x4c, 0x43, 0x4d, + 0x73, 0x67, 0x5f, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x69, + 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x22, 0x36, 0x0a, 0x14, + 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x22, 0x6c, 0x0a, 0x14, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x0a, + 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x14, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x52, 0x09, 0x70, 0x61, 0x75, 0x73, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x75, 0x73, 0x65, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x22, 0x2a, 0x0a, 0x14, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6d, + 0x64, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x31, + 0x0a, 0x19, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x63, 0x6f, 0x6e, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x22, 0xa6, 0x04, 0x0a, 0x16, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x32, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x73, 0x12, 0x15, 0x0a, 0x06, + 0x63, 0x70, 0x75, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x70, + 0x75, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x70, 0x75, 0x5f, 0x62, 0x72, 0x61, 0x6e, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x70, 0x75, 0x42, 0x72, 0x61, 0x6e, 0x64, + 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x70, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x70, 0x75, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x28, 0x0a, + 0x10, 0x63, 0x70, 0x75, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, + 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x63, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x50, + 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x12, 0x31, 0x0a, 0x15, 0x72, 0x61, 0x6d, 0x5f, 0x70, + 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6d, 0x62, + 0x18, 0x15, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x72, 0x61, 0x6d, 0x50, 0x68, 0x79, 0x73, 0x69, + 0x63, 0x61, 0x6c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x62, 0x12, 0x39, 0x0a, 0x19, 0x67, 0x70, + 0x75, 0x5f, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x64, + 0x6c, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x67, + 0x70, 0x75, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x44, 0x6c, + 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x67, 0x70, 0x75, 0x5f, 0x76, 0x65, 0x6e, + 0x64, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x67, 0x70, + 0x75, 0x56, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x67, 0x70, 0x75, + 0x5f, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x2b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x67, 0x70, 0x75, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x35, 0x0a, 0x17, 0x67, 0x70, 0x75, 0x5f, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x69, 0x67, 0x68, 0x18, 0x2c, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x14, 0x67, 0x70, 0x75, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x69, 0x67, 0x68, 0x12, 0x33, 0x0a, 0x16, 0x67, 0x70, 0x75, 0x5f, + 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, + 0x6f, 0x77, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x67, 0x70, 0x75, 0x44, 0x72, 0x69, + 0x76, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x77, 0x12, 0x2f, 0x0a, + 0x14, 0x67, 0x70, 0x75, 0x5f, 0x64, 0x78, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x67, 0x70, 0x75, + 0x44, 0x78, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x3a, + 0x0a, 0x1a, 0x67, 0x70, 0x75, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6d, 0x65, + 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x6d, 0x62, 0x18, 0x2f, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x16, 0x67, 0x70, 0x75, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x65, + 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x22, 0xd4, 0x02, 0x0a, 0x1e, 0x43, + 0x4d, 0x73, 0x67, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x32, 0x56, 0x50, 0x72, 0x6f, 0x66, 0x4c, + 0x69, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x61, 0x6d, 0x70, + 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x63, + 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x75, 0x73, 0x65, 0x63, + 0x4d, 0x61, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x63, 0x5f, 0x61, 0x76, 0x67, 0x5f, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x75, 0x73, + 0x65, 0x63, 0x41, 0x76, 0x67, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x75, + 0x73, 0x65, 0x63, 0x5f, 0x70, 0x35, 0x30, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x63, 0x50, 0x35, 0x30, 0x41, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x63, 0x5f, 0x70, 0x39, 0x39, 0x5f, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x75, 0x73, + 0x65, 0x63, 0x50, 0x39, 0x39, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x75, + 0x73, 0x65, 0x63, 0x5f, 0x61, 0x76, 0x67, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x15, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x63, 0x41, 0x76, 0x67, 0x41, 0x6c, 0x6c, 0x12, 0x20, 0x0a, + 0x0c, 0x75, 0x73, 0x65, 0x63, 0x5f, 0x70, 0x35, 0x30, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x16, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x63, 0x50, 0x35, 0x30, 0x41, 0x6c, 0x6c, 0x12, + 0x20, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x63, 0x5f, 0x70, 0x39, 0x39, 0x5f, 0x61, 0x6c, 0x6c, 0x18, + 0x17, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x63, 0x50, 0x39, 0x39, 0x41, 0x6c, + 0x6c, 0x22, 0xbf, 0x01, 0x0a, 0x1a, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x32, 0x56, 0x50, 0x72, 0x6f, 0x66, 0x4c, 0x69, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x12, 0x3a, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x32, 0x56, 0x50, 0x72, 0x6f, 0x66, 0x4c, 0x69, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x3a, 0x0a, 0x05, + 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x64, 0x6f, + 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x32, 0x56, 0x50, + 0x72, 0x6f, 0x66, 0x4c, 0x69, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x74, 0x65, + 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x69, 0x73, 0x63, + 0x61, 0x72, 0x64, 0x65, 0x64, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x65, 0x64, 0x46, 0x72, 0x61, + 0x6d, 0x65, 0x73, 0x22, 0x9a, 0x01, 0x0a, 0x12, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, + 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x12, 0x3f, 0x0a, 0x0c, 0x73, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x32, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x73, 0x52, 0x0b, + 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x76, + 0x70, 0x72, 0x6f, 0x66, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x20, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x32, 0x56, 0x50, 0x72, 0x6f, 0x66, 0x4c, 0x69, 0x74, 0x65, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x0b, 0x76, 0x70, 0x72, 0x6f, 0x66, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x22, 0xf8, 0x03, 0x0a, 0x2d, 0x43, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x32, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x65, 0x72, 0x66, 0x53, 0x75, + 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x61, 0x6d, + 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x47, 0x0a, + 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, + 0x67, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x32, 0x56, 0x50, 0x72, 0x6f, 0x66, 0x4c, 0x69, 0x74, + 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x54, 0x0a, 0x07, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, + 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x32, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x50, 0x65, 0x72, 0x66, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, + 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x52, 0x07, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x10, 0x0a, 0x03, + 0x6d, 0x61, 0x70, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x61, 0x70, 0x1a, 0xba, + 0x01, 0x0a, 0x06, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x0c, 0x73, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x32, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x73, 0x52, 0x0b, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x73, 0x12, 0x3a, 0x0a, 0x07, 0x70, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x64, 0x6f, + 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x32, 0x56, 0x50, + 0x72, 0x6f, 0x66, 0x4c, 0x69, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x07, 0x70, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x49, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x22, 0xc3, 0x04, 0x0a, 0x12, + 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x21, + 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x44, 0x65, 0x64, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x68, 0x6c, 0x74, 0x76, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x48, 0x6c, 0x74, 0x76, 0x12, 0x11, 0x0a, + 0x04, 0x63, 0x5f, 0x6f, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x63, 0x4f, 0x73, + 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x6f, + 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, + 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x69, 0x63, 0x6b, 0x5f, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x76, 0x61, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x74, 0x69, 0x63, 0x6b, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x61, 0x6d, 0x65, + 0x5f, 0x64, 0x69, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x61, 0x6d, 0x65, + 0x44, 0x69, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x61, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, + 0x0a, 0x08, 0x73, 0x6b, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x73, 0x6b, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x6f, 0x73, + 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, + 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x64, 0x64, 0x6f, 0x6e, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x6f, + 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x56, 0x0a, 0x13, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x13, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, + 0x67, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x67, 0x61, 0x6d, 0x65, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x32, 0x0a, + 0x15, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, + 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x13, 0x67, 0x61, + 0x6d, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, + 0x74, 0x22, 0xbd, 0x01, 0x0a, 0x11, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x5f, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x12, 0x39, 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, + 0x67, 0x5f, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x5f, 0x74, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x1a, 0x43, 0x0a, 0x07, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, + 0x65, 0x22, 0x2a, 0x0a, 0x10, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x65, 0x74, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x75, 0x73, 0x65, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x61, 0x75, 0x73, 0x65, 0x64, 0x22, 0x5d, 0x0a, + 0x11, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, + 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x63, 0x6f, 0x64, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f, 0x64, + 0x65, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x23, 0x0a, 0x0d, + 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x72, 0x69, 0x6e, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, + 0x74, 0x22, 0xcd, 0x05, 0x0a, 0x0e, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x6f, + 0x75, 0x6e, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x72, 0x65, + 0x6c, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x38, 0x0a, 0x06, 0x73, + 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x64, 0x6f, + 0x74, 0x61, 0x2e, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x6f, 0x75, 0x6e, 0x64, + 0x73, 0x2e, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x52, 0x06, 0x73, + 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x1a, 0xd9, 0x04, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, + 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x58, + 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x79, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x11, 0x52, 0x07, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x59, 0x12, 0x19, 0x0a, 0x08, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x7a, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5a, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1f, + 0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x0a, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, + 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x69, 0x74, 0x63, 0x68, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x70, 0x69, 0x74, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x66, + 0x6c, 0x61, 0x67, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, + 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x28, + 0x0a, 0x10, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x68, 0x61, 0x6e, 0x64, + 0x6c, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x4e, + 0x75, 0x6d, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x61, + 0x6b, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0d, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, + 0x1f, 0x0a, 0x0b, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x53, 0x65, 0x65, 0x64, + 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x65, 0x6e, 0x63, 0x65, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x65, 0x6e, + 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x61, 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x41, 0x6d, 0x62, 0x69, 0x65, 0x6e, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x04, 0x67, 0x75, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x06, + 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, + 0x64, 0x22, 0x6c, 0x0a, 0x10, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x72, 0x65, + 0x66, 0x65, 0x74, 0x63, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x6e, + 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x37, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, + 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, + 0x48, 0x0a, 0x0f, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x65, 0x74, 0x56, 0x69, + 0x65, 0x77, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x22, 0x56, 0x0a, 0x10, 0x43, 0x53, 0x56, + 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x46, 0x69, 0x78, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x12, 0x26, 0x0a, 0x05, 0x61, 0x6e, 0x67, + 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, + 0x43, 0x4d, 0x73, 0x67, 0x51, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x05, 0x61, 0x6e, 0x67, 0x6c, + 0x65, 0x22, 0x40, 0x0a, 0x16, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x72, 0x6f, + 0x73, 0x73, 0x68, 0x61, 0x69, 0x72, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x05, 0x61, + 0x6e, 0x67, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, + 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x51, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x05, 0x61, 0x6e, + 0x67, 0x6c, 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x10, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, + 0x42, 0x53, 0x50, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x12, 0x22, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, + 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x12, 0x2e, 0x0a, 0x13, + 0x64, 0x65, 0x63, 0x61, 0x6c, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x64, 0x65, 0x63, 0x61, 0x6c, + 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x21, 0x0a, 0x0c, + 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, + 0x1f, 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6c, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x22, 0x7f, 0x0a, 0x13, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x53, + 0x70, 0x6c, 0x69, 0x74, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x12, 0x31, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, + 0x45, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6c, 0x6f, - 0x74, 0x22, 0x56, 0x0a, 0x10, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x46, 0x69, 0x78, - 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x12, 0x26, 0x0a, 0x05, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x51, 0x41, 0x6e, 0x67, - 0x6c, 0x65, 0x52, 0x05, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x22, 0x40, 0x0a, 0x16, 0x43, 0x53, 0x56, - 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x68, 0x61, 0x69, 0x72, 0x41, 0x6e, - 0x67, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x05, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x51, 0x41, - 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x05, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x10, - 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x42, 0x53, 0x50, 0x44, 0x65, 0x63, 0x61, 0x6c, - 0x12, 0x22, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, - 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, - 0x03, 0x70, 0x6f, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x64, 0x65, 0x63, 0x61, 0x6c, 0x5f, 0x74, 0x65, - 0x78, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x11, 0x64, 0x65, 0x63, 0x61, 0x6c, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x6f, 0x77, 0x5f, - 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, - 0x6c, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x7f, 0x0a, 0x13, 0x43, - 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x53, 0x63, 0x72, 0x65, - 0x65, 0x6e, 0x12, 0x31, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x1d, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x45, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x53, 0x63, - 0x72, 0x65, 0x65, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x4b, 0x0a, 0x14, - 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x65, 0x74, 0x43, 0x76, 0x61, 0x72, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x1b, 0x0a, 0x09, - 0x63, 0x76, 0x61, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x63, 0x76, 0x61, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x57, 0x0a, 0x0c, 0x43, 0x53, 0x56, - 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x4d, 0x65, 0x6e, 0x75, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x69, 0x61, - 0x6c, 0x6f, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, - 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x65, - 0x6e, 0x75, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6d, 0x65, 0x6e, 0x75, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x22, 0x6d, 0x0a, 0x13, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x55, 0x73, - 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x73, 0x67, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x5f, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x73, 0x73, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x61, 0x73, 0x73, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, - 0x68, 0x22, 0xb2, 0x03, 0x0a, 0x11, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x65, - 0x6e, 0x64, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x69, 0x73, 0x5f, 0x65, 0x6e, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x45, 0x6e, 0x64, 0x12, 0x24, - 0x0a, 0x0e, 0x6e, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x65, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6e, 0x65, 0x65, 0x64, 0x73, 0x5f, 0x64, 0x65, - 0x63, 0x6f, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6e, 0x65, 0x65, - 0x64, 0x73, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x05, 0x70, 0x72, 0x6f, - 0x70, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, - 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x62, 0x6c, - 0x65, 0x2e, 0x73, 0x65, 0x6e, 0x64, 0x70, 0x72, 0x6f, 0x70, 0x5f, 0x74, 0x52, 0x05, 0x70, 0x72, - 0x6f, 0x70, 0x73, 0x1a, 0x80, 0x02, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x70, 0x72, 0x6f, 0x70, - 0x5f, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x76, 0x61, 0x72, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x61, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, - 0x6e, 0x75, 0x6d, 0x5f, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0b, 0x6e, 0x75, 0x6d, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, - 0x1b, 0x0a, 0x09, 0x6c, 0x6f, 0x77, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x02, 0x52, 0x08, 0x6c, 0x6f, 0x77, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1d, 0x0a, 0x0a, - 0x68, 0x69, 0x67, 0x68, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x09, 0x68, 0x69, 0x67, 0x68, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6e, - 0x75, 0x6d, 0x5f, 0x62, 0x69, 0x74, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6e, - 0x75, 0x6d, 0x42, 0x69, 0x74, 0x73, 0x22, 0x89, 0x02, 0x0a, 0x15, 0x43, 0x53, 0x56, 0x43, 0x4d, - 0x73, 0x67, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x4a, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x53, 0x56, - 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, - 0x73, 0x74, 0x2e, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x74, 0x52, - 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x1a, 0x2f, 0x0a, 0x05, - 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x73, 0x0a, - 0x0c, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x74, 0x12, 0x18, 0x0a, - 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x04, 0x6b, - 0x65, 0x79, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x64, 0x6f, 0x74, 0x61, - 0x2e, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x52, 0x04, 0x6b, 0x65, - 0x79, 0x73, 0x22, 0x9f, 0x0b, 0x0a, 0x16, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x50, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x1f, 0x0a, - 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x27, - 0x0a, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x65, 0x67, 0x61, 0x63, - 0x79, 0x5f, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0d, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x49, 0x73, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, - 0x27, 0x0a, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, - 0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x42, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x61, 0x73, 0x65, - 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x62, 0x61, 0x73, 0x65, - 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x5f, 0x66, 0x72, - 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x46, - 0x72, 0x6f, 0x6d, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, - 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x46, 0x75, 0x6c, 0x6c, 0x46, 0x72, 0x61, - 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x61, - 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x70, 0x61, 0x77, - 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x46, 0x0a, 0x1f, - 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1d, 0x6d, 0x61, 0x78, 0x53, 0x70, 0x61, 0x77, 0x6e, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x6d, 0x64, - 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6d, 0x64, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x12, 0x3a, 0x0a, - 0x1a, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x6d, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x5f, 0x72, 0x65, 0x63, 0x76, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x11, 0x20, 0x01, 0x28, - 0x11, 0x52, 0x16, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6d, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x52, 0x65, 0x63, 0x76, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x12, 0x2f, 0x0a, 0x13, 0x73, 0x65, - 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, - 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, - 0x7a, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x5f, 0x0a, 0x12, 0x63, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x6e, 0x66, - 0x6f, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, + 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x22, 0x4b, 0x0a, 0x14, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, + 0x47, 0x65, 0x74, 0x43, 0x76, 0x61, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x63, 0x6f, + 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x76, 0x61, 0x72, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x76, 0x61, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x22, 0x57, 0x0a, 0x0c, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x4d, 0x65, 0x6e, + 0x75, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x65, 0x6e, 0x75, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6d, 0x65, 0x6e, + 0x75, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x6d, 0x0a, 0x13, 0x43, 0x53, + 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, + 0x6d, 0x73, 0x67, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, + 0x6d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x73, 0x73, 0x74, + 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x61, + 0x73, 0x73, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x22, 0xb2, 0x03, 0x0a, 0x11, 0x43, 0x53, + 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, + 0x15, 0x0a, 0x06, 0x69, 0x73, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x05, 0x69, 0x73, 0x45, 0x6e, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x6e, 0x65, 0x74, 0x5f, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x6e, 0x65, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, + 0x6e, 0x65, 0x65, 0x64, 0x73, 0x5f, 0x64, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6e, 0x65, 0x65, 0x64, 0x73, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, + 0x72, 0x12, 0x38, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x70, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, + 0x53, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x73, 0x65, 0x6e, 0x64, 0x70, 0x72, + 0x6f, 0x70, 0x5f, 0x74, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x70, 0x73, 0x1a, 0x80, 0x02, 0x0a, 0x0a, + 0x73, 0x65, 0x6e, 0x64, 0x70, 0x72, 0x6f, 0x70, 0x5f, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x19, + 0x0a, 0x08, 0x76, 0x61, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x76, 0x61, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x64, + 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x75, 0x6d, 0x5f, 0x65, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6e, 0x75, 0x6d, 0x45, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x6f, 0x77, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6c, 0x6f, 0x77, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x69, 0x67, 0x68, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x68, 0x69, 0x67, 0x68, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x5f, 0x62, 0x69, 0x74, 0x73, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x42, 0x69, 0x74, 0x73, 0x22, 0x89, + 0x02, 0x0a, 0x15, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x4a, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x61, 0x6d, + 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x74, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x72, 0x73, 0x1a, 0x2f, 0x0a, 0x05, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x73, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x72, 0x5f, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, + 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x6b, + 0x65, 0x79, 0x5f, 0x74, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x22, 0xfd, 0x09, 0x0a, 0x16, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x74, - 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x71, 0x75, - 0x65, 0x75, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x52, 0x10, 0x63, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x62, 0x0a, 0x13, - 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, - 0x6e, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x64, 0x6f, 0x74, 0x61, - 0x2e, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, - 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, - 0x65, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x74, 0x52, 0x12, 0x61, 0x6c, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x42, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, - 0x12, 0x27, 0x0a, 0x10, 0x68, 0x61, 0x73, 0x5f, 0x70, 0x76, 0x73, 0x5f, 0x76, 0x69, 0x73, 0x5f, - 0x62, 0x69, 0x74, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x68, 0x61, 0x73, 0x50, - 0x76, 0x73, 0x56, 0x69, 0x73, 0x42, 0x69, 0x74, 0x73, 0x12, 0x2f, 0x0a, 0x14, 0x6c, 0x61, 0x73, - 0x74, 0x5f, 0x63, 0x6d, 0x64, 0x5f, 0x72, 0x65, 0x63, 0x76, 0x5f, 0x6d, 0x61, 0x72, 0x67, 0x69, - 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6d, 0x64, - 0x52, 0x65, 0x63, 0x76, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x12, 0x71, 0x0a, 0x18, 0x6e, 0x6f, - 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, - 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x64, - 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x6e, 0x6f, 0x6e, 0x5f, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, - 0x69, 0x65, 0x73, 0x5f, 0x74, 0x52, 0x16, 0x6e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, - 0x69, 0x74, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x20, 0x0a, - 0x0b, 0x64, 0x65, 0x76, 0x5f, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x18, 0xe7, 0x07, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x50, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x1a, - 0xab, 0x01, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x71, 0x75, 0x65, 0x75, - 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x73, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x51, 0x75, 0x65, 0x75, 0x65, - 0x64, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x74, 0x61, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, - 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x13, 0x73, 0x74, 0x61, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, - 0x54, 0x69, 0x63, 0x6b, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, - 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x65, - 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x54, 0x69, 0x63, 0x6b, 0x73, 0x1a, 0x60, 0x0a, - 0x14, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x6c, - 0x69, 0x6e, 0x65, 0x5f, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x65, 0x6e, 0x74, - 0x69, 0x74, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x61, 0x73, 0x65, - 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0d, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x1a, - 0x53, 0x0a, 0x1a, 0x6e, 0x6f, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x74, - 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x5f, 0x74, 0x12, 0x21, 0x0a, - 0x0c, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0b, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x22, 0x74, 0x0a, 0x14, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, - 0x54, 0x65, 0x6d, 0x70, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, - 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, - 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x75, 0x6d, 0x5f, - 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6e, - 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x74, - 0x69, 0x74, 0x79, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, - 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x44, 0x61, 0x74, 0x61, 0x22, 0x99, 0x03, 0x0a, 0x19, 0x43, - 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, - 0x6e, 0x75, 0x6d, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x2f, 0x0a, - 0x14, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, - 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x75, 0x73, 0x65, - 0x72, 0x44, 0x61, 0x74, 0x61, 0x46, 0x69, 0x78, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x24, - 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, - 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2d, 0x0a, 0x13, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, - 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x69, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x10, 0x75, 0x73, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x53, 0x69, 0x7a, 0x65, 0x42, - 0x69, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x11, 0x75, 0x6e, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x61, 0x74, 0x61, 0x5f, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, - 0x12, 0x34, 0x0a, 0x16, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x6e, 0x74, - 0x5f, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x14, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x72, 0x69, 0x6e, 0x74, 0x42, 0x69, 0x74, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x43, 0x53, 0x56, 0x43, 0x4d, - 0x73, 0x67, 0x5f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, - 0x61, 0x62, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x12, - 0x2e, 0x0a, 0x13, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x5f, 0x65, - 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x6e, 0x75, - 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, - 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x65, 0x6e, 0x74, + 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x45, + 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, + 0x26, 0x0a, 0x0f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x6c, + 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, + 0x49, 0x73, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1d, 0x0a, 0x0a, + 0x64, 0x65, 0x6c, 0x74, 0x61, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x1f, 0x0a, 0x0b, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x12, + 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x66, 0x72, 0x61, + 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x46, 0x75, 0x6c, 0x6c, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, + 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x53, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x48, 0x61, + 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x46, 0x0a, 0x1f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x70, 0x61, 0x77, + 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1d, 0x6d, + 0x61, 0x78, 0x53, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x37, 0x0a, 0x18, + 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x6d, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, + 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6d, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x1a, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x6d, + 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x63, 0x76, 0x5f, 0x64, 0x65, + 0x6c, 0x74, 0x61, 0x18, 0x11, 0x20, 0x01, 0x28, 0x11, 0x52, 0x16, 0x6c, 0x61, 0x73, 0x74, 0x43, + 0x6d, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x63, 0x76, 0x44, 0x65, 0x6c, 0x74, + 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x74, 0x69, 0x63, 0x6b, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x69, + 0x63, 0x6b, 0x12, 0x2f, 0x0a, 0x13, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, + 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x12, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x69, 0x74, + 0x69, 0x65, 0x73, 0x12, 0x62, 0x0a, 0x13, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, + 0x5f, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x31, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, + 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x61, + 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, + 0x65, 0x5f, 0x74, 0x52, 0x12, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x42, 0x61, + 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x10, 0x68, 0x61, 0x73, 0x5f, 0x70, + 0x76, 0x73, 0x5f, 0x76, 0x69, 0x73, 0x5f, 0x62, 0x69, 0x74, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0d, 0x68, 0x61, 0x73, 0x50, 0x76, 0x73, 0x56, 0x69, 0x73, 0x42, 0x69, 0x74, 0x73, + 0x12, 0x26, 0x0a, 0x0f, 0x63, 0x6d, 0x64, 0x5f, 0x72, 0x65, 0x63, 0x76, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x11, 0x52, 0x0d, 0x63, 0x6d, 0x64, 0x52, 0x65, + 0x63, 0x76, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x71, 0x0a, 0x18, 0x6e, 0x6f, 0x6e, 0x5f, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x69, 0x65, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x64, 0x6f, 0x74, + 0x61, 0x2e, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x6e, 0x6f, 0x6e, 0x5f, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, + 0x73, 0x5f, 0x74, 0x52, 0x16, 0x6e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, + 0x74, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x18, 0x63, + 0x71, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x63, + 0x71, 0x53, 0x74, 0x61, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x54, + 0x69, 0x63, 0x6b, 0x73, 0x12, 0x3b, 0x0a, 0x1a, 0x63, 0x71, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, + 0x72, 0x64, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x63, + 0x6b, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x63, 0x71, 0x44, 0x69, 0x73, 0x63, + 0x61, 0x72, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x54, 0x69, 0x63, 0x6b, + 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x5f, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x18, 0xe7, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x50, 0x61, 0x64, 0x64, + 0x69, 0x6e, 0x67, 0x1a, 0x60, 0x0a, 0x14, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, + 0x5f, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x25, + 0x0a, 0x0e, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x1a, 0x53, 0x0a, 0x1a, 0x6e, 0x6f, 0x6e, 0x5f, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, + 0x73, 0x5f, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x74, 0x0a, 0x14, 0x43, 0x53, + 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x54, 0x65, 0x6d, 0x70, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1f, + 0x0a, 0x0b, 0x6e, 0x75, 0x6d, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, + 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x44, 0x61, 0x74, 0x61, + 0x22, 0x99, 0x03, 0x0a, 0x19, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x75, 0x6d, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, + 0x69, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, + 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x11, 0x75, 0x73, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x46, 0x69, 0x78, 0x65, 0x64, + 0x53, 0x69, 0x7a, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x75, 0x73, + 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2d, 0x0a, 0x13, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x69, 0x74, + 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x75, 0x73, 0x65, 0x72, 0x44, 0x61, 0x74, + 0x61, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x69, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, + 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, - 0x22, 0xe2, 0x01, 0x0a, 0x11, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x56, 0x6f, 0x69, - 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, - 0x67, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x52, 0x05, 0x61, 0x75, 0x64, - 0x69, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, - 0x6f, 0x78, 0x69, 0x6d, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x70, - 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x78, 0x75, 0x69, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x06, 0x52, 0x04, 0x78, 0x75, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, - 0x61, 0x75, 0x64, 0x69, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, - 0x12, 0x0a, 0x04, 0x74, 0x69, 0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, - 0x69, 0x63, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x73, 0x73, 0x74, 0x68, 0x72, 0x6f, 0x75, - 0x67, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x61, 0x73, 0x73, 0x74, 0x68, - 0x72, 0x6f, 0x75, 0x67, 0x68, 0x22, 0x66, 0x0a, 0x16, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, - 0x5f, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, - 0x12, 0x0a, 0x04, 0x74, 0x69, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, - 0x69, 0x63, 0x6b, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x73, - 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x73, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x70, 0x0a, - 0x16, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x46, 0x75, 0x6c, 0x6c, 0x46, 0x72, 0x61, - 0x6d, 0x65, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x63, 0x6b, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x73, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, - 0x76, 0x0a, 0x12, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x48, 0x4c, 0x54, 0x56, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, - 0x07, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6c, 0x6f, 0x74, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x12, 0x18, 0x0a, - 0x07, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x70, 0x72, 0x6f, 0x78, 0x69, 0x65, 0x73, 0x22, 0x32, 0x0a, 0x15, 0x43, 0x53, 0x56, 0x43, 0x4d, - 0x73, 0x67, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, - 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x22, 0x2a, 0x0a, 0x14, 0x43, - 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6d, 0x64, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4b, 0x0a, 0x19, 0x43, 0x53, 0x56, 0x43, 0x4d, - 0x73, 0x67, 0x5f, 0x52, 0x63, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x22, 0x54, 0x0a, 0x0e, 0x43, 0x4d, 0x73, 0x67, 0x49, 0x50, 0x43, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, - 0x65, 0x72, 0x5f, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0c, 0x63, - 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, - 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x49, 0x64, 0x22, 0xed, 0x01, 0x0a, 0x0e, 0x43, - 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x65, 0x65, 0x72, 0x12, 0x1f, 0x0a, - 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x18, - 0x0a, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, - 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x12, 0x26, 0x0a, 0x03, 0x69, 0x70, 0x63, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, - 0x67, 0x49, 0x50, 0x43, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x03, 0x69, 0x70, 0x63, - 0x12, 0x22, 0x0a, 0x0d, 0x74, 0x68, 0x65, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x5f, 0x79, 0x6f, - 0x75, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x74, 0x68, 0x65, 0x79, 0x48, 0x65, 0x61, - 0x72, 0x59, 0x6f, 0x75, 0x12, 0x22, 0x0a, 0x0d, 0x79, 0x6f, 0x75, 0x5f, 0x68, 0x65, 0x61, 0x72, - 0x5f, 0x74, 0x68, 0x65, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x79, 0x6f, 0x75, - 0x48, 0x65, 0x61, 0x72, 0x54, 0x68, 0x65, 0x6d, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x73, 0x5f, 0x6c, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x68, 0x6f, 0x73, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x48, 0x6f, 0x73, 0x74, 0x22, 0x3c, 0x0a, 0x10, 0x43, 0x53, - 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x65, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, - 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x64, - 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x65, - 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x22, 0x6c, 0x0a, 0x1c, 0x43, 0x53, 0x56, 0x43, - 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x70, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x61, 0x70, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x62, - 0x6c, 0x65, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x13, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x53, - 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x22, 0xf3, 0x05, 0x0a, 0x1f, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x12, 0x2b, 0x0a, 0x11, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x75, 0x6e, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x27, 0x0a, + 0x0f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x5f, + 0x76, 0x61, 0x72, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x72, + 0x69, 0x6e, 0x74, 0x42, 0x69, 0x74, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0x87, 0x01, 0x0a, + 0x19, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x11, 0x6e, 0x75, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x45, 0x6e, + 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x22, 0xe2, 0x01, 0x0a, 0x11, 0x43, 0x53, 0x56, 0x43, 0x4d, + 0x73, 0x67, 0x5f, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x05, + 0x61, 0x75, 0x64, 0x69, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x64, 0x6f, + 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, + 0x6f, 0x52, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x69, 0x74, 0x79, 0x12, 0x12, + 0x0a, 0x04, 0x78, 0x75, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x06, 0x52, 0x04, 0x78, 0x75, + 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x75, 0x64, 0x69, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x61, + 0x73, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x62, 0x6c, + 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x63, 0x6b, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x69, 0x63, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x73, + 0x73, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, + 0x70, 0x61, 0x73, 0x73, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x22, 0x66, 0x0a, 0x16, 0x43, + 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x6c, + 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x63, 0x6b, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x63, 0x6b, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x73, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x22, 0x70, 0x0a, 0x16, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x46, + 0x75, 0x6c, 0x6c, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x69, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x63, + 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x76, 0x0a, 0x12, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, + 0x5f, 0x48, 0x4c, 0x54, 0x56, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6d, + 0x61, 0x73, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x61, 0x73, + 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x14, 0x0a, + 0x05, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x6c, + 0x6f, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x65, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x65, 0x73, 0x22, 0x32, 0x0a, + 0x15, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, + 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x49, + 0x64, 0x22, 0x2a, 0x0a, 0x14, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6d, 0x64, + 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4b, 0x0a, + 0x19, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x63, 0x6f, 0x6e, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x54, 0x0a, 0x0e, 0x43, 0x4d, + 0x73, 0x67, 0x49, 0x50, 0x43, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x23, 0x0a, 0x0d, + 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x06, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x72, 0x47, 0x75, 0x69, + 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x49, 0x64, + 0x22, 0xed, 0x01, 0x0a, 0x0e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, + 0x65, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x6c, + 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x12, 0x26, + 0x0a, 0x03, 0x69, 0x70, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x64, 0x6f, + 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x49, 0x50, 0x43, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x52, 0x03, 0x69, 0x70, 0x63, 0x12, 0x22, 0x0a, 0x0d, 0x74, 0x68, 0x65, 0x79, 0x5f, 0x68, + 0x65, 0x61, 0x72, 0x5f, 0x79, 0x6f, 0x75, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x74, + 0x68, 0x65, 0x79, 0x48, 0x65, 0x61, 0x72, 0x59, 0x6f, 0x75, 0x12, 0x22, 0x0a, 0x0d, 0x79, 0x6f, + 0x75, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x5f, 0x74, 0x68, 0x65, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0b, 0x79, 0x6f, 0x75, 0x48, 0x65, 0x61, 0x72, 0x54, 0x68, 0x65, 0x6d, 0x12, 0x30, + 0x0a, 0x14, 0x69, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x73, + 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x48, 0x6f, 0x73, 0x74, + 0x22, 0x3c, 0x0a, 0x10, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x65, 0x65, 0x72, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x22, 0x6c, + 0x0a, 0x1c, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x41, + 0x6c, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x18, + 0x0a, 0x07, 0x6d, 0x61, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6d, 0x61, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x70, 0x65, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x22, 0xf3, 0x05, 0x0a, + 0x1f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x65, 0x64, 0x53, + 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, + 0x12, 0x20, 0x0a, 0x0c, 0x76, 0x61, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x73, 0x79, 0x6d, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x76, 0x61, 0x72, 0x54, 0x79, 0x70, 0x65, 0x53, + 0x79, 0x6d, 0x12, 0x20, 0x0a, 0x0c, 0x76, 0x61, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, + 0x79, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x76, 0x61, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x53, 0x79, 0x6d, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x62, 0x69, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x6f, 0x77, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6c, 0x6f, 0x77, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1d, + 0x0a, 0x0a, 0x68, 0x69, 0x67, 0x68, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x09, 0x68, 0x69, 0x67, 0x68, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, + 0x0c, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0b, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, + 0x12, 0x39, 0x0a, 0x19, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x79, 0x6d, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x16, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x79, 0x6d, 0x12, 0x38, 0x0a, 0x18, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x6e, 0x6f, + 0x64, 0x65, 0x5f, 0x73, 0x79, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, + 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x79, 0x6d, 0x12, 0x26, 0x0a, 0x0f, 0x76, 0x61, 0x72, + 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x79, 0x6d, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0d, 0x76, 0x61, 0x72, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x53, 0x79, + 0x6d, 0x12, 0x66, 0x0a, 0x11, 0x70, 0x6f, 0x6c, 0x79, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x69, 0x63, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x64, + 0x6f, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, + 0x65, 0x64, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x74, 0x2e, 0x70, 0x6f, 0x6c, 0x79, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x69, 0x63, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x52, 0x10, 0x70, 0x6f, 0x6c, 0x79, 0x6d, 0x6f, 0x72, + 0x70, 0x68, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x76, 0x61, 0x72, + 0x5f, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x5f, 0x73, 0x79, 0x6d, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x76, 0x61, 0x72, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x72, 0x53, 0x79, 0x6d, 0x1a, 0xb8, 0x01, 0x0a, 0x13, 0x70, 0x6f, 0x6c, 0x79, + 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x69, 0x63, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x12, + 0x50, 0x0a, 0x25, 0x70, 0x6f, 0x6c, 0x79, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x69, 0x63, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x79, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x21, + 0x70, 0x6f, 0x6c, 0x79, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x69, 0x63, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x79, + 0x6d, 0x12, 0x4f, 0x0a, 0x24, 0x70, 0x6f, 0x6c, 0x79, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x69, 0x63, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x21, 0x70, 0x6f, 0x6c, 0x79, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x69, 0x63, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x22, 0x9e, 0x01, 0x0a, 0x1a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x6c, 0x61, 0x74, + 0x74, 0x65, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x5f, + 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x79, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, + 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x79, + 0x6d, 0x12, 0x2d, 0x0a, 0x12, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x73, + 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x22, 0xba, 0x01, 0x0a, 0x1b, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x46, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, - 0x7a, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x12, 0x20, 0x0a, 0x0c, 0x76, 0x61, - 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x73, 0x79, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0a, 0x76, 0x61, 0x72, 0x54, 0x79, 0x70, 0x65, 0x53, 0x79, 0x6d, 0x12, 0x20, 0x0a, 0x0c, - 0x76, 0x61, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x79, 0x6d, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0a, 0x76, 0x61, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x79, 0x6d, 0x12, 0x1b, - 0x0a, 0x09, 0x62, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x62, 0x69, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6c, - 0x6f, 0x77, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, - 0x6c, 0x6f, 0x77, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x69, 0x67, 0x68, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x68, 0x69, - 0x67, 0x68, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, 0x63, 0x6f, 0x64, - 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x65, - 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x39, 0x0a, 0x19, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x79, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x53, 0x79, 0x6d, 0x12, 0x38, 0x0a, 0x18, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, - 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x65, - 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x22, 0x0a, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x79, 0x6d, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, - 0x53, 0x79, 0x6d, 0x12, 0x26, 0x0a, 0x0f, 0x76, 0x61, 0x72, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, - 0x65, 0x72, 0x5f, 0x73, 0x79, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x76, 0x61, - 0x72, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x53, 0x79, 0x6d, 0x12, 0x66, 0x0a, 0x11, 0x70, - 0x6f, 0x6c, 0x79, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x69, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x46, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x72, 0x69, - 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x2e, 0x70, 0x6f, - 0x6c, 0x79, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x69, 0x63, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x74, 0x52, 0x10, 0x70, 0x6f, 0x6c, 0x79, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x69, 0x63, 0x54, 0x79, - 0x70, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x76, 0x61, 0x72, 0x5f, 0x73, 0x65, 0x72, 0x69, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x5f, 0x73, 0x79, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x10, 0x76, 0x61, 0x72, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x53, 0x79, - 0x6d, 0x1a, 0xb8, 0x01, 0x0a, 0x13, 0x70, 0x6f, 0x6c, 0x79, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x69, - 0x63, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x12, 0x50, 0x0a, 0x25, 0x70, 0x6f, 0x6c, - 0x79, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x69, 0x63, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, - 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, - 0x79, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x21, 0x70, 0x6f, 0x6c, 0x79, 0x6d, 0x6f, - 0x72, 0x70, 0x68, 0x69, 0x63, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, - 0x69, 0x7a, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x79, 0x6d, 0x12, 0x4f, 0x0a, 0x24, 0x70, - 0x6f, 0x6c, 0x79, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x69, 0x63, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x21, 0x70, 0x6f, 0x6c, 0x79, 0x6d, - 0x6f, 0x72, 0x70, 0x68, 0x69, 0x63, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x65, 0x72, 0x69, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x9e, 0x01, 0x0a, - 0x1a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x65, 0x64, 0x53, - 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x5f, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x73, - 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, - 0x79, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, - 0x69, 0x7a, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x79, 0x6d, 0x12, 0x2d, 0x0a, 0x12, 0x73, - 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, - 0x7a, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x73, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xba, 0x01, - 0x0a, 0x1b, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x46, 0x6c, 0x61, 0x74, 0x74, 0x65, - 0x6e, 0x65, 0x64, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x12, 0x42, 0x0a, - 0x0b, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x46, - 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, - 0x65, 0x72, 0x5f, 0x74, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, - 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x07, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x73, 0x12, 0x3d, 0x0a, 0x06, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x64, 0x6f, - 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x65, - 0x64, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x74, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x22, 0x27, 0x0a, 0x11, 0x43, 0x53, - 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x04, 0x67, - 0x75, 0x69, 0x64, 0x22, 0xb2, 0x01, 0x0a, 0x1e, 0x43, 0x42, 0x69, 0x64, 0x69, 0x72, 0x4d, 0x73, - 0x67, 0x5f, 0x52, 0x65, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x47, 0x61, 0x6d, - 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6f, 0x73, 0x74, 0x74, 0x6f, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x70, 0x6f, - 0x73, 0x74, 0x74, 0x6f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x75, - 0x66, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x62, 0x75, 0x66, - 0x74, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x62, 0x69, - 0x74, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x69, 0x6e, - 0x67, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x3f, 0x0a, 0x1b, 0x43, 0x42, 0x69, 0x64, - 0x69, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x65, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, - 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0xe5, 0x09, 0x0a, 0x16, 0x43, 0x4d, - 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, - 0x74, 0x61, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x70, 0x75, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x70, 0x75, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, - 0x24, 0x0a, 0x0e, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x6d, - 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x55, - 0x73, 0x65, 0x64, 0x4d, 0x62, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, - 0x66, 0x72, 0x65, 0x65, 0x5f, 0x6d, 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, - 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x46, 0x72, 0x65, 0x65, 0x4d, 0x62, 0x12, 0x16, 0x0a, 0x06, 0x75, - 0x70, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x70, 0x74, - 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x5f, 0x62, 0x6f, 0x74, - 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x42, 0x6f, 0x74, 0x73, - 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x75, 0x6d, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, - 0x72, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6e, 0x75, 0x6d, 0x53, 0x70, 0x65, - 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x6e, 0x75, 0x6d, 0x5f, 0x74, - 0x76, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, - 0x6e, 0x75, 0x6d, 0x54, 0x76, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x66, - 0x70, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x66, 0x70, 0x73, 0x12, 0x37, 0x0a, - 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x64, - 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x52, - 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x0b, 0x61, 0x76, 0x67, 0x5f, 0x70, 0x69, - 0x6e, 0x67, 0x5f, 0x6d, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, - 0x50, 0x69, 0x6e, 0x67, 0x4d, 0x73, 0x12, 0x33, 0x0a, 0x16, 0x61, 0x76, 0x67, 0x5f, 0x65, 0x6e, - 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6f, 0x75, 0x74, - 0x18, 0x13, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x61, 0x76, 0x67, 0x45, 0x6e, 0x67, 0x69, 0x6e, - 0x65, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4f, 0x75, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x61, - 0x76, 0x67, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x14, - 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x61, 0x76, 0x67, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, - 0x4f, 0x75, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x76, 0x67, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x73, 0x5f, 0x69, 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x61, 0x76, 0x67, - 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x49, 0x6e, 0x12, 0x20, 0x0a, 0x0c, 0x61, 0x76, 0x67, - 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x02, 0x52, - 0x0a, 0x61, 0x76, 0x67, 0x4c, 0x6f, 0x73, 0x73, 0x4f, 0x75, 0x74, 0x12, 0x1e, 0x0a, 0x0b, 0x61, - 0x76, 0x67, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x69, 0x6e, 0x18, 0x17, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x09, 0x61, 0x76, 0x67, 0x4c, 0x6f, 0x73, 0x73, 0x49, 0x6e, 0x12, 0x20, 0x0a, 0x0c, 0x61, - 0x76, 0x67, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, - 0x02, 0x52, 0x0a, 0x61, 0x76, 0x67, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x75, 0x74, 0x12, 0x1e, 0x0a, - 0x0b, 0x61, 0x76, 0x67, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6e, 0x18, 0x19, 0x20, 0x01, - 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6e, 0x12, 0x22, 0x0a, - 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6e, 0x18, 0x1a, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x49, - 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x73, 0x5f, 0x69, 0x6e, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x49, 0x6e, 0x12, 0x24, 0x0a, 0x0e, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x1c, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x75, - 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x4f, 0x75, 0x74, 0x12, 0x3d, 0x0a, - 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x1a, 0x2e, 0x0a, 0x04, - 0x50, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x82, 0x02, 0x0a, - 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, - 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x64, - 0x64, 0x72, 0x12, 0x1e, 0x0a, 0x0b, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x76, 0x67, 0x5f, 0x6d, - 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x69, 0x6e, 0x67, 0x41, 0x76, 0x67, - 0x4d, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x6f, 0x73, - 0x73, 0x5f, 0x70, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x70, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x4c, 0x6f, 0x73, 0x73, 0x50, 0x63, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x69, 0x73, - 0x5f, 0x62, 0x6f, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x42, 0x6f, - 0x74, 0x12, 0x17, 0x0a, 0x07, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x02, 0x52, 0x06, 0x6c, 0x6f, 0x73, 0x73, 0x49, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x6f, - 0x73, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x6c, 0x6f, - 0x73, 0x73, 0x4f, 0x75, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, - 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6d, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, - 0x73, 0x22, 0xcd, 0x02, 0x0a, 0x12, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x48, 0x6c, - 0x74, 0x76, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x25, - 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x54, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, - 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x72, - 0x65, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x74, 0x6f, 0x70, 0x41, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x72, - 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x61, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x41, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x6c, - 0x6f, 0x77, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x13, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x6c, 0x6f, 0x77, 0x64, 0x6f, - 0x77, 0x6e, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x70, 0x6c, 0x61, - 0x79, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x6c, 0x6f, 0x77, - 0x64, 0x6f, 0x77, 0x6e, 0x45, 0x6e, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x6c, 0x61, - 0x79, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x6c, 0x6f, - 0x77, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x22, 0xc2, 0x01, 0x0a, 0x12, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x48, 0x6c, - 0x74, 0x76, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x6c, 0x6f, 0x77, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x73, 0x6c, 0x6f, - 0x77, 0x64, 0x6f, 0x77, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x73, - 0x6c, 0x6f, 0x77, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x02, 0x52, 0x0c, 0x73, 0x6c, 0x6f, 0x77, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x61, 0x74, 0x65, - 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, - 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x2d, 0x0a, 0x19, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, - 0x67, 0x5f, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x43, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x6d, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x63, 0x6d, 0x64, 0x22, 0xe1, 0x02, 0x0a, 0x1d, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, - 0x67, 0x5f, 0x48, 0x6c, 0x74, 0x76, 0x46, 0x69, 0x78, 0x75, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x63, 0x6b, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x63, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x70, - 0x72, 0x6f, 0x70, 0x73, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x09, 0x70, 0x72, 0x6f, 0x70, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x28, 0x0a, 0x06, 0x6f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, - 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x12, 0x2f, 0x0a, 0x0a, 0x65, 0x79, 0x65, 0x5f, 0x61, 0x6e, 0x67, 0x6c, - 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, - 0x43, 0x4d, 0x73, 0x67, 0x51, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x09, 0x65, 0x79, 0x65, 0x41, - 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6f, 0x62, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x63, 0x61, - 0x6d, 0x65, 0x72, 0x61, 0x6d, 0x61, 0x6e, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x62, 0x6f, 0x61, - 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, - 0x6d, 0x61, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x12, 0x27, 0x0a, - 0x0f, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x31, 0x0a, 0x0b, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, - 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0a, 0x76, - 0x69, 0x65, 0x77, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x6b, 0x0a, 0x1f, 0x43, 0x53, 0x56, - 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x48, 0x6c, 0x74, 0x76, 0x46, 0x69, 0x78, 0x75, 0x70, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, - 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, - 0x12, 0x34, 0x0a, 0x16, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x6f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x14, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x2a, 0x8e, 0x03, 0x0a, 0x0c, 0x43, 0x4c, 0x43, 0x5f, 0x4d, + 0x7a, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x65, 0x64, 0x53, 0x65, + 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x5f, 0x74, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x69, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x79, 0x6d, 0x62, 0x6f, + 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, + 0x73, 0x12, 0x3d, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x6c, + 0x61, 0x74, 0x74, 0x65, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, + 0x22, 0x27, 0x0a, 0x11, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x6f, 0x70, + 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x07, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, 0x22, 0xb2, 0x01, 0x0a, 0x1e, 0x43, 0x42, + 0x69, 0x64, 0x69, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x65, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, + 0x61, 0x73, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, + 0x70, 0x6f, 0x73, 0x74, 0x74, 0x6f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0c, 0x70, 0x6f, 0x73, 0x74, 0x74, 0x6f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x12, 0x18, 0x0a, 0x07, 0x62, 0x75, 0x66, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x07, 0x62, 0x75, 0x66, 0x74, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x3f, + 0x0a, 0x1b, 0x43, 0x42, 0x69, 0x64, 0x69, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x65, 0x62, 0x72, + 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, + 0xe5, 0x09, 0x0a, 0x16, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, + 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x64, + 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x70, 0x75, 0x5f, + 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x70, 0x75, + 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, + 0x75, 0x73, 0x65, 0x64, 0x5f, 0x6d, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, + 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x55, 0x73, 0x65, 0x64, 0x4d, 0x62, 0x12, 0x24, 0x0a, 0x0e, 0x6d, + 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x66, 0x72, 0x65, 0x65, 0x5f, 0x6d, 0x62, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x46, 0x72, 0x65, 0x65, 0x4d, + 0x62, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x70, 0x61, + 0x77, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, + 0x73, 0x70, 0x61, 0x77, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x75, + 0x6d, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0a, 0x6e, 0x75, 0x6d, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6e, + 0x75, 0x6d, 0x5f, 0x62, 0x6f, 0x74, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6e, + 0x75, 0x6d, 0x42, 0x6f, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x75, 0x6d, 0x5f, 0x73, 0x70, + 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, + 0x6e, 0x75, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x22, 0x0a, + 0x0d, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x76, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x73, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6e, 0x75, 0x6d, 0x54, 0x76, 0x52, 0x65, 0x6c, 0x61, 0x79, + 0x73, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x70, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, + 0x66, 0x70, 0x73, 0x12, 0x37, 0x0a, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x11, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x73, + 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x0b, + 0x61, 0x76, 0x67, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x50, 0x69, 0x6e, 0x67, 0x4d, 0x73, 0x12, 0x33, 0x0a, 0x16, + 0x61, 0x76, 0x67, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, + 0x63, 0x79, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x61, 0x76, + 0x67, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4f, 0x75, + 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x76, 0x67, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, + 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x61, 0x76, 0x67, 0x50, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x4f, 0x75, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x76, 0x67, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x69, 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x0c, 0x61, 0x76, 0x67, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x49, 0x6e, 0x12, + 0x20, 0x0a, 0x0c, 0x61, 0x76, 0x67, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x18, + 0x16, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x61, 0x76, 0x67, 0x4c, 0x6f, 0x73, 0x73, 0x4f, 0x75, + 0x74, 0x12, 0x1e, 0x0a, 0x0b, 0x61, 0x76, 0x67, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x69, 0x6e, + 0x18, 0x17, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x4c, 0x6f, 0x73, 0x73, 0x49, + 0x6e, 0x12, 0x20, 0x0a, 0x0c, 0x61, 0x76, 0x67, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6f, 0x75, + 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x61, 0x76, 0x67, 0x44, 0x61, 0x74, 0x61, + 0x4f, 0x75, 0x74, 0x12, 0x1e, 0x0a, 0x0b, 0x61, 0x76, 0x67, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x69, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x44, 0x61, 0x74, + 0x61, 0x49, 0x6e, 0x12, 0x22, 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x5f, 0x69, 0x6e, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x69, 0x6e, 0x18, 0x1b, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x49, + 0x6e, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x6f, 0x75, 0x74, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x44, 0x61, 0x74, 0x61, 0x4f, 0x75, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x1d, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, + 0x4f, 0x75, 0x74, 0x12, 0x3d, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x1e, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x73, 0x1a, 0x2e, 0x0a, 0x04, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x1a, 0x82, 0x02, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x18, 0x0a, + 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, + 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x1e, 0x0a, 0x0b, 0x70, 0x69, 0x6e, 0x67, + 0x5f, 0x61, 0x76, 0x67, 0x5f, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, + 0x69, 0x6e, 0x67, 0x41, 0x76, 0x67, 0x4d, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x70, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4c, 0x6f, 0x73, 0x73, 0x50, 0x63, 0x74, + 0x12, 0x15, 0x0a, 0x06, 0x69, 0x73, 0x5f, 0x62, 0x6f, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x05, 0x69, 0x73, 0x42, 0x6f, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x6c, 0x6f, 0x73, 0x73, 0x5f, + 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x6c, 0x6f, 0x73, 0x73, 0x49, 0x6e, + 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x07, 0x6c, 0x6f, 0x73, 0x73, 0x4f, 0x75, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x65, + 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6d, 0x73, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x4c, 0x61, + 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x73, 0x22, 0xcd, 0x02, 0x0a, 0x12, 0x43, 0x53, 0x56, 0x43, + 0x4d, 0x73, 0x67, 0x5f, 0x48, 0x6c, 0x74, 0x76, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x64, + 0x65, 0x6c, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, 0x72, + 0x69, 0x6d, 0x61, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x72, + 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x74, 0x6f, 0x70, 0x41, + 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6c, + 0x61, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x72, 0x65, 0x70, + 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x62, 0x65, 0x67, + 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, + 0x53, 0x6c, 0x6f, 0x77, 0x64, 0x6f, 0x77, 0x6e, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x12, 0x2e, 0x0a, + 0x13, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x64, 0x6f, 0x77, 0x6e, + 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x72, 0x65, 0x70, 0x6c, + 0x61, 0x79, 0x53, 0x6c, 0x6f, 0x77, 0x64, 0x6f, 0x77, 0x6e, 0x45, 0x6e, 0x64, 0x12, 0x30, 0x0a, + 0x14, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x64, 0x6f, 0x77, 0x6e, + 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x72, 0x65, 0x70, + 0x6c, 0x61, 0x79, 0x53, 0x6c, 0x6f, 0x77, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0xc2, 0x01, 0x0a, 0x12, 0x43, 0x43, 0x4c, 0x43, + 0x4d, 0x73, 0x67, 0x5f, 0x48, 0x6c, 0x74, 0x76, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x18, + 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x6c, 0x6f, 0x77, + 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x0e, 0x73, 0x6c, 0x6f, 0x77, 0x64, 0x6f, 0x77, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x6c, 0x6f, 0x77, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x72, 0x61, + 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x73, 0x6c, 0x6f, 0x77, 0x64, 0x6f, + 0x77, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, + 0x79, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, + 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1d, 0x0a, + 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x2d, 0x0a, 0x19, + 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, + 0x74, 0x5f, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x6d, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x6d, 0x64, 0x22, 0xe1, 0x02, 0x0a, 0x1d, + 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x48, 0x6c, 0x74, 0x76, 0x46, 0x69, 0x78, 0x75, + 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x69, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x63, + 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x73, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x70, 0x73, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x28, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x2f, 0x0a, 0x0a, 0x65, 0x79, + 0x65, 0x5f, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, + 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x51, 0x41, 0x6e, 0x67, 0x6c, 0x65, + 0x52, 0x09, 0x65, 0x79, 0x65, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6f, + 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0c, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, + 0x12, 0x31, 0x0a, 0x14, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x6d, 0x61, 0x6e, 0x5f, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, + 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x6d, 0x61, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x62, 0x6f, + 0x61, 0x72, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6f, 0x62, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x31, 0x0a, 0x0b, + 0x76, 0x69, 0x65, 0x77, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x52, 0x0a, 0x76, 0x69, 0x65, 0x77, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, + 0x6b, 0x0a, 0x1f, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x48, 0x6c, 0x74, 0x76, 0x46, + 0x69, 0x78, 0x75, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, + 0x64, 0x65, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xba, 0x01, 0x0a, + 0x11, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x43, + 0x6d, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6d, 0x64, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x6d, 0x64, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, + 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x69, 0x63, 0x6b, + 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x22, 0x4b, 0x0a, 0x14, 0x43, 0x53, 0x56, + 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x73, 0x12, 0x33, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6d, 0x64, 0x52, 0x08, 0x63, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x2a, 0xe1, 0x02, 0x0a, 0x0c, 0x43, 0x4c, 0x43, 0x5f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x0e, 0x63, 0x6c, 0x63, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0x14, 0x12, 0x0c, 0x0a, 0x08, 0x63, 0x6c, 0x63, 0x5f, 0x4d, 0x6f, 0x76, 0x65, 0x10, 0x15, 0x12, 0x11, 0x0a, 0x0d, 0x63, 0x6c, 0x63, 0x5f, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x10, 0x16, 0x12, 0x13, 0x0a, 0x0f, 0x63, 0x6c, 0x63, 0x5f, 0x42, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x41, 0x63, 0x6b, 0x10, - 0x17, 0x12, 0x14, 0x0a, 0x10, 0x63, 0x6c, 0x63, 0x5f, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x10, 0x18, 0x12, 0x18, 0x0a, 0x14, 0x63, 0x6c, 0x63, 0x5f, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x43, 0x76, 0x61, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x10, - 0x19, 0x12, 0x14, 0x0a, 0x10, 0x63, 0x6c, 0x63, 0x5f, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x52, 0x43, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x10, 0x1a, 0x12, 0x17, 0x0a, 0x13, 0x63, 0x6c, 0x63, 0x5f, 0x4c, - 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x10, 0x1b, - 0x12, 0x1a, 0x0a, 0x16, 0x63, 0x6c, 0x63, 0x5f, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x10, 0x1c, 0x12, 0x15, 0x0a, 0x11, - 0x63, 0x6c, 0x63, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x10, 0x1d, 0x12, 0x1d, 0x0a, 0x19, 0x63, 0x6c, 0x63, 0x5f, 0x53, 0x70, 0x6c, 0x69, 0x74, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x10, 0x1e, 0x12, 0x14, 0x0a, 0x10, 0x63, 0x6c, 0x63, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0x1f, 0x12, 0x12, 0x0a, 0x0e, 0x63, 0x6c, 0x63, 0x5f, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x69, 0x6e, 0x67, 0x10, 0x20, 0x12, 0x14, 0x0a, 0x10, - 0x63, 0x6c, 0x63, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x10, 0x21, 0x12, 0x14, 0x0a, 0x10, 0x63, 0x6c, 0x63, 0x5f, 0x43, 0x6d, 0x64, 0x4b, 0x65, 0x79, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x22, 0x12, 0x19, 0x0a, 0x15, 0x63, 0x6c, 0x63, 0x5f, - 0x52, 0x63, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x10, 0x23, 0x12, 0x12, 0x0a, 0x0e, 0x63, 0x6c, 0x63, 0x5f, 0x48, 0x6c, 0x74, 0x76, 0x52, - 0x65, 0x70, 0x6c, 0x61, 0x79, 0x10, 0x24, 0x2a, 0x99, 0x05, 0x0a, 0x0c, 0x53, 0x56, 0x43, 0x5f, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x0e, 0x73, 0x76, 0x63, 0x5f, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0x28, 0x12, 0x1b, 0x0a, 0x17, - 0x73, 0x76, 0x63, 0x5f, 0x46, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x72, - 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x10, 0x29, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x76, 0x63, - 0x5f, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0x2a, 0x12, 0x10, 0x0a, 0x0c, - 0x73, 0x76, 0x63, 0x5f, 0x53, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x10, 0x2b, 0x12, 0x19, - 0x0a, 0x15, 0x73, 0x76, 0x63, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x10, 0x2c, 0x12, 0x19, 0x0a, 0x15, 0x73, 0x76, 0x63, - 0x5f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x62, - 0x6c, 0x65, 0x10, 0x2d, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x76, 0x63, 0x5f, 0x56, 0x6f, 0x69, 0x63, - 0x65, 0x49, 0x6e, 0x69, 0x74, 0x10, 0x2e, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x76, 0x63, 0x5f, 0x56, - 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x10, 0x2f, 0x12, 0x0d, 0x0a, 0x09, 0x73, 0x76, - 0x63, 0x5f, 0x50, 0x72, 0x69, 0x6e, 0x74, 0x10, 0x30, 0x12, 0x0e, 0x0a, 0x0a, 0x73, 0x76, 0x63, - 0x5f, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x10, 0x31, 0x12, 0x0f, 0x0a, 0x0b, 0x73, 0x76, 0x63, - 0x5f, 0x53, 0x65, 0x74, 0x56, 0x69, 0x65, 0x77, 0x10, 0x32, 0x12, 0x1c, 0x0a, 0x18, 0x73, 0x76, - 0x63, 0x5f, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x10, 0x33, 0x12, 0x14, 0x0a, 0x10, 0x73, 0x76, 0x63, 0x5f, - 0x43, 0x6d, 0x64, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x34, 0x12, 0x10, - 0x0a, 0x0c, 0x73, 0x76, 0x63, 0x5f, 0x42, 0x53, 0x50, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x10, 0x35, - 0x12, 0x13, 0x0a, 0x0f, 0x73, 0x76, 0x63, 0x5f, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x53, 0x63, 0x72, - 0x65, 0x65, 0x6e, 0x10, 0x36, 0x12, 0x16, 0x0a, 0x12, 0x73, 0x76, 0x63, 0x5f, 0x50, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x10, 0x37, 0x12, 0x10, 0x0a, - 0x0c, 0x73, 0x76, 0x63, 0x5f, 0x50, 0x72, 0x65, 0x66, 0x65, 0x74, 0x63, 0x68, 0x10, 0x38, 0x12, - 0x0c, 0x0a, 0x08, 0x73, 0x76, 0x63, 0x5f, 0x4d, 0x65, 0x6e, 0x75, 0x10, 0x39, 0x12, 0x14, 0x0a, - 0x10, 0x73, 0x76, 0x63, 0x5f, 0x47, 0x65, 0x74, 0x43, 0x76, 0x61, 0x72, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x3a, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x76, 0x63, 0x5f, 0x53, 0x74, 0x6f, 0x70, 0x53, - 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x3b, 0x12, 0x10, 0x0a, 0x0c, 0x73, 0x76, 0x63, 0x5f, 0x50, 0x65, - 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x10, 0x3c, 0x12, 0x16, 0x0a, 0x12, 0x73, 0x76, 0x63, 0x5f, - 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x10, 0x3d, - 0x12, 0x12, 0x0a, 0x0e, 0x73, 0x76, 0x63, 0x5f, 0x48, 0x4c, 0x54, 0x56, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x10, 0x3e, 0x12, 0x15, 0x0a, 0x11, 0x73, 0x76, 0x63, 0x5f, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x10, 0x3f, 0x12, 0x16, 0x0a, 0x12, 0x73, - 0x76, 0x63, 0x5f, 0x46, 0x75, 0x6c, 0x6c, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x53, 0x70, 0x6c, 0x69, - 0x74, 0x10, 0x46, 0x12, 0x19, 0x0a, 0x15, 0x73, 0x76, 0x63, 0x5f, 0x52, 0x63, 0x6f, 0x6e, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x10, 0x47, 0x12, 0x13, - 0x0a, 0x0f, 0x73, 0x76, 0x63, 0x5f, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x10, 0x48, 0x12, 0x12, 0x0a, 0x0e, 0x73, 0x76, 0x63, 0x5f, 0x48, 0x6c, 0x74, 0x76, 0x52, - 0x65, 0x70, 0x6c, 0x61, 0x79, 0x10, 0x49, 0x12, 0x19, 0x0a, 0x15, 0x73, 0x76, 0x63, 0x5f, 0x42, - 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, - 0x10, 0x4a, 0x12, 0x1f, 0x0a, 0x1b, 0x73, 0x76, 0x63, 0x5f, 0x48, 0x6c, 0x74, 0x76, 0x46, 0x69, - 0x78, 0x75, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x10, 0x4b, 0x2a, 0x67, 0x0a, 0x11, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x5f, 0x74, 0x12, 0x1a, 0x0a, 0x16, 0x56, 0x4f, 0x49, 0x43, - 0x45, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x53, 0x54, 0x45, - 0x41, 0x4d, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x56, 0x4f, 0x49, 0x43, 0x45, 0x44, 0x41, 0x54, - 0x41, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x10, - 0x01, 0x12, 0x19, 0x0a, 0x15, 0x56, 0x4f, 0x49, 0x43, 0x45, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x46, - 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x4f, 0x50, 0x55, 0x53, 0x10, 0x02, 0x2a, 0x42, 0x0a, 0x0e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x12, 0x0c, - 0x0a, 0x08, 0x52, 0x50, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, - 0x52, 0x50, 0x5f, 0x55, 0x4e, 0x50, 0x41, 0x55, 0x53, 0x45, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, - 0x52, 0x50, 0x5f, 0x54, 0x4f, 0x47, 0x47, 0x4c, 0x45, 0x50, 0x41, 0x55, 0x53, 0x45, 0x10, 0x02, - 0x2a, 0x1d, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x66, 0x65, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x46, 0x54, 0x5f, 0x53, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x00, 0x2a, - 0x56, 0x0a, 0x17, 0x45, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x4d, 0x53, - 0x47, 0x5f, 0x53, 0x50, 0x4c, 0x49, 0x54, 0x53, 0x43, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x41, 0x44, - 0x44, 0x55, 0x53, 0x45, 0x52, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x4d, 0x53, 0x47, 0x5f, 0x53, - 0x50, 0x4c, 0x49, 0x54, 0x53, 0x43, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, - 0x45, 0x55, 0x53, 0x45, 0x52, 0x10, 0x01, 0x2a, 0xb3, 0x01, 0x0a, 0x15, 0x45, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x43, 0x76, 0x61, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x25, 0x0a, 0x21, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x76, 0x61, 0x72, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x49, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x65, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x43, 0x76, 0x61, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x5f, 0x43, 0x76, 0x61, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x01, - 0x12, 0x22, 0x0a, 0x1e, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x76, 0x61, 0x72, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x4e, 0x6f, 0x74, 0x41, 0x43, 0x76, - 0x61, 0x72, 0x10, 0x02, 0x12, 0x27, 0x0a, 0x23, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x76, - 0x61, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x43, 0x76, - 0x61, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x10, 0x03, 0x2a, 0x68, 0x0a, - 0x0b, 0x44, 0x49, 0x41, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x12, 0x0e, 0x0a, 0x0a, - 0x44, 0x49, 0x41, 0x4c, 0x4f, 0x47, 0x5f, 0x4d, 0x53, 0x47, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, - 0x44, 0x49, 0x41, 0x4c, 0x4f, 0x47, 0x5f, 0x4d, 0x45, 0x4e, 0x55, 0x10, 0x01, 0x12, 0x0f, 0x0a, - 0x0b, 0x44, 0x49, 0x41, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x10, 0x02, 0x12, 0x10, - 0x0a, 0x0c, 0x44, 0x49, 0x41, 0x4c, 0x4f, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x03, - 0x12, 0x15, 0x0a, 0x11, 0x44, 0x49, 0x41, 0x4c, 0x4f, 0x47, 0x5f, 0x41, 0x53, 0x4b, 0x43, 0x4f, - 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x10, 0x04, 0x2a, 0x2b, 0x0a, 0x19, 0x53, 0x56, 0x43, 0x5f, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x5f, 0x4c, 0x6f, 0x77, 0x46, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x79, 0x12, 0x0e, 0x0a, 0x09, 0x73, 0x76, 0x63, 0x5f, 0x64, 0x75, 0x6d, 0x6d, - 0x79, 0x10, 0xd8, 0x04, 0x2a, 0x61, 0x0a, 0x16, 0x42, 0x69, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1b, - 0x0a, 0x17, 0x62, 0x69, 0x5f, 0x52, 0x65, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, - 0x47, 0x61, 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0x10, 0x12, 0x18, 0x0a, 0x14, 0x62, - 0x69, 0x5f, 0x52, 0x65, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x53, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x10, 0x11, 0x12, 0x10, 0x0a, 0x0c, 0x62, 0x69, 0x5f, 0x47, 0x61, 0x6d, 0x65, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0x12, 0x2a, 0x4d, 0x0a, 0x23, 0x42, 0x69, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x73, 0x5f, 0x4c, 0x6f, 0x77, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x11, - 0x0a, 0x0c, 0x62, 0x69, 0x5f, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xbc, - 0x05, 0x12, 0x13, 0x0a, 0x0e, 0x62, 0x69, 0x5f, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x50, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x10, 0xbd, 0x05, 0x2a, 0xa1, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6c, 0x61, - 0x79, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x74, 0x12, 0x17, 0x0a, 0x13, - 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x41, 0x4e, - 0x43, 0x45, 0x4c, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x5f, - 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x41, 0x54, 0x48, 0x10, 0x01, 0x12, 0x18, 0x0a, - 0x14, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x47, 0x45, - 0x4e, 0x45, 0x52, 0x49, 0x43, 0x10, 0x02, 0x12, 0x27, 0x0a, 0x23, 0x52, 0x45, 0x50, 0x4c, 0x41, - 0x59, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x55, 0x43, 0x4b, 0x5f, 0x4e, 0x45, - 0x45, 0x44, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x03, - 0x12, 0x18, 0x0a, 0x14, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x5f, 0x56, 0x49, 0x43, 0x54, 0x4f, 0x52, 0x59, 0x10, 0x04, 0x42, 0x25, 0x5a, 0x23, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x62, 0x75, 0x66, - 0x66, 0x2f, 0x6d, 0x61, 0x6e, 0x74, 0x61, 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x3b, 0x64, 0x6f, 0x74, - 0x61, + 0x17, 0x12, 0x18, 0x0a, 0x14, 0x63, 0x6c, 0x63, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, + 0x43, 0x76, 0x61, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x19, 0x12, 0x14, 0x0a, 0x10, 0x63, + 0x6c, 0x63, 0x5f, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x52, 0x43, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x10, + 0x1a, 0x12, 0x17, 0x0a, 0x13, 0x63, 0x6c, 0x63, 0x5f, 0x4c, 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, + 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x10, 0x1b, 0x12, 0x1a, 0x0a, 0x16, 0x63, 0x6c, + 0x63, 0x5f, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x10, 0x1c, 0x12, 0x1d, 0x0a, 0x19, 0x63, 0x6c, 0x63, 0x5f, 0x53, 0x70, + 0x6c, 0x69, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x10, 0x1e, 0x12, 0x14, 0x0a, 0x10, 0x63, 0x6c, 0x63, 0x5f, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0x1f, 0x12, 0x14, 0x0a, 0x10, 0x63, + 0x6c, 0x63, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x10, + 0x21, 0x12, 0x14, 0x0a, 0x10, 0x63, 0x6c, 0x63, 0x5f, 0x43, 0x6d, 0x64, 0x4b, 0x65, 0x79, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x22, 0x12, 0x19, 0x0a, 0x15, 0x63, 0x6c, 0x63, 0x5f, 0x52, + 0x63, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x10, 0x23, 0x12, 0x12, 0x0a, 0x0e, 0x63, 0x6c, 0x63, 0x5f, 0x48, 0x6c, 0x74, 0x76, 0x52, 0x65, + 0x70, 0x6c, 0x61, 0x79, 0x10, 0x24, 0x12, 0x12, 0x0a, 0x0e, 0x63, 0x6c, 0x63, 0x5f, 0x44, 0x69, + 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x10, 0x25, 0x2a, 0x97, 0x05, 0x0a, 0x0c, 0x53, + 0x56, 0x43, 0x5f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x0e, 0x73, + 0x76, 0x63, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0x28, 0x12, + 0x1b, 0x0a, 0x17, 0x73, 0x76, 0x63, 0x5f, 0x46, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x65, 0x64, + 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x10, 0x29, 0x12, 0x11, 0x0a, 0x0d, + 0x73, 0x76, 0x63, 0x5f, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0x2a, 0x12, + 0x10, 0x0a, 0x0c, 0x73, 0x76, 0x63, 0x5f, 0x53, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x10, + 0x2b, 0x12, 0x19, 0x0a, 0x15, 0x73, 0x76, 0x63, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x10, 0x2c, 0x12, 0x19, 0x0a, 0x15, + 0x73, 0x76, 0x63, 0x5f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x54, 0x61, 0x62, 0x6c, 0x65, 0x10, 0x2d, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x76, 0x63, 0x5f, 0x56, + 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x10, 0x2e, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x76, + 0x63, 0x5f, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x10, 0x2f, 0x12, 0x0d, 0x0a, + 0x09, 0x73, 0x76, 0x63, 0x5f, 0x50, 0x72, 0x69, 0x6e, 0x74, 0x10, 0x30, 0x12, 0x0e, 0x0a, 0x0a, + 0x73, 0x76, 0x63, 0x5f, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x10, 0x31, 0x12, 0x0f, 0x0a, 0x0b, + 0x73, 0x76, 0x63, 0x5f, 0x53, 0x65, 0x74, 0x56, 0x69, 0x65, 0x77, 0x10, 0x32, 0x12, 0x1c, 0x0a, + 0x18, 0x73, 0x76, 0x63, 0x5f, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x10, 0x33, 0x12, 0x14, 0x0a, 0x10, 0x73, + 0x76, 0x63, 0x5f, 0x43, 0x6d, 0x64, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x34, 0x12, 0x10, 0x0a, 0x0c, 0x73, 0x76, 0x63, 0x5f, 0x42, 0x53, 0x50, 0x44, 0x65, 0x63, 0x61, + 0x6c, 0x10, 0x35, 0x12, 0x13, 0x0a, 0x0f, 0x73, 0x76, 0x63, 0x5f, 0x53, 0x70, 0x6c, 0x69, 0x74, + 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x10, 0x36, 0x12, 0x16, 0x0a, 0x12, 0x73, 0x76, 0x63, 0x5f, + 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x10, 0x37, + 0x12, 0x10, 0x0a, 0x0c, 0x73, 0x76, 0x63, 0x5f, 0x50, 0x72, 0x65, 0x66, 0x65, 0x74, 0x63, 0x68, + 0x10, 0x38, 0x12, 0x0c, 0x0a, 0x08, 0x73, 0x76, 0x63, 0x5f, 0x4d, 0x65, 0x6e, 0x75, 0x10, 0x39, + 0x12, 0x14, 0x0a, 0x10, 0x73, 0x76, 0x63, 0x5f, 0x47, 0x65, 0x74, 0x43, 0x76, 0x61, 0x72, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x3a, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x76, 0x63, 0x5f, 0x53, 0x74, + 0x6f, 0x70, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x3b, 0x12, 0x10, 0x0a, 0x0c, 0x73, 0x76, 0x63, + 0x5f, 0x50, 0x65, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x10, 0x3c, 0x12, 0x16, 0x0a, 0x12, 0x73, + 0x76, 0x63, 0x5f, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x6c, + 0x65, 0x10, 0x3d, 0x12, 0x12, 0x0a, 0x0e, 0x73, 0x76, 0x63, 0x5f, 0x48, 0x4c, 0x54, 0x56, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0x3e, 0x12, 0x15, 0x0a, 0x11, 0x73, 0x76, 0x63, 0x5f, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x10, 0x3f, 0x12, 0x16, + 0x0a, 0x12, 0x73, 0x76, 0x63, 0x5f, 0x46, 0x75, 0x6c, 0x6c, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x53, + 0x70, 0x6c, 0x69, 0x74, 0x10, 0x46, 0x12, 0x19, 0x0a, 0x15, 0x73, 0x76, 0x63, 0x5f, 0x52, 0x63, + 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x10, + 0x47, 0x12, 0x13, 0x0a, 0x0f, 0x73, 0x76, 0x63, 0x5f, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x10, 0x48, 0x12, 0x19, 0x0a, 0x15, 0x73, 0x76, 0x63, 0x5f, 0x42, 0x72, + 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x10, + 0x4a, 0x12, 0x1f, 0x0a, 0x1b, 0x73, 0x76, 0x63, 0x5f, 0x48, 0x6c, 0x74, 0x76, 0x46, 0x69, 0x78, + 0x75, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x10, 0x4b, 0x12, 0x10, 0x0a, 0x0c, 0x73, 0x76, 0x63, 0x5f, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6d, + 0x64, 0x73, 0x10, 0x4c, 0x2a, 0x67, 0x0a, 0x11, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x5f, 0x74, 0x12, 0x1a, 0x0a, 0x16, 0x56, 0x4f, 0x49, + 0x43, 0x45, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x53, 0x54, + 0x45, 0x41, 0x4d, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x56, 0x4f, 0x49, 0x43, 0x45, 0x44, 0x41, + 0x54, 0x41, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, + 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x56, 0x4f, 0x49, 0x43, 0x45, 0x44, 0x41, 0x54, 0x41, 0x5f, + 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x4f, 0x50, 0x55, 0x53, 0x10, 0x02, 0x2a, 0x42, 0x0a, + 0x0e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x12, + 0x0c, 0x0a, 0x08, 0x52, 0x50, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x10, 0x00, 0x12, 0x0e, 0x0a, + 0x0a, 0x52, 0x50, 0x5f, 0x55, 0x4e, 0x50, 0x41, 0x55, 0x53, 0x45, 0x10, 0x01, 0x12, 0x12, 0x0a, + 0x0e, 0x52, 0x50, 0x5f, 0x54, 0x4f, 0x47, 0x47, 0x4c, 0x45, 0x50, 0x41, 0x55, 0x53, 0x45, 0x10, + 0x02, 0x2a, 0x1d, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x66, 0x65, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x46, 0x54, 0x5f, 0x53, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x00, + 0x2a, 0x56, 0x0a, 0x17, 0x45, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x4d, + 0x53, 0x47, 0x5f, 0x53, 0x50, 0x4c, 0x49, 0x54, 0x53, 0x43, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x41, + 0x44, 0x44, 0x55, 0x53, 0x45, 0x52, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x4d, 0x53, 0x47, 0x5f, + 0x53, 0x50, 0x4c, 0x49, 0x54, 0x53, 0x43, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x52, 0x45, 0x4d, 0x4f, + 0x56, 0x45, 0x55, 0x53, 0x45, 0x52, 0x10, 0x01, 0x2a, 0xb3, 0x01, 0x0a, 0x15, 0x45, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x43, 0x76, 0x61, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x25, 0x0a, 0x21, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x76, 0x61, 0x72, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x49, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x65, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x43, 0x76, 0x61, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x5f, 0x43, 0x76, 0x61, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, + 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x76, 0x61, 0x72, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x4e, 0x6f, 0x74, 0x41, 0x43, + 0x76, 0x61, 0x72, 0x10, 0x02, 0x12, 0x27, 0x0a, 0x23, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, + 0x76, 0x61, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x43, + 0x76, 0x61, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x10, 0x03, 0x2a, 0x68, + 0x0a, 0x0b, 0x44, 0x49, 0x41, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x12, 0x0e, 0x0a, + 0x0a, 0x44, 0x49, 0x41, 0x4c, 0x4f, 0x47, 0x5f, 0x4d, 0x53, 0x47, 0x10, 0x00, 0x12, 0x0f, 0x0a, + 0x0b, 0x44, 0x49, 0x41, 0x4c, 0x4f, 0x47, 0x5f, 0x4d, 0x45, 0x4e, 0x55, 0x10, 0x01, 0x12, 0x0f, + 0x0a, 0x0b, 0x44, 0x49, 0x41, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x10, 0x02, 0x12, + 0x10, 0x0a, 0x0c, 0x44, 0x49, 0x41, 0x4c, 0x4f, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, + 0x03, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x49, 0x41, 0x4c, 0x4f, 0x47, 0x5f, 0x41, 0x53, 0x4b, 0x43, + 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x10, 0x04, 0x2a, 0x2b, 0x0a, 0x19, 0x53, 0x56, 0x43, 0x5f, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x5f, 0x4c, 0x6f, 0x77, 0x46, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x0e, 0x0a, 0x09, 0x73, 0x76, 0x63, 0x5f, 0x64, 0x75, 0x6d, + 0x6d, 0x79, 0x10, 0xd8, 0x04, 0x2a, 0x61, 0x0a, 0x16, 0x42, 0x69, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, + 0x1b, 0x0a, 0x17, 0x62, 0x69, 0x5f, 0x52, 0x65, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, + 0x74, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0x10, 0x12, 0x18, 0x0a, 0x14, + 0x62, 0x69, 0x5f, 0x52, 0x65, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x53, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x10, 0x11, 0x12, 0x10, 0x0a, 0x0c, 0x62, 0x69, 0x5f, 0x47, 0x61, 0x6d, + 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0x12, 0x2a, 0x4d, 0x0a, 0x23, 0x42, 0x69, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x73, 0x5f, 0x4c, 0x6f, 0x77, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, + 0x11, 0x0a, 0x0c, 0x62, 0x69, 0x5f, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x10, + 0xbc, 0x05, 0x12, 0x13, 0x0a, 0x0e, 0x62, 0x69, 0x5f, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x50, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x10, 0xbd, 0x05, 0x2a, 0xa1, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6c, + 0x61, 0x79, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x74, 0x12, 0x17, 0x0a, + 0x13, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x41, + 0x4e, 0x43, 0x45, 0x4c, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, + 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x41, 0x54, 0x48, 0x10, 0x01, 0x12, 0x18, + 0x0a, 0x14, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x47, + 0x45, 0x4e, 0x45, 0x52, 0x49, 0x43, 0x10, 0x02, 0x12, 0x27, 0x0a, 0x23, 0x52, 0x45, 0x50, 0x4c, + 0x41, 0x59, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x55, 0x43, 0x4b, 0x5f, 0x4e, + 0x45, 0x45, 0x44, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, + 0x03, 0x12, 0x18, 0x0a, 0x14, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x5f, 0x45, 0x56, 0x45, 0x4e, + 0x54, 0x5f, 0x56, 0x49, 0x43, 0x54, 0x4f, 0x52, 0x59, 0x10, 0x04, 0x42, 0x25, 0x5a, 0x23, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x62, 0x75, + 0x66, 0x66, 0x2f, 0x6d, 0x61, 0x6e, 0x74, 0x61, 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x3b, 0x64, 0x6f, + 0x74, 0x61, } var ( @@ -6844,129 +7475,143 @@ func file_netmessages_proto_rawDescGZIP() []byte { } var file_netmessages_proto_enumTypes = make([]protoimpl.EnumInfo, 12) -var file_netmessages_proto_msgTypes = make([]protoimpl.MessageInfo, 71) +var file_netmessages_proto_msgTypes = make([]protoimpl.MessageInfo, 77) var file_netmessages_proto_goTypes = []interface{}{ - (CLC_Messages)(0), // 0: dota.CLC_Messages - (SVC_Messages)(0), // 1: dota.SVC_Messages - (VoiceDataFormatT)(0), // 2: dota.VoiceDataFormat_t - (RequestPauseT)(0), // 3: dota.RequestPause_t - (PrefetchType)(0), // 4: dota.PrefetchType - (ESplitScreenMessageType)(0), // 5: dota.ESplitScreenMessageType - (EQueryCvarValueStatus)(0), // 6: dota.EQueryCvarValueStatus - (DIALOG_TYPE)(0), // 7: dota.DIALOG_TYPE - (SVC_Messages_LowFrequency)(0), // 8: dota.SVC_Messages_LowFrequency - (Bidirectional_Messages)(0), // 9: dota.Bidirectional_Messages - (Bidirectional_Messages_LowFrequency)(0), // 10: dota.Bidirectional_Messages_LowFrequency - (ReplayEventTypeT)(0), // 11: dota.ReplayEventType_t - (*CCLCMsg_ClientInfo)(nil), // 12: dota.CCLCMsg_ClientInfo - (*CCLCMsg_Move)(nil), // 13: dota.CCLCMsg_Move - (*CMsgVoiceAudio)(nil), // 14: dota.CMsgVoiceAudio - (*CCLCMsg_VoiceData)(nil), // 15: dota.CCLCMsg_VoiceData - (*CCLCMsg_BaselineAck)(nil), // 16: dota.CCLCMsg_BaselineAck - (*CCLCMsg_ListenEvents)(nil), // 17: dota.CCLCMsg_ListenEvents - (*CCLCMsg_RespondCvarValue)(nil), // 18: dota.CCLCMsg_RespondCvarValue - (*CCLCMsg_FileCRCCheck)(nil), // 19: dota.CCLCMsg_FileCRCCheck - (*CCLCMsg_LoadingProgress)(nil), // 20: dota.CCLCMsg_LoadingProgress - (*CCLCMsg_SplitPlayerConnect)(nil), // 21: dota.CCLCMsg_SplitPlayerConnect - (*CCLCMsg_ClientMessage)(nil), // 22: dota.CCLCMsg_ClientMessage - (*CCLCMsg_SplitPlayerDisconnect)(nil), // 23: dota.CCLCMsg_SplitPlayerDisconnect - (*CCLCMsg_ServerStatus)(nil), // 24: dota.CCLCMsg_ServerStatus - (*CCLCMsg_RequestPause)(nil), // 25: dota.CCLCMsg_RequestPause - (*CCLCMsg_CmdKeyValues)(nil), // 26: dota.CCLCMsg_CmdKeyValues - (*CCLCMsg_RconServerDetails)(nil), // 27: dota.CCLCMsg_RconServerDetails - (*CSVCMsg_ServerInfo)(nil), // 28: dota.CSVCMsg_ServerInfo - (*CSVCMsg_ClassInfo)(nil), // 29: dota.CSVCMsg_ClassInfo - (*CSVCMsg_SetPause)(nil), // 30: dota.CSVCMsg_SetPause - (*CSVCMsg_VoiceInit)(nil), // 31: dota.CSVCMsg_VoiceInit - (*CSVCMsg_Print)(nil), // 32: dota.CSVCMsg_Print - (*CSVCMsg_Sounds)(nil), // 33: dota.CSVCMsg_Sounds - (*CSVCMsg_Prefetch)(nil), // 34: dota.CSVCMsg_Prefetch - (*CSVCMsg_SetView)(nil), // 35: dota.CSVCMsg_SetView - (*CSVCMsg_FixAngle)(nil), // 36: dota.CSVCMsg_FixAngle - (*CSVCMsg_CrosshairAngle)(nil), // 37: dota.CSVCMsg_CrosshairAngle - (*CSVCMsg_BSPDecal)(nil), // 38: dota.CSVCMsg_BSPDecal - (*CSVCMsg_SplitScreen)(nil), // 39: dota.CSVCMsg_SplitScreen - (*CSVCMsg_GetCvarValue)(nil), // 40: dota.CSVCMsg_GetCvarValue - (*CSVCMsg_Menu)(nil), // 41: dota.CSVCMsg_Menu - (*CSVCMsg_UserMessage)(nil), // 42: dota.CSVCMsg_UserMessage - (*CSVCMsg_SendTable)(nil), // 43: dota.CSVCMsg_SendTable - (*CSVCMsg_GameEventList)(nil), // 44: dota.CSVCMsg_GameEventList - (*CSVCMsg_PacketEntities)(nil), // 45: dota.CSVCMsg_PacketEntities - (*CSVCMsg_TempEntities)(nil), // 46: dota.CSVCMsg_TempEntities - (*CSVCMsg_CreateStringTable)(nil), // 47: dota.CSVCMsg_CreateStringTable - (*CSVCMsg_UpdateStringTable)(nil), // 48: dota.CSVCMsg_UpdateStringTable - (*CSVCMsg_VoiceData)(nil), // 49: dota.CSVCMsg_VoiceData - (*CSVCMsg_PacketReliable)(nil), // 50: dota.CSVCMsg_PacketReliable - (*CSVCMsg_FullFrameSplit)(nil), // 51: dota.CSVCMsg_FullFrameSplit - (*CSVCMsg_HLTVStatus)(nil), // 52: dota.CSVCMsg_HLTVStatus - (*CSVCMsg_ServerSteamID)(nil), // 53: dota.CSVCMsg_ServerSteamID - (*CSVCMsg_CmdKeyValues)(nil), // 54: dota.CSVCMsg_CmdKeyValues - (*CSVCMsg_RconServerDetails)(nil), // 55: dota.CSVCMsg_RconServerDetails - (*CMsgIPCAddress)(nil), // 56: dota.CMsgIPCAddress - (*CMsgServerPeer)(nil), // 57: dota.CMsgServerPeer - (*CSVCMsg_PeerList)(nil), // 58: dota.CSVCMsg_PeerList - (*CSVCMsg_ClearAllStringTables)(nil), // 59: dota.CSVCMsg_ClearAllStringTables - (*ProtoFlattenedSerializerFieldT)(nil), // 60: dota.ProtoFlattenedSerializerField_t - (*ProtoFlattenedSerializerT)(nil), // 61: dota.ProtoFlattenedSerializer_t - (*CSVCMsg_FlattenedSerializer)(nil), // 62: dota.CSVCMsg_FlattenedSerializer - (*CSVCMsg_StopSound)(nil), // 63: dota.CSVCMsg_StopSound - (*CBidirMsg_RebroadcastGameEvent)(nil), // 64: dota.CBidirMsg_RebroadcastGameEvent - (*CBidirMsg_RebroadcastSource)(nil), // 65: dota.CBidirMsg_RebroadcastSource - (*CMsgServerNetworkStats)(nil), // 66: dota.CMsgServerNetworkStats - (*CSVCMsg_HltvReplay)(nil), // 67: dota.CSVCMsg_HltvReplay - (*CCLCMsg_HltvReplay)(nil), // 68: dota.CCLCMsg_HltvReplay - (*CSVCMsg_Broadcast_Command)(nil), // 69: dota.CSVCMsg_Broadcast_Command - (*CCLCMsg_HltvFixupOperatorTick)(nil), // 70: dota.CCLCMsg_HltvFixupOperatorTick - (*CSVCMsg_HltvFixupOperatorStatus)(nil), // 71: dota.CSVCMsg_HltvFixupOperatorStatus - (*CSVCMsg_ClassInfoClassT)(nil), // 72: dota.CSVCMsg_ClassInfo.class_t - (*CSVCMsg_SoundsSounddataT)(nil), // 73: dota.CSVCMsg_Sounds.sounddata_t - (*CSVCMsg_SendTableSendpropT)(nil), // 74: dota.CSVCMsg_SendTable.sendprop_t - (*CSVCMsg_GameEventListKeyT)(nil), // 75: dota.CSVCMsg_GameEventList.key_t - (*CSVCMsg_GameEventListDescriptorT)(nil), // 76: dota.CSVCMsg_GameEventList.descriptor_t - (*CSVCMsg_PacketEntitiesCommandQueueInfoT)(nil), // 77: dota.CSVCMsg_PacketEntities.command_queue_info_t - (*CSVCMsg_PacketEntitiesAlternateBaselineT)(nil), // 78: dota.CSVCMsg_PacketEntities.alternate_baseline_t - (*CSVCMsg_PacketEntitiesNonTransmittedEntitiesT)(nil), // 79: dota.CSVCMsg_PacketEntities.non_transmitted_entities_t - (*ProtoFlattenedSerializerFieldTPolymorphicFieldT)(nil), // 80: dota.ProtoFlattenedSerializerField_t.polymorphic_field_t - (*CMsgServerNetworkStats_Port)(nil), // 81: dota.CMsgServerNetworkStats.Port - (*CMsgServerNetworkStats_Player)(nil), // 82: dota.CMsgServerNetworkStats.Player - (*CSVCMsg_GameSessionConfiguration)(nil), // 83: dota.CSVCMsg_GameSessionConfiguration - (*CMsgQAngle)(nil), // 84: dota.CMsgQAngle - (*CMsgVector)(nil), // 85: dota.CMsgVector + (CLC_Messages)(0), // 0: dota.CLC_Messages + (SVC_Messages)(0), // 1: dota.SVC_Messages + (VoiceDataFormatT)(0), // 2: dota.VoiceDataFormat_t + (RequestPauseT)(0), // 3: dota.RequestPause_t + (PrefetchType)(0), // 4: dota.PrefetchType + (ESplitScreenMessageType)(0), // 5: dota.ESplitScreenMessageType + (EQueryCvarValueStatus)(0), // 6: dota.EQueryCvarValueStatus + (DIALOG_TYPE)(0), // 7: dota.DIALOG_TYPE + (SVC_Messages_LowFrequency)(0), // 8: dota.SVC_Messages_LowFrequency + (Bidirectional_Messages)(0), // 9: dota.Bidirectional_Messages + (Bidirectional_Messages_LowFrequency)(0), // 10: dota.Bidirectional_Messages_LowFrequency + (ReplayEventTypeT)(0), // 11: dota.ReplayEventType_t + (*CCLCMsg_ClientInfo)(nil), // 12: dota.CCLCMsg_ClientInfo + (*CCLCMsg_Move)(nil), // 13: dota.CCLCMsg_Move + (*CMsgVoiceAudio)(nil), // 14: dota.CMsgVoiceAudio + (*CCLCMsg_VoiceData)(nil), // 15: dota.CCLCMsg_VoiceData + (*CCLCMsg_BaselineAck)(nil), // 16: dota.CCLCMsg_BaselineAck + (*CCLCMsg_ListenEvents)(nil), // 17: dota.CCLCMsg_ListenEvents + (*CCLCMsg_RespondCvarValue)(nil), // 18: dota.CCLCMsg_RespondCvarValue + (*CCLCMsg_FileCRCCheck)(nil), // 19: dota.CCLCMsg_FileCRCCheck + (*CCLCMsg_LoadingProgress)(nil), // 20: dota.CCLCMsg_LoadingProgress + (*CCLCMsg_SplitPlayerConnect)(nil), // 21: dota.CCLCMsg_SplitPlayerConnect + (*CCLCMsg_SplitPlayerDisconnect)(nil), // 22: dota.CCLCMsg_SplitPlayerDisconnect + (*CCLCMsg_ServerStatus)(nil), // 23: dota.CCLCMsg_ServerStatus + (*CCLCMsg_RequestPause)(nil), // 24: dota.CCLCMsg_RequestPause + (*CCLCMsg_CmdKeyValues)(nil), // 25: dota.CCLCMsg_CmdKeyValues + (*CCLCMsg_RconServerDetails)(nil), // 26: dota.CCLCMsg_RconServerDetails + (*CMsgSource2SystemSpecs)(nil), // 27: dota.CMsgSource2SystemSpecs + (*CMsgSource2VProfLiteReportItem)(nil), // 28: dota.CMsgSource2VProfLiteReportItem + (*CMsgSource2VProfLiteReport)(nil), // 29: dota.CMsgSource2VProfLiteReport + (*CCLCMsg_Diagnostic)(nil), // 30: dota.CCLCMsg_Diagnostic + (*CSource2Metrics_MatchPerfSummary_Notification)(nil), // 31: dota.CSource2Metrics_MatchPerfSummary_Notification + (*CSVCMsg_ServerInfo)(nil), // 32: dota.CSVCMsg_ServerInfo + (*CSVCMsg_ClassInfo)(nil), // 33: dota.CSVCMsg_ClassInfo + (*CSVCMsg_SetPause)(nil), // 34: dota.CSVCMsg_SetPause + (*CSVCMsg_VoiceInit)(nil), // 35: dota.CSVCMsg_VoiceInit + (*CSVCMsg_Print)(nil), // 36: dota.CSVCMsg_Print + (*CSVCMsg_Sounds)(nil), // 37: dota.CSVCMsg_Sounds + (*CSVCMsg_Prefetch)(nil), // 38: dota.CSVCMsg_Prefetch + (*CSVCMsg_SetView)(nil), // 39: dota.CSVCMsg_SetView + (*CSVCMsg_FixAngle)(nil), // 40: dota.CSVCMsg_FixAngle + (*CSVCMsg_CrosshairAngle)(nil), // 41: dota.CSVCMsg_CrosshairAngle + (*CSVCMsg_BSPDecal)(nil), // 42: dota.CSVCMsg_BSPDecal + (*CSVCMsg_SplitScreen)(nil), // 43: dota.CSVCMsg_SplitScreen + (*CSVCMsg_GetCvarValue)(nil), // 44: dota.CSVCMsg_GetCvarValue + (*CSVCMsg_Menu)(nil), // 45: dota.CSVCMsg_Menu + (*CSVCMsg_UserMessage)(nil), // 46: dota.CSVCMsg_UserMessage + (*CSVCMsg_SendTable)(nil), // 47: dota.CSVCMsg_SendTable + (*CSVCMsg_GameEventList)(nil), // 48: dota.CSVCMsg_GameEventList + (*CSVCMsg_PacketEntities)(nil), // 49: dota.CSVCMsg_PacketEntities + (*CSVCMsg_TempEntities)(nil), // 50: dota.CSVCMsg_TempEntities + (*CSVCMsg_CreateStringTable)(nil), // 51: dota.CSVCMsg_CreateStringTable + (*CSVCMsg_UpdateStringTable)(nil), // 52: dota.CSVCMsg_UpdateStringTable + (*CSVCMsg_VoiceData)(nil), // 53: dota.CSVCMsg_VoiceData + (*CSVCMsg_PacketReliable)(nil), // 54: dota.CSVCMsg_PacketReliable + (*CSVCMsg_FullFrameSplit)(nil), // 55: dota.CSVCMsg_FullFrameSplit + (*CSVCMsg_HLTVStatus)(nil), // 56: dota.CSVCMsg_HLTVStatus + (*CSVCMsg_ServerSteamID)(nil), // 57: dota.CSVCMsg_ServerSteamID + (*CSVCMsg_CmdKeyValues)(nil), // 58: dota.CSVCMsg_CmdKeyValues + (*CSVCMsg_RconServerDetails)(nil), // 59: dota.CSVCMsg_RconServerDetails + (*CMsgIPCAddress)(nil), // 60: dota.CMsgIPCAddress + (*CMsgServerPeer)(nil), // 61: dota.CMsgServerPeer + (*CSVCMsg_PeerList)(nil), // 62: dota.CSVCMsg_PeerList + (*CSVCMsg_ClearAllStringTables)(nil), // 63: dota.CSVCMsg_ClearAllStringTables + (*ProtoFlattenedSerializerFieldT)(nil), // 64: dota.ProtoFlattenedSerializerField_t + (*ProtoFlattenedSerializerT)(nil), // 65: dota.ProtoFlattenedSerializer_t + (*CSVCMsg_FlattenedSerializer)(nil), // 66: dota.CSVCMsg_FlattenedSerializer + (*CSVCMsg_StopSound)(nil), // 67: dota.CSVCMsg_StopSound + (*CBidirMsg_RebroadcastGameEvent)(nil), // 68: dota.CBidirMsg_RebroadcastGameEvent + (*CBidirMsg_RebroadcastSource)(nil), // 69: dota.CBidirMsg_RebroadcastSource + (*CMsgServerNetworkStats)(nil), // 70: dota.CMsgServerNetworkStats + (*CSVCMsg_HltvReplay)(nil), // 71: dota.CSVCMsg_HltvReplay + (*CCLCMsg_HltvReplay)(nil), // 72: dota.CCLCMsg_HltvReplay + (*CSVCMsg_Broadcast_Command)(nil), // 73: dota.CSVCMsg_Broadcast_Command + (*CCLCMsg_HltvFixupOperatorTick)(nil), // 74: dota.CCLCMsg_HltvFixupOperatorTick + (*CSVCMsg_HltvFixupOperatorStatus)(nil), // 75: dota.CSVCMsg_HltvFixupOperatorStatus + (*CMsgServerUserCmd)(nil), // 76: dota.CMsgServerUserCmd + (*CSVCMsg_UserCommands)(nil), // 77: dota.CSVCMsg_UserCommands + (*CSource2Metrics_MatchPerfSummary_Notification_Client)(nil), // 78: dota.CSource2Metrics_MatchPerfSummary_Notification.Client + (*CSVCMsg_ClassInfoClassT)(nil), // 79: dota.CSVCMsg_ClassInfo.class_t + (*CSVCMsg_SoundsSounddataT)(nil), // 80: dota.CSVCMsg_Sounds.sounddata_t + (*CSVCMsg_SendTableSendpropT)(nil), // 81: dota.CSVCMsg_SendTable.sendprop_t + (*CSVCMsg_GameEventListKeyT)(nil), // 82: dota.CSVCMsg_GameEventList.key_t + (*CSVCMsg_GameEventListDescriptorT)(nil), // 83: dota.CSVCMsg_GameEventList.descriptor_t + (*CSVCMsg_PacketEntitiesAlternateBaselineT)(nil), // 84: dota.CSVCMsg_PacketEntities.alternate_baseline_t + (*CSVCMsg_PacketEntitiesNonTransmittedEntitiesT)(nil), // 85: dota.CSVCMsg_PacketEntities.non_transmitted_entities_t + (*ProtoFlattenedSerializerFieldTPolymorphicFieldT)(nil), // 86: dota.ProtoFlattenedSerializerField_t.polymorphic_field_t + (*CMsgServerNetworkStats_Port)(nil), // 87: dota.CMsgServerNetworkStats.Port + (*CMsgServerNetworkStats_Player)(nil), // 88: dota.CMsgServerNetworkStats.Player + (*CSVCMsg_GameSessionConfiguration)(nil), // 89: dota.CSVCMsg_GameSessionConfiguration + (*CMsgQAngle)(nil), // 90: dota.CMsgQAngle + (*CMsgVector)(nil), // 91: dota.CMsgVector } var file_netmessages_proto_depIdxs = []int32{ 2, // 0: dota.CMsgVoiceAudio.format:type_name -> dota.VoiceDataFormat_t 14, // 1: dota.CCLCMsg_VoiceData.audio:type_name -> dota.CMsgVoiceAudio 3, // 2: dota.CCLCMsg_RequestPause.pause_type:type_name -> dota.RequestPause_t - 83, // 3: dota.CSVCMsg_ServerInfo.game_session_config:type_name -> dota.CSVCMsg_GameSessionConfiguration - 72, // 4: dota.CSVCMsg_ClassInfo.classes:type_name -> dota.CSVCMsg_ClassInfo.class_t - 73, // 5: dota.CSVCMsg_Sounds.sounds:type_name -> dota.CSVCMsg_Sounds.sounddata_t - 4, // 6: dota.CSVCMsg_Prefetch.resource_type:type_name -> dota.PrefetchType - 84, // 7: dota.CSVCMsg_FixAngle.angle:type_name -> dota.CMsgQAngle - 84, // 8: dota.CSVCMsg_CrosshairAngle.angle:type_name -> dota.CMsgQAngle - 85, // 9: dota.CSVCMsg_BSPDecal.pos:type_name -> dota.CMsgVector - 5, // 10: dota.CSVCMsg_SplitScreen.type:type_name -> dota.ESplitScreenMessageType - 74, // 11: dota.CSVCMsg_SendTable.props:type_name -> dota.CSVCMsg_SendTable.sendprop_t - 76, // 12: dota.CSVCMsg_GameEventList.descriptors:type_name -> dota.CSVCMsg_GameEventList.descriptor_t - 77, // 13: dota.CSVCMsg_PacketEntities.command_queue_info:type_name -> dota.CSVCMsg_PacketEntities.command_queue_info_t - 78, // 14: dota.CSVCMsg_PacketEntities.alternate_baselines:type_name -> dota.CSVCMsg_PacketEntities.alternate_baseline_t - 79, // 15: dota.CSVCMsg_PacketEntities.non_transmitted_entities:type_name -> dota.CSVCMsg_PacketEntities.non_transmitted_entities_t - 14, // 16: dota.CSVCMsg_VoiceData.audio:type_name -> dota.CMsgVoiceAudio - 56, // 17: dota.CMsgServerPeer.ipc:type_name -> dota.CMsgIPCAddress - 57, // 18: dota.CSVCMsg_PeerList.peer:type_name -> dota.CMsgServerPeer - 80, // 19: dota.ProtoFlattenedSerializerField_t.polymorphic_types:type_name -> dota.ProtoFlattenedSerializerField_t.polymorphic_field_t - 61, // 20: dota.CSVCMsg_FlattenedSerializer.serializers:type_name -> dota.ProtoFlattenedSerializer_t - 60, // 21: dota.CSVCMsg_FlattenedSerializer.fields:type_name -> dota.ProtoFlattenedSerializerField_t - 81, // 22: dota.CMsgServerNetworkStats.ports:type_name -> dota.CMsgServerNetworkStats.Port - 82, // 23: dota.CMsgServerNetworkStats.players:type_name -> dota.CMsgServerNetworkStats.Player - 85, // 24: dota.CCLCMsg_HltvFixupOperatorTick.origin:type_name -> dota.CMsgVector - 84, // 25: dota.CCLCMsg_HltvFixupOperatorTick.eye_angles:type_name -> dota.CMsgQAngle - 85, // 26: dota.CCLCMsg_HltvFixupOperatorTick.view_offset:type_name -> dota.CMsgVector - 75, // 27: dota.CSVCMsg_GameEventList.descriptor_t.keys:type_name -> dota.CSVCMsg_GameEventList.key_t - 28, // [28:28] is the sub-list for method output_type - 28, // [28:28] is the sub-list for method input_type - 28, // [28:28] is the sub-list for extension type_name - 28, // [28:28] is the sub-list for extension extendee - 0, // [0:28] is the sub-list for field type_name + 28, // 3: dota.CMsgSource2VProfLiteReport.total:type_name -> dota.CMsgSource2VProfLiteReportItem + 28, // 4: dota.CMsgSource2VProfLiteReport.items:type_name -> dota.CMsgSource2VProfLiteReportItem + 27, // 5: dota.CCLCMsg_Diagnostic.system_specs:type_name -> dota.CMsgSource2SystemSpecs + 29, // 6: dota.CCLCMsg_Diagnostic.vprof_report:type_name -> dota.CMsgSource2VProfLiteReport + 29, // 7: dota.CSource2Metrics_MatchPerfSummary_Notification.server_profile:type_name -> dota.CMsgSource2VProfLiteReport + 78, // 8: dota.CSource2Metrics_MatchPerfSummary_Notification.clients:type_name -> dota.CSource2Metrics_MatchPerfSummary_Notification.Client + 89, // 9: dota.CSVCMsg_ServerInfo.game_session_config:type_name -> dota.CSVCMsg_GameSessionConfiguration + 79, // 10: dota.CSVCMsg_ClassInfo.classes:type_name -> dota.CSVCMsg_ClassInfo.class_t + 80, // 11: dota.CSVCMsg_Sounds.sounds:type_name -> dota.CSVCMsg_Sounds.sounddata_t + 4, // 12: dota.CSVCMsg_Prefetch.resource_type:type_name -> dota.PrefetchType + 90, // 13: dota.CSVCMsg_FixAngle.angle:type_name -> dota.CMsgQAngle + 90, // 14: dota.CSVCMsg_CrosshairAngle.angle:type_name -> dota.CMsgQAngle + 91, // 15: dota.CSVCMsg_BSPDecal.pos:type_name -> dota.CMsgVector + 5, // 16: dota.CSVCMsg_SplitScreen.type:type_name -> dota.ESplitScreenMessageType + 81, // 17: dota.CSVCMsg_SendTable.props:type_name -> dota.CSVCMsg_SendTable.sendprop_t + 83, // 18: dota.CSVCMsg_GameEventList.descriptors:type_name -> dota.CSVCMsg_GameEventList.descriptor_t + 84, // 19: dota.CSVCMsg_PacketEntities.alternate_baselines:type_name -> dota.CSVCMsg_PacketEntities.alternate_baseline_t + 85, // 20: dota.CSVCMsg_PacketEntities.non_transmitted_entities:type_name -> dota.CSVCMsg_PacketEntities.non_transmitted_entities_t + 14, // 21: dota.CSVCMsg_VoiceData.audio:type_name -> dota.CMsgVoiceAudio + 60, // 22: dota.CMsgServerPeer.ipc:type_name -> dota.CMsgIPCAddress + 61, // 23: dota.CSVCMsg_PeerList.peer:type_name -> dota.CMsgServerPeer + 86, // 24: dota.ProtoFlattenedSerializerField_t.polymorphic_types:type_name -> dota.ProtoFlattenedSerializerField_t.polymorphic_field_t + 65, // 25: dota.CSVCMsg_FlattenedSerializer.serializers:type_name -> dota.ProtoFlattenedSerializer_t + 64, // 26: dota.CSVCMsg_FlattenedSerializer.fields:type_name -> dota.ProtoFlattenedSerializerField_t + 87, // 27: dota.CMsgServerNetworkStats.ports:type_name -> dota.CMsgServerNetworkStats.Port + 88, // 28: dota.CMsgServerNetworkStats.players:type_name -> dota.CMsgServerNetworkStats.Player + 91, // 29: dota.CCLCMsg_HltvFixupOperatorTick.origin:type_name -> dota.CMsgVector + 90, // 30: dota.CCLCMsg_HltvFixupOperatorTick.eye_angles:type_name -> dota.CMsgQAngle + 91, // 31: dota.CCLCMsg_HltvFixupOperatorTick.view_offset:type_name -> dota.CMsgVector + 76, // 32: dota.CSVCMsg_UserCommands.commands:type_name -> dota.CMsgServerUserCmd + 27, // 33: dota.CSource2Metrics_MatchPerfSummary_Notification.Client.system_specs:type_name -> dota.CMsgSource2SystemSpecs + 29, // 34: dota.CSource2Metrics_MatchPerfSummary_Notification.Client.profile:type_name -> dota.CMsgSource2VProfLiteReport + 82, // 35: dota.CSVCMsg_GameEventList.descriptor_t.keys:type_name -> dota.CSVCMsg_GameEventList.key_t + 36, // [36:36] is the sub-list for method output_type + 36, // [36:36] is the sub-list for method input_type + 36, // [36:36] is the sub-list for extension type_name + 36, // [36:36] is the sub-list for extension extendee + 0, // [0:36] is the sub-list for field type_name } func init() { file_netmessages_proto_init() } @@ -7097,7 +7742,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CCLCMsg_ClientMessage); i { + switch v := v.(*CCLCMsg_SplitPlayerDisconnect); i { case 0: return &v.state case 1: @@ -7109,7 +7754,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CCLCMsg_SplitPlayerDisconnect); i { + switch v := v.(*CCLCMsg_ServerStatus); i { case 0: return &v.state case 1: @@ -7121,7 +7766,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CCLCMsg_ServerStatus); i { + switch v := v.(*CCLCMsg_RequestPause); i { case 0: return &v.state case 1: @@ -7133,7 +7778,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CCLCMsg_RequestPause); i { + switch v := v.(*CCLCMsg_CmdKeyValues); i { case 0: return &v.state case 1: @@ -7145,7 +7790,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CCLCMsg_CmdKeyValues); i { + switch v := v.(*CCLCMsg_RconServerDetails); i { case 0: return &v.state case 1: @@ -7157,7 +7802,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CCLCMsg_RconServerDetails); i { + switch v := v.(*CMsgSource2SystemSpecs); i { case 0: return &v.state case 1: @@ -7169,7 +7814,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_ServerInfo); i { + switch v := v.(*CMsgSource2VProfLiteReportItem); i { case 0: return &v.state case 1: @@ -7181,7 +7826,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_ClassInfo); i { + switch v := v.(*CMsgSource2VProfLiteReport); i { case 0: return &v.state case 1: @@ -7193,7 +7838,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_SetPause); i { + switch v := v.(*CCLCMsg_Diagnostic); i { case 0: return &v.state case 1: @@ -7205,7 +7850,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_VoiceInit); i { + switch v := v.(*CSource2Metrics_MatchPerfSummary_Notification); i { case 0: return &v.state case 1: @@ -7217,7 +7862,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_Print); i { + switch v := v.(*CSVCMsg_ServerInfo); i { case 0: return &v.state case 1: @@ -7229,7 +7874,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_Sounds); i { + switch v := v.(*CSVCMsg_ClassInfo); i { case 0: return &v.state case 1: @@ -7241,7 +7886,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_Prefetch); i { + switch v := v.(*CSVCMsg_SetPause); i { case 0: return &v.state case 1: @@ -7253,7 +7898,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_SetView); i { + switch v := v.(*CSVCMsg_VoiceInit); i { case 0: return &v.state case 1: @@ -7265,7 +7910,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_FixAngle); i { + switch v := v.(*CSVCMsg_Print); i { case 0: return &v.state case 1: @@ -7277,7 +7922,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_CrosshairAngle); i { + switch v := v.(*CSVCMsg_Sounds); i { case 0: return &v.state case 1: @@ -7289,7 +7934,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_BSPDecal); i { + switch v := v.(*CSVCMsg_Prefetch); i { case 0: return &v.state case 1: @@ -7301,7 +7946,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_SplitScreen); i { + switch v := v.(*CSVCMsg_SetView); i { case 0: return &v.state case 1: @@ -7313,7 +7958,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_GetCvarValue); i { + switch v := v.(*CSVCMsg_FixAngle); i { case 0: return &v.state case 1: @@ -7325,7 +7970,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_Menu); i { + switch v := v.(*CSVCMsg_CrosshairAngle); i { case 0: return &v.state case 1: @@ -7337,7 +7982,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_UserMessage); i { + switch v := v.(*CSVCMsg_BSPDecal); i { case 0: return &v.state case 1: @@ -7349,7 +7994,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_SendTable); i { + switch v := v.(*CSVCMsg_SplitScreen); i { case 0: return &v.state case 1: @@ -7361,7 +8006,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_GameEventList); i { + switch v := v.(*CSVCMsg_GetCvarValue); i { case 0: return &v.state case 1: @@ -7373,7 +8018,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_PacketEntities); i { + switch v := v.(*CSVCMsg_Menu); i { case 0: return &v.state case 1: @@ -7385,7 +8030,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_TempEntities); i { + switch v := v.(*CSVCMsg_UserMessage); i { case 0: return &v.state case 1: @@ -7397,7 +8042,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_CreateStringTable); i { + switch v := v.(*CSVCMsg_SendTable); i { case 0: return &v.state case 1: @@ -7409,7 +8054,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_UpdateStringTable); i { + switch v := v.(*CSVCMsg_GameEventList); i { case 0: return &v.state case 1: @@ -7421,7 +8066,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_VoiceData); i { + switch v := v.(*CSVCMsg_PacketEntities); i { case 0: return &v.state case 1: @@ -7433,7 +8078,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_PacketReliable); i { + switch v := v.(*CSVCMsg_TempEntities); i { case 0: return &v.state case 1: @@ -7445,7 +8090,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_FullFrameSplit); i { + switch v := v.(*CSVCMsg_CreateStringTable); i { case 0: return &v.state case 1: @@ -7457,7 +8102,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_HLTVStatus); i { + switch v := v.(*CSVCMsg_UpdateStringTable); i { case 0: return &v.state case 1: @@ -7469,7 +8114,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_ServerSteamID); i { + switch v := v.(*CSVCMsg_VoiceData); i { case 0: return &v.state case 1: @@ -7481,7 +8126,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_CmdKeyValues); i { + switch v := v.(*CSVCMsg_PacketReliable); i { case 0: return &v.state case 1: @@ -7493,7 +8138,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_RconServerDetails); i { + switch v := v.(*CSVCMsg_FullFrameSplit); i { case 0: return &v.state case 1: @@ -7505,7 +8150,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgIPCAddress); i { + switch v := v.(*CSVCMsg_HLTVStatus); i { case 0: return &v.state case 1: @@ -7517,7 +8162,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgServerPeer); i { + switch v := v.(*CSVCMsg_ServerSteamID); i { case 0: return &v.state case 1: @@ -7529,7 +8174,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_PeerList); i { + switch v := v.(*CSVCMsg_CmdKeyValues); i { case 0: return &v.state case 1: @@ -7541,7 +8186,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_ClearAllStringTables); i { + switch v := v.(*CSVCMsg_RconServerDetails); i { case 0: return &v.state case 1: @@ -7553,7 +8198,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProtoFlattenedSerializerFieldT); i { + switch v := v.(*CMsgIPCAddress); i { case 0: return &v.state case 1: @@ -7565,7 +8210,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProtoFlattenedSerializerT); i { + switch v := v.(*CMsgServerPeer); i { case 0: return &v.state case 1: @@ -7577,7 +8222,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_FlattenedSerializer); i { + switch v := v.(*CSVCMsg_PeerList); i { case 0: return &v.state case 1: @@ -7589,7 +8234,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_StopSound); i { + switch v := v.(*CSVCMsg_ClearAllStringTables); i { case 0: return &v.state case 1: @@ -7601,7 +8246,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CBidirMsg_RebroadcastGameEvent); i { + switch v := v.(*ProtoFlattenedSerializerFieldT); i { case 0: return &v.state case 1: @@ -7613,7 +8258,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CBidirMsg_RebroadcastSource); i { + switch v := v.(*ProtoFlattenedSerializerT); i { case 0: return &v.state case 1: @@ -7625,7 +8270,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgServerNetworkStats); i { + switch v := v.(*CSVCMsg_FlattenedSerializer); i { case 0: return &v.state case 1: @@ -7637,7 +8282,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_HltvReplay); i { + switch v := v.(*CSVCMsg_StopSound); i { case 0: return &v.state case 1: @@ -7649,7 +8294,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CCLCMsg_HltvReplay); i { + switch v := v.(*CBidirMsg_RebroadcastGameEvent); i { case 0: return &v.state case 1: @@ -7661,7 +8306,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_Broadcast_Command); i { + switch v := v.(*CBidirMsg_RebroadcastSource); i { case 0: return &v.state case 1: @@ -7673,7 +8318,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CCLCMsg_HltvFixupOperatorTick); i { + switch v := v.(*CMsgServerNetworkStats); i { case 0: return &v.state case 1: @@ -7685,7 +8330,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_HltvFixupOperatorStatus); i { + switch v := v.(*CSVCMsg_HltvReplay); i { case 0: return &v.state case 1: @@ -7697,7 +8342,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_ClassInfoClassT); i { + switch v := v.(*CCLCMsg_HltvReplay); i { case 0: return &v.state case 1: @@ -7709,7 +8354,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_SoundsSounddataT); i { + switch v := v.(*CSVCMsg_Broadcast_Command); i { case 0: return &v.state case 1: @@ -7721,7 +8366,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_SendTableSendpropT); i { + switch v := v.(*CCLCMsg_HltvFixupOperatorTick); i { case 0: return &v.state case 1: @@ -7733,7 +8378,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_GameEventListKeyT); i { + switch v := v.(*CSVCMsg_HltvFixupOperatorStatus); i { case 0: return &v.state case 1: @@ -7745,7 +8390,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_GameEventListDescriptorT); i { + switch v := v.(*CMsgServerUserCmd); i { case 0: return &v.state case 1: @@ -7757,7 +8402,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_PacketEntitiesCommandQueueInfoT); i { + switch v := v.(*CSVCMsg_UserCommands); i { case 0: return &v.state case 1: @@ -7769,7 +8414,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_PacketEntitiesAlternateBaselineT); i { + switch v := v.(*CSource2Metrics_MatchPerfSummary_Notification_Client); i { case 0: return &v.state case 1: @@ -7781,7 +8426,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSVCMsg_PacketEntitiesNonTransmittedEntitiesT); i { + switch v := v.(*CSVCMsg_ClassInfoClassT); i { case 0: return &v.state case 1: @@ -7793,7 +8438,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProtoFlattenedSerializerFieldTPolymorphicFieldT); i { + switch v := v.(*CSVCMsg_SoundsSounddataT); i { case 0: return &v.state case 1: @@ -7805,7 +8450,7 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgServerNetworkStats_Port); i { + switch v := v.(*CSVCMsg_SendTableSendpropT); i { case 0: return &v.state case 1: @@ -7817,6 +8462,78 @@ func file_netmessages_proto_init() { } } file_netmessages_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_GameEventListKeyT); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_netmessages_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_GameEventListDescriptorT); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_netmessages_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_PacketEntitiesAlternateBaselineT); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_netmessages_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_PacketEntitiesNonTransmittedEntitiesT); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_netmessages_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProtoFlattenedSerializerFieldTPolymorphicFieldT); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_netmessages_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgServerNetworkStats_Port); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_netmessages_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgServerNetworkStats_Player); i { case 0: return &v.state @@ -7835,7 +8552,7 @@ func file_netmessages_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_netmessages_proto_rawDesc, NumEnums: 12, - NumMessages: 71, + NumMessages: 77, NumExtensions: 0, NumServices: 0, }, diff --git a/dota/netmessages.proto b/dota/netmessages.proto index 6341e0b..2824d59 100644 --- a/dota/netmessages.proto +++ b/dota/netmessages.proto @@ -10,19 +10,17 @@ enum CLC_Messages { clc_Move = 21; clc_VoiceData = 22; clc_BaselineAck = 23; - clc_ListenEvents = 24; clc_RespondCvarValue = 25; clc_FileCRCCheck = 26; clc_LoadingProgress = 27; clc_SplitPlayerConnect = 28; - clc_ClientMessage = 29; clc_SplitPlayerDisconnect = 30; clc_ServerStatus = 31; - clc_ServerPing = 32; clc_RequestPause = 33; clc_CmdKeyValues = 34; clc_RconServerDetails = 35; clc_HltvReplay = 36; + clc_Diagnostic = 37; } enum SVC_Messages { @@ -53,9 +51,9 @@ enum SVC_Messages { svc_FullFrameSplit = 70; svc_RconServerDetails = 71; svc_UserMessage = 72; - svc_HltvReplay = 73; svc_Broadcast_Command = 74; svc_HltvFixupOperatorStatus = 75; + svc_UserCmds = 76; } enum VoiceDataFormat_t { @@ -127,8 +125,7 @@ message CCLCMsg_ClientInfo { message CCLCMsg_Move { optional bytes data = 3; - optional uint32 command_number = 4; - optional uint32 num_commands = 5; + optional uint32 last_command_number = 4; } message CMsgVoiceAudio { @@ -181,11 +178,6 @@ message CCLCMsg_SplitPlayerConnect { optional string playername = 1; } -message CCLCMsg_ClientMessage { - optional int32 msg_type = 1; - optional bytes data = 2; -} - message CCLCMsg_SplitPlayerDisconnect { optional int32 slot = 1; } @@ -207,6 +199,60 @@ message CCLCMsg_RconServerDetails { optional bytes token = 1; } +message CMsgSource2SystemSpecs { + optional string cpu_id = 1; + optional string cpu_brand = 2; + optional uint32 cpu_model = 3; + optional uint32 cpu_num_physical = 4; + optional uint32 ram_physical_total_mb = 21; + optional string gpu_rendersystem_dll_name = 41; + optional uint32 gpu_vendor_id = 42; + optional string gpu_driver_name = 43; + optional uint32 gpu_driver_version_high = 44; + optional uint32 gpu_driver_version_low = 45; + optional uint32 gpu_dx_support_level = 46; + optional uint32 gpu_texture_memory_size_mb = 47; +} + +message CMsgSource2VProfLiteReportItem { + optional string name = 1; + optional uint32 active_samples = 2; + optional uint32 usec_max = 3; + optional uint32 usec_avg_active = 11; + optional uint32 usec_p50_active = 12; + optional uint32 usec_p99_active = 13; + optional uint32 usec_avg_all = 21; + optional uint32 usec_p50_all = 22; + optional uint32 usec_p99_all = 23; +} + +message CMsgSource2VProfLiteReport { + optional CMsgSource2VProfLiteReportItem total = 1; + repeated CMsgSource2VProfLiteReportItem items = 2; + optional uint32 discarded_frames = 3; +} + +message CCLCMsg_Diagnostic { + optional CMsgSource2SystemSpecs system_specs = 1; + optional CMsgSource2VProfLiteReport vprof_report = 2; +} + +message CSource2Metrics_MatchPerfSummary_Notification { + message Client { + optional CMsgSource2SystemSpecs system_specs = 1; + optional CMsgSource2VProfLiteReport profile = 2; + optional uint32 build_id = 3; + optional fixed64 steamid = 10; + } + + optional uint32 appid = 1; + optional string game_mode = 2; + optional uint32 server_build_id = 3; + optional CMsgSource2VProfLiteReport server_profile = 10; + repeated CSource2Metrics_MatchPerfSummary_Notification.Client clients = 11; + optional string map = 20; +} + message CSVCMsg_ServerInfo { optional int32 protocol = 1; optional int32 server_count = 2; @@ -361,12 +407,6 @@ message CSVCMsg_GameEventList { } message CSVCMsg_PacketEntities { - message command_queue_info_t { - optional uint32 commands_queued = 1; - optional uint32 starved_command_ticks = 3; - optional uint32 discarded_command_ticks = 5; - } - message alternate_baseline_t { optional int32 entity_index = 1; optional int32 baseline_index = 2; @@ -391,11 +431,12 @@ message CSVCMsg_PacketEntities { optional sint32 last_cmd_number_recv_delta = 17; optional uint32 server_tick = 12; optional bytes serialized_entities = 13; - optional CSVCMsg_PacketEntities.command_queue_info_t command_queue_info = 14; repeated CSVCMsg_PacketEntities.alternate_baseline_t alternate_baselines = 15; optional uint32 has_pvs_vis_bits = 16; - optional uint32 last_cmd_recv_margin = 18; + repeated sint32 cmd_recv_status = 22; optional CSVCMsg_PacketEntities.non_transmitted_entities_t non_transmitted_entities = 19; + optional uint32 cq_starved_command_ticks = 20; + optional uint32 cq_discarded_command_ticks = 21; optional bytes dev_padding = 999; } @@ -619,3 +660,15 @@ message CSVCMsg_HltvFixupOperatorStatus { optional uint32 mode = 1; optional string override_operator_name = 2; } + +message CMsgServerUserCmd { + optional bytes data = 1; + optional int32 cmd_number = 2; + optional int32 player_slot = 3; + optional int32 server_tick_executed = 4; + optional int32 client_tick = 5; +} + +message CSVCMsg_UserCommands { + repeated CMsgServerUserCmd commands = 1; +} diff --git a/dota/networkbasetypes.pb.go b/dota/networkbasetypes.pb.go index febe5db..22bec9c 100644 --- a/dota/networkbasetypes.pb.go +++ b/dota/networkbasetypes.pb.go @@ -917,53 +917,6 @@ func (x *CNETMsg_SplitScreenUser) GetSlot() int32 { return 0 } -type CNETMsg_Disconnect_Legacy struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Reason *ENetworkDisconnectionReason `protobuf:"varint,2,opt,name=reason,enum=dota.ENetworkDisconnectionReason" json:"reason,omitempty"` -} - -func (x *CNETMsg_Disconnect_Legacy) Reset() { - *x = CNETMsg_Disconnect_Legacy{} - if protoimpl.UnsafeEnabled { - mi := &file_networkbasetypes_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CNETMsg_Disconnect_Legacy) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CNETMsg_Disconnect_Legacy) ProtoMessage() {} - -func (x *CNETMsg_Disconnect_Legacy) ProtoReflect() protoreflect.Message { - mi := &file_networkbasetypes_proto_msgTypes[11] - 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 CNETMsg_Disconnect_Legacy.ProtoReflect.Descriptor instead. -func (*CNETMsg_Disconnect_Legacy) Descriptor() ([]byte, []int) { - return file_networkbasetypes_proto_rawDescGZIP(), []int{11} -} - -func (x *CNETMsg_Disconnect_Legacy) GetReason() ENetworkDisconnectionReason { - if x != nil && x.Reason != nil { - return *x.Reason - } - return ENetworkDisconnectionReason_NETWORK_DISCONNECT_INVALID -} - type CNETMsg_Tick struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -985,7 +938,7 @@ type CNETMsg_Tick struct { func (x *CNETMsg_Tick) Reset() { *x = CNETMsg_Tick{} if protoimpl.UnsafeEnabled { - mi := &file_networkbasetypes_proto_msgTypes[12] + mi := &file_networkbasetypes_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -998,7 +951,7 @@ func (x *CNETMsg_Tick) String() string { func (*CNETMsg_Tick) ProtoMessage() {} func (x *CNETMsg_Tick) ProtoReflect() protoreflect.Message { - mi := &file_networkbasetypes_proto_msgTypes[12] + mi := &file_networkbasetypes_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1011,7 +964,7 @@ func (x *CNETMsg_Tick) ProtoReflect() protoreflect.Message { // Deprecated: Use CNETMsg_Tick.ProtoReflect.Descriptor instead. func (*CNETMsg_Tick) Descriptor() ([]byte, []int) { - return file_networkbasetypes_proto_rawDescGZIP(), []int{12} + return file_networkbasetypes_proto_rawDescGZIP(), []int{11} } func (x *CNETMsg_Tick) GetTick() uint32 { @@ -1103,7 +1056,7 @@ type CNETMsg_StringCmd struct { func (x *CNETMsg_StringCmd) Reset() { *x = CNETMsg_StringCmd{} if protoimpl.UnsafeEnabled { - mi := &file_networkbasetypes_proto_msgTypes[13] + mi := &file_networkbasetypes_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1116,7 +1069,7 @@ func (x *CNETMsg_StringCmd) String() string { func (*CNETMsg_StringCmd) ProtoMessage() {} func (x *CNETMsg_StringCmd) ProtoReflect() protoreflect.Message { - mi := &file_networkbasetypes_proto_msgTypes[13] + mi := &file_networkbasetypes_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1129,7 +1082,7 @@ func (x *CNETMsg_StringCmd) ProtoReflect() protoreflect.Message { // Deprecated: Use CNETMsg_StringCmd.ProtoReflect.Descriptor instead. func (*CNETMsg_StringCmd) Descriptor() ([]byte, []int) { - return file_networkbasetypes_proto_rawDescGZIP(), []int{13} + return file_networkbasetypes_proto_rawDescGZIP(), []int{12} } func (x *CNETMsg_StringCmd) GetCommand() string { @@ -1157,7 +1110,7 @@ type CNETMsg_SetConVar struct { func (x *CNETMsg_SetConVar) Reset() { *x = CNETMsg_SetConVar{} if protoimpl.UnsafeEnabled { - mi := &file_networkbasetypes_proto_msgTypes[14] + mi := &file_networkbasetypes_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1170,7 +1123,7 @@ func (x *CNETMsg_SetConVar) String() string { func (*CNETMsg_SetConVar) ProtoMessage() {} func (x *CNETMsg_SetConVar) ProtoReflect() protoreflect.Message { - mi := &file_networkbasetypes_proto_msgTypes[14] + mi := &file_networkbasetypes_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1183,7 +1136,7 @@ func (x *CNETMsg_SetConVar) ProtoReflect() protoreflect.Message { // Deprecated: Use CNETMsg_SetConVar.ProtoReflect.Descriptor instead. func (*CNETMsg_SetConVar) Descriptor() ([]byte, []int) { - return file_networkbasetypes_proto_rawDescGZIP(), []int{14} + return file_networkbasetypes_proto_rawDescGZIP(), []int{13} } func (x *CNETMsg_SetConVar) GetConvars() *CMsg_CVars { @@ -1209,7 +1162,7 @@ type CNETMsg_SignonState struct { func (x *CNETMsg_SignonState) Reset() { *x = CNETMsg_SignonState{} if protoimpl.UnsafeEnabled { - mi := &file_networkbasetypes_proto_msgTypes[15] + mi := &file_networkbasetypes_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1222,7 +1175,7 @@ func (x *CNETMsg_SignonState) String() string { func (*CNETMsg_SignonState) ProtoMessage() {} func (x *CNETMsg_SignonState) ProtoReflect() protoreflect.Message { - mi := &file_networkbasetypes_proto_msgTypes[15] + mi := &file_networkbasetypes_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1235,7 +1188,7 @@ func (x *CNETMsg_SignonState) ProtoReflect() protoreflect.Message { // Deprecated: Use CNETMsg_SignonState.ProtoReflect.Descriptor instead. func (*CNETMsg_SignonState) Descriptor() ([]byte, []int) { - return file_networkbasetypes_proto_rawDescGZIP(), []int{15} + return file_networkbasetypes_proto_rawDescGZIP(), []int{14} } func (x *CNETMsg_SignonState) GetSignonState() SignonStateT { @@ -1293,7 +1246,7 @@ type CSVCMsg_GameEvent struct { func (x *CSVCMsg_GameEvent) Reset() { *x = CSVCMsg_GameEvent{} if protoimpl.UnsafeEnabled { - mi := &file_networkbasetypes_proto_msgTypes[16] + mi := &file_networkbasetypes_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1306,7 +1259,7 @@ func (x *CSVCMsg_GameEvent) String() string { func (*CSVCMsg_GameEvent) ProtoMessage() {} func (x *CSVCMsg_GameEvent) ProtoReflect() protoreflect.Message { - mi := &file_networkbasetypes_proto_msgTypes[16] + mi := &file_networkbasetypes_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1319,7 +1272,7 @@ func (x *CSVCMsg_GameEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_GameEvent.ProtoReflect.Descriptor instead. func (*CSVCMsg_GameEvent) Descriptor() ([]byte, []int) { - return file_networkbasetypes_proto_rawDescGZIP(), []int{16} + return file_networkbasetypes_proto_rawDescGZIP(), []int{15} } func (x *CSVCMsg_GameEvent) GetEventName() string { @@ -1354,7 +1307,7 @@ type CSVCMsgList_GameEvents struct { func (x *CSVCMsgList_GameEvents) Reset() { *x = CSVCMsgList_GameEvents{} if protoimpl.UnsafeEnabled { - mi := &file_networkbasetypes_proto_msgTypes[17] + mi := &file_networkbasetypes_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1367,7 +1320,7 @@ func (x *CSVCMsgList_GameEvents) String() string { func (*CSVCMsgList_GameEvents) ProtoMessage() {} func (x *CSVCMsgList_GameEvents) ProtoReflect() protoreflect.Message { - mi := &file_networkbasetypes_proto_msgTypes[17] + mi := &file_networkbasetypes_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1380,7 +1333,7 @@ func (x *CSVCMsgList_GameEvents) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsgList_GameEvents.ProtoReflect.Descriptor instead. func (*CSVCMsgList_GameEvents) Descriptor() ([]byte, []int) { - return file_networkbasetypes_proto_rawDescGZIP(), []int{17} + return file_networkbasetypes_proto_rawDescGZIP(), []int{16} } func (x *CSVCMsgList_GameEvents) GetEvents() []*CSVCMsgList_GameEventsEventT { @@ -1420,7 +1373,7 @@ type CNETMsg_SpawnGroup_Load struct { func (x *CNETMsg_SpawnGroup_Load) Reset() { *x = CNETMsg_SpawnGroup_Load{} if protoimpl.UnsafeEnabled { - mi := &file_networkbasetypes_proto_msgTypes[18] + mi := &file_networkbasetypes_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1433,7 +1386,7 @@ func (x *CNETMsg_SpawnGroup_Load) String() string { func (*CNETMsg_SpawnGroup_Load) ProtoMessage() {} func (x *CNETMsg_SpawnGroup_Load) ProtoReflect() protoreflect.Message { - mi := &file_networkbasetypes_proto_msgTypes[18] + mi := &file_networkbasetypes_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1446,7 +1399,7 @@ func (x *CNETMsg_SpawnGroup_Load) ProtoReflect() protoreflect.Message { // Deprecated: Use CNETMsg_SpawnGroup_Load.ProtoReflect.Descriptor instead. func (*CNETMsg_SpawnGroup_Load) Descriptor() ([]byte, []int) { - return file_networkbasetypes_proto_rawDescGZIP(), []int{18} + return file_networkbasetypes_proto_rawDescGZIP(), []int{17} } func (x *CNETMsg_SpawnGroup_Load) GetWorldname() string { @@ -1602,7 +1555,7 @@ type CNETMsg_SpawnGroup_ManifestUpdate struct { func (x *CNETMsg_SpawnGroup_ManifestUpdate) Reset() { *x = CNETMsg_SpawnGroup_ManifestUpdate{} if protoimpl.UnsafeEnabled { - mi := &file_networkbasetypes_proto_msgTypes[19] + mi := &file_networkbasetypes_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1615,7 +1568,7 @@ func (x *CNETMsg_SpawnGroup_ManifestUpdate) String() string { func (*CNETMsg_SpawnGroup_ManifestUpdate) ProtoMessage() {} func (x *CNETMsg_SpawnGroup_ManifestUpdate) ProtoReflect() protoreflect.Message { - mi := &file_networkbasetypes_proto_msgTypes[19] + mi := &file_networkbasetypes_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1628,7 +1581,7 @@ func (x *CNETMsg_SpawnGroup_ManifestUpdate) ProtoReflect() protoreflect.Message // Deprecated: Use CNETMsg_SpawnGroup_ManifestUpdate.ProtoReflect.Descriptor instead. func (*CNETMsg_SpawnGroup_ManifestUpdate) Descriptor() ([]byte, []int) { - return file_networkbasetypes_proto_rawDescGZIP(), []int{19} + return file_networkbasetypes_proto_rawDescGZIP(), []int{18} } func (x *CNETMsg_SpawnGroup_ManifestUpdate) GetSpawngrouphandle() uint32 { @@ -1665,7 +1618,7 @@ type CNETMsg_SpawnGroup_SetCreationTick struct { func (x *CNETMsg_SpawnGroup_SetCreationTick) Reset() { *x = CNETMsg_SpawnGroup_SetCreationTick{} if protoimpl.UnsafeEnabled { - mi := &file_networkbasetypes_proto_msgTypes[20] + mi := &file_networkbasetypes_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1678,7 +1631,7 @@ func (x *CNETMsg_SpawnGroup_SetCreationTick) String() string { func (*CNETMsg_SpawnGroup_SetCreationTick) ProtoMessage() {} func (x *CNETMsg_SpawnGroup_SetCreationTick) ProtoReflect() protoreflect.Message { - mi := &file_networkbasetypes_proto_msgTypes[20] + mi := &file_networkbasetypes_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1691,7 +1644,7 @@ func (x *CNETMsg_SpawnGroup_SetCreationTick) ProtoReflect() protoreflect.Message // Deprecated: Use CNETMsg_SpawnGroup_SetCreationTick.ProtoReflect.Descriptor instead. func (*CNETMsg_SpawnGroup_SetCreationTick) Descriptor() ([]byte, []int) { - return file_networkbasetypes_proto_rawDescGZIP(), []int{20} + return file_networkbasetypes_proto_rawDescGZIP(), []int{19} } func (x *CNETMsg_SpawnGroup_SetCreationTick) GetSpawngrouphandle() uint32 { @@ -1728,7 +1681,7 @@ type CNETMsg_SpawnGroup_Unload struct { func (x *CNETMsg_SpawnGroup_Unload) Reset() { *x = CNETMsg_SpawnGroup_Unload{} if protoimpl.UnsafeEnabled { - mi := &file_networkbasetypes_proto_msgTypes[21] + mi := &file_networkbasetypes_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1741,7 +1694,7 @@ func (x *CNETMsg_SpawnGroup_Unload) String() string { func (*CNETMsg_SpawnGroup_Unload) ProtoMessage() {} func (x *CNETMsg_SpawnGroup_Unload) ProtoReflect() protoreflect.Message { - mi := &file_networkbasetypes_proto_msgTypes[21] + mi := &file_networkbasetypes_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1754,7 +1707,7 @@ func (x *CNETMsg_SpawnGroup_Unload) ProtoReflect() protoreflect.Message { // Deprecated: Use CNETMsg_SpawnGroup_Unload.ProtoReflect.Descriptor instead. func (*CNETMsg_SpawnGroup_Unload) Descriptor() ([]byte, []int) { - return file_networkbasetypes_proto_rawDescGZIP(), []int{21} + return file_networkbasetypes_proto_rawDescGZIP(), []int{20} } func (x *CNETMsg_SpawnGroup_Unload) GetSpawngrouphandle() uint32 { @@ -1789,7 +1742,7 @@ type CNETMsg_SpawnGroup_LoadCompleted struct { func (x *CNETMsg_SpawnGroup_LoadCompleted) Reset() { *x = CNETMsg_SpawnGroup_LoadCompleted{} if protoimpl.UnsafeEnabled { - mi := &file_networkbasetypes_proto_msgTypes[22] + mi := &file_networkbasetypes_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1802,7 +1755,7 @@ func (x *CNETMsg_SpawnGroup_LoadCompleted) String() string { func (*CNETMsg_SpawnGroup_LoadCompleted) ProtoMessage() {} func (x *CNETMsg_SpawnGroup_LoadCompleted) ProtoReflect() protoreflect.Message { - mi := &file_networkbasetypes_proto_msgTypes[22] + mi := &file_networkbasetypes_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1815,7 +1768,7 @@ func (x *CNETMsg_SpawnGroup_LoadCompleted) ProtoReflect() protoreflect.Message { // Deprecated: Use CNETMsg_SpawnGroup_LoadCompleted.ProtoReflect.Descriptor instead. func (*CNETMsg_SpawnGroup_LoadCompleted) Descriptor() ([]byte, []int) { - return file_networkbasetypes_proto_rawDescGZIP(), []int{22} + return file_networkbasetypes_proto_rawDescGZIP(), []int{21} } func (x *CNETMsg_SpawnGroup_LoadCompleted) GetSpawngrouphandle() uint32 { @@ -1854,7 +1807,7 @@ type CSVCMsg_GameSessionConfiguration struct { func (x *CSVCMsg_GameSessionConfiguration) Reset() { *x = CSVCMsg_GameSessionConfiguration{} if protoimpl.UnsafeEnabled { - mi := &file_networkbasetypes_proto_msgTypes[23] + mi := &file_networkbasetypes_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1867,7 +1820,7 @@ func (x *CSVCMsg_GameSessionConfiguration) String() string { func (*CSVCMsg_GameSessionConfiguration) ProtoMessage() {} func (x *CSVCMsg_GameSessionConfiguration) ProtoReflect() protoreflect.Message { - mi := &file_networkbasetypes_proto_msgTypes[23] + mi := &file_networkbasetypes_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1880,7 +1833,7 @@ func (x *CSVCMsg_GameSessionConfiguration) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_GameSessionConfiguration.ProtoReflect.Descriptor instead. func (*CSVCMsg_GameSessionConfiguration) Descriptor() ([]byte, []int) { - return file_networkbasetypes_proto_rawDescGZIP(), []int{23} + return file_networkbasetypes_proto_rawDescGZIP(), []int{22} } func (x *CSVCMsg_GameSessionConfiguration) GetIsMultiplayer() bool { @@ -2034,7 +1987,7 @@ type CNETMsg_DebugOverlay struct { func (x *CNETMsg_DebugOverlay) Reset() { *x = CNETMsg_DebugOverlay{} if protoimpl.UnsafeEnabled { - mi := &file_networkbasetypes_proto_msgTypes[24] + mi := &file_networkbasetypes_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2047,7 +2000,7 @@ func (x *CNETMsg_DebugOverlay) String() string { func (*CNETMsg_DebugOverlay) ProtoMessage() {} func (x *CNETMsg_DebugOverlay) ProtoReflect() protoreflect.Message { - mi := &file_networkbasetypes_proto_msgTypes[24] + mi := &file_networkbasetypes_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2060,7 +2013,7 @@ func (x *CNETMsg_DebugOverlay) ProtoReflect() protoreflect.Message { // Deprecated: Use CNETMsg_DebugOverlay.ProtoReflect.Descriptor instead. func (*CNETMsg_DebugOverlay) Descriptor() ([]byte, []int) { - return file_networkbasetypes_proto_rawDescGZIP(), []int{24} + return file_networkbasetypes_proto_rawDescGZIP(), []int{23} } func (x *CNETMsg_DebugOverlay) GetEtype() int32 { @@ -2131,7 +2084,7 @@ type CMsg_CVars_CVar struct { func (x *CMsg_CVars_CVar) Reset() { *x = CMsg_CVars_CVar{} if protoimpl.UnsafeEnabled { - mi := &file_networkbasetypes_proto_msgTypes[25] + mi := &file_networkbasetypes_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2144,7 +2097,7 @@ func (x *CMsg_CVars_CVar) String() string { func (*CMsg_CVars_CVar) ProtoMessage() {} func (x *CMsg_CVars_CVar) ProtoReflect() protoreflect.Message { - mi := &file_networkbasetypes_proto_msgTypes[25] + mi := &file_networkbasetypes_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2192,7 +2145,7 @@ type CSVCMsg_GameEventKeyT struct { func (x *CSVCMsg_GameEventKeyT) Reset() { *x = CSVCMsg_GameEventKeyT{} if protoimpl.UnsafeEnabled { - mi := &file_networkbasetypes_proto_msgTypes[26] + mi := &file_networkbasetypes_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2205,7 +2158,7 @@ func (x *CSVCMsg_GameEventKeyT) String() string { func (*CSVCMsg_GameEventKeyT) ProtoMessage() {} func (x *CSVCMsg_GameEventKeyT) ProtoReflect() protoreflect.Message { - mi := &file_networkbasetypes_proto_msgTypes[26] + mi := &file_networkbasetypes_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2218,7 +2171,7 @@ func (x *CSVCMsg_GameEventKeyT) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsg_GameEventKeyT.ProtoReflect.Descriptor instead. func (*CSVCMsg_GameEventKeyT) Descriptor() ([]byte, []int) { - return file_networkbasetypes_proto_rawDescGZIP(), []int{16, 0} + return file_networkbasetypes_proto_rawDescGZIP(), []int{15, 0} } func (x *CSVCMsg_GameEventKeyT) GetType() int32 { @@ -2289,7 +2242,7 @@ type CSVCMsgList_GameEventsEventT struct { func (x *CSVCMsgList_GameEventsEventT) Reset() { *x = CSVCMsgList_GameEventsEventT{} if protoimpl.UnsafeEnabled { - mi := &file_networkbasetypes_proto_msgTypes[27] + mi := &file_networkbasetypes_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2302,7 +2255,7 @@ func (x *CSVCMsgList_GameEventsEventT) String() string { func (*CSVCMsgList_GameEventsEventT) ProtoMessage() {} func (x *CSVCMsgList_GameEventsEventT) ProtoReflect() protoreflect.Message { - mi := &file_networkbasetypes_proto_msgTypes[27] + mi := &file_networkbasetypes_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2315,7 +2268,7 @@ func (x *CSVCMsgList_GameEventsEventT) ProtoReflect() protoreflect.Message { // Deprecated: Use CSVCMsgList_GameEventsEventT.ProtoReflect.Descriptor instead. func (*CSVCMsgList_GameEventsEventT) Descriptor() ([]byte, []int) { - return file_networkbasetypes_proto_rawDescGZIP(), []int{17, 0} + return file_networkbasetypes_proto_rawDescGZIP(), []int{16, 0} } func (x *CSVCMsgList_GameEventsEventT) GetTick() int32 { @@ -2391,316 +2344,311 @@ var file_networkbasetypes_proto_rawDesc = []byte{ 0x4f, 0x50, 0x22, 0x2d, 0x0a, 0x17, 0x43, 0x4e, 0x45, 0x54, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6c, 0x6f, - 0x74, 0x22, 0x56, 0x0a, 0x19, 0x43, 0x4e, 0x45, 0x54, 0x4d, 0x73, 0x67, 0x5f, 0x44, 0x69, 0x73, - 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x12, 0x39, - 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, - 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x45, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x69, - 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0xc3, 0x04, 0x0a, 0x0c, 0x43, 0x4e, - 0x45, 0x54, 0x4d, 0x73, 0x67, 0x5f, 0x54, 0x69, 0x63, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, - 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x69, 0x63, 0x6b, 0x12, 0x25, - 0x0a, 0x0e, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x68, 0x6f, 0x73, 0x74, 0x46, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x1c, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x64, 0x5f, 0x64, 0x65, 0x76, 0x69, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x19, 0x68, 0x6f, 0x73, - 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x64, 0x44, 0x65, 0x76, - 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x14, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x63, - 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x68, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x4b, 0x0a, 0x22, 0x68, 0x6f, 0x73, - 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x69, 0x6d, - 0x65, 0x5f, 0x73, 0x74, 0x64, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1f, 0x68, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x75, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x64, 0x44, 0x65, 0x76, - 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x21, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x66, - 0x72, 0x61, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, - 0x64, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x1e, 0x68, 0x6f, 0x73, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x64, 0x44, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x4c, 0x6f, 0x73, 0x73, 0x12, 0x3a, - 0x0a, 0x19, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x75, 0x6e, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, - 0x64, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x17, 0x68, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, - 0x64, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x68, 0x6c, - 0x74, 0x76, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x68, 0x6c, 0x74, 0x76, 0x52, 0x65, 0x70, 0x6c, 0x61, - 0x79, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x10, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4c, 0x6f, 0x6e, 0x67, - 0x54, 0x69, 0x63, 0x6b, 0x12, 0x39, 0x0a, 0x19, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, - 0x5f, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, - 0x64, 0x4c, 0x6f, 0x6e, 0x67, 0x54, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, - 0x56, 0x0a, 0x11, 0x43, 0x4e, 0x45, 0x54, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x43, 0x6d, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x27, - 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x79, 0x6e, - 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x79, 0x6e, 0x63, 0x22, 0x3f, 0x0a, 0x11, 0x43, 0x4e, 0x45, 0x54, 0x4d, - 0x73, 0x67, 0x5f, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x56, 0x61, 0x72, 0x12, 0x2a, 0x0a, 0x07, - 0x63, 0x6f, 0x6e, 0x76, 0x61, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, - 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x56, 0x61, 0x72, 0x73, 0x52, - 0x07, 0x63, 0x6f, 0x6e, 0x76, 0x61, 0x72, 0x73, 0x22, 0xfe, 0x01, 0x0a, 0x13, 0x43, 0x4e, 0x45, - 0x54, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x36, 0x0a, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x53, 0x69, - 0x67, 0x6e, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x52, 0x0b, 0x73, 0x69, 0x67, - 0x6e, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x70, 0x61, 0x77, - 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, - 0x70, 0x61, 0x77, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x6e, 0x75, 0x6d, - 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x6e, 0x75, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x73, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x11, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x4e, 0x65, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x69, 0x64, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x70, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x61, 0x70, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x64, 0x64, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x61, 0x64, 0x64, 0x6f, 0x6e, 0x73, 0x22, 0xe6, 0x02, 0x0a, 0x11, 0x43, 0x53, - 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, - 0x1d, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x12, 0x31, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x53, - 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, - 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x1a, 0xe4, 0x01, 0x0a, 0x05, - 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x61, 0x6c, - 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, - 0x61, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x5f, - 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x76, 0x61, 0x6c, - 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x5f, 0x6c, 0x6f, 0x6e, - 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x61, 0x6c, 0x4c, 0x6f, 0x6e, 0x67, - 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x5f, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x12, 0x19, 0x0a, - 0x08, 0x76, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x76, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x5f, - 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x76, 0x61, 0x6c, 0x42, - 0x6f, 0x6f, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, - 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, - 0x36, 0x34, 0x22, 0xa4, 0x01, 0x0a, 0x16, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x4c, 0x69, - 0x73, 0x74, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x3c, 0x0a, - 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, - 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x5f, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x4c, 0x0a, 0x07, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x63, 0x6b, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x63, 0x6b, 0x12, 0x2d, 0x0a, 0x05, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x64, 0x6f, 0x74, 0x61, - 0x2e, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x07, 0x0a, 0x17, 0x43, 0x4e, - 0x45, 0x54, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x70, 0x61, 0x77, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x5f, 0x4c, 0x6f, 0x61, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x6c, 0x75, 0x6d, - 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x6e, 0x74, - 0x69, 0x74, 0x79, 0x6c, 0x75, 0x6d, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x65, - 0x6e, 0x74, 0x69, 0x74, 0x79, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x70, 0x61, 0x77, 0x6e, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x10, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x68, 0x61, 0x6e, - 0x64, 0x6c, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x15, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x6f, 0x77, - 0x6e, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x3a, 0x0a, 0x10, 0x77, 0x6f, 0x72, - 0x6c, 0x64, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0e, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x4f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x50, 0x6f, 0x73, 0x12, 0x3e, 0x0a, 0x12, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x5f, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x51, 0x41, 0x6e, - 0x67, 0x6c, 0x65, 0x52, 0x10, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x12, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x6d, 0x61, 0x6e, - 0x69, 0x66, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, - 0x69, 0x63, 0x6b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, - 0x74, 0x69, 0x63, 0x6b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x6d, 0x61, 0x6e, - 0x69, 0x66, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x6e, 0x61, 0x6d, 0x65, 0x66, 0x69, 0x78, 0x75, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x6e, 0x61, 0x6d, 0x65, 0x66, 0x69, 0x78, 0x75, - 0x70, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x66, - 0x69, 0x78, 0x75, 0x70, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x66, 0x69, 0x78, 0x75, 0x70, 0x12, 0x32, 0x0a, 0x14, 0x6d, - 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x6c, 0x6f, 0x61, 0x64, 0x70, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x6d, 0x61, 0x6e, 0x69, 0x66, - 0x65, 0x73, 0x74, 0x6c, 0x6f, 0x61, 0x64, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, - 0x22, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x64, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, - 0x2a, 0x0a, 0x10, 0x73, 0x61, 0x76, 0x65, 0x67, 0x61, 0x6d, 0x65, 0x66, 0x69, 0x6c, 0x65, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x61, 0x76, 0x65, 0x67, - 0x61, 0x6d, 0x65, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x73, - 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x68, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x73, 0x70, 0x61, - 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x68, 0x61, 0x6e, - 0x64, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, - 0x0e, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xaf, 0x01, 0x0a, 0x21, 0x43, 0x4e, 0x45, 0x54, 0x4d, 0x73, - 0x67, 0x5f, 0x53, 0x70, 0x61, 0x77, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x4d, 0x61, 0x6e, - 0x69, 0x66, 0x65, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x73, - 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x73, 0x70, 0x61, 0x77, 0x6e, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x12, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x6d, - 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x6d, 0x61, 0x6e, 0x69, 0x66, - 0x65, 0x73, 0x74, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x12, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x63, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x22, 0x9a, 0x01, 0x0a, 0x22, 0x43, 0x4e, 0x45, 0x54, - 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x70, 0x61, 0x77, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x53, - 0x65, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x63, 0x6b, 0x12, 0x2a, - 0x0a, 0x10, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x68, 0x61, 0x6e, 0x64, - 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, - 0x63, 0x6b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x74, - 0x69, 0x63, 0x6b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x22, 0x7b, 0x0a, 0x19, 0x43, 0x4e, 0x45, 0x54, 0x4d, 0x73, 0x67, 0x5f, - 0x53, 0x70, 0x61, 0x77, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x55, 0x6e, 0x6c, 0x6f, 0x61, - 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x68, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x73, 0x70, 0x61, - 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, + 0x74, 0x22, 0xc3, 0x04, 0x0a, 0x0c, 0x43, 0x4e, 0x45, 0x54, 0x4d, 0x73, 0x67, 0x5f, 0x54, 0x69, + 0x63, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x04, 0x74, 0x69, 0x63, 0x6b, 0x12, 0x25, 0x0a, 0x0e, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x66, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, + 0x68, 0x6f, 0x73, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x3f, 0x0a, + 0x1c, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x5f, + 0x73, 0x74, 0x64, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x19, 0x68, 0x6f, 0x73, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x69, + 0x6d, 0x65, 0x53, 0x74, 0x64, 0x44, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, + 0x0a, 0x14, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x68, 0x6f, + 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x69, 0x6d, + 0x65, 0x12, 0x4b, 0x0a, 0x22, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x64, 0x5f, 0x64, 0x65, + 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1f, 0x68, + 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x69, + 0x6d, 0x65, 0x53, 0x74, 0x64, 0x44, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x49, + 0x0a, 0x21, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x64, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1e, 0x68, 0x6f, 0x73, 0x74, 0x46, + 0x72, 0x61, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x64, + 0x44, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x6f, 0x73, + 0x74, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x68, 0x6f, + 0x73, 0x74, 0x4c, 0x6f, 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x75, + 0x6e, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x68, 0x6f, 0x73, 0x74, 0x55, + 0x6e, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x69, + 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x68, 0x6c, 0x74, 0x76, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, + 0x79, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x68, + 0x6c, 0x74, 0x76, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x2c, + 0x0a, 0x12, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, + 0x74, 0x69, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x65, 0x78, 0x70, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x4c, 0x6f, 0x6e, 0x67, 0x54, 0x69, 0x63, 0x6b, 0x12, 0x39, 0x0a, 0x19, + 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, 0x74, 0x69, + 0x63, 0x6b, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x16, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4c, 0x6f, 0x6e, 0x67, 0x54, 0x69, 0x63, + 0x6b, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x56, 0x0a, 0x11, 0x43, 0x4e, 0x45, 0x54, 0x4d, + 0x73, 0x67, 0x5f, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x6d, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x79, 0x6e, 0x63, 0x22, + 0x3f, 0x0a, 0x11, 0x43, 0x4e, 0x45, 0x54, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x65, 0x74, 0x43, 0x6f, + 0x6e, 0x56, 0x61, 0x72, 0x12, 0x2a, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x76, 0x61, 0x72, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, + 0x67, 0x5f, 0x43, 0x56, 0x61, 0x72, 0x73, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x76, 0x61, 0x72, 0x73, + 0x22, 0xfe, 0x01, 0x0a, 0x13, 0x43, 0x4e, 0x45, 0x54, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x69, 0x67, + 0x6e, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x36, 0x0a, 0x0c, 0x73, 0x69, 0x67, 0x6e, + 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, + 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x5f, 0x74, 0x52, 0x0b, 0x73, 0x69, 0x67, 0x6e, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x6e, 0x75, 0x6d, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x6e, + 0x75, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, + 0x2d, 0x0a, 0x12, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x73, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x64, 0x73, 0x12, 0x19, + 0x0a, 0x08, 0x6d, 0x61, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x6d, 0x61, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x64, 0x64, + 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x64, 0x64, 0x6f, 0x6e, + 0x73, 0x22, 0xe6, 0x02, 0x0a, 0x11, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x61, + 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x64, + 0x12, 0x31, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x61, + 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x52, 0x04, 0x6b, + 0x65, 0x79, 0x73, 0x1a, 0xe4, 0x01, 0x0a, 0x05, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x19, 0x0a, + 0x08, 0x76, 0x61, 0x6c, 0x5f, 0x6c, 0x6f, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x76, 0x61, 0x6c, 0x4c, 0x6f, 0x6e, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x5f, + 0x73, 0x68, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x76, 0x61, 0x6c, + 0x53, 0x68, 0x6f, 0x72, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, + 0x12, 0x19, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x76, 0x61, 0x6c, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x76, + 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x09, 0x76, 0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x22, 0xa4, 0x01, 0x0a, 0x16, 0x43, + 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x3c, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x53, 0x56, + 0x43, 0x4d, 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x1a, 0x4c, 0x0a, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x69, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, + 0x63, 0x6b, 0x12, 0x2d, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, + 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x22, 0x89, 0x07, 0x0a, 0x17, 0x43, 0x4e, 0x45, 0x54, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x70, + 0x61, 0x77, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x4c, 0x6f, 0x61, 0x64, 0x12, 0x1c, 0x0a, + 0x09, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x6c, 0x75, 0x6d, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x6c, 0x75, 0x6d, 0x70, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x2a, 0x0a, 0x10, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x68, 0x61, 0x6e, + 0x64, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x73, 0x70, 0x61, 0x77, 0x6e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x73, + 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x68, 0x61, + 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x73, 0x70, 0x61, 0x77, + 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x64, 0x6c, + 0x65, 0x12, 0x3a, 0x0a, 0x10, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, + 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0e, 0x77, + 0x6f, 0x72, 0x6c, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x12, 0x3e, 0x0a, + 0x12, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x61, 0x6e, + 0x67, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, + 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x51, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x10, 0x77, 0x6f, 0x72, + 0x6c, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x12, 0x2e, 0x0a, + 0x12, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x6d, 0x61, 0x6e, 0x69, 0x66, + 0x65, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x73, 0x70, 0x61, 0x77, 0x6e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x63, 0x6b, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x74, 0x69, 0x63, 0x6b, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x4e, 0x0a, 0x20, 0x43, 0x4e, 0x45, 0x54, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x70, 0x61, - 0x77, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x74, 0x69, 0x63, 0x6b, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x63, + 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x6d, + 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, + 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x6e, 0x61, 0x6d, 0x65, 0x66, 0x69, + 0x78, 0x75, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x6e, 0x61, 0x6d, 0x65, 0x66, 0x69, 0x78, 0x75, 0x70, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x66, 0x69, 0x78, 0x75, 0x70, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x66, 0x69, + 0x78, 0x75, 0x70, 0x12, 0x32, 0x0a, 0x14, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x6c, + 0x6f, 0x61, 0x64, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x14, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x6c, 0x6f, 0x61, 0x64, 0x70, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6c, 0x64, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x77, + 0x6f, 0x72, 0x6c, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x61, 0x76, 0x65, 0x67, + 0x61, 0x6d, 0x65, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x10, 0x73, 0x61, 0x76, 0x65, 0x67, 0x61, 0x6d, 0x65, 0x66, 0x69, 0x6c, 0x65, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x16, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x13, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x77, + 0x6f, 0x72, 0x6c, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xaf, 0x01, + 0x0a, 0x21, 0x43, 0x4e, 0x45, 0x54, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x70, 0x61, 0x77, 0x6e, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x73, + 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, + 0x2e, 0x0a, 0x12, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x6d, 0x61, 0x6e, + 0x69, 0x66, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x73, 0x70, 0x61, + 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x12, + 0x2e, 0x0a, 0x12, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x63, 0x6f, 0x6d, + 0x70, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x6d, 0x61, 0x6e, + 0x69, 0x66, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x22, + 0x9a, 0x01, 0x0a, 0x22, 0x43, 0x4e, 0x45, 0x54, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x70, 0x61, 0x77, + 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x53, 0x65, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x69, 0x63, 0x6b, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x10, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x68, 0x61, 0x6e, 0x64, + 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x63, 0x6b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x74, 0x69, 0x63, 0x6b, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x7b, 0x0a, 0x19, + 0x43, 0x4e, 0x45, 0x54, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x70, 0x61, 0x77, 0x6e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x5f, 0x55, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x70, 0x61, + 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x10, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x68, + 0x61, 0x6e, 0x64, 0x6c, 0x65, 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, 0x74, + 0x69, 0x63, 0x6b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, + 0x74, 0x69, 0x63, 0x6b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x4e, 0x0a, 0x20, 0x43, 0x4e, 0x45, + 0x54, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x70, 0x61, 0x77, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5f, + 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x68, 0x61, 0x6e, 0x64, 0x6c, - 0x65, 0x22, 0xce, 0x05, 0x0a, 0x20, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x61, - 0x6d, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, - 0x69, 0x73, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x27, 0x0a, - 0x0f, 0x69, 0x73, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x61, 0x76, 0x65, 0x67, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x73, 0x61, - 0x76, 0x65, 0x67, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x62, 0x61, 0x63, - 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0f, 0x69, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x4d, - 0x61, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, - 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x48, 0x65, 0x61, 0x64, 0x6c, - 0x65, 0x73, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6d, - 0x69, 0x6e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x28, 0x0a, - 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x61, - 0x78, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x69, 0x63, 0x6b, - 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x07, 0x52, - 0x0c, 0x74, 0x69, 0x63, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x1a, 0x0a, - 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x61, 0x76, - 0x65, 0x67, 0x61, 0x6d, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x73, 0x61, 0x76, 0x65, 0x67, 0x61, 0x6d, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, - 0x0a, 0x73, 0x31, 0x5f, 0x6d, 0x61, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x73, 0x31, 0x4d, 0x61, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, - 0x67, 0x61, 0x6d, 0x65, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x67, 0x61, 0x6d, 0x65, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x70, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x6c, - 0x6f, 0x63, 0x61, 0x6c, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, - 0x69, 0x73, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x6f, 0x6e, 0x6c, 0x79, 0x12, 0x26, 0x0a, 0x0f, 0x6e, - 0x6f, 0x5f, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x13, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6e, 0x6f, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x76, - 0x69, 0x6f, 0x75, 0x73, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x22, - 0x0a, 0x0c, 0x6c, 0x61, 0x6e, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x12, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x6e, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0x80, 0x02, 0x0a, 0x14, 0x43, 0x4e, 0x45, 0x54, 0x4d, 0x73, 0x67, 0x5f, 0x44, - 0x65, 0x62, 0x75, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x65, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x65, 0x74, 0x79, 0x70, - 0x65, 0x12, 0x2a, 0x0a, 0x07, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x52, 0x07, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x26, 0x0a, - 0x06, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, - 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x52, 0x47, 0x42, 0x41, 0x52, 0x06, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x02, 0x52, 0x05, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x62, - 0x6f, 0x6f, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x08, 0x52, 0x05, 0x62, 0x6f, 0x6f, 0x6c, - 0x73, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x73, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x04, 0x52, 0x07, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x73, 0x2a, 0xd4, 0x01, 0x0a, 0x0d, 0x53, 0x69, 0x67, 0x6e, 0x6f, 0x6e, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x49, 0x47, 0x4e, 0x4f, - 0x4e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x19, 0x0a, - 0x15, 0x53, 0x49, 0x47, 0x4e, 0x4f, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x48, 0x41, - 0x4c, 0x4c, 0x45, 0x4e, 0x47, 0x45, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x49, 0x47, 0x4e, - 0x4f, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, - 0x44, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x49, 0x47, 0x4e, 0x4f, 0x4e, 0x53, 0x54, 0x41, - 0x54, 0x45, 0x5f, 0x4e, 0x45, 0x57, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x49, 0x47, 0x4e, - 0x4f, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x50, 0x41, 0x57, 0x4e, - 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x49, 0x47, 0x4e, 0x4f, 0x4e, 0x53, 0x54, 0x41, 0x54, - 0x45, 0x5f, 0x53, 0x50, 0x41, 0x57, 0x4e, 0x10, 0x05, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x49, 0x47, - 0x4e, 0x4f, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x06, 0x12, - 0x1b, 0x0a, 0x17, 0x53, 0x49, 0x47, 0x4e, 0x4f, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, - 0x48, 0x41, 0x4e, 0x47, 0x45, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x10, 0x07, 0x2a, 0xcb, 0x02, 0x0a, - 0x0c, 0x4e, 0x45, 0x54, 0x5f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x0b, 0x0a, - 0x07, 0x6e, 0x65, 0x74, 0x5f, 0x4e, 0x4f, 0x50, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x6e, 0x65, - 0x74, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x4c, 0x65, 0x67, - 0x61, 0x63, 0x79, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x6e, 0x65, 0x74, 0x5f, 0x53, 0x70, 0x6c, - 0x69, 0x74, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x10, 0x03, 0x12, 0x0c, - 0x0a, 0x08, 0x6e, 0x65, 0x74, 0x5f, 0x54, 0x69, 0x63, 0x6b, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, - 0x6e, 0x65, 0x74, 0x5f, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x6d, 0x64, 0x10, 0x05, 0x12, - 0x11, 0x0a, 0x0d, 0x6e, 0x65, 0x74, 0x5f, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x56, 0x61, 0x72, - 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x6e, 0x65, 0x74, 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x6f, 0x6e, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x6e, 0x65, 0x74, 0x5f, 0x53, - 0x70, 0x61, 0x77, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x4c, 0x6f, 0x61, 0x64, 0x10, 0x08, - 0x12, 0x21, 0x0a, 0x1d, 0x6e, 0x65, 0x74, 0x5f, 0x53, 0x70, 0x61, 0x77, 0x6e, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x5f, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x10, 0x09, 0x12, 0x22, 0x0a, 0x1e, 0x6e, 0x65, 0x74, 0x5f, 0x53, 0x70, 0x61, 0x77, 0x6e, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x53, 0x65, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x69, 0x63, 0x6b, 0x10, 0x0b, 0x12, 0x19, 0x0a, 0x15, 0x6e, 0x65, 0x74, 0x5f, 0x53, - 0x70, 0x61, 0x77, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x55, 0x6e, 0x6c, 0x6f, 0x61, 0x64, - 0x10, 0x0c, 0x12, 0x20, 0x0a, 0x1c, 0x6e, 0x65, 0x74, 0x5f, 0x53, 0x70, 0x61, 0x77, 0x6e, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, - 0x65, 0x64, 0x10, 0x0d, 0x12, 0x14, 0x0a, 0x10, 0x6e, 0x65, 0x74, 0x5f, 0x44, 0x65, 0x62, 0x75, - 0x67, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x10, 0x0f, 0x2a, 0xcc, 0x02, 0x0a, 0x11, 0x53, - 0x70, 0x61, 0x77, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x5f, 0x74, - 0x12, 0x27, 0x0a, 0x23, 0x53, 0x50, 0x41, 0x57, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, - 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x49, 0x45, 0x53, 0x5f, 0x46, 0x52, - 0x4f, 0x4d, 0x5f, 0x53, 0x41, 0x56, 0x45, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x50, 0x41, - 0x57, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x44, 0x4f, 0x4e, 0x54, 0x5f, 0x53, 0x50, - 0x41, 0x57, 0x4e, 0x5f, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x49, 0x45, 0x53, 0x10, 0x02, 0x12, 0x21, - 0x0a, 0x1d, 0x53, 0x50, 0x41, 0x57, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, 0x59, - 0x4e, 0x43, 0x48, 0x52, 0x4f, 0x4e, 0x4f, 0x55, 0x53, 0x5f, 0x53, 0x50, 0x41, 0x57, 0x4e, 0x10, - 0x04, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x50, 0x41, 0x57, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, - 0x5f, 0x49, 0x53, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x53, 0x50, 0x41, 0x57, - 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x08, 0x12, 0x2b, 0x0a, 0x27, 0x53, 0x50, 0x41, - 0x57, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x5f, - 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x5f, 0x45, 0x4e, 0x54, 0x49, - 0x54, 0x49, 0x45, 0x53, 0x10, 0x10, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x50, 0x41, 0x57, 0x4e, 0x5f, - 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x55, 0x4e, 0x54, 0x49, - 0x4c, 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x45, 0x44, 0x10, 0x40, 0x12, 0x24, 0x0a, 0x1f, 0x53, 0x50, - 0x41, 0x57, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x53, - 0x54, 0x52, 0x45, 0x41, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x80, 0x01, - 0x12, 0x27, 0x0a, 0x22, 0x53, 0x50, 0x41, 0x57, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, - 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x53, 0x43, 0x45, 0x4e, 0x45, - 0x5f, 0x57, 0x4f, 0x52, 0x4c, 0x44, 0x10, 0x80, 0x02, 0x42, 0x25, 0x5a, 0x23, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x62, 0x75, 0x66, 0x66, - 0x2f, 0x6d, 0x61, 0x6e, 0x74, 0x61, 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x3b, 0x64, 0x6f, 0x74, 0x61, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0xce, 0x05, 0x0a, 0x20, 0x43, 0x53, + 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, + 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x73, 0x5f, 0x6c, 0x6f, 0x61, 0x64, + 0x73, 0x61, 0x76, 0x65, 0x67, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, + 0x69, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x73, 0x61, 0x76, 0x65, 0x67, 0x61, 0x6d, 0x65, 0x12, 0x2a, + 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, + 0x6d, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x42, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x4d, 0x61, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, + 0x5f, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0a, 0x69, 0x73, 0x48, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x6d, + 0x69, 0x6e, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6d, 0x69, 0x6e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0e, 0x6d, 0x61, 0x78, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, + 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, + 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x69, 0x63, 0x6b, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0c, 0x74, 0x69, 0x63, 0x6b, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x61, 0x76, 0x65, 0x67, 0x61, 0x6d, 0x65, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x61, 0x76, 0x65, 0x67, 0x61, 0x6d, + 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x31, 0x5f, 0x6d, 0x61, 0x70, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x31, 0x4d, 0x61, 0x70, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x6d, 0x6f, 0x64, 0x65, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x6d, 0x6f, 0x64, 0x65, + 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x6f, 0x6e, 0x6c, 0x79, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x6f, + 0x6e, 0x6c, 0x79, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x6f, 0x5f, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6e, 0x6f, + 0x53, 0x74, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x69, + 0x73, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x6c, 0x65, 0x76, 0x65, + 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, + 0x73, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x61, 0x6e, 0x64, 0x6d, 0x61, + 0x72, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x61, + 0x6e, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x80, 0x02, 0x0a, 0x14, 0x43, + 0x4e, 0x45, 0x54, 0x4d, 0x73, 0x67, 0x5f, 0x44, 0x65, 0x62, 0x75, 0x67, 0x4f, 0x76, 0x65, 0x72, + 0x6c, 0x61, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x65, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x07, 0x76, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, + 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x07, 0x76, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x06, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, + 0x67, 0x52, 0x47, 0x42, 0x41, 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x12, 0x1e, 0x0a, + 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x02, 0x52, 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x14, 0x0a, + 0x05, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x02, 0x52, 0x05, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6f, 0x6f, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x08, 0x52, 0x05, 0x62, 0x6f, 0x6f, 0x6c, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x69, 0x6e, + 0x74, 0x36, 0x34, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x04, 0x52, 0x07, 0x75, 0x69, 0x6e, 0x74, + 0x36, 0x34, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x08, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x2a, 0xd4, 0x01, + 0x0a, 0x0d, 0x53, 0x69, 0x67, 0x6e, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x12, + 0x14, 0x0a, 0x10, 0x53, 0x49, 0x47, 0x4e, 0x4f, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4e, + 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x49, 0x47, 0x4e, 0x4f, 0x4e, 0x53, + 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x4c, 0x4c, 0x45, 0x4e, 0x47, 0x45, 0x10, 0x01, + 0x12, 0x19, 0x0a, 0x15, 0x53, 0x49, 0x47, 0x4e, 0x4f, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x53, + 0x49, 0x47, 0x4e, 0x4f, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x45, 0x57, 0x10, 0x03, + 0x12, 0x18, 0x0a, 0x14, 0x53, 0x49, 0x47, 0x4e, 0x4f, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x50, 0x52, 0x45, 0x53, 0x50, 0x41, 0x57, 0x4e, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x49, + 0x47, 0x4e, 0x4f, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x50, 0x41, 0x57, 0x4e, 0x10, + 0x05, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x49, 0x47, 0x4e, 0x4f, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x06, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x49, 0x47, 0x4e, 0x4f, + 0x4e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x4c, 0x45, 0x56, + 0x45, 0x4c, 0x10, 0x07, 0x2a, 0xcb, 0x02, 0x0a, 0x0c, 0x4e, 0x45, 0x54, 0x5f, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x5f, 0x4e, 0x4f, 0x50, + 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x6e, 0x65, 0x74, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x10, 0x01, 0x12, 0x17, 0x0a, + 0x13, 0x6e, 0x65, 0x74, 0x5f, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, + 0x55, 0x73, 0x65, 0x72, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x6e, 0x65, 0x74, 0x5f, 0x54, 0x69, + 0x63, 0x6b, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x6e, 0x65, 0x74, 0x5f, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x43, 0x6d, 0x64, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x6e, 0x65, 0x74, 0x5f, 0x53, + 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x56, 0x61, 0x72, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x6e, 0x65, + 0x74, 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, 0x07, 0x12, + 0x17, 0x0a, 0x13, 0x6e, 0x65, 0x74, 0x5f, 0x53, 0x70, 0x61, 0x77, 0x6e, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x5f, 0x4c, 0x6f, 0x61, 0x64, 0x10, 0x08, 0x12, 0x21, 0x0a, 0x1d, 0x6e, 0x65, 0x74, 0x5f, + 0x53, 0x70, 0x61, 0x77, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x4d, 0x61, 0x6e, 0x69, 0x66, + 0x65, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x10, 0x09, 0x12, 0x22, 0x0a, 0x1e, 0x6e, + 0x65, 0x74, 0x5f, 0x53, 0x70, 0x61, 0x77, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x53, 0x65, + 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x63, 0x6b, 0x10, 0x0b, 0x12, + 0x19, 0x0a, 0x15, 0x6e, 0x65, 0x74, 0x5f, 0x53, 0x70, 0x61, 0x77, 0x6e, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x5f, 0x55, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x10, 0x0c, 0x12, 0x20, 0x0a, 0x1c, 0x6e, 0x65, + 0x74, 0x5f, 0x53, 0x70, 0x61, 0x77, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x4c, 0x6f, 0x61, + 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x10, 0x0d, 0x12, 0x14, 0x0a, 0x10, + 0x6e, 0x65, 0x74, 0x5f, 0x44, 0x65, 0x62, 0x75, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, + 0x10, 0x0f, 0x2a, 0xcc, 0x02, 0x0a, 0x11, 0x53, 0x70, 0x61, 0x77, 0x6e, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x5f, 0x74, 0x12, 0x27, 0x0a, 0x23, 0x53, 0x50, 0x41, 0x57, + 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x4e, 0x54, + 0x49, 0x54, 0x49, 0x45, 0x53, 0x5f, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x53, 0x41, 0x56, 0x45, 0x10, + 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x50, 0x41, 0x57, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, + 0x5f, 0x44, 0x4f, 0x4e, 0x54, 0x5f, 0x53, 0x50, 0x41, 0x57, 0x4e, 0x5f, 0x45, 0x4e, 0x54, 0x49, + 0x54, 0x49, 0x45, 0x53, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x50, 0x41, 0x57, 0x4e, 0x5f, + 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x48, 0x52, 0x4f, 0x4e, 0x4f, 0x55, + 0x53, 0x5f, 0x53, 0x50, 0x41, 0x57, 0x4e, 0x10, 0x04, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x50, 0x41, + 0x57, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x49, 0x53, 0x5f, 0x49, 0x4e, 0x49, 0x54, + 0x49, 0x41, 0x4c, 0x5f, 0x53, 0x50, 0x41, 0x57, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, + 0x08, 0x12, 0x2b, 0x0a, 0x27, 0x53, 0x50, 0x41, 0x57, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, + 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4f, + 0x4e, 0x4c, 0x59, 0x5f, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x49, 0x45, 0x53, 0x10, 0x10, 0x12, 0x22, + 0x0a, 0x1e, 0x53, 0x50, 0x41, 0x57, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x5f, 0x55, 0x4e, 0x54, 0x49, 0x4c, 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x45, 0x44, + 0x10, 0x40, 0x12, 0x24, 0x0a, 0x1f, 0x53, 0x50, 0x41, 0x57, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, + 0x50, 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x49, 0x4e, 0x47, + 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x80, 0x01, 0x12, 0x27, 0x0a, 0x22, 0x53, 0x50, 0x41, 0x57, + 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x5f, 0x4e, + 0x45, 0x57, 0x5f, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x5f, 0x57, 0x4f, 0x52, 0x4c, 0x44, 0x10, 0x80, + 0x02, 0x42, 0x25, 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x64, 0x6f, 0x74, 0x61, 0x62, 0x75, 0x66, 0x66, 0x2f, 0x6d, 0x61, 0x6e, 0x74, 0x61, 0x2f, 0x64, + 0x6f, 0x74, 0x61, 0x3b, 0x64, 0x6f, 0x74, 0x61, } var ( @@ -2716,7 +2664,7 @@ func file_networkbasetypes_proto_rawDescGZIP() []byte { } var file_networkbasetypes_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_networkbasetypes_proto_msgTypes = make([]protoimpl.MessageInfo, 28) +var file_networkbasetypes_proto_msgTypes = make([]protoimpl.MessageInfo, 27) var file_networkbasetypes_proto_goTypes = []interface{}{ (SignonStateT)(0), // 0: dota.SignonState_t (NET_Messages)(0), // 1: dota.NET_Messages @@ -2732,44 +2680,41 @@ var file_networkbasetypes_proto_goTypes = []interface{}{ (*CMsg_CVars)(nil), // 11: dota.CMsg_CVars (*CNETMsg_NOP)(nil), // 12: dota.CNETMsg_NOP (*CNETMsg_SplitScreenUser)(nil), // 13: dota.CNETMsg_SplitScreenUser - (*CNETMsg_Disconnect_Legacy)(nil), // 14: dota.CNETMsg_Disconnect_Legacy - (*CNETMsg_Tick)(nil), // 15: dota.CNETMsg_Tick - (*CNETMsg_StringCmd)(nil), // 16: dota.CNETMsg_StringCmd - (*CNETMsg_SetConVar)(nil), // 17: dota.CNETMsg_SetConVar - (*CNETMsg_SignonState)(nil), // 18: dota.CNETMsg_SignonState - (*CSVCMsg_GameEvent)(nil), // 19: dota.CSVCMsg_GameEvent - (*CSVCMsgList_GameEvents)(nil), // 20: dota.CSVCMsgList_GameEvents - (*CNETMsg_SpawnGroup_Load)(nil), // 21: dota.CNETMsg_SpawnGroup_Load - (*CNETMsg_SpawnGroup_ManifestUpdate)(nil), // 22: dota.CNETMsg_SpawnGroup_ManifestUpdate - (*CNETMsg_SpawnGroup_SetCreationTick)(nil), // 23: dota.CNETMsg_SpawnGroup_SetCreationTick - (*CNETMsg_SpawnGroup_Unload)(nil), // 24: dota.CNETMsg_SpawnGroup_Unload - (*CNETMsg_SpawnGroup_LoadCompleted)(nil), // 25: dota.CNETMsg_SpawnGroup_LoadCompleted - (*CSVCMsg_GameSessionConfiguration)(nil), // 26: dota.CSVCMsg_GameSessionConfiguration - (*CNETMsg_DebugOverlay)(nil), // 27: dota.CNETMsg_DebugOverlay - (*CMsg_CVars_CVar)(nil), // 28: dota.CMsg_CVars.CVar - (*CSVCMsg_GameEventKeyT)(nil), // 29: dota.CSVCMsg_GameEvent.key_t - (*CSVCMsgList_GameEventsEventT)(nil), // 30: dota.CSVCMsgList_GameEvents.event_t - (ENetworkDisconnectionReason)(0), // 31: dota.ENetworkDisconnectionReason + (*CNETMsg_Tick)(nil), // 14: dota.CNETMsg_Tick + (*CNETMsg_StringCmd)(nil), // 15: dota.CNETMsg_StringCmd + (*CNETMsg_SetConVar)(nil), // 16: dota.CNETMsg_SetConVar + (*CNETMsg_SignonState)(nil), // 17: dota.CNETMsg_SignonState + (*CSVCMsg_GameEvent)(nil), // 18: dota.CSVCMsg_GameEvent + (*CSVCMsgList_GameEvents)(nil), // 19: dota.CSVCMsgList_GameEvents + (*CNETMsg_SpawnGroup_Load)(nil), // 20: dota.CNETMsg_SpawnGroup_Load + (*CNETMsg_SpawnGroup_ManifestUpdate)(nil), // 21: dota.CNETMsg_SpawnGroup_ManifestUpdate + (*CNETMsg_SpawnGroup_SetCreationTick)(nil), // 22: dota.CNETMsg_SpawnGroup_SetCreationTick + (*CNETMsg_SpawnGroup_Unload)(nil), // 23: dota.CNETMsg_SpawnGroup_Unload + (*CNETMsg_SpawnGroup_LoadCompleted)(nil), // 24: dota.CNETMsg_SpawnGroup_LoadCompleted + (*CSVCMsg_GameSessionConfiguration)(nil), // 25: dota.CSVCMsg_GameSessionConfiguration + (*CNETMsg_DebugOverlay)(nil), // 26: dota.CNETMsg_DebugOverlay + (*CMsg_CVars_CVar)(nil), // 27: dota.CMsg_CVars.CVar + (*CSVCMsg_GameEventKeyT)(nil), // 28: dota.CSVCMsg_GameEvent.key_t + (*CSVCMsgList_GameEventsEventT)(nil), // 29: dota.CSVCMsgList_GameEvents.event_t } var file_networkbasetypes_proto_depIdxs = []int32{ 3, // 0: dota.CMsgTransform.position:type_name -> dota.CMsgVector 6, // 1: dota.CMsgTransform.orientation:type_name -> dota.CMsgQuaternion - 28, // 2: dota.CMsg_CVars.cvars:type_name -> dota.CMsg_CVars.CVar - 31, // 3: dota.CNETMsg_Disconnect_Legacy.reason:type_name -> dota.ENetworkDisconnectionReason - 11, // 4: dota.CNETMsg_SetConVar.convars:type_name -> dota.CMsg_CVars - 0, // 5: dota.CNETMsg_SignonState.signon_state:type_name -> dota.SignonState_t - 29, // 6: dota.CSVCMsg_GameEvent.keys:type_name -> dota.CSVCMsg_GameEvent.key_t - 30, // 7: dota.CSVCMsgList_GameEvents.events:type_name -> dota.CSVCMsgList_GameEvents.event_t - 3, // 8: dota.CNETMsg_SpawnGroup_Load.world_offset_pos:type_name -> dota.CMsgVector - 5, // 9: dota.CNETMsg_SpawnGroup_Load.world_offset_angle:type_name -> dota.CMsgQAngle - 3, // 10: dota.CNETMsg_DebugOverlay.vectors:type_name -> dota.CMsgVector - 8, // 11: dota.CNETMsg_DebugOverlay.colors:type_name -> dota.CMsgRGBA - 19, // 12: dota.CSVCMsgList_GameEvents.event_t.event:type_name -> dota.CSVCMsg_GameEvent - 13, // [13:13] is the sub-list for method output_type - 13, // [13:13] 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 + 27, // 2: dota.CMsg_CVars.cvars:type_name -> dota.CMsg_CVars.CVar + 11, // 3: dota.CNETMsg_SetConVar.convars:type_name -> dota.CMsg_CVars + 0, // 4: dota.CNETMsg_SignonState.signon_state:type_name -> dota.SignonState_t + 28, // 5: dota.CSVCMsg_GameEvent.keys:type_name -> dota.CSVCMsg_GameEvent.key_t + 29, // 6: dota.CSVCMsgList_GameEvents.events:type_name -> dota.CSVCMsgList_GameEvents.event_t + 3, // 7: dota.CNETMsg_SpawnGroup_Load.world_offset_pos:type_name -> dota.CMsgVector + 5, // 8: dota.CNETMsg_SpawnGroup_Load.world_offset_angle:type_name -> dota.CMsgQAngle + 3, // 9: dota.CNETMsg_DebugOverlay.vectors:type_name -> dota.CMsgVector + 8, // 10: dota.CNETMsg_DebugOverlay.colors:type_name -> dota.CMsgRGBA + 18, // 11: dota.CSVCMsgList_GameEvents.event_t.event:type_name -> dota.CSVCMsg_GameEvent + 12, // [12:12] is the sub-list for method output_type + 12, // [12:12] is the sub-list for method input_type + 12, // [12:12] is the sub-list for extension type_name + 12, // [12:12] is the sub-list for extension extendee + 0, // [0:12] is the sub-list for field type_name } func init() { file_networkbasetypes_proto_init() } @@ -2912,18 +2857,6 @@ func file_networkbasetypes_proto_init() { } } file_networkbasetypes_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CNETMsg_Disconnect_Legacy); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_networkbasetypes_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CNETMsg_Tick); i { case 0: return &v.state @@ -2935,7 +2868,7 @@ func file_networkbasetypes_proto_init() { return nil } } - file_networkbasetypes_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_networkbasetypes_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CNETMsg_StringCmd); i { case 0: return &v.state @@ -2947,7 +2880,7 @@ func file_networkbasetypes_proto_init() { return nil } } - file_networkbasetypes_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_networkbasetypes_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CNETMsg_SetConVar); i { case 0: return &v.state @@ -2959,7 +2892,7 @@ func file_networkbasetypes_proto_init() { return nil } } - file_networkbasetypes_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_networkbasetypes_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CNETMsg_SignonState); i { case 0: return &v.state @@ -2971,7 +2904,7 @@ func file_networkbasetypes_proto_init() { return nil } } - file_networkbasetypes_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_networkbasetypes_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSVCMsg_GameEvent); i { case 0: return &v.state @@ -2983,7 +2916,7 @@ func file_networkbasetypes_proto_init() { return nil } } - file_networkbasetypes_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_networkbasetypes_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSVCMsgList_GameEvents); i { case 0: return &v.state @@ -2995,7 +2928,7 @@ func file_networkbasetypes_proto_init() { return nil } } - file_networkbasetypes_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_networkbasetypes_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CNETMsg_SpawnGroup_Load); i { case 0: return &v.state @@ -3007,7 +2940,7 @@ func file_networkbasetypes_proto_init() { return nil } } - file_networkbasetypes_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_networkbasetypes_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CNETMsg_SpawnGroup_ManifestUpdate); i { case 0: return &v.state @@ -3019,7 +2952,7 @@ func file_networkbasetypes_proto_init() { return nil } } - file_networkbasetypes_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_networkbasetypes_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CNETMsg_SpawnGroup_SetCreationTick); i { case 0: return &v.state @@ -3031,7 +2964,7 @@ func file_networkbasetypes_proto_init() { return nil } } - file_networkbasetypes_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_networkbasetypes_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CNETMsg_SpawnGroup_Unload); i { case 0: return &v.state @@ -3043,7 +2976,7 @@ func file_networkbasetypes_proto_init() { return nil } } - file_networkbasetypes_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_networkbasetypes_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CNETMsg_SpawnGroup_LoadCompleted); i { case 0: return &v.state @@ -3055,7 +2988,7 @@ func file_networkbasetypes_proto_init() { return nil } } - file_networkbasetypes_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_networkbasetypes_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSVCMsg_GameSessionConfiguration); i { case 0: return &v.state @@ -3067,7 +3000,7 @@ func file_networkbasetypes_proto_init() { return nil } } - file_networkbasetypes_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + file_networkbasetypes_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CNETMsg_DebugOverlay); i { case 0: return &v.state @@ -3079,7 +3012,7 @@ func file_networkbasetypes_proto_init() { return nil } } - file_networkbasetypes_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + file_networkbasetypes_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsg_CVars_CVar); i { case 0: return &v.state @@ -3091,7 +3024,7 @@ func file_networkbasetypes_proto_init() { return nil } } - file_networkbasetypes_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + file_networkbasetypes_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSVCMsg_GameEventKeyT); i { case 0: return &v.state @@ -3103,7 +3036,7 @@ func file_networkbasetypes_proto_init() { return nil } } - file_networkbasetypes_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + file_networkbasetypes_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSVCMsgList_GameEventsEventT); i { case 0: return &v.state @@ -3122,7 +3055,7 @@ func file_networkbasetypes_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_networkbasetypes_proto_rawDesc, NumEnums: 3, - NumMessages: 28, + NumMessages: 27, NumExtensions: 0, NumServices: 0, }, diff --git a/dota/networkbasetypes.proto b/dota/networkbasetypes.proto index cf73290..370d040 100644 --- a/dota/networkbasetypes.proto +++ b/dota/networkbasetypes.proto @@ -110,10 +110,6 @@ message CNETMsg_SplitScreenUser { optional int32 slot = 1; } -message CNETMsg_Disconnect_Legacy { - optional ENetworkDisconnectionReason reason = 2; -} - message CNETMsg_Tick { optional uint32 tick = 1; optional uint32 host_frametime = 2; diff --git a/dota/steammessages_int.pb.go b/dota/steammessages_int.pb.go index 699559a..20a5f81 100644 --- a/dota/steammessages_int.pb.go +++ b/dota/steammessages_int.pb.go @@ -3008,8 +3008,9 @@ type CMsgGCGetAppFriendsList struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Steamid *uint64 `protobuf:"fixed64,1,opt,name=steamid" json:"steamid,omitempty"` - IncludeFriendshipTimestamps *bool `protobuf:"varint,2,opt,name=include_friendship_timestamps,json=includeFriendshipTimestamps" json:"include_friendship_timestamps,omitempty"` + Steamid *uint64 `protobuf:"fixed64,1,opt,name=steamid" json:"steamid,omitempty"` + IncludeFriendshipTimestamps *bool `protobuf:"varint,2,opt,name=include_friendship_timestamps,json=includeFriendshipTimestamps" json:"include_friendship_timestamps,omitempty"` + IncludeFriendsWithNoPlayTime *bool `protobuf:"varint,3,opt,name=include_friends_with_no_play_time,json=includeFriendsWithNoPlayTime" json:"include_friends_with_no_play_time,omitempty"` } func (x *CMsgGCGetAppFriendsList) Reset() { @@ -3058,6 +3059,13 @@ func (x *CMsgGCGetAppFriendsList) GetIncludeFriendshipTimestamps() bool { return false } +func (x *CMsgGCGetAppFriendsList) GetIncludeFriendsWithNoPlayTime() bool { + if x != nil && x.IncludeFriendsWithNoPlayTime != nil { + return *x.IncludeFriendsWithNoPlayTime + } + return false +} + type CMsgGCGetAppFriendsList_Response struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -6901,483 +6909,488 @@ var file_steammessages_int_proto_rawDesc = []byte{ 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x68, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, - 0x68, 0x69, 0x70, 0x22, 0x77, 0x0a, 0x17, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x47, 0x65, 0x74, - 0x41, 0x70, 0x70, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, - 0x0a, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, - 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x12, 0x42, 0x0a, 0x1d, 0x69, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x5f, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x68, 0x69, 0x70, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x1b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x68, - 0x69, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x22, 0xb4, 0x01, 0x0a, - 0x20, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x46, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, - 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x06, 0x52, 0x08, 0x73, - 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x73, 0x12, 0x33, 0x0a, 0x15, 0x66, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x73, 0x68, 0x69, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x07, 0x52, 0x14, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x68, - 0x69, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x12, 0x25, 0x0a, 0x0e, - 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x07, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x22, 0x8f, 0x02, 0x0a, 0x1b, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, - 0x67, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x64, 0x69, - 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, - 0x61, 0x73, 0x74, 0x65, 0x72, 0x44, 0x69, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x39, 0x0a, - 0x03, 0x64, 0x69, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x64, 0x6f, 0x74, - 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x73, 0x74, 0x65, - 0x72, 0x53, 0x65, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x53, 0x75, - 0x62, 0x47, 0x43, 0x52, 0x03, 0x64, 0x69, 0x72, 0x1a, 0x8a, 0x01, 0x0a, 0x05, 0x53, 0x75, 0x62, - 0x47, 0x43, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x69, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x6f, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x62, 0x6f, 0x78, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, - 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, - 0x6d, 0x61, 0x6e, 0x64, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x63, 0x5f, 0x62, - 0x69, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x63, 0x42, - 0x69, 0x6e, 0x61, 0x72, 0x79, 0x22, 0x5a, 0x0a, 0x24, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, - 0x73, 0x67, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x22, 0x47, 0x0a, 0x28, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x57, 0x65, - 0x62, 0x41, 0x50, 0x49, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x6f, - 0x72, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, - 0x09, 0x64, 0x69, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x64, 0x69, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x41, 0x0a, 0x25, 0x43, 0x47, - 0x43, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x65, 0x74, 0x50, 0x75, - 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x54, 0x72, 0x75, 0x73, 0x74, 0x5f, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x22, 0x86, 0x02, - 0x0a, 0x26, 0x43, 0x47, 0x43, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x73, 0x67, 0x5f, 0x47, - 0x65, 0x74, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x54, 0x72, 0x75, 0x73, 0x74, 0x5f, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x1a, 0x68, 0x61, 0x73, 0x5f, - 0x70, 0x72, 0x69, 0x6f, 0x72, 0x5f, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x5f, 0x68, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x68, 0x61, - 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x48, 0x69, - 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x40, 0x0a, 0x1d, 0x68, 0x61, 0x73, 0x5f, 0x6e, 0x6f, 0x5f, - 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, - 0x72, 0x65, 0x73, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x68, 0x61, - 0x73, 0x4e, 0x6f, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, - 0x64, 0x52, 0x65, 0x73, 0x65, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x16, 0x69, 0x73, 0x5f, 0x77, 0x61, - 0x6c, 0x6c, 0x65, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x68, 0x5f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x69, 0x73, 0x57, 0x61, 0x6c, 0x6c, 0x65, - 0x74, 0x43, 0x61, 0x73, 0x68, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x10, - 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x41, 0x6c, 0x6c, 0x54, - 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x22, 0xcf, 0x01, 0x0a, 0x1d, 0x43, 0x4d, 0x73, 0x67, 0x47, - 0x43, 0x48, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x61, 0x63, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x65, 0x61, - 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, - 0x6d, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x74, - 0x69, 0x6d, 0x65, 0x5f, 0x76, 0x61, 0x63, 0x62, 0x61, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x61, - 0x63, 0x62, 0x61, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x73, - 0x5f, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x6e, 0x6f, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0b, 0x69, 0x73, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x4e, 0x6f, 0x77, 0x12, 0x28, - 0x0a, 0x10, 0x69, 0x73, 0x5f, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x74, 0x75, - 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x42, 0x61, 0x6e, 0x6e, - 0x65, 0x64, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x22, 0x37, 0x0a, 0x1b, 0x43, 0x4d, 0x73, 0x67, - 0x47, 0x43, 0x47, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, - 0x64, 0x22, 0xac, 0x01, 0x0a, 0x24, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x47, 0x65, 0x74, 0x50, - 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x69, 0x6e, - 0x6b, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x77, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x77, 0x69, 0x64, 0x12, 0x18, - 0x0a, 0x07, 0x6e, 0x65, 0x78, 0x6f, 0x6e, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x07, 0x6e, 0x65, 0x78, 0x6f, 0x6e, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x61, 0x67, 0x65, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x64, 0x56, 0x65, 0x72, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x61, 0x64, 0x75, 0x6c, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x41, 0x64, 0x75, 0x6c, 0x74, - 0x22, 0x8c, 0x03, 0x0a, 0x11, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x52, 0x6f, 0x75, 0x74, 0x69, - 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x5f, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x64, 0x69, 0x72, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x12, 0x3d, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, - 0x43, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x6f, 0x75, - 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, - 0x6f, 0x64, 0x12, 0x41, 0x0a, 0x08, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, - 0x47, 0x43, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x6f, - 0x75, 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x08, 0x66, 0x61, 0x6c, - 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x21, 0x0a, 0x0c, - 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x22, - 0x8d, 0x01, 0x0a, 0x0d, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x68, 0x6f, - 0x64, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x10, 0x00, 0x12, 0x0b, 0x0a, - 0x07, 0x44, 0x49, 0x53, 0x43, 0x41, 0x52, 0x44, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x4c, - 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x45, 0x41, 0x4d, 0x49, 0x44, 0x10, 0x02, 0x12, 0x19, - 0x0a, 0x15, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x42, 0x55, 0x46, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, - 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x57, 0x45, 0x42, - 0x41, 0x50, 0x49, 0x5f, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x10, 0x04, 0x12, 0x22, 0x0a, 0x1e, 0x57, - 0x45, 0x42, 0x41, 0x50, 0x49, 0x5f, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x5f, 0x53, 0x54, 0x45, 0x41, - 0x4d, 0x49, 0x44, 0x5f, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x49, 0x44, 0x10, 0x05, 0x22, - 0xed, 0x01, 0x0a, 0x1f, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x73, - 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, 0x57, 0x65, 0x62, 0x41, 0x50, 0x49, 0x52, 0x6f, 0x75, 0x74, - 0x69, 0x6e, 0x67, 0x12, 0x45, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, - 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, 0x57, 0x65, - 0x62, 0x41, 0x50, 0x49, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x1a, 0x82, 0x01, 0x0a, 0x05, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, - 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x07, - 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x52, 0x6f, 0x75, 0x74, 0x69, - 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x22, - 0xc5, 0x01, 0x0a, 0x22, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x73, - 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x52, - 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x48, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, - 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, - 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, - 0x67, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, - 0x1a, 0x55, 0x0a, 0x05, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x73, 0x67, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x73, 0x67, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x31, 0x0a, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, - 0x67, 0x47, 0x43, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, - 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x44, 0x0a, 0x28, 0x43, 0x4d, 0x73, 0x67, 0x47, - 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, 0x57, 0x65, 0x62, - 0x41, 0x50, 0x49, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x47, 0x0a, - 0x2b, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, - 0x53, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x6f, 0x75, 0x74, - 0x69, 0x6e, 0x67, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xe0, 0x03, 0x0a, 0x13, 0x43, 0x4d, 0x73, 0x67, 0x47, - 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3a, - 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, - 0x20, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, - 0x53, 0x65, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x52, 0x0a, 0x11, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x67, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, - 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0f, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x4b, - 0x0a, 0x0d, 0x67, 0x63, 0x73, 0x71, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, - 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x47, 0x43, 0x53, 0x51, 0x4c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x67, - 0x63, 0x73, 0x71, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x34, 0x0a, 0x0c, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6c, - 0x6f, 0x77, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x03, 0x6c, 0x6f, 0x77, 0x12, 0x12, 0x0a, - 0x04, 0x68, 0x69, 0x67, 0x68, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x04, 0x68, 0x69, 0x67, - 0x68, 0x22, 0x6e, 0x0a, 0x06, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x14, 0x4e, - 0x4f, 0x54, 0x49, 0x46, 0x59, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, - 0x4f, 0x4e, 0x53, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x5f, - 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x53, 0x10, - 0x01, 0x12, 0x17, 0x0a, 0x13, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x5f, 0x41, 0x43, 0x48, 0x49, - 0x45, 0x56, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x53, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x4e, 0x4f, - 0x54, 0x49, 0x46, 0x59, 0x5f, 0x56, 0x41, 0x43, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, - 0x03, 0x22, 0x46, 0x0a, 0x0c, 0x47, 0x43, 0x53, 0x51, 0x4c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x1a, 0x0a, 0x16, 0x47, 0x43, 0x53, 0x51, 0x4c, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, - 0x4f, 0x4e, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x1a, 0x0a, - 0x16, 0x47, 0x43, 0x53, 0x51, 0x4c, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x42, - 0x4f, 0x4f, 0x4c, 0x54, 0x59, 0x50, 0x45, 0x10, 0x02, 0x22, 0x86, 0x03, 0x0a, 0x14, 0x43, 0x4d, - 0x73, 0x67, 0x47, 0x43, 0x48, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x68, 0x69, 0x70, 0x22, 0xc0, 0x01, 0x0a, 0x17, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x47, 0x65, + 0x74, 0x41, 0x70, 0x70, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, + 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x12, 0x42, 0x0a, 0x1d, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x68, 0x69, 0x70, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x1b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, + 0x68, 0x69, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x12, 0x47, 0x0a, + 0x21, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, + 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6e, 0x6f, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1c, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x50, 0x6c, + 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xb4, 0x01, 0x0a, 0x20, 0x43, 0x4d, 0x73, 0x67, 0x47, + 0x43, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x4c, 0x69, + 0x73, 0x74, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x06, 0x52, 0x08, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, + 0x73, 0x12, 0x33, 0x0a, 0x15, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x68, 0x69, 0x70, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x07, + 0x52, 0x14, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x68, 0x69, 0x70, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x70, + 0x6c, 0x61, 0x79, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x07, 0x52, 0x0d, + 0x6c, 0x61, 0x73, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x22, 0x8f, 0x02, + 0x0a, 0x1b, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x73, 0x74, 0x65, + 0x72, 0x53, 0x65, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x28, 0x0a, + 0x10, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x64, 0x69, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x44, + 0x69, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x39, 0x0a, 0x03, 0x64, 0x69, 0x72, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, + 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, 0x44, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x53, 0x75, 0x62, 0x47, 0x43, 0x52, 0x03, 0x64, + 0x69, 0x72, 0x1a, 0x8a, 0x01, 0x0a, 0x05, 0x53, 0x75, 0x62, 0x47, 0x43, 0x12, 0x1b, 0x0a, 0x09, + 0x64, 0x69, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x64, 0x69, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x62, 0x6f, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x62, 0x6f, 0x78, 0x12, + 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x4c, 0x69, + 0x6e, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x63, 0x5f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x63, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x22, + 0x5a, 0x0a, 0x24, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x73, 0x74, + 0x65, 0x72, 0x53, 0x65, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x47, 0x0a, 0x28, 0x43, + 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x57, 0x65, 0x62, 0x41, 0x50, 0x49, 0x4a, 0x6f, + 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x69, 0x72, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x22, 0x41, 0x0a, 0x25, 0x43, 0x47, 0x43, 0x53, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x65, 0x74, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, + 0x54, 0x72, 0x75, 0x73, 0x74, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, + 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, + 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x22, 0x86, 0x02, 0x0a, 0x26, 0x43, 0x47, 0x43, 0x53, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x65, 0x74, 0x50, 0x75, 0x72, 0x63, + 0x68, 0x61, 0x73, 0x65, 0x54, 0x72, 0x75, 0x73, 0x74, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x1a, 0x68, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x5f, + 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x68, 0x61, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, + 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, + 0x40, 0x0a, 0x1d, 0x68, 0x61, 0x73, 0x5f, 0x6e, 0x6f, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, + 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x68, 0x61, 0x73, 0x4e, 0x6f, 0x52, 0x65, 0x63, + 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x65, 0x74, + 0x73, 0x12, 0x33, 0x0a, 0x16, 0x69, 0x73, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x5f, 0x63, + 0x61, 0x73, 0x68, 0x5f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x13, 0x69, 0x73, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x43, 0x61, 0x73, 0x68, 0x54, + 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x61, + 0x6c, 0x6c, 0x5f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x41, 0x6c, 0x6c, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, + 0x22, 0xcf, 0x01, 0x0a, 0x1d, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x48, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x56, 0x61, 0x63, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, - 0x70, 0x70, 0x49, 0x64, 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, 0x26, 0x0a, 0x0f, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x65, - 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x41, 0x64, 0x64, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x6f, 0x73, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, - 0x12, 0x48, 0x0a, 0x0c, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, - 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, - 0x73, 0x67, 0x47, 0x43, 0x48, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x2e, 0x45, 0x78, 0x74, 0x72, 0x61, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0b, 0x65, - 0x78, 0x74, 0x72, 0x61, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x1a, 0x36, 0x0a, 0x0a, 0x45, 0x78, - 0x74, 0x72, 0x61, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0xb5, 0x02, 0x0a, 0x24, 0x43, 0x4d, 0x73, 0x67, 0x4e, 0x6f, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x53, 0x75, 0x73, 0x70, 0x69, 0x63, 0x69, - 0x6f, 0x75, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x73, + 0x70, 0x70, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x76, 0x61, + 0x63, 0x62, 0x61, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x11, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x63, 0x62, 0x61, 0x6e, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x62, 0x61, 0x6e, 0x6e, 0x65, + 0x64, 0x5f, 0x6e, 0x6f, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x42, + 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x4e, 0x6f, 0x77, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x73, 0x5f, 0x62, + 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x74, 0x75, + 0x72, 0x65, 0x22, 0x37, 0x0a, 0x1b, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x47, 0x65, 0x74, 0x50, + 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x69, 0x6e, + 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x22, 0xac, 0x01, 0x0a, 0x24, + 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x47, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x5f, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x77, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x04, 0x70, 0x77, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x78, 0x6f, + 0x6e, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6e, 0x65, 0x78, 0x6f, 0x6e, + 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x61, 0x67, 0x65, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x1f, + 0x0a, 0x0b, 0x69, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x64, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, + 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x61, 0x64, 0x75, 0x6c, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x07, 0x69, 0x73, 0x41, 0x64, 0x75, 0x6c, 0x74, 0x22, 0x8c, 0x03, 0x0a, 0x11, 0x43, + 0x4d, 0x73, 0x67, 0x47, 0x43, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x08, 0x64, 0x69, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3d, 0x0a, + 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, + 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x52, 0x6f, 0x75, 0x74, 0x69, + 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x41, 0x0a, 0x08, + 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, + 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x52, 0x6f, 0x75, 0x74, + 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x4d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x08, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x12, + 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x65, + 0x62, 0x61, 0x70, 0x69, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x22, 0x8d, 0x01, 0x0a, 0x0d, 0x52, 0x6f, + 0x75, 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x0a, 0x0a, 0x06, 0x52, + 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x49, 0x53, 0x43, 0x41, + 0x52, 0x44, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x53, + 0x54, 0x45, 0x41, 0x4d, 0x49, 0x44, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x52, 0x4f, 0x54, + 0x4f, 0x42, 0x55, 0x46, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x36, + 0x34, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x57, 0x45, 0x42, 0x41, 0x50, 0x49, 0x5f, 0x50, 0x41, + 0x52, 0x41, 0x4d, 0x10, 0x04, 0x12, 0x22, 0x0a, 0x1e, 0x57, 0x45, 0x42, 0x41, 0x50, 0x49, 0x5f, + 0x50, 0x41, 0x52, 0x41, 0x4d, 0x5f, 0x53, 0x54, 0x45, 0x41, 0x4d, 0x49, 0x44, 0x5f, 0x41, 0x43, + 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x49, 0x44, 0x10, 0x05, 0x22, 0xed, 0x01, 0x0a, 0x1f, 0x43, 0x4d, + 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, + 0x57, 0x65, 0x62, 0x41, 0x50, 0x49, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x45, 0x0a, + 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, + 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, + 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, 0x57, 0x65, 0x62, 0x41, 0x50, 0x49, 0x52, 0x6f, + 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, + 0x72, 0x69, 0x65, 0x73, 0x1a, 0x82, 0x01, 0x0a, 0x05, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x25, + 0x0a, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x68, + 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, + 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, + 0x4d, 0x73, 0x67, 0x47, 0x43, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x22, 0xc5, 0x01, 0x0a, 0x22, 0x43, 0x4d, + 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, + 0x12, 0x48, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2e, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, + 0x73, 0x67, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4d, 0x73, 0x67, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x1a, 0x55, 0x0a, 0x05, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x31, + 0x0a, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x52, 0x6f, 0x75, + 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, + 0x67, 0x22, 0x44, 0x0a, 0x28, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, + 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, 0x57, 0x65, 0x62, 0x41, 0x50, 0x49, 0x52, 0x6f, 0x75, + 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x47, 0x0a, 0x2b, 0x43, 0x4d, 0x73, 0x67, 0x47, + 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x22, 0xe0, 0x03, 0x0a, 0x13, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, + 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3a, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x64, 0x6f, 0x74, 0x61, + 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x52, 0x0a, 0x11, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6d, + 0x73, 0x67, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x26, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, + 0x53, 0x65, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, + 0x73, 0x67, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0d, 0x67, 0x63, 0x73, 0x71, + 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x26, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, + 0x53, 0x65, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x47, 0x43, 0x53, 0x51, 0x4c, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x67, 0x63, 0x73, 0x71, 0x6c, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x34, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x02, + 0x28, 0x0d, 0x52, 0x03, 0x6c, 0x6f, 0x77, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x69, 0x67, 0x68, 0x18, + 0x02, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x04, 0x68, 0x69, 0x67, 0x68, 0x22, 0x6e, 0x0a, 0x06, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x14, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x5f, + 0x55, 0x53, 0x45, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x00, 0x12, + 0x1a, 0x0a, 0x16, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, + 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x4e, + 0x4f, 0x54, 0x49, 0x46, 0x59, 0x5f, 0x41, 0x43, 0x48, 0x49, 0x45, 0x56, 0x45, 0x4d, 0x45, 0x4e, + 0x54, 0x53, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x5f, 0x56, + 0x41, 0x43, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x22, 0x46, 0x0a, 0x0c, 0x47, + 0x43, 0x53, 0x51, 0x4c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x16, 0x47, + 0x43, 0x53, 0x51, 0x4c, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x41, 0x53, + 0x45, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x47, 0x43, 0x53, 0x51, 0x4c, + 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x54, 0x59, 0x50, + 0x45, 0x10, 0x02, 0x22, 0x86, 0x03, 0x0a, 0x14, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x48, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, + 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, + 0x73, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 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, 0x26, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x06, 0x52, + 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1f, + 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x12, + 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, + 0x12, 0x17, 0x0a, 0x07, 0x6f, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x06, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x12, 0x48, 0x0a, 0x0c, 0x65, 0x78, + 0x74, 0x72, 0x61, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x48, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x78, 0x74, + 0x72, 0x61, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0b, 0x65, 0x78, 0x74, 0x72, 0x61, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x73, 0x1a, 0x36, 0x0a, 0x0a, 0x45, 0x78, 0x74, 0x72, 0x61, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb5, 0x02, 0x0a, + 0x24, 0x43, 0x4d, 0x73, 0x67, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4f, 0x66, 0x53, 0x75, 0x73, 0x70, 0x69, 0x63, 0x69, 0x6f, 0x75, 0x73, 0x41, 0x63, 0x74, + 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x12, + 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x61, 0x70, 0x70, 0x69, 0x64, 0x12, 0x6f, 0x0a, 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, + 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x40, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x53, 0x75, 0x73, 0x70, 0x69, + 0x63, 0x69, 0x6f, 0x75, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x73, 0x52, 0x11, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x49, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x1a, 0x6c, 0x0a, 0x15, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, + 0x6c, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, + 0x2c, 0x0a, 0x12, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x61, 0x70, 0x70, + 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x0a, + 0x0e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x06, 0x52, 0x0d, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x74, 0x65, 0x61, + 0x6d, 0x69, 0x64, 0x73, 0x22, 0x88, 0x07, 0x0a, 0x16, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x50, 0x50, + 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x54, 0x78, 0x6e, 0x73, 0x12, + 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x61, 0x70, 0x70, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x67, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x42, + 0x0a, 0x07, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x28, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x50, 0x50, 0x61, 0x72, + 0x74, 0x6e, 0x65, 0x72, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x54, 0x78, 0x6e, 0x73, 0x2e, 0x50, 0x61, + 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x70, 0x61, 0x72, 0x74, 0x6e, + 0x65, 0x72, 0x12, 0x50, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, + 0x43, 0x4d, 0x73, 0x67, 0x44, 0x50, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x4d, 0x69, 0x63, + 0x72, 0x6f, 0x54, 0x78, 0x6e, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x4d, 0x69, + 0x63, 0x72, 0x6f, 0x54, 0x78, 0x6e, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x8c, 0x04, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, + 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x54, 0x78, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x69, 0x74, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, 0x6e, 0x69, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x15, 0x0a, 0x06, 0x74, 0x78, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x05, 0x74, 0x78, 0x6e, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x74, + 0x65, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x74, + 0x65, 0x6d, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64, + 0x65, 0x66, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, + 0x64, 0x65, 0x66, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x74, 0x61, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x74, 0x61, 0x78, + 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x75, 0x73, 0x64, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, 0x72, 0x69, 0x63, 0x65, 0x55, 0x73, 0x64, 0x12, 0x17, 0x0a, + 0x07, 0x74, 0x61, 0x78, 0x5f, 0x75, 0x73, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, + 0x74, 0x61, 0x78, 0x55, 0x73, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, + 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, + 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x73, + 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x74, 0x78, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x63, + 0x6f, 0x64, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x67, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x12, 0x20, 0x0a, 0x0c, 0x72, 0x65, 0x66, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x5f, 0x69, + 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x72, 0x65, 0x66, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x49, 0x64, 0x1a, 0x99, 0x01, 0x0a, 0x0b, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, + 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, + 0x89, 0x03, 0x0a, 0x1e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x50, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, + 0x72, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x54, 0x78, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x4f, 0x0a, 0x0a, + 0x65, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2f, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x50, 0x50, 0x61, + 0x72, 0x74, 0x6e, 0x65, 0x72, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x54, 0x78, 0x6e, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, + 0x65, 0x52, 0x0a, 0x65, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x22, 0xfb, 0x01, + 0x0a, 0x0a, 0x45, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x0a, + 0x6b, 0x5f, 0x4d, 0x73, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, + 0x6b, 0x5f, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x41, 0x70, 0x70, 0x49, + 0x44, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x6b, 0x5f, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0x02, + 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, 0x4d, 0x73, 0x67, 0x4e, 0x6f, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x5f, 0x4d, + 0x73, 0x67, 0x53, 0x51, 0x4c, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x10, 0x04, 0x12, 0x1f, + 0x0a, 0x1b, 0x6b, 0x5f, 0x4d, 0x73, 0x67, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x44, 0x69, 0x73, 0x63, 0x72, 0x65, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x10, 0x05, 0x12, + 0x20, 0x0a, 0x1c, 0x6b, 0x5f, 0x4d, 0x73, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, + 0x07, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, 0x4d, 0x73, 0x67, 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64, + 0x79, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x10, 0x08, 0x12, 0x1f, 0x0a, 0x1b, 0x6b, 0x5f, + 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x10, 0x09, 0x22, 0x6f, 0x0a, 0x1c, 0x43, + 0x4d, 0x73, 0x67, 0x47, 0x43, 0x48, 0x56, 0x61, 0x63, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x12, 0x6f, 0x0a, 0x12, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, - 0x4d, 0x73, 0x67, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, - 0x66, 0x53, 0x75, 0x73, 0x70, 0x69, 0x63, 0x69, 0x6f, 0x75, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, - 0x69, 0x74, 0x79, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x47, 0x61, 0x6d, 0x65, - 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x11, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x70, 0x6c, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x1a, 0x6c, 0x0a, 0x15, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x10, 0x61, 0x70, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x65, - 0x61, 0x6d, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x06, 0x52, 0x0d, 0x6f, 0x74, 0x68, - 0x65, 0x72, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x73, 0x22, 0x88, 0x07, 0x0a, 0x16, 0x43, - 0x4d, 0x73, 0x67, 0x44, 0x50, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x4d, 0x69, 0x63, 0x72, - 0x6f, 0x54, 0x78, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x67, - 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x63, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x07, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, - 0x67, 0x44, 0x50, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x54, - 0x78, 0x6e, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x07, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, - 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x50, 0x50, 0x61, 0x72, 0x74, - 0x6e, 0x65, 0x72, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x54, 0x78, 0x6e, 0x73, 0x2e, 0x50, 0x61, 0x72, - 0x74, 0x6e, 0x65, 0x72, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x54, 0x78, 0x6e, 0x52, 0x0c, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x8c, 0x04, 0x0a, 0x0f, 0x50, - 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x54, 0x78, 0x6e, 0x12, 0x1b, - 0x0a, 0x09, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x08, 0x69, 0x6e, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6c, - 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x78, 0x6e, 0x5f, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x78, 0x6e, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6c, - 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, - 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x74, 0x65, 0x6d, - 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, - 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x66, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x65, 0x66, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, - 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x70, - 0x72, 0x69, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x03, 0x74, 0x61, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, - 0x75, 0x73, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, 0x72, 0x69, 0x63, 0x65, - 0x55, 0x73, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x78, 0x5f, 0x75, 0x73, 0x64, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x74, 0x61, 0x78, 0x55, 0x73, 0x64, 0x12, 0x23, 0x0a, 0x0d, - 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x74, 0x78, 0x6e, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x73, 0x74, 0x65, 0x61, 0x6d, - 0x54, 0x78, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, - 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x20, 0x0a, 0x0c, 0x72, 0x65, 0x66, 0x5f, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x72, - 0x65, 0x66, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x64, 0x1a, 0x99, 0x01, 0x0a, 0x0b, 0x50, 0x61, - 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x72, - 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, - 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, - 0x6e, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, - 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x89, 0x03, 0x0a, 0x1e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x50, - 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x54, 0x78, 0x6e, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x12, 0x4f, 0x0a, 0x0a, 0x65, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, - 0x73, 0x67, 0x44, 0x50, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x4d, 0x69, 0x63, 0x72, 0x6f, - 0x54, 0x78, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0a, 0x65, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, - 0x6f, 0x64, 0x65, 0x22, 0xfb, 0x01, 0x0a, 0x0a, 0x45, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x4d, 0x73, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x6b, 0x5f, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x41, 0x70, 0x70, 0x49, 0x44, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x6b, 0x5f, 0x4d, - 0x73, 0x67, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, 0x4d, 0x73, 0x67, 0x4e, - 0x6f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x10, 0x03, 0x12, - 0x13, 0x0a, 0x0f, 0x6b, 0x5f, 0x4d, 0x73, 0x67, 0x53, 0x51, 0x4c, 0x46, 0x61, 0x69, 0x6c, 0x75, - 0x72, 0x65, 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x6b, 0x5f, 0x4d, 0x73, 0x67, 0x50, 0x61, 0x72, - 0x74, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x69, 0x73, 0x63, 0x72, 0x65, 0x70, 0x61, - 0x6e, 0x63, 0x79, 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x6b, 0x5f, 0x4d, 0x73, 0x67, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x46, - 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, 0x4d, 0x73, 0x67, - 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x10, 0x08, - 0x12, 0x1f, 0x0a, 0x1b, 0x6b, 0x5f, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x10, - 0x09, 0x22, 0x6f, 0x0a, 0x1c, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x48, 0x56, 0x61, 0x63, 0x56, - 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, - 0x70, 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x69, - 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x22, 0x7c, 0x0a, 0x1d, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x48, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x77, 0x6f, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x12, 0x14, 0x0a, - 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, - 0x70, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x77, 0x6f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, - 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, - 0x74, 0x77, 0x6f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x22, 0x4d, 0x0a, 0x19, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, - 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x12, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x69, + 0x73, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0a, 0x69, 0x73, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x22, 0x7c, 0x0a, 0x1d, + 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x48, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x77, + 0x6f, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, - 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6c, 0x61, 0x6e, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x63, 0x6c, 0x61, 0x6e, 0x69, 0x64, 0x22, - 0x40, 0x0a, 0x22, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x6c, - 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x5f, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x6d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x6d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x22, 0xda, 0x02, 0x0a, 0x18, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x48, 0x41, 0x70, 0x70, - 0x43, 0x68, 0x65, 0x65, 0x72, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x12, 0x14, - 0x0a, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, - 0x70, 0x70, 0x69, 0x64, 0x12, 0x4f, 0x0a, 0x0d, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x64, 0x6f, - 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x48, 0x41, 0x70, 0x70, 0x43, 0x68, 0x65, - 0x65, 0x72, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x2e, 0x43, 0x68, 0x65, 0x65, - 0x72, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x0c, 0x63, 0x68, 0x65, 0x65, 0x72, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x73, 0x1a, 0x53, 0x0a, 0x0f, 0x43, 0x68, 0x65, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x65, 0x65, - 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x68, - 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x65, 0x65, 0x72, - 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, - 0x68, 0x65, 0x65, 0x72, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x81, 0x01, 0x0a, 0x0b, 0x43, - 0x68, 0x65, 0x65, 0x72, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, - 0x65, 0x65, 0x72, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0b, 0x63, 0x68, 0x65, 0x65, 0x72, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x4f, 0x0a, - 0x0b, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, - 0x48, 0x41, 0x70, 0x70, 0x43, 0x68, 0x65, 0x65, 0x72, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x2e, 0x43, 0x68, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x41, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x52, 0x0a, 0x63, 0x68, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 0x5a, - 0x0a, 0x1f, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x48, 0x41, 0x70, 0x70, 0x43, 0x68, 0x65, 0x65, - 0x72, 0x73, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, - 0x73, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x65, 0x65, 0x72, - 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, - 0x68, 0x65, 0x65, 0x72, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0xfd, 0x02, 0x0a, 0x27, 0x43, - 0x4d, 0x73, 0x67, 0x47, 0x43, 0x48, 0x41, 0x70, 0x70, 0x43, 0x68, 0x65, 0x65, 0x72, 0x73, 0x47, - 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x1b, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, - 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x17, 0x63, 0x68, 0x65, - 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x41, 0x6c, 0x6c, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x12, 0x5c, 0x0a, 0x0c, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x72, 0x65, - 0x6d, 0x61, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x64, 0x6f, 0x74, - 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x48, 0x41, 0x70, 0x70, 0x43, 0x68, 0x65, 0x65, - 0x72, 0x73, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x68, 0x65, 0x65, 0x72, 0x52, - 0x65, 0x6d, 0x61, 0x70, 0x73, 0x52, 0x0b, 0x63, 0x68, 0x65, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x61, - 0x70, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x64, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x61, 0x63, 0x68, - 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x8e, 0x01, 0x0a, 0x0b, 0x43, 0x68, - 0x65, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x61, 0x70, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, - 0x43, 0x68, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, - 0x43, 0x68, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x22, 0xca, 0x03, 0x0a, 0x2b, 0x43, - 0x47, 0x43, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, - 0x73, 0x65, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, - 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x12, 0x38, 0x0a, 0x08, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x64, - 0x6f, 0x74, 0x61, 0x2e, 0x45, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x64, 0x12, 0x29, - 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x1a, 0x0a, - 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x74, 0x65, - 0x6d, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x69, - 0x64, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x74, 0x65, - 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, - 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x65, - 0x67, 0x6f, 0x72, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, - 0x67, 0x6f, 0x72, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x22, 0x62, 0x0a, 0x2c, 0x43, 0x47, 0x43, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x78, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x5f, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, - 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x64, 0x22, 0xbd, 0x01, 0x0a, 0x23, - 0x43, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x68, 0x6f, 0x70, 0x5f, 0x41, 0x64, 0x64, 0x53, 0x70, 0x65, - 0x63, 0x69, 0x61, 0x6c, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x12, 0x2b, 0x0a, + 0x11, 0x74, 0x77, 0x6f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x74, 0x77, 0x6f, 0x66, 0x61, 0x63, + 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x4d, 0x0a, 0x19, 0x43, 0x4d, + 0x73, 0x67, 0x47, 0x43, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, + 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6c, 0x61, 0x6e, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x06, 0x63, 0x6c, 0x61, 0x6e, 0x69, 0x64, 0x22, 0x40, 0x0a, 0x22, 0x43, 0x4d, 0x73, + 0x67, 0x47, 0x43, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x08, 0x69, 0x73, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xda, 0x02, 0x0a, 0x18, + 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x48, 0x41, 0x70, 0x70, 0x43, 0x68, 0x65, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x12, 0x4f, + 0x0a, 0x0d, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, + 0x67, 0x47, 0x43, 0x48, 0x41, 0x70, 0x70, 0x43, 0x68, 0x65, 0x65, 0x72, 0x73, 0x52, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x2e, 0x43, 0x68, 0x65, 0x65, 0x72, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x52, 0x0c, 0x63, 0x68, 0x65, 0x65, 0x72, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x1a, + 0x53, 0x0a, 0x0f, 0x43, 0x68, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x68, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x68, 0x65, 0x65, 0x72, 0x41, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x81, 0x01, 0x0a, 0x0b, 0x43, 0x68, 0x65, 0x65, 0x72, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x68, 0x65, 0x65, + 0x72, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x4f, 0x0a, 0x0b, 0x63, 0x68, 0x65, 0x65, 0x72, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x64, + 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x48, 0x41, 0x70, 0x70, 0x43, 0x68, + 0x65, 0x65, 0x72, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x2e, 0x43, 0x68, 0x65, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0a, 0x63, 0x68, + 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 0x5a, 0x0a, 0x1f, 0x43, 0x4d, 0x73, 0x67, + 0x47, 0x43, 0x48, 0x41, 0x70, 0x70, 0x43, 0x68, 0x65, 0x65, 0x72, 0x73, 0x47, 0x65, 0x74, 0x41, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x61, + 0x70, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x69, + 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x68, 0x65, 0x65, 0x72, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x22, 0xfd, 0x02, 0x0a, 0x27, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x48, + 0x41, 0x70, 0x70, 0x43, 0x68, 0x65, 0x65, 0x72, 0x73, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x6f, + 0x77, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3c, 0x0a, 0x1b, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x5f, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x17, 0x63, 0x68, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, + 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x5c, + 0x0a, 0x0c, 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x6d, 0x61, 0x70, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, + 0x47, 0x43, 0x48, 0x41, 0x70, 0x70, 0x43, 0x68, 0x65, 0x65, 0x72, 0x73, 0x47, 0x65, 0x74, 0x41, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x68, 0x65, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x61, 0x70, 0x73, 0x52, + 0x0b, 0x63, 0x68, 0x65, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x61, 0x70, 0x73, 0x12, 0x25, 0x0a, 0x0e, + 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x61, 0x63, 0x68, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x1a, 0x8e, 0x01, 0x0a, 0x0b, 0x43, 0x68, 0x65, 0x65, 0x72, 0x52, 0x65, 0x6d, + 0x61, 0x70, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, + 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x11, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x43, 0x68, 0x65, 0x65, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x5f, + 0x63, 0x68, 0x65, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x11, 0x72, 0x65, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x43, 0x68, 0x65, 0x65, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, + 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x49, 0x64, 0x73, 0x22, 0xca, 0x03, 0x0a, 0x2b, 0x43, 0x47, 0x43, 0x53, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x78, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x5f, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, + 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, + 0x61, 0x6d, 0x69, 0x64, 0x12, 0x38, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x45, 0x4d, + 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x18, + 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x69, 0x64, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x69, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x69, + 0x74, 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x74, 0x65, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, + 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, + 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x21, + 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x22, 0x62, 0x0a, 0x2c, 0x43, 0x47, 0x43, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x73, + 0x67, 0x5f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x06, 0x52, 0x07, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x69, 0x64, 0x22, 0xbd, 0x01, 0x0a, 0x23, 0x43, 0x57, 0x6f, 0x72, 0x6b, 0x73, + 0x68, 0x6f, 0x70, 0x5f, 0x41, 0x64, 0x64, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x50, 0x61, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, + 0x70, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x61, 0x6d, 0x65, 0x69, 0x74, 0x65, 0x6d, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x67, 0x61, 0x6d, 0x65, 0x69, 0x74, 0x65, + 0x6d, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x5f, 0x75, 0x73, 0x5f, 0x75, 0x73, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x55, 0x73, 0x64, 0x12, 0x26, 0x0a, + 0x0f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x77, 0x5f, 0x75, 0x73, 0x64, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x6f, 0x77, 0x55, 0x73, 0x64, 0x22, 0x26, 0x0a, 0x24, 0x43, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x68, + 0x6f, 0x70, 0x5f, 0x41, 0x64, 0x64, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x50, 0x61, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x70, 0x0a, + 0x24, 0x43, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x68, 0x6f, 0x70, 0x5f, 0x47, 0x65, 0x74, 0x53, 0x70, + 0x65, 0x63, 0x69, 0x61, 0x6c, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x67, + 0x61, 0x6d, 0x65, 0x69, 0x74, 0x65, 0x6d, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0a, 0x67, 0x61, 0x6d, 0x65, 0x69, 0x74, 0x65, 0x6d, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x22, + 0xc7, 0x02, 0x0a, 0x25, 0x43, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x68, 0x6f, 0x70, 0x5f, 0x47, 0x65, + 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x10, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x57, 0x6f, 0x72, 0x6b, + 0x73, 0x68, 0x6f, 0x70, 0x5f, 0x47, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x50, + 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x0f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x1a, 0xb6, 0x01, 0x0a, 0x0e, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x50, 0x61, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x61, 0x6d, 0x65, 0x69, 0x74, 0x65, 0x6d, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x67, 0x61, 0x6d, 0x65, 0x69, 0x74, 0x65, 0x6d, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, - 0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x75, 0x73, 0x5f, 0x75, 0x73, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x73, - 0x55, 0x73, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, - 0x6f, 0x77, 0x5f, 0x75, 0x73, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x70, 0x61, - 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x77, 0x55, 0x73, 0x64, 0x22, 0x26, 0x0a, 0x24, 0x43, - 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x68, 0x6f, 0x70, 0x5f, 0x41, 0x64, 0x64, 0x53, 0x70, 0x65, 0x63, - 0x69, 0x61, 0x6c, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x70, 0x0a, 0x24, 0x43, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x68, 0x6f, 0x70, - 0x5f, 0x47, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x50, 0x61, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x61, - 0x70, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x69, - 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x61, 0x6d, 0x65, 0x69, 0x74, 0x65, 0x6d, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x67, 0x61, 0x6d, 0x65, 0x69, 0x74, 0x65, 0x6d, 0x69, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x64, 0x61, 0x74, 0x65, 0x22, 0xc7, 0x02, 0x0a, 0x25, 0x43, 0x57, 0x6f, 0x72, 0x6b, 0x73, - 0x68, 0x6f, 0x70, 0x5f, 0x47, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x50, 0x61, - 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x65, 0x0a, 0x10, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x64, 0x6f, 0x74, 0x61, - 0x2e, 0x43, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x68, 0x6f, 0x70, 0x5f, 0x47, 0x65, 0x74, 0x53, 0x70, - 0x65, 0x63, 0x69, 0x61, 0x6c, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x50, 0x61, - 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x50, 0x61, - 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0xb6, 0x01, 0x0a, 0x0e, 0x53, 0x70, 0x65, 0x63, 0x69, - 0x61, 0x6c, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x12, - 0x1e, 0x0a, 0x0a, 0x67, 0x61, 0x6d, 0x65, 0x69, 0x74, 0x65, 0x6d, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x67, 0x61, 0x6d, 0x65, 0x69, 0x74, 0x65, 0x6d, 0x69, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x65, 0x12, 0x2b, 0x0a, 0x12, 0x6e, 0x65, 0x74, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x5f, 0x75, 0x73, 0x5f, 0x75, 0x73, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0f, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x55, 0x73, 0x64, - 0x12, 0x2d, 0x0a, 0x13, 0x6e, 0x65, 0x74, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, - 0x72, 0x6f, 0x77, 0x5f, 0x75, 0x73, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x6e, - 0x65, 0x74, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x77, 0x55, 0x73, 0x64, 0x2a, - 0x93, 0x01, 0x0a, 0x16, 0x45, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x20, 0x6b, 0x5f, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x12, 0x2b, 0x0a, + 0x12, 0x6e, 0x65, 0x74, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x75, 0x73, 0x5f, + 0x75, 0x73, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x6e, 0x65, 0x74, 0x50, 0x61, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x55, 0x73, 0x64, 0x12, 0x2d, 0x0a, 0x13, 0x6e, 0x65, + 0x74, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x77, 0x5f, 0x75, 0x73, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x77, 0x55, 0x73, 0x64, 0x2a, 0x93, 0x01, 0x0a, 0x16, 0x45, 0x4d, + 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x20, 0x6b, 0x5f, 0x45, 0x4d, 0x6f, 0x62, 0x69, 0x6c, + 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x5f, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x00, 0x12, 0x27, 0x0a, 0x23, 0x6b, 0x5f, 0x45, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x00, - 0x12, 0x27, 0x0a, 0x23, 0x6b, 0x5f, 0x45, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x47, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x10, 0x01, 0x12, 0x2a, 0x0a, 0x26, 0x6b, 0x5f, 0x45, - 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x41, 0x70, 0x70, 0x53, 0x74, - 0x6f, 0x72, 0x65, 0x10, 0x02, 0x42, 0x25, 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x62, 0x75, 0x66, 0x66, 0x2f, 0x6d, 0x61, 0x6e, - 0x74, 0x61, 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x3b, 0x64, 0x6f, 0x74, 0x61, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x50, 0x6c, 0x61, + 0x79, 0x10, 0x01, 0x12, 0x2a, 0x0a, 0x26, 0x6b, 0x5f, 0x45, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, + 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, + 0x41, 0x70, 0x70, 0x6c, 0x65, 0x41, 0x70, 0x70, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x10, 0x02, 0x42, + 0x25, 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x6f, + 0x74, 0x61, 0x62, 0x75, 0x66, 0x66, 0x2f, 0x6d, 0x61, 0x6e, 0x74, 0x61, 0x2f, 0x64, 0x6f, 0x74, + 0x61, 0x3b, 0x64, 0x6f, 0x74, 0x61, } var ( diff --git a/dota/steammessages_int.proto b/dota/steammessages_int.proto index b29764e..1316226 100644 --- a/dota/steammessages_int.proto +++ b/dota/steammessages_int.proto @@ -321,6 +321,7 @@ message CMsgGCCheckFriendship_Response { message CMsgGCGetAppFriendsList { optional fixed64 steamid = 1; optional bool include_friendship_timestamps = 2; + optional bool include_friends_with_no_play_time = 3; } message CMsgGCGetAppFriendsList_Response { diff --git a/dota/te.pb.go b/dota/te.pb.go index 956c3f1..dd05493 100644 --- a/dota/te.pb.go +++ b/dota/te.pb.go @@ -1686,17 +1686,20 @@ type CMsgTEExplosion struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Origin *CMsgVector `protobuf:"bytes,1,opt,name=origin" json:"origin,omitempty"` - Framerate *uint32 `protobuf:"varint,2,opt,name=framerate" json:"framerate,omitempty"` - Flags *uint32 `protobuf:"varint,3,opt,name=flags" json:"flags,omitempty"` - Normal *CMsgVector `protobuf:"bytes,4,opt,name=normal" json:"normal,omitempty"` - Materialtype *uint32 `protobuf:"varint,5,opt,name=materialtype" json:"materialtype,omitempty"` - Radius *uint32 `protobuf:"varint,6,opt,name=radius" json:"radius,omitempty"` - Magnitude *uint32 `protobuf:"varint,7,opt,name=magnitude" json:"magnitude,omitempty"` - Scale *float32 `protobuf:"fixed32,8,opt,name=scale" json:"scale,omitempty"` - AffectRagdolls *bool `protobuf:"varint,9,opt,name=affect_ragdolls,json=affectRagdolls" json:"affect_ragdolls,omitempty"` - EffectName *string `protobuf:"bytes,10,opt,name=effect_name,json=effectName" json:"effect_name,omitempty"` - ExplosionType *uint32 `protobuf:"varint,11,opt,name=explosion_type,json=explosionType" json:"explosion_type,omitempty"` + Origin *CMsgVector `protobuf:"bytes,1,opt,name=origin" json:"origin,omitempty"` + Framerate *uint32 `protobuf:"varint,2,opt,name=framerate" json:"framerate,omitempty"` + Flags *uint32 `protobuf:"varint,3,opt,name=flags" json:"flags,omitempty"` + Normal *CMsgVector `protobuf:"bytes,4,opt,name=normal" json:"normal,omitempty"` + Materialtype *uint32 `protobuf:"varint,5,opt,name=materialtype" json:"materialtype,omitempty"` + Radius *uint32 `protobuf:"varint,6,opt,name=radius" json:"radius,omitempty"` + Magnitude *uint32 `protobuf:"varint,7,opt,name=magnitude" json:"magnitude,omitempty"` + Scale *float32 `protobuf:"fixed32,8,opt,name=scale" json:"scale,omitempty"` + AffectRagdolls *bool `protobuf:"varint,9,opt,name=affect_ragdolls,json=affectRagdolls" json:"affect_ragdolls,omitempty"` + EffectName *string `protobuf:"bytes,10,opt,name=effect_name,json=effectName" json:"effect_name,omitempty"` + ExplosionType *uint32 `protobuf:"varint,11,opt,name=explosion_type,json=explosionType" json:"explosion_type,omitempty"` + CreateDebris *bool `protobuf:"varint,12,opt,name=create_debris,json=createDebris" json:"create_debris,omitempty"` + DebrisOrigin *CMsgVector `protobuf:"bytes,13,opt,name=debris_origin,json=debrisOrigin" json:"debris_origin,omitempty"` + DebrisSurfaceprop *uint32 `protobuf:"fixed32,14,opt,name=debris_surfaceprop,json=debrisSurfaceprop" json:"debris_surfaceprop,omitempty"` } func (x *CMsgTEExplosion) Reset() { @@ -1808,6 +1811,27 @@ func (x *CMsgTEExplosion) GetExplosionType() uint32 { return 0 } +func (x *CMsgTEExplosion) GetCreateDebris() bool { + if x != nil && x.CreateDebris != nil { + return *x.CreateDebris + } + return false +} + +func (x *CMsgTEExplosion) GetDebrisOrigin() *CMsgVector { + if x != nil { + return x.DebrisOrigin + } + return nil +} + +func (x *CMsgTEExplosion) GetDebrisSurfaceprop() uint32 { + if x != nil && x.DebrisSurfaceprop != nil { + return *x.DebrisSurfaceprop + } + return 0 +} + type CMsgTEDust struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2628,7 +2652,7 @@ var file_te_proto_rawDesc = []byte{ 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x07, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x61, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xfa, 0x02, 0x0a, 0x0f, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x45, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x04, 0x0a, 0x0f, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x45, 0x78, 0x70, 0x6c, 0x6f, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, @@ -2652,129 +2676,138 @@ var file_te_proto_rawDesc = []byte{ 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x90, 0x01, 0x0a, 0x0a, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x44, 0x75, 0x73, 0x74, - 0x12, 0x28, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, - 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, - 0x70, 0x65, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, - 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x59, 0x0a, 0x11, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x4c, 0x61, - 0x72, 0x67, 0x65, 0x46, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x06, 0x6f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, - 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x64, 0x22, - 0x9e, 0x01, 0x0a, 0x0c, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x73, - 0x12, 0x28, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, - 0x67, 0x6e, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, - 0x61, 0x67, 0x6e, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x12, 0x2e, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0xd4, 0x03, 0x0a, 0x11, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x50, 0x68, 0x79, 0x73, 0x69, - 0x63, 0x73, 0x50, 0x72, 0x6f, 0x70, 0x12, 0x28, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, - 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, - 0x12, 0x2c, 0x0a, 0x08, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, + 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x65, 0x62, 0x72, + 0x69, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x44, 0x65, 0x62, 0x72, 0x69, 0x73, 0x12, 0x35, 0x0a, 0x0d, 0x64, 0x65, 0x62, 0x72, 0x69, 0x73, + 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, + 0x0c, 0x64, 0x65, 0x62, 0x72, 0x69, 0x73, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x2d, 0x0a, + 0x12, 0x64, 0x65, 0x62, 0x72, 0x69, 0x73, 0x5f, 0x73, 0x75, 0x72, 0x66, 0x61, 0x63, 0x65, 0x70, + 0x72, 0x6f, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x07, 0x52, 0x11, 0x64, 0x65, 0x62, 0x72, 0x69, + 0x73, 0x53, 0x75, 0x72, 0x66, 0x61, 0x63, 0x65, 0x70, 0x72, 0x6f, 0x70, 0x22, 0x90, 0x01, 0x0a, + 0x0a, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x44, 0x75, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x06, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, + 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x65, + 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x12, + 0x2e, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x12, 0x28, - 0x0a, 0x06, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, - 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x51, 0x41, 0x6e, 0x67, 0x6c, 0x65, - 0x52, 0x06, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x07, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, - 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, - 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x07, 0x52, 0x05, 0x63, 0x6f, 0x6c, - 0x6f, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x12, 0x3f, 0x0a, 0x1b, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x62, 0x72, 0x65, - 0x61, 0x6b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x6e, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x61, 0x6b, - 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1a, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x42, - 0x72, 0x65, 0x61, 0x6b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x6e, 0x6f, 0x74, 0x74, 0x6f, 0x6d, - 0x61, 0x6b, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x02, 0x52, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x06, 0x64, 0x6d, 0x67, - 0x70, 0x6f, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, - 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x64, 0x6d, 0x67, - 0x70, 0x6f, 0x73, 0x12, 0x28, 0x0a, 0x06, 0x64, 0x6d, 0x67, 0x64, 0x69, 0x72, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x64, 0x6d, 0x67, 0x64, 0x69, 0x72, 0x12, 0x18, 0x0a, - 0x07, 0x64, 0x6d, 0x67, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x64, 0x6d, 0x67, 0x74, 0x79, 0x70, 0x65, 0x22, 0x6d, 0x0a, 0x11, 0x43, 0x4d, 0x73, 0x67, 0x54, - 0x45, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x06, - 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, - 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, - 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x16, - 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x22, 0x9c, 0x01, 0x0a, 0x14, 0x43, 0x4d, 0x73, 0x67, 0x54, - 0x45, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x12, - 0x28, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x28, 0x0a, 0x06, 0x61, 0x6e, 0x67, - 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, + 0x63, 0x74, 0x6f, 0x72, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x59, 0x0a, 0x11, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x4c, 0x61, 0x72, 0x67, 0x65, 0x46, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, + 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x1a, + 0x0a, 0x08, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x08, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x64, 0x22, 0x9e, 0x01, 0x0a, 0x0c, 0x43, + 0x4d, 0x73, 0x67, 0x54, 0x45, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x73, 0x12, 0x28, 0x0a, 0x06, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, + 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x67, 0x6e, 0x69, 0x74, 0x75, + 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x61, 0x67, 0x6e, 0x69, 0x74, + 0x75, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x2e, 0x0a, 0x09, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, + 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xd4, 0x03, 0x0a, 0x11, + 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x50, 0x68, 0x79, 0x73, 0x69, 0x63, 0x73, 0x50, 0x72, 0x6f, + 0x70, 0x12, 0x28, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x2c, 0x0a, 0x08, 0x76, + 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, + 0x08, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x12, 0x28, 0x0a, 0x06, 0x61, 0x6e, 0x67, + 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x51, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x06, 0x61, 0x6e, 0x67, - 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x64, 0x69, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x4d, 0x0a, 0x0b, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x53, - 0x6d, 0x6f, 0x6b, 0x65, 0x12, 0x28, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, + 0x6c, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x07, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x18, 0x0a, + 0x07, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x07, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x1e, 0x0a, + 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x06, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3f, 0x0a, + 0x1b, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x73, 0x6e, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x61, 0x6b, 0x65, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x1a, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x6d, + 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x6e, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x61, 0x6b, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, + 0x63, 0x61, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x06, 0x64, 0x6d, 0x67, 0x70, 0x6f, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, - 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x14, - 0x0a, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, - 0x63, 0x61, 0x6c, 0x65, 0x22, 0x7c, 0x0a, 0x10, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x57, 0x6f, - 0x72, 0x6c, 0x64, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, - 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x12, 0x28, 0x0a, 0x06, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x2a, 0xbd, 0x04, 0x0a, 0x0e, 0x45, 0x54, 0x45, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x49, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x13, 0x54, 0x45, 0x5f, 0x45, 0x66, 0x66, 0x65, - 0x63, 0x74, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x10, 0x90, 0x03, 0x12, - 0x17, 0x0a, 0x12, 0x54, 0x45, 0x5f, 0x41, 0x72, 0x6d, 0x6f, 0x72, 0x52, 0x69, 0x63, 0x6f, 0x63, - 0x68, 0x65, 0x74, 0x49, 0x64, 0x10, 0x91, 0x03, 0x12, 0x16, 0x0a, 0x11, 0x54, 0x45, 0x5f, 0x42, - 0x65, 0x61, 0x6d, 0x45, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x10, 0x92, 0x03, - 0x12, 0x12, 0x0a, 0x0d, 0x54, 0x45, 0x5f, 0x42, 0x65, 0x61, 0x6d, 0x45, 0x6e, 0x74, 0x73, 0x49, - 0x64, 0x10, 0x93, 0x03, 0x12, 0x14, 0x0a, 0x0f, 0x54, 0x45, 0x5f, 0x42, 0x65, 0x61, 0x6d, 0x50, - 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x49, 0x64, 0x10, 0x94, 0x03, 0x12, 0x12, 0x0a, 0x0d, 0x54, 0x45, - 0x5f, 0x42, 0x65, 0x61, 0x6d, 0x52, 0x69, 0x6e, 0x67, 0x49, 0x64, 0x10, 0x95, 0x03, 0x12, 0x12, - 0x0a, 0x0d, 0x54, 0x45, 0x5f, 0x42, 0x53, 0x50, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x10, - 0x97, 0x03, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x45, 0x5f, 0x42, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x73, - 0x49, 0x64, 0x10, 0x98, 0x03, 0x12, 0x15, 0x0a, 0x10, 0x54, 0x45, 0x5f, 0x42, 0x75, 0x62, 0x62, - 0x6c, 0x65, 0x54, 0x72, 0x61, 0x69, 0x6c, 0x49, 0x64, 0x10, 0x99, 0x03, 0x12, 0x0f, 0x0a, 0x0a, - 0x54, 0x45, 0x5f, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x10, 0x9a, 0x03, 0x12, 0x14, 0x0a, - 0x0f, 0x54, 0x45, 0x5f, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x49, 0x64, - 0x10, 0x9b, 0x03, 0x12, 0x16, 0x0a, 0x11, 0x54, 0x45, 0x5f, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, - 0x53, 0x70, 0x6c, 0x61, 0x73, 0x68, 0x49, 0x64, 0x10, 0x9c, 0x03, 0x12, 0x0e, 0x0a, 0x09, 0x54, - 0x45, 0x5f, 0x46, 0x69, 0x7a, 0x7a, 0x49, 0x64, 0x10, 0x9d, 0x03, 0x12, 0x18, 0x0a, 0x13, 0x54, - 0x45, 0x5f, 0x53, 0x68, 0x61, 0x74, 0x74, 0x65, 0x72, 0x53, 0x75, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x49, 0x64, 0x10, 0x9e, 0x03, 0x12, 0x14, 0x0a, 0x0f, 0x54, 0x45, 0x5f, 0x47, 0x6c, 0x6f, 0x77, - 0x53, 0x70, 0x72, 0x69, 0x74, 0x65, 0x49, 0x64, 0x10, 0x9f, 0x03, 0x12, 0x10, 0x0a, 0x0b, 0x54, - 0x45, 0x5f, 0x49, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x49, 0x64, 0x10, 0xa0, 0x03, 0x12, 0x15, 0x0a, - 0x10, 0x54, 0x45, 0x5f, 0x4d, 0x75, 0x7a, 0x7a, 0x6c, 0x65, 0x46, 0x6c, 0x61, 0x73, 0x68, 0x49, - 0x64, 0x10, 0xa1, 0x03, 0x12, 0x15, 0x0a, 0x10, 0x54, 0x45, 0x5f, 0x42, 0x6c, 0x6f, 0x6f, 0x64, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x10, 0xa2, 0x03, 0x12, 0x13, 0x0a, 0x0e, 0x54, - 0x45, 0x5f, 0x45, 0x78, 0x70, 0x6c, 0x6f, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x10, 0xa3, 0x03, - 0x12, 0x0e, 0x0a, 0x09, 0x54, 0x45, 0x5f, 0x44, 0x75, 0x73, 0x74, 0x49, 0x64, 0x10, 0xa4, 0x03, - 0x12, 0x15, 0x0a, 0x10, 0x54, 0x45, 0x5f, 0x4c, 0x61, 0x72, 0x67, 0x65, 0x46, 0x75, 0x6e, 0x6e, - 0x65, 0x6c, 0x49, 0x64, 0x10, 0xa5, 0x03, 0x12, 0x10, 0x0a, 0x0b, 0x54, 0x45, 0x5f, 0x53, 0x70, - 0x61, 0x72, 0x6b, 0x73, 0x49, 0x64, 0x10, 0xa6, 0x03, 0x12, 0x15, 0x0a, 0x10, 0x54, 0x45, 0x5f, - 0x50, 0x68, 0x79, 0x73, 0x69, 0x63, 0x73, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x64, 0x10, 0xa7, 0x03, - 0x12, 0x15, 0x0a, 0x10, 0x54, 0x45, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x65, 0x63, - 0x61, 0x6c, 0x49, 0x64, 0x10, 0xa8, 0x03, 0x12, 0x18, 0x0a, 0x13, 0x54, 0x45, 0x5f, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x10, 0xa9, - 0x03, 0x12, 0x0f, 0x0a, 0x0a, 0x54, 0x45, 0x5f, 0x53, 0x6d, 0x6f, 0x6b, 0x65, 0x49, 0x64, 0x10, - 0xaa, 0x03, 0x42, 0x25, 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x62, 0x75, 0x66, 0x66, 0x2f, 0x6d, 0x61, 0x6e, 0x74, 0x61, 0x2f, - 0x64, 0x6f, 0x74, 0x61, 0x3b, 0x64, 0x6f, 0x74, 0x61, + 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x64, 0x6d, 0x67, 0x70, 0x6f, 0x73, 0x12, 0x28, + 0x0a, 0x06, 0x64, 0x6d, 0x67, 0x64, 0x69, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, + 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x52, 0x06, 0x64, 0x6d, 0x67, 0x64, 0x69, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x6d, 0x67, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x64, 0x6d, 0x67, 0x74, 0x79, + 0x70, 0x65, 0x22, 0x6d, 0x0a, 0x11, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, + 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x22, 0x9c, 0x01, 0x0a, 0x14, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x06, 0x6f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, + 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x12, 0x28, 0x0a, 0x06, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, + 0x51, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x06, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x12, 0x14, + 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x22, 0x4d, 0x0a, 0x0b, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x53, 0x6d, 0x6f, 0x6b, 0x65, 0x12, + 0x28, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x61, + 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x22, + 0x7c, 0x0a, 0x10, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x44, 0x65, + 0x63, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x28, 0x0a, + 0x06, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, + 0x06, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2a, 0xbd, 0x04, + 0x0a, 0x0e, 0x45, 0x54, 0x45, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x49, 0x64, 0x73, + 0x12, 0x18, 0x0a, 0x13, 0x54, 0x45, 0x5f, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x44, 0x69, 0x73, + 0x70, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x10, 0x90, 0x03, 0x12, 0x17, 0x0a, 0x12, 0x54, 0x45, + 0x5f, 0x41, 0x72, 0x6d, 0x6f, 0x72, 0x52, 0x69, 0x63, 0x6f, 0x63, 0x68, 0x65, 0x74, 0x49, 0x64, + 0x10, 0x91, 0x03, 0x12, 0x16, 0x0a, 0x11, 0x54, 0x45, 0x5f, 0x42, 0x65, 0x61, 0x6d, 0x45, 0x6e, + 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x10, 0x92, 0x03, 0x12, 0x12, 0x0a, 0x0d, 0x54, + 0x45, 0x5f, 0x42, 0x65, 0x61, 0x6d, 0x45, 0x6e, 0x74, 0x73, 0x49, 0x64, 0x10, 0x93, 0x03, 0x12, + 0x14, 0x0a, 0x0f, 0x54, 0x45, 0x5f, 0x42, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, + 0x49, 0x64, 0x10, 0x94, 0x03, 0x12, 0x12, 0x0a, 0x0d, 0x54, 0x45, 0x5f, 0x42, 0x65, 0x61, 0x6d, + 0x52, 0x69, 0x6e, 0x67, 0x49, 0x64, 0x10, 0x95, 0x03, 0x12, 0x12, 0x0a, 0x0d, 0x54, 0x45, 0x5f, + 0x42, 0x53, 0x50, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x10, 0x97, 0x03, 0x12, 0x11, 0x0a, + 0x0c, 0x54, 0x45, 0x5f, 0x42, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x73, 0x49, 0x64, 0x10, 0x98, 0x03, + 0x12, 0x15, 0x0a, 0x10, 0x54, 0x45, 0x5f, 0x42, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, + 0x69, 0x6c, 0x49, 0x64, 0x10, 0x99, 0x03, 0x12, 0x0f, 0x0a, 0x0a, 0x54, 0x45, 0x5f, 0x44, 0x65, + 0x63, 0x61, 0x6c, 0x49, 0x64, 0x10, 0x9a, 0x03, 0x12, 0x14, 0x0a, 0x0f, 0x54, 0x45, 0x5f, 0x57, + 0x6f, 0x72, 0x6c, 0x64, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x10, 0x9b, 0x03, 0x12, 0x16, + 0x0a, 0x11, 0x54, 0x45, 0x5f, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x53, 0x70, 0x6c, 0x61, 0x73, + 0x68, 0x49, 0x64, 0x10, 0x9c, 0x03, 0x12, 0x0e, 0x0a, 0x09, 0x54, 0x45, 0x5f, 0x46, 0x69, 0x7a, + 0x7a, 0x49, 0x64, 0x10, 0x9d, 0x03, 0x12, 0x18, 0x0a, 0x13, 0x54, 0x45, 0x5f, 0x53, 0x68, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x53, 0x75, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x10, 0x9e, 0x03, + 0x12, 0x14, 0x0a, 0x0f, 0x54, 0x45, 0x5f, 0x47, 0x6c, 0x6f, 0x77, 0x53, 0x70, 0x72, 0x69, 0x74, + 0x65, 0x49, 0x64, 0x10, 0x9f, 0x03, 0x12, 0x10, 0x0a, 0x0b, 0x54, 0x45, 0x5f, 0x49, 0x6d, 0x70, + 0x61, 0x63, 0x74, 0x49, 0x64, 0x10, 0xa0, 0x03, 0x12, 0x15, 0x0a, 0x10, 0x54, 0x45, 0x5f, 0x4d, + 0x75, 0x7a, 0x7a, 0x6c, 0x65, 0x46, 0x6c, 0x61, 0x73, 0x68, 0x49, 0x64, 0x10, 0xa1, 0x03, 0x12, + 0x15, 0x0a, 0x10, 0x54, 0x45, 0x5f, 0x42, 0x6c, 0x6f, 0x6f, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x49, 0x64, 0x10, 0xa2, 0x03, 0x12, 0x13, 0x0a, 0x0e, 0x54, 0x45, 0x5f, 0x45, 0x78, 0x70, + 0x6c, 0x6f, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x10, 0xa3, 0x03, 0x12, 0x0e, 0x0a, 0x09, 0x54, + 0x45, 0x5f, 0x44, 0x75, 0x73, 0x74, 0x49, 0x64, 0x10, 0xa4, 0x03, 0x12, 0x15, 0x0a, 0x10, 0x54, + 0x45, 0x5f, 0x4c, 0x61, 0x72, 0x67, 0x65, 0x46, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x10, + 0xa5, 0x03, 0x12, 0x10, 0x0a, 0x0b, 0x54, 0x45, 0x5f, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x73, 0x49, + 0x64, 0x10, 0xa6, 0x03, 0x12, 0x15, 0x0a, 0x10, 0x54, 0x45, 0x5f, 0x50, 0x68, 0x79, 0x73, 0x69, + 0x63, 0x73, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x64, 0x10, 0xa7, 0x03, 0x12, 0x15, 0x0a, 0x10, 0x54, + 0x45, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x10, + 0xa8, 0x03, 0x12, 0x18, 0x0a, 0x13, 0x54, 0x45, 0x5f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x10, 0xa9, 0x03, 0x12, 0x0f, 0x0a, 0x0a, + 0x54, 0x45, 0x5f, 0x53, 0x6d, 0x6f, 0x6b, 0x65, 0x49, 0x64, 0x10, 0xaa, 0x03, 0x42, 0x25, 0x5a, + 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x6f, 0x74, 0x61, + 0x62, 0x75, 0x66, 0x66, 0x2f, 0x6d, 0x61, 0x6e, 0x74, 0x61, 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x3b, + 0x64, 0x6f, 0x74, 0x61, } var ( @@ -2864,27 +2897,28 @@ var file_te_proto_depIdxs = []int32{ 29, // 36: dota.CMsgTEBloodStream.direction:type_name -> dota.CMsgVector 29, // 37: dota.CMsgTEExplosion.origin:type_name -> dota.CMsgVector 29, // 38: dota.CMsgTEExplosion.normal:type_name -> dota.CMsgVector - 29, // 39: dota.CMsgTEDust.origin:type_name -> dota.CMsgVector - 29, // 40: dota.CMsgTEDust.direction:type_name -> dota.CMsgVector - 29, // 41: dota.CMsgTELargeFunnel.origin:type_name -> dota.CMsgVector - 29, // 42: dota.CMsgTESparks.origin:type_name -> dota.CMsgVector - 29, // 43: dota.CMsgTESparks.direction:type_name -> dota.CMsgVector - 29, // 44: dota.CMsgTEPhysicsProp.origin:type_name -> dota.CMsgVector - 29, // 45: dota.CMsgTEPhysicsProp.velocity:type_name -> dota.CMsgVector - 30, // 46: dota.CMsgTEPhysicsProp.angles:type_name -> dota.CMsgQAngle - 29, // 47: dota.CMsgTEPhysicsProp.dmgpos:type_name -> dota.CMsgVector - 29, // 48: dota.CMsgTEPhysicsProp.dmgdir:type_name -> dota.CMsgVector - 29, // 49: dota.CMsgTEPlayerDecal.origin:type_name -> dota.CMsgVector - 29, // 50: dota.CMsgTEProjectedDecal.origin:type_name -> dota.CMsgVector - 30, // 51: dota.CMsgTEProjectedDecal.angles:type_name -> dota.CMsgQAngle - 29, // 52: dota.CMsgTESmoke.origin:type_name -> dota.CMsgVector - 29, // 53: dota.CMsgTEWorldDecal.origin:type_name -> dota.CMsgVector - 29, // 54: dota.CMsgTEWorldDecal.normal:type_name -> dota.CMsgVector - 55, // [55:55] is the sub-list for method output_type - 55, // [55:55] is the sub-list for method input_type - 55, // [55:55] is the sub-list for extension type_name - 55, // [55:55] is the sub-list for extension extendee - 0, // [0:55] is the sub-list for field type_name + 29, // 39: dota.CMsgTEExplosion.debris_origin:type_name -> dota.CMsgVector + 29, // 40: dota.CMsgTEDust.origin:type_name -> dota.CMsgVector + 29, // 41: dota.CMsgTEDust.direction:type_name -> dota.CMsgVector + 29, // 42: dota.CMsgTELargeFunnel.origin:type_name -> dota.CMsgVector + 29, // 43: dota.CMsgTESparks.origin:type_name -> dota.CMsgVector + 29, // 44: dota.CMsgTESparks.direction:type_name -> dota.CMsgVector + 29, // 45: dota.CMsgTEPhysicsProp.origin:type_name -> dota.CMsgVector + 29, // 46: dota.CMsgTEPhysicsProp.velocity:type_name -> dota.CMsgVector + 30, // 47: dota.CMsgTEPhysicsProp.angles:type_name -> dota.CMsgQAngle + 29, // 48: dota.CMsgTEPhysicsProp.dmgpos:type_name -> dota.CMsgVector + 29, // 49: dota.CMsgTEPhysicsProp.dmgdir:type_name -> dota.CMsgVector + 29, // 50: dota.CMsgTEPlayerDecal.origin:type_name -> dota.CMsgVector + 29, // 51: dota.CMsgTEProjectedDecal.origin:type_name -> dota.CMsgVector + 30, // 52: dota.CMsgTEProjectedDecal.angles:type_name -> dota.CMsgQAngle + 29, // 53: dota.CMsgTESmoke.origin:type_name -> dota.CMsgVector + 29, // 54: dota.CMsgTEWorldDecal.origin:type_name -> dota.CMsgVector + 29, // 55: dota.CMsgTEWorldDecal.normal:type_name -> dota.CMsgVector + 56, // [56:56] is the sub-list for method output_type + 56, // [56:56] is the sub-list for method input_type + 56, // [56:56] is the sub-list for extension type_name + 56, // [56:56] is the sub-list for extension extendee + 0, // [0:56] is the sub-list for field type_name } func init() { file_te_proto_init() } diff --git a/dota/te.proto b/dota/te.proto index 49d662c..43cf705 100644 --- a/dota/te.proto +++ b/dota/te.proto @@ -202,6 +202,9 @@ message CMsgTEExplosion { optional bool affect_ragdolls = 9; optional string effect_name = 10; optional uint32 explosion_type = 11; + optional bool create_debris = 12; + optional CMsgVector debris_origin = 13; + optional fixed32 debris_surfaceprop = 14; } message CMsgTEDust { diff --git a/dota/usercmd.pb.go b/dota/usercmd.pb.go index 2edf435..7080263 100644 --- a/dota/usercmd.pb.go +++ b/dota/usercmd.pb.go @@ -167,8 +167,8 @@ type CBaseUserCmdPB struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - CommandNumber *int32 `protobuf:"varint,1,opt,name=command_number,json=commandNumber" json:"command_number,omitempty"` - TickCount *int32 `protobuf:"varint,2,opt,name=tick_count,json=tickCount" json:"tick_count,omitempty"` + LegacyCommandNumber *int32 `protobuf:"varint,1,opt,name=legacy_command_number,json=legacyCommandNumber" json:"legacy_command_number,omitempty"` + ClientTick *int32 `protobuf:"varint,2,opt,name=client_tick,json=clientTick" json:"client_tick,omitempty"` ButtonsPb *CInButtonStatePB `protobuf:"bytes,3,opt,name=buttons_pb,json=buttonsPb" json:"buttons_pb,omitempty"` Viewangles *CMsgQAngle `protobuf:"bytes,4,opt,name=viewangles" json:"viewangles,omitempty"` Forwardmove *float32 `protobuf:"fixed32,5,opt,name=forwardmove" json:"forwardmove,omitempty"` @@ -218,16 +218,16 @@ func (*CBaseUserCmdPB) Descriptor() ([]byte, []int) { return file_usercmd_proto_rawDescGZIP(), []int{2} } -func (x *CBaseUserCmdPB) GetCommandNumber() int32 { - if x != nil && x.CommandNumber != nil { - return *x.CommandNumber +func (x *CBaseUserCmdPB) GetLegacyCommandNumber() int32 { + if x != nil && x.LegacyCommandNumber != nil { + return *x.LegacyCommandNumber } return 0 } -func (x *CBaseUserCmdPB) GetTickCount() int32 { - if x != nil && x.TickCount != nil { - return *x.TickCount +func (x *CBaseUserCmdPB) GetClientTick() int32 { + if x != nil && x.ClientTick != nil { + return *x.ClientTick } return 0 } @@ -409,54 +409,55 @@ var file_usercmd_proto_rawDesc = []byte{ 0x72, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x6e, 0x61, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x61, 0x6e, 0x61, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x66, - 0x74, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x22, 0x8e, 0x05, 0x0a, 0x0e, 0x43, 0x42, 0x61, 0x73, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x43, 0x6d, 0x64, 0x50, 0x42, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, - 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x63, 0x6b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x74, 0x69, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x35, 0x0a, 0x0a, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x62, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x49, 0x6e, 0x42, 0x75, - 0x74, 0x74, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x42, 0x52, 0x09, 0x62, 0x75, 0x74, - 0x74, 0x6f, 0x6e, 0x73, 0x50, 0x62, 0x12, 0x30, 0x0a, 0x0a, 0x76, 0x69, 0x65, 0x77, 0x61, 0x6e, - 0x67, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, - 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x51, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x0a, 0x76, 0x69, - 0x65, 0x77, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x6f, 0x72, 0x77, - 0x61, 0x72, 0x64, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x66, - 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x65, - 0x66, 0x74, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6c, 0x65, - 0x66, 0x74, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x70, 0x6d, 0x6f, 0x76, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x75, 0x70, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x69, 0x6d, 0x70, 0x75, 0x6c, 0x73, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x69, 0x6d, 0x70, 0x75, 0x6c, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x65, 0x61, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, - 0x77, 0x65, 0x61, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x1f, 0x0a, 0x0b, - 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0a, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x53, 0x65, 0x65, 0x64, 0x12, 0x18, 0x0a, - 0x07, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x64, 0x78, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x64, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x75, 0x73, 0x65, - 0x64, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x64, - 0x79, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x61, 0x77, 0x6e, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x70, - 0x61, 0x77, 0x6e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, - 0x3b, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x74, 0x69, 0x63, 0x6b, 0x5f, 0x6d, 0x6f, 0x76, 0x65, 0x73, - 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x53, - 0x75, 0x62, 0x74, 0x69, 0x63, 0x6b, 0x4d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x65, 0x70, 0x52, 0x0c, - 0x73, 0x75, 0x62, 0x74, 0x69, 0x63, 0x6b, 0x4d, 0x6f, 0x76, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, - 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x63, 0x72, 0x63, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, - 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x72, 0x63, 0x12, 0x41, 0x0a, 0x1d, 0x63, 0x6f, 0x6e, 0x73, 0x75, - 0x6d, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x6e, 0x67, 0x6c, 0x65, - 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1a, - 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x6e, - 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6d, - 0x64, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, - 0x6d, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x22, 0x3a, 0x0a, 0x0e, 0x43, 0x55, 0x73, 0x65, 0x72, - 0x43, 0x6d, 0x64, 0x42, 0x61, 0x73, 0x65, 0x50, 0x42, 0x12, 0x28, 0x0a, 0x04, 0x62, 0x61, 0x73, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, - 0x42, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6d, 0x64, 0x50, 0x42, 0x52, 0x04, 0x62, - 0x61, 0x73, 0x65, 0x42, 0x25, 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x62, 0x75, 0x66, 0x66, 0x2f, 0x6d, 0x61, 0x6e, 0x74, 0x61, - 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x3b, 0x64, 0x6f, 0x74, 0x61, + 0x74, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x22, 0x9d, 0x05, 0x0a, 0x0e, 0x43, 0x42, 0x61, 0x73, 0x65, + 0x55, 0x73, 0x65, 0x72, 0x43, 0x6d, 0x64, 0x50, 0x42, 0x12, 0x32, 0x0a, 0x15, 0x6c, 0x65, 0x67, + 0x61, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, + 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1f, 0x0a, + 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x12, 0x35, + 0x0a, 0x0a, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x62, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x49, 0x6e, 0x42, 0x75, 0x74, + 0x74, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x42, 0x52, 0x09, 0x62, 0x75, 0x74, 0x74, + 0x6f, 0x6e, 0x73, 0x50, 0x62, 0x12, 0x30, 0x0a, 0x0a, 0x76, 0x69, 0x65, 0x77, 0x61, 0x6e, 0x67, + 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, + 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x51, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x0a, 0x76, 0x69, 0x65, + 0x77, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x6f, 0x72, 0x77, 0x61, + 0x72, 0x64, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x66, 0x6f, + 0x72, 0x77, 0x61, 0x72, 0x64, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x65, 0x66, + 0x74, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6c, 0x65, 0x66, + 0x74, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x70, 0x6d, 0x6f, 0x76, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x75, 0x70, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x69, 0x6d, 0x70, 0x75, 0x6c, 0x73, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x69, 0x6d, 0x70, 0x75, 0x6c, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x65, 0x61, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x77, + 0x65, 0x61, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x72, + 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x53, 0x65, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x64, 0x78, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, + 0x6f, 0x75, 0x73, 0x65, 0x64, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x64, + 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x64, 0x79, + 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x61, 0x77, 0x6e, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, + 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x70, 0x61, + 0x77, 0x6e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x3b, + 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x74, 0x69, 0x63, 0x6b, 0x5f, 0x6d, 0x6f, 0x76, 0x65, 0x73, 0x18, + 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x53, 0x75, + 0x62, 0x74, 0x69, 0x63, 0x6b, 0x4d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x65, 0x70, 0x52, 0x0c, 0x73, + 0x75, 0x62, 0x74, 0x69, 0x63, 0x6b, 0x4d, 0x6f, 0x76, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6d, + 0x6f, 0x76, 0x65, 0x5f, 0x63, 0x72, 0x63, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6d, + 0x6f, 0x76, 0x65, 0x43, 0x72, 0x63, 0x12, 0x41, 0x0a, 0x1d, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, + 0x65, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x5f, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1a, 0x63, + 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x6e, 0x67, + 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6d, 0x64, + 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x6d, + 0x64, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x22, 0x3a, 0x0a, 0x0e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x43, + 0x6d, 0x64, 0x42, 0x61, 0x73, 0x65, 0x50, 0x42, 0x12, 0x28, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x42, + 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6d, 0x64, 0x50, 0x42, 0x52, 0x04, 0x62, 0x61, + 0x73, 0x65, 0x42, 0x25, 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x62, 0x75, 0x66, 0x66, 0x2f, 0x6d, 0x61, 0x6e, 0x74, 0x61, 0x2f, + 0x64, 0x6f, 0x74, 0x61, 0x3b, 0x64, 0x6f, 0x74, 0x61, } var ( diff --git a/dota/usercmd.proto b/dota/usercmd.proto index 512490c..8aaba9e 100644 --- a/dota/usercmd.proto +++ b/dota/usercmd.proto @@ -20,8 +20,8 @@ message CSubtickMoveStep { } message CBaseUserCmdPB { - optional int32 command_number = 1; - optional int32 tick_count = 2; + optional int32 legacy_command_number = 1; + optional int32 client_tick = 2; optional CInButtonStatePB buttons_pb = 3; optional CMsgQAngle viewangles = 4; optional float forwardmove = 5; diff --git a/dota/usermessages.pb.go b/dota/usermessages.pb.go index 195247a..9c374e3 100644 --- a/dota/usermessages.pb.go +++ b/dota/usermessages.pb.go @@ -396,6 +396,7 @@ const ( PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_CLEAR_MODELLIST_OVERRIDE PARTICLE_MESSAGE = 31 PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_CREATE_PHYSICS_SIM PARTICLE_MESSAGE = 32 PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_DESTROY_PHYSICS_SIM PARTICLE_MESSAGE = 33 + PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_SET_VDATA PARTICLE_MESSAGE = 34 ) // Enum value maps for PARTICLE_MESSAGE. @@ -435,6 +436,7 @@ var ( 31: "GAME_PARTICLE_MANAGER_EVENT_CLEAR_MODELLIST_OVERRIDE", 32: "GAME_PARTICLE_MANAGER_EVENT_CREATE_PHYSICS_SIM", 33: "GAME_PARTICLE_MANAGER_EVENT_DESTROY_PHYSICS_SIM", + 34: "GAME_PARTICLE_MANAGER_EVENT_SET_VDATA", } PARTICLE_MESSAGE_value = map[string]int32{ "GAME_PARTICLE_MANAGER_EVENT_CREATE": 0, @@ -471,6 +473,7 @@ var ( "GAME_PARTICLE_MANAGER_EVENT_CLEAR_MODELLIST_OVERRIDE": 31, "GAME_PARTICLE_MANAGER_EVENT_CREATE_PHYSICS_SIM": 32, "GAME_PARTICLE_MANAGER_EVENT_DESTROY_PHYSICS_SIM": 33, + "GAME_PARTICLE_MANAGER_EVENT_SET_VDATA": 34, } ) @@ -2868,6 +2871,7 @@ type CUserMsg_ParticleManager struct { ClearModellistOverride *CUserMsg_ParticleManager_ClearModellistOverride `protobuf:"bytes,34,opt,name=clear_modellist_override,json=clearModellistOverride" json:"clear_modellist_override,omitempty"` CreatePhysicsSim *CUserMsg_ParticleManager_CreatePhysicsSim `protobuf:"bytes,35,opt,name=create_physics_sim,json=createPhysicsSim" json:"create_physics_sim,omitempty"` DestroyPhysicsSim *CUserMsg_ParticleManager_DestroyPhysicsSim `protobuf:"bytes,36,opt,name=destroy_physics_sim,json=destroyPhysicsSim" json:"destroy_physics_sim,omitempty"` + SetVdata *CUserMsg_ParticleManager_SetVData `protobuf:"bytes,37,opt,name=set_vdata,json=setVdata" json:"set_vdata,omitempty"` } func (x *CUserMsg_ParticleManager) Reset() { @@ -3147,6 +3151,13 @@ func (x *CUserMsg_ParticleManager) GetDestroyPhysicsSim() *CUserMsg_ParticleMana return nil } +func (x *CUserMsg_ParticleManager) GetSetVdata() *CUserMsg_ParticleManager_SetVData { + if x != nil { + return x.SetVdata + } + return nil +} + type CUserMsg_HudError struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4391,11 +4402,17 @@ type CUserMessage_NotifyResponseFound struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - EntIndex *int32 `protobuf:"varint,1,opt,name=ent_index,json=entIndex" json:"ent_index,omitempty"` - RuleName *string `protobuf:"bytes,2,opt,name=rule_name,json=ruleName" json:"rule_name,omitempty"` - ResponseValue *string `protobuf:"bytes,3,opt,name=response_value,json=responseValue" json:"response_value,omitempty"` - ResponseConcept *string `protobuf:"bytes,4,opt,name=response_concept,json=responseConcept" json:"response_concept,omitempty"` - Criteria []*CUserMessage_NotifyResponseFound_Criteria `protobuf:"bytes,5,rep,name=criteria" json:"criteria,omitempty"` + EntIndex *int32 `protobuf:"varint,1,opt,name=ent_index,json=entIndex" json:"ent_index,omitempty"` + RuleName *string `protobuf:"bytes,2,opt,name=rule_name,json=ruleName" json:"rule_name,omitempty"` + ResponseValue *string `protobuf:"bytes,3,opt,name=response_value,json=responseValue" json:"response_value,omitempty"` + ResponseConcept *string `protobuf:"bytes,4,opt,name=response_concept,json=responseConcept" json:"response_concept,omitempty"` + Criteria []*CUserMessage_NotifyResponseFound_Criteria `protobuf:"bytes,5,rep,name=criteria" json:"criteria,omitempty"` + IntCriteriaNames []uint32 `protobuf:"varint,6,rep,name=int_criteria_names,json=intCriteriaNames" json:"int_criteria_names,omitempty"` + IntCriteriaValues []int32 `protobuf:"varint,7,rep,name=int_criteria_values,json=intCriteriaValues" json:"int_criteria_values,omitempty"` + FloatCriteriaNames []uint32 `protobuf:"varint,8,rep,name=float_criteria_names,json=floatCriteriaNames" json:"float_criteria_names,omitempty"` + FloatCriteriaValues []float32 `protobuf:"fixed32,9,rep,name=float_criteria_values,json=floatCriteriaValues" json:"float_criteria_values,omitempty"` + SymbolCriteriaNames []uint32 `protobuf:"varint,10,rep,name=symbol_criteria_names,json=symbolCriteriaNames" json:"symbol_criteria_names,omitempty"` + SymbolCriteriaValues []uint32 `protobuf:"varint,11,rep,name=symbol_criteria_values,json=symbolCriteriaValues" json:"symbol_criteria_values,omitempty"` } func (x *CUserMessage_NotifyResponseFound) Reset() { @@ -4465,6 +4482,48 @@ func (x *CUserMessage_NotifyResponseFound) GetCriteria() []*CUserMessage_NotifyR return nil } +func (x *CUserMessage_NotifyResponseFound) GetIntCriteriaNames() []uint32 { + if x != nil { + return x.IntCriteriaNames + } + return nil +} + +func (x *CUserMessage_NotifyResponseFound) GetIntCriteriaValues() []int32 { + if x != nil { + return x.IntCriteriaValues + } + return nil +} + +func (x *CUserMessage_NotifyResponseFound) GetFloatCriteriaNames() []uint32 { + if x != nil { + return x.FloatCriteriaNames + } + return nil +} + +func (x *CUserMessage_NotifyResponseFound) GetFloatCriteriaValues() []float32 { + if x != nil { + return x.FloatCriteriaValues + } + return nil +} + +func (x *CUserMessage_NotifyResponseFound) GetSymbolCriteriaNames() []uint32 { + if x != nil { + return x.SymbolCriteriaNames + } + return nil +} + +func (x *CUserMessage_NotifyResponseFound) GetSymbolCriteriaValues() []uint32 { + if x != nil { + return x.SymbolCriteriaValues + } + return nil +} + type CUserMessage_PlayResponseConditional struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4474,6 +4533,7 @@ type CUserMessage_PlayResponseConditional struct { PlayerSlots []int32 `protobuf:"varint,2,rep,name=player_slots,json=playerSlots" json:"player_slots,omitempty"` Response *string `protobuf:"bytes,3,opt,name=response" json:"response,omitempty"` EntOrigin *CMsgVector `protobuf:"bytes,4,opt,name=ent_origin,json=entOrigin" json:"ent_origin,omitempty"` + PreDelay *float32 `protobuf:"fixed32,5,opt,name=pre_delay,json=preDelay" json:"pre_delay,omitempty"` } func (x *CUserMessage_PlayResponseConditional) Reset() { @@ -4536,6 +4596,13 @@ func (x *CUserMessage_PlayResponseConditional) GetEntOrigin() *CMsgVector { return nil } +func (x *CUserMessage_PlayResponseConditional) GetPreDelay() float32 { + if x != nil && x.PreDelay != nil { + return *x.PreDelay + } + return 0 +} + type CUserMessageCameraTransition_Transition_DataDriven struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4642,15 +4709,16 @@ type CUserMsg_ParticleManager_CreateParticle struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ParticleNameIndex *uint64 `protobuf:"fixed64,1,opt,name=particle_name_index,json=particleNameIndex" json:"particle_name_index,omitempty"` - AttachType *int32 `protobuf:"varint,2,opt,name=attach_type,json=attachType" json:"attach_type,omitempty"` - EntityHandle *uint32 `protobuf:"varint,3,opt,name=entity_handle,json=entityHandle" json:"entity_handle,omitempty"` - EntityHandleForModifiers *uint32 `protobuf:"varint,4,opt,name=entity_handle_for_modifiers,json=entityHandleForModifiers" json:"entity_handle_for_modifiers,omitempty"` - ApplyVoiceBanRules *bool `protobuf:"varint,5,opt,name=apply_voice_ban_rules,json=applyVoiceBanRules" json:"apply_voice_ban_rules,omitempty"` - TeamBehavior *int32 `protobuf:"varint,6,opt,name=team_behavior,json=teamBehavior" json:"team_behavior,omitempty"` - ControlPointConfiguration *string `protobuf:"bytes,7,opt,name=control_point_configuration,json=controlPointConfiguration" json:"control_point_configuration,omitempty"` - Cluster *bool `protobuf:"varint,8,opt,name=cluster" json:"cluster,omitempty"` - EndcapTime *float32 `protobuf:"fixed32,9,opt,name=endcap_time,json=endcapTime" json:"endcap_time,omitempty"` + ParticleNameIndex *uint64 `protobuf:"fixed64,1,opt,name=particle_name_index,json=particleNameIndex" json:"particle_name_index,omitempty"` + AttachType *int32 `protobuf:"varint,2,opt,name=attach_type,json=attachType" json:"attach_type,omitempty"` + EntityHandle *uint32 `protobuf:"varint,3,opt,name=entity_handle,json=entityHandle" json:"entity_handle,omitempty"` + EntityHandleForModifiers *uint32 `protobuf:"varint,4,opt,name=entity_handle_for_modifiers,json=entityHandleForModifiers" json:"entity_handle_for_modifiers,omitempty"` + ApplyVoiceBanRules *bool `protobuf:"varint,5,opt,name=apply_voice_ban_rules,json=applyVoiceBanRules" json:"apply_voice_ban_rules,omitempty"` + TeamBehavior *int32 `protobuf:"varint,6,opt,name=team_behavior,json=teamBehavior" json:"team_behavior,omitempty"` + ControlPointConfiguration *string `protobuf:"bytes,7,opt,name=control_point_configuration,json=controlPointConfiguration" json:"control_point_configuration,omitempty"` + Cluster *bool `protobuf:"varint,8,opt,name=cluster" json:"cluster,omitempty"` + EndcapTime *float32 `protobuf:"fixed32,9,opt,name=endcap_time,json=endcapTime" json:"endcap_time,omitempty"` + AggregationPosition *CMsgVector `protobuf:"bytes,10,opt,name=aggregation_position,json=aggregationPosition" json:"aggregation_position,omitempty"` } func (x *CUserMsg_ParticleManager_CreateParticle) Reset() { @@ -4748,6 +4816,13 @@ func (x *CUserMsg_ParticleManager_CreateParticle) GetEndcapTime() float32 { return 0 } +func (x *CUserMsg_ParticleManager_CreateParticle) GetAggregationPosition() *CMsgVector { + if x != nil { + return x.AggregationPosition + } + return nil +} + type CUserMsg_ParticleManager_DestroyParticle struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -6436,7 +6511,9 @@ type CUserMsg_ParticleManager_CreatePhysicsSim struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - PropGroupName *string `protobuf:"bytes,1,opt,name=prop_group_name,json=propGroupName" json:"prop_group_name,omitempty"` + PropGroupName *string `protobuf:"bytes,1,opt,name=prop_group_name,json=propGroupName" json:"prop_group_name,omitempty"` + UseHighQualitySimulation *bool `protobuf:"varint,2,opt,name=use_high_quality_simulation,json=useHighQualitySimulation" json:"use_high_quality_simulation,omitempty"` + MaxParticleCount *uint32 `protobuf:"varint,3,opt,name=max_particle_count,json=maxParticleCount" json:"max_particle_count,omitempty"` } func (x *CUserMsg_ParticleManager_CreatePhysicsSim) Reset() { @@ -6478,6 +6555,20 @@ func (x *CUserMsg_ParticleManager_CreatePhysicsSim) GetPropGroupName() string { return "" } +func (x *CUserMsg_ParticleManager_CreatePhysicsSim) GetUseHighQualitySimulation() bool { + if x != nil && x.UseHighQualitySimulation != nil { + return *x.UseHighQualitySimulation + } + return false +} + +func (x *CUserMsg_ParticleManager_CreatePhysicsSim) GetMaxParticleCount() uint32 { + if x != nil && x.MaxParticleCount != nil { + return *x.MaxParticleCount + } + return 0 +} + type CUserMsg_ParticleManager_DestroyPhysicsSim struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -6516,6 +6607,53 @@ func (*CUserMsg_ParticleManager_DestroyPhysicsSim) Descriptor() ([]byte, []int) return file_usermessages_proto_rawDescGZIP(), []int{36, 32} } +type CUserMsg_ParticleManager_SetVData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + VdataName *string `protobuf:"bytes,1,opt,name=vdata_name,json=vdataName" json:"vdata_name,omitempty"` +} + +func (x *CUserMsg_ParticleManager_SetVData) Reset() { + *x = CUserMsg_ParticleManager_SetVData{} + if protoimpl.UnsafeEnabled { + mi := &file_usermessages_proto_msgTypes[90] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager_SetVData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager_SetVData) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager_SetVData) ProtoReflect() protoreflect.Message { + mi := &file_usermessages_proto_msgTypes[90] + 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 CUserMsg_ParticleManager_SetVData.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager_SetVData) Descriptor() ([]byte, []int) { + return file_usermessages_proto_rawDescGZIP(), []int{36, 33} +} + +func (x *CUserMsg_ParticleManager_SetVData) GetVdataName() string { + if x != nil && x.VdataName != nil { + return *x.VdataName + } + return "" +} + type CUserMsg_ParticleManager_SetParticleNamedValueContext_FloatContextValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -6528,7 +6666,7 @@ type CUserMsg_ParticleManager_SetParticleNamedValueContext_FloatContextValue str func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext_FloatContextValue) Reset() { *x = CUserMsg_ParticleManager_SetParticleNamedValueContext_FloatContextValue{} if protoimpl.UnsafeEnabled { - mi := &file_usermessages_proto_msgTypes[90] + mi := &file_usermessages_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6541,7 +6679,7 @@ func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext_FloatContextValue func (*CUserMsg_ParticleManager_SetParticleNamedValueContext_FloatContextValue) ProtoMessage() {} func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext_FloatContextValue) ProtoReflect() protoreflect.Message { - mi := &file_usermessages_proto_msgTypes[90] + mi := &file_usermessages_proto_msgTypes[91] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6583,7 +6721,7 @@ type CUserMsg_ParticleManager_SetParticleNamedValueContext_VectorContextValue st func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext_VectorContextValue) Reset() { *x = CUserMsg_ParticleManager_SetParticleNamedValueContext_VectorContextValue{} if protoimpl.UnsafeEnabled { - mi := &file_usermessages_proto_msgTypes[91] + mi := &file_usermessages_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6596,7 +6734,7 @@ func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext_VectorContextValu func (*CUserMsg_ParticleManager_SetParticleNamedValueContext_VectorContextValue) ProtoMessage() {} func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext_VectorContextValue) ProtoReflect() protoreflect.Message { - mi := &file_usermessages_proto_msgTypes[91] + mi := &file_usermessages_proto_msgTypes[92] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6639,7 +6777,7 @@ type CUserMsg_ParticleManager_SetParticleNamedValueContext_TransformContextValue func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext_TransformContextValue) Reset() { *x = CUserMsg_ParticleManager_SetParticleNamedValueContext_TransformContextValue{} if protoimpl.UnsafeEnabled { - mi := &file_usermessages_proto_msgTypes[92] + mi := &file_usermessages_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6652,7 +6790,7 @@ func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext_TransformContextV func (*CUserMsg_ParticleManager_SetParticleNamedValueContext_TransformContextValue) ProtoMessage() {} func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext_TransformContextValue) ProtoReflect() protoreflect.Message { - mi := &file_usermessages_proto_msgTypes[92] + mi := &file_usermessages_proto_msgTypes[93] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6701,7 +6839,7 @@ type CUserMsg_ParticleManager_SetParticleNamedValueContext_EHandleContext struct func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext_EHandleContext) Reset() { *x = CUserMsg_ParticleManager_SetParticleNamedValueContext_EHandleContext{} if protoimpl.UnsafeEnabled { - mi := &file_usermessages_proto_msgTypes[93] + mi := &file_usermessages_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6714,7 +6852,7 @@ func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext_EHandleContext) S func (*CUserMsg_ParticleManager_SetParticleNamedValueContext_EHandleContext) ProtoMessage() {} func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext_EHandleContext) ProtoReflect() protoreflect.Message { - mi := &file_usermessages_proto_msgTypes[93] + mi := &file_usermessages_proto_msgTypes[94] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6758,7 +6896,7 @@ type CUserMessage_UtilMsg_Response_ItemDetail struct { func (x *CUserMessage_UtilMsg_Response_ItemDetail) Reset() { *x = CUserMessage_UtilMsg_Response_ItemDetail{} if protoimpl.UnsafeEnabled { - mi := &file_usermessages_proto_msgTypes[94] + mi := &file_usermessages_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6771,7 +6909,7 @@ func (x *CUserMessage_UtilMsg_Response_ItemDetail) String() string { func (*CUserMessage_UtilMsg_Response_ItemDetail) ProtoMessage() {} func (x *CUserMessage_UtilMsg_Response_ItemDetail) ProtoReflect() protoreflect.Message { - mi := &file_usermessages_proto_msgTypes[94] + mi := &file_usermessages_proto_msgTypes[95] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6829,7 +6967,7 @@ type CUserMessage_DllStatus_CVDiagnostic struct { func (x *CUserMessage_DllStatus_CVDiagnostic) Reset() { *x = CUserMessage_DllStatus_CVDiagnostic{} if protoimpl.UnsafeEnabled { - mi := &file_usermessages_proto_msgTypes[95] + mi := &file_usermessages_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6842,7 +6980,7 @@ func (x *CUserMessage_DllStatus_CVDiagnostic) String() string { func (*CUserMessage_DllStatus_CVDiagnostic) ProtoMessage() {} func (x *CUserMessage_DllStatus_CVDiagnostic) ProtoReflect() protoreflect.Message { - mi := &file_usermessages_proto_msgTypes[95] + mi := &file_usermessages_proto_msgTypes[96] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6900,7 +7038,7 @@ type CUserMessage_DllStatus_CModule struct { func (x *CUserMessage_DllStatus_CModule) Reset() { *x = CUserMessage_DllStatus_CModule{} if protoimpl.UnsafeEnabled { - mi := &file_usermessages_proto_msgTypes[96] + mi := &file_usermessages_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6913,7 +7051,7 @@ func (x *CUserMessage_DllStatus_CModule) String() string { func (*CUserMessage_DllStatus_CModule) ProtoMessage() {} func (x *CUserMessage_DllStatus_CModule) ProtoReflect() protoreflect.Message { - mi := &file_usermessages_proto_msgTypes[96] + mi := &file_usermessages_proto_msgTypes[97] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6977,7 +7115,7 @@ type CUserMessage_Inventory_Response_InventoryDetail struct { func (x *CUserMessage_Inventory_Response_InventoryDetail) Reset() { *x = CUserMessage_Inventory_Response_InventoryDetail{} if protoimpl.UnsafeEnabled { - mi := &file_usermessages_proto_msgTypes[97] + mi := &file_usermessages_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6990,7 +7128,7 @@ func (x *CUserMessage_Inventory_Response_InventoryDetail) String() string { func (*CUserMessage_Inventory_Response_InventoryDetail) ProtoMessage() {} func (x *CUserMessage_Inventory_Response_InventoryDetail) ProtoReflect() protoreflect.Message { - mi := &file_usermessages_proto_msgTypes[97] + mi := &file_usermessages_proto_msgTypes[98] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7099,7 +7237,7 @@ type CUserMessageRequestDiagnostic_Diagnostic struct { func (x *CUserMessageRequestDiagnostic_Diagnostic) Reset() { *x = CUserMessageRequestDiagnostic_Diagnostic{} if protoimpl.UnsafeEnabled { - mi := &file_usermessages_proto_msgTypes[98] + mi := &file_usermessages_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7112,7 +7250,7 @@ func (x *CUserMessageRequestDiagnostic_Diagnostic) String() string { func (*CUserMessageRequestDiagnostic_Diagnostic) ProtoMessage() {} func (x *CUserMessageRequestDiagnostic_Diagnostic) ProtoReflect() protoreflect.Message { - mi := &file_usermessages_proto_msgTypes[98] + mi := &file_usermessages_proto_msgTypes[99] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7244,7 +7382,7 @@ type CUserMessage_Diagnostic_Response_Diagnostic struct { func (x *CUserMessage_Diagnostic_Response_Diagnostic) Reset() { *x = CUserMessage_Diagnostic_Response_Diagnostic{} if protoimpl.UnsafeEnabled { - mi := &file_usermessages_proto_msgTypes[99] + mi := &file_usermessages_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7257,7 +7395,7 @@ func (x *CUserMessage_Diagnostic_Response_Diagnostic) String() string { func (*CUserMessage_Diagnostic_Response_Diagnostic) ProtoMessage() {} func (x *CUserMessage_Diagnostic_Response_Diagnostic) ProtoReflect() protoreflect.Message { - mi := &file_usermessages_proto_msgTypes[99] + mi := &file_usermessages_proto_msgTypes[100] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7390,7 +7528,7 @@ type CUserMessage_NotifyResponseFound_Criteria struct { func (x *CUserMessage_NotifyResponseFound_Criteria) Reset() { *x = CUserMessage_NotifyResponseFound_Criteria{} if protoimpl.UnsafeEnabled { - mi := &file_usermessages_proto_msgTypes[100] + mi := &file_usermessages_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7403,7 +7541,7 @@ func (x *CUserMessage_NotifyResponseFound_Criteria) String() string { func (*CUserMessage_NotifyResponseFound_Criteria) ProtoMessage() {} func (x *CUserMessage_NotifyResponseFound_Criteria) ProtoReflect() protoreflect.Message { - mi := &file_usermessages_proto_msgTypes[100] + mi := &file_usermessages_proto_msgTypes[101] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7714,7 +7852,7 @@ var file_usermessages_proto_rawDesc = []byte{ 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x45, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x84, 0x43, 0x0a, 0x18, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, + 0x6f, 0x6e, 0x22, 0xa8, 0x45, 0x0a, 0x18, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x45, @@ -7949,825 +8087,867 @@ var file_usermessages_proto_rawDesc = []byte{ 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x50, 0x68, 0x79, 0x73, 0x69, 0x63, 0x73, 0x53, 0x69, 0x6d, 0x52, 0x11, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x50, - 0x68, 0x79, 0x73, 0x69, 0x63, 0x73, 0x53, 0x69, 0x6d, 0x1a, 0x16, 0x0a, 0x14, 0x52, 0x65, 0x6c, - 0x65, 0x61, 0x73, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x1a, 0x98, 0x03, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, - 0x69, 0x63, 0x6c, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x06, 0x52, 0x11, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x61, 0x63, - 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, - 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x3d, 0x0a, 0x1b, 0x65, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x5f, - 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x18, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x46, 0x6f, 0x72, - 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x12, 0x31, 0x0a, 0x15, 0x61, 0x70, 0x70, - 0x6c, 0x79, 0x5f, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x62, 0x61, 0x6e, 0x5f, 0x72, 0x75, 0x6c, - 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x56, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x61, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, - 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0c, 0x74, 0x65, 0x61, 0x6d, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, - 0x72, 0x12, 0x3e, 0x0a, 0x1b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, - 0x6f, 0x69, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x65, - 0x6e, 0x64, 0x63, 0x61, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x63, 0x61, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x42, 0x0a, 0x0f, - 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x12, - 0x2f, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x5f, 0x69, 0x6d, 0x6d, 0x65, 0x64, - 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64, 0x65, - 0x73, 0x74, 0x72, 0x6f, 0x79, 0x49, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, - 0x1a, 0x70, 0x0a, 0x18, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x50, 0x61, 0x72, 0x74, 0x69, - 0x63, 0x6c, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x6c, 0x76, 0x69, 0x6e, 0x67, 0x12, 0x2f, 0x0a, 0x13, - 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x5f, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, - 0x65, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x72, - 0x6f, 0x79, 0x49, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x12, 0x23, 0x0a, - 0x0d, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, 0x61, 0x6e, 0x64, - 0x6c, 0x65, 0x1a, 0xbd, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x50, 0x61, - 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x70, - 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x11, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, - 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x23, 0x0a, 0x0d, 0x65, - 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x68, 0x79, 0x73, 0x69, 0x63, 0x73, 0x53, 0x69, 0x6d, 0x12, 0x44, 0x0a, 0x09, 0x73, 0x65, 0x74, + 0x5f, 0x76, 0x64, 0x61, 0x74, 0x61, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x64, + 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x72, + 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, + 0x56, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x73, 0x65, 0x74, 0x56, 0x64, 0x61, 0x74, 0x61, 0x1a, + 0x16, 0x0a, 0x14, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x6c, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x1a, 0xdd, 0x03, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x61, + 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x11, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x74, + 0x74, 0x61, 0x63, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0a, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, - 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x5f, 0x69, 0x6d, 0x6d, 0x65, - 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64, - 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x49, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, - 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x65, 0x6e, 0x64, 0x63, 0x61, 0x70, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x45, 0x6e, 0x64, 0x63, - 0x61, 0x70, 0x1a, 0x6c, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, - 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x4f, 0x42, 0x53, 0x4f, 0x4c, 0x45, 0x54, 0x45, 0x12, 0x23, 0x0a, - 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, - 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, - 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x1a, 0x6d, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, - 0x6c, 0x65, 0x46, 0x77, 0x64, 0x5f, 0x4f, 0x42, 0x53, 0x4f, 0x4c, 0x45, 0x54, 0x45, 0x12, 0x23, - 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, - 0x69, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x07, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, - 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x07, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x1a, - 0xf5, 0x01, 0x0a, 0x1d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, - 0x6c, 0x65, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x4f, 0x42, 0x53, 0x4f, 0x4c, 0x45, 0x54, - 0x45, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x07, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, - 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x07, 0x66, 0x6f, 0x72, 0x77, 0x61, - 0x72, 0x64, 0x12, 0x3b, 0x0a, 0x10, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x72, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, - 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0f, - 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x52, 0x69, 0x67, 0x68, 0x74, 0x12, - 0x20, 0x0a, 0x02, 0x75, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, - 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x02, 0x75, - 0x70, 0x12, 0x24, 0x0a, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x12, 0x3d, 0x0a, 0x1b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, + 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, 0x61, 0x6e, + 0x64, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x12, + 0x31, 0x0a, 0x15, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x62, + 0x61, 0x6e, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x61, 0x6e, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, + 0x69, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x74, 0x65, 0x61, 0x6d, 0x42, + 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, 0x3e, 0x0a, 0x1b, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x64, 0x63, 0x61, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x63, 0x61, 0x70, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x14, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x52, 0x13, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x42, 0x0a, 0x0f, 0x44, 0x65, 0x73, 0x74, 0x72, + 0x6f, 0x79, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x65, + 0x73, 0x74, 0x72, 0x6f, 0x79, 0x5f, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, + 0x49, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x1a, 0x70, 0x0a, 0x18, 0x44, + 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x49, 0x6e, + 0x76, 0x6f, 0x6c, 0x76, 0x69, 0x6e, 0x67, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x72, + 0x6f, 0x79, 0x5f, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x49, 0x6d, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x1a, 0xbd, 0x01, + 0x0a, 0x14, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x06, 0x52, 0x11, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x2f, 0x0a, 0x13, 0x64, + 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x5f, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, + 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, + 0x79, 0x49, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x12, 0x1f, 0x0a, 0x0b, + 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x65, 0x6e, 0x64, 0x63, 0x61, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x45, 0x6e, 0x64, 0x63, 0x61, 0x70, 0x1a, 0x6c, 0x0a, + 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x5f, + 0x4f, 0x42, 0x53, 0x4f, 0x4c, 0x45, 0x54, 0x45, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2c, 0x0a, + 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x52, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x1a, 0xdb, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, - 0x6f, 0x72, 0x6d, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, - 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x64, 0x6f, - 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x51, 0x75, 0x61, 0x74, 0x65, 0x72, 0x6e, 0x69, 0x6f, - 0x6e, 0x52, 0x0b, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, - 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x76, 0x61, 0x6c, 0x1a, 0x6b, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, - 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x12, - 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, - 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, - 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x1a, 0xa7, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, - 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, - 0x12, 0x35, 0x0a, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, - 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0c, 0x6f, 0x72, 0x69, 0x67, 0x69, - 0x6e, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x33, 0x0a, 0x0c, 0x61, 0x6e, 0x67, 0x6c, 0x65, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, - 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x51, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x52, - 0x0b, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x1a, 0xfc, 0x02, 0x0a, - 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x45, - 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, - 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0b, - 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, - 0x0a, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3d, 0x0a, - 0x11, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, - 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x10, 0x66, 0x61, 0x6c, 0x6c, - 0x62, 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, - 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x65, 0x61, 0x72, 0x61, 0x62, 0x6c, 0x65, - 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, - 0x57, 0x65, 0x61, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, + 0x72, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x6d, 0x0a, 0x1a, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x46, 0x77, 0x64, + 0x5f, 0x4f, 0x42, 0x53, 0x4f, 0x4c, 0x45, 0x54, 0x45, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2a, + 0x0a, 0x07, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x52, 0x07, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x1a, 0xf5, 0x01, 0x0a, 0x1d, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4f, 0x72, 0x69, + 0x65, 0x6e, 0x74, 0x5f, 0x4f, 0x42, 0x53, 0x4f, 0x4c, 0x45, 0x54, 0x45, 0x12, 0x23, 0x0a, 0x0d, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, 0x6e, + 0x74, 0x12, 0x2a, 0x0a, 0x07, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0e, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x0d, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x61, - 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, - 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x51, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x0c, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x1a, 0x69, 0x0a, 0x17, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x53, 0x65, 0x74, - 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x74, 0x5f, 0x66, 0x72, - 0x6f, 0x7a, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x65, 0x74, 0x46, - 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x12, 0x2f, 0x0a, 0x13, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x02, 0x52, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x3b, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x53, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x44, 0x72, - 0x61, 0x77, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x5f, 0x64, 0x72, 0x61, - 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x44, - 0x72, 0x61, 0x77, 0x1a, 0x91, 0x01, 0x0a, 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, - 0x6e, 0x74, 0x5f, 0x6f, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x6c, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x61, - 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x65, 0x77, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x4e, - 0x65, 0x77, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x68, 0x61, 0x6e, - 0x64, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x1a, 0x69, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, 0x61, - 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x2c, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, - 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x1a, 0x93, 0x01, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, - 0x6c, 0x65, 0x46, 0x6f, 0x57, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, - 0x2a, 0x0a, 0x11, 0x66, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x66, 0x6f, 0x77, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x66, - 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x66, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x32, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x6f, 0x77, - 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, - 0x6f, 0x77, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x1a, 0x38, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x50, - 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x53, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x46, 0x6f, 0x57, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x66, - 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x46, - 0x6f, 0x77, 0x1a, 0x5a, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, + 0x63, 0x74, 0x6f, 0x72, 0x52, 0x07, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x12, 0x3b, 0x0a, + 0x10, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, + 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0f, 0x64, 0x65, 0x70, 0x72, 0x65, + 0x63, 0x61, 0x74, 0x65, 0x64, 0x52, 0x69, 0x67, 0x68, 0x74, 0x12, 0x20, 0x0a, 0x02, 0x75, 0x70, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, + 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x02, 0x75, 0x70, 0x12, 0x24, 0x0a, 0x04, + 0x6c, 0x65, 0x66, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, + 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x04, 0x6c, 0x65, + 0x66, 0x74, 0x1a, 0xdb, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, + 0x74, 0x69, 0x63, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x23, + 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, + 0x69, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, + 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x36, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, + 0x73, 0x67, 0x51, 0x75, 0x61, 0x74, 0x65, 0x72, 0x6e, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x6f, 0x72, + 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x16, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x76, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x1a, 0x6b, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x6c, 0x65, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, - 0x1d, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x63, - 0x0a, 0x17, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, 0x6e, - 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x23, - 0x0a, 0x0d, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4e, - 0x61, 0x6d, 0x65, 0x1a, 0x25, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, - 0x6c, 0x65, 0x54, 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x1a, 0x5f, 0x0a, 0x13, 0x53, 0x65, - 0x74, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x65, 0x78, 0x74, - 0x75, 0x72, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x3a, 0x0a, 0x19, 0x53, - 0x65, 0x74, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x6c, 0x61, 0x67, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x6c, - 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x46, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x53, 0x63, - 0x65, 0x6e, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6e, 0x74, 0x41, 0x6e, 0x64, - 0x44, 0x65, 0x73, 0x61, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x07, 0x52, 0x04, 0x74, 0x69, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x73, - 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x64, 0x65, 0x73, 0x61, 0x74, 0x1a, - 0x36, 0x0a, 0x12, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x53, 0x6b, 0x69, 0x70, 0x54, - 0x6f, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x74, 0x6f, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x73, 0x6b, 0x69, - 0x70, 0x54, 0x6f, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x32, 0x0a, 0x11, 0x50, 0x61, 0x72, 0x74, 0x69, - 0x63, 0x6c, 0x65, 0x43, 0x61, 0x6e, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, - 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x09, 0x63, 0x61, 0x6e, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x1a, 0x60, 0x0a, 0x20, 0x50, - 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, - 0x3c, 0x0a, 0x1a, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x02, 0x52, 0x18, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x1a, 0x8e, 0x01, - 0x0a, 0x17, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, - 0x49, 0x6e, 0x76, 0x6f, 0x6c, 0x76, 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x74, - 0x5f, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, - 0x65, 0x74, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x12, 0x2f, 0x0a, 0x13, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x74, - 0x69, 0x74, 0x79, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x1a, 0x83, - 0x01, 0x0a, 0x1b, 0x41, 0x64, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x6c, 0x69, 0x73, 0x74, 0x4f, - 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1d, - 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, - 0x11, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x50, - 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x69, 0x64, 0x1a, 0x32, 0x0a, 0x16, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x6c, 0x69, 0x73, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x64, 0x1a, 0xa6, 0x07, 0x0a, 0x1c, 0x53, 0x65, 0x74, - 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x70, 0x0a, 0x0c, 0x66, 0x6c, 0x6f, - 0x61, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x4d, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, - 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, - 0x53, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x64, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x46, 0x6c, 0x6f, - 0x61, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, - 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x73, 0x0a, 0x0d, 0x76, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x4e, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, - 0x73, 0x67, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, - 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, - 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x0c, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x7c, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x51, 0x2e, 0x64, 0x6f, 0x74, + 0x2c, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xa7, 0x01, + 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, + 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x35, 0x0a, 0x0d, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0c, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x4f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x12, 0x33, 0x0a, 0x0c, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, + 0x43, 0x4d, 0x73, 0x67, 0x51, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x0b, 0x61, 0x6e, 0x67, 0x6c, + 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x1a, 0xfc, 0x02, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x12, 0x23, 0x0a, + 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x68, 0x61, 0x6e, + 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, + 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x61, 0x74, + 0x74, 0x61, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x61, + 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x61, 0x74, + 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x11, 0x66, 0x61, 0x6c, 0x6c, + 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x10, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x50, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x5f, 0x77, 0x65, 0x61, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, 0x65, 0x61, 0x72, 0x61, + 0x62, 0x6c, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, + 0x0e, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x35, 0x0a, 0x0d, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x73, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, + 0x73, 0x67, 0x51, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x0c, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x1a, 0x69, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x46, 0x72, 0x6f, 0x7a, 0x65, + 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x74, 0x5f, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x65, 0x74, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, + 0x12, 0x2f, 0x0a, 0x13, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x1a, 0x3b, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, + 0x63, 0x6c, 0x65, 0x53, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x44, 0x72, 0x61, 0x77, 0x12, 0x1f, 0x0a, + 0x0b, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x5f, 0x64, 0x72, 0x61, 0x77, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0a, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x44, 0x72, 0x61, 0x77, 0x1a, 0x91, + 0x01, 0x0a, 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x25, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x6c, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, + 0x65, 0x6e, 0x74, 0x4f, 0x6c, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, + 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x65, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, + 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x77, 0x12, 0x23, 0x0a, + 0x0d, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, 0x61, 0x6e, 0x64, + 0x6c, 0x65, 0x1a, 0x69, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, + 0x2c, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x93, 0x01, + 0x0a, 0x18, 0x53, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x46, 0x6f, 0x57, + 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x66, 0x6f, + 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x66, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x66, 0x6f, 0x77, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x32, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x10, 0x66, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, + 0x69, 0x6e, 0x74, 0x32, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x6f, 0x77, 0x5f, 0x72, 0x61, 0x64, 0x69, + 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x6f, 0x77, 0x52, 0x61, 0x64, + 0x69, 0x75, 0x73, 0x1a, 0x38, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x6c, 0x65, 0x53, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x46, 0x6f, 0x57, + 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x66, 0x6f, 0x77, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x46, 0x6f, 0x77, 0x1a, 0x5a, 0x0a, + 0x14, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, + 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x6f, + 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x63, 0x0a, 0x17, 0x53, 0x65, 0x74, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x6e, 0x61, 0x70, + 0x73, 0x68, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x25, + 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x54, 0x65, 0x78, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x74, 0x65, 0x78, 0x74, 0x1a, 0x5f, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x54, 0x65, 0x78, 0x74, + 0x75, 0x72, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x0e, + 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x78, 0x74, 0x75, + 0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x3a, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x53, 0x63, 0x65, + 0x6e, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x46, + 0x6c, 0x61, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x6c, 0x61, 0x67, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x1a, 0x46, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6e, 0x74, 0x41, 0x6e, 0x64, 0x44, 0x65, 0x73, 0x61, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x04, + 0x74, 0x69, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x73, 0x61, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x05, 0x64, 0x65, 0x73, 0x61, 0x74, 0x1a, 0x36, 0x0a, 0x12, 0x50, 0x61, + 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x53, 0x6b, 0x69, 0x70, 0x54, 0x6f, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x20, 0x0a, 0x0c, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x73, 0x6b, 0x69, 0x70, 0x54, 0x6f, 0x54, 0x69, + 0x6d, 0x65, 0x1a, 0x32, 0x0a, 0x11, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x43, 0x61, + 0x6e, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x61, 0x6e, 0x5f, 0x66, + 0x72, 0x65, 0x65, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x61, 0x6e, + 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x1a, 0x60, 0x0a, 0x20, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x6c, 0x65, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x3c, 0x0a, 0x1a, 0x66, 0x72, + 0x65, 0x65, 0x7a, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x18, + 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x1a, 0x8e, 0x01, 0x0a, 0x17, 0x46, 0x72, 0x65, + 0x65, 0x7a, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x6c, + 0x76, 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x74, 0x5f, 0x66, 0x72, 0x6f, 0x7a, + 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x65, 0x74, 0x46, 0x72, 0x6f, + 0x7a, 0x65, 0x6e, 0x12, 0x2f, 0x0a, 0x13, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x68, + 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x1a, 0x83, 0x01, 0x0a, 0x1b, 0x41, 0x64, + 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x6c, 0x69, 0x73, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, + 0x64, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, + 0x6f, 0x64, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x70, 0x61, 0x77, + 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x10, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x64, 0x1a, + 0x32, 0x0a, 0x16, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x6c, 0x69, 0x73, + 0x74, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x69, 0x64, 0x1a, 0xa6, 0x07, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, + 0x63, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x78, 0x74, 0x12, 0x70, 0x0a, 0x0c, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, - 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x71, - 0x0a, 0x0e, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x55, - 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4d, - 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, - 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x78, 0x74, 0x2e, 0x45, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x78, 0x74, 0x52, 0x0d, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x1a, 0x51, 0x0a, 0x11, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, - 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x64, 0x0a, 0x12, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x78, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x48, 0x61, - 0x73, 0x68, 0x12, 0x26, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x9d, 0x01, 0x0a, 0x15, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x28, 0x0a, 0x06, - 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, - 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x51, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x06, - 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, - 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0b, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x55, 0x0a, 0x0e, 0x45, 0x48, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x26, 0x0a, 0x0f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x48, 0x61, 0x73, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x1a, 0x3a, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x68, 0x79, 0x73, 0x69, - 0x63, 0x73, 0x53, 0x69, 0x6d, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x70, 0x5f, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x70, 0x72, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x13, 0x0a, - 0x11, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x50, 0x68, 0x79, 0x73, 0x69, 0x63, 0x73, 0x53, - 0x69, 0x6d, 0x2a, 0x05, 0x08, 0x64, 0x10, 0xca, 0x01, 0x22, 0x2e, 0x0a, 0x11, 0x43, 0x55, 0x73, - 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x48, 0x75, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x19, - 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x22, 0x4d, 0x0a, 0x18, 0x43, 0x55, 0x73, - 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xb9, 0x01, 0x0a, 0x1f, 0x43, 0x55, 0x73, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x78, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x73, 0x0a, 0x0d, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4e, 0x2e, + 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, + 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x53, 0x65, + 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x76, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x7c, 0x0a, 0x10, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x51, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x55, 0x73, + 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x78, 0x74, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x6f, 0x72, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x71, 0x0a, 0x0e, 0x65, 0x68, 0x61, + 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x4a, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, + 0x67, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x72, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x45, + 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0d, 0x65, + 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x51, 0x0a, 0x11, + 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, + 0x64, 0x0a, 0x12, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x26, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, + 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x9d, 0x01, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x26, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x68, 0x61, + 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x28, 0x0a, 0x06, 0x61, 0x6e, 0x67, 0x6c, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, + 0x4d, 0x73, 0x67, 0x51, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x06, 0x61, 0x6e, 0x67, 0x6c, 0x65, + 0x73, 0x12, 0x32, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, + 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x55, 0x0a, 0x0e, 0x45, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, + 0x1b, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x1a, 0xa7, 0x01, 0x0a, + 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x68, 0x79, 0x73, 0x69, 0x63, 0x73, 0x53, 0x69, + 0x6d, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x70, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x70, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x1b, 0x75, 0x73, 0x65, + 0x5f, 0x68, 0x69, 0x67, 0x68, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x69, + 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, + 0x75, 0x73, 0x65, 0x48, 0x69, 0x67, 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x69, + 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x13, 0x0a, 0x11, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, + 0x79, 0x50, 0x68, 0x79, 0x73, 0x69, 0x63, 0x73, 0x53, 0x69, 0x6d, 0x1a, 0x29, 0x0a, 0x08, 0x53, + 0x65, 0x74, 0x56, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x64, 0x61, 0x74, 0x61, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x64, 0x61, + 0x74, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x2a, 0x05, 0x08, 0x64, 0x10, 0xca, 0x01, 0x22, 0x2e, 0x0a, + 0x11, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x48, 0x75, 0x64, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x22, 0x4d, 0x0a, + 0x18, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x47, 0x61, 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xb9, 0x01, 0x0a, + 0x1f, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x61, 0x70, + 0x74, 0x69, 0x63, 0x73, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x50, 0x75, 0x6c, 0x73, 0x65, + 0x12, 0x17, 0x0a, 0x07, 0x68, 0x61, 0x6e, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x68, 0x61, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x66, 0x66, + 0x65, 0x63, 0x74, 0x5f, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x0f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x41, 0x6d, 0x70, 0x6c, 0x69, + 0x74, 0x75, 0x64, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x5f, 0x66, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, + 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, + 0x27, 0x0a, 0x0f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, + 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x91, 0x01, 0x0a, 0x20, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x61, 0x70, 0x74, 0x69, 0x63, 0x73, - 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x50, 0x75, 0x6c, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, - 0x68, 0x61, 0x6e, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, - 0x61, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x5f, - 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, - 0x0f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x41, 0x6d, 0x70, 0x6c, 0x69, 0x74, 0x75, 0x64, 0x65, - 0x12, 0x29, 0x0a, 0x10, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x65, 0x66, 0x66, 0x65, - 0x63, 0x74, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x65, - 0x66, 0x66, 0x65, 0x63, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x44, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x91, 0x01, 0x0a, 0x20, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x61, 0x70, 0x74, 0x69, 0x63, 0x73, 0x4d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x72, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x61, 0x6e, - 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x61, 0x6e, 0x64, - 0x49, 0x64, 0x12, 0x31, 0x0a, 0x15, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x12, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x48, 0x61, 0x73, - 0x68, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x5f, - 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x65, 0x66, 0x66, - 0x65, 0x63, 0x74, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x22, 0x58, 0x0a, 0x1f, 0x43, 0x55, 0x73, 0x65, - 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x6e, 0x69, 0x6d, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x47, 0x72, 0x61, 0x70, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x65, - 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x12, - 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x22, 0x84, 0x01, 0x0a, 0x1c, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x73, 0x73, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x77, 0x6f, - 0x72, 0x6c, 0x64, 0x5f, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x50, 0x61, 0x6e, 0x65, - 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x73, 0x73, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x73, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x65, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x69, 0x73, 0x5f, 0x61, 0x64, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x41, 0x64, 0x64, 0x22, 0x3c, 0x0a, 0x1b, 0x43, 0x55, 0x73, - 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, - 0x72, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x43, 0x55, 0x73, 0x65, 0x72, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x61, 0x67, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x6e, - 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x64, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x64, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x5e, 0x0a, 0x1c, 0x43, 0x55, 0x73, 0x65, 0x72, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x6c, - 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x6c, 0x6c, 0x5f, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x6c, 0x6c, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x75, 0x6c, - 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x1d, 0x43, 0x55, 0x73, 0x65, - 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x55, - 0x74, 0x69, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x74, 0x69, - 0x6c, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x75, 0x74, 0x69, 0x6c, 0x31, 0x12, - 0x14, 0x0a, 0x05, 0x75, 0x74, 0x69, 0x6c, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x75, 0x74, 0x69, 0x6c, 0x32, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x74, 0x69, 0x6c, 0x33, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x75, 0x74, 0x69, 0x6c, 0x33, 0x12, 0x14, 0x0a, 0x05, 0x75, - 0x74, 0x69, 0x6c, 0x34, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x75, 0x74, 0x69, 0x6c, - 0x34, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x74, 0x69, 0x6c, 0x35, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x75, 0x74, 0x69, 0x6c, 0x35, 0x22, 0x96, 0x04, 0x0a, 0x1d, 0x43, 0x55, 0x73, 0x65, - 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x55, 0x74, 0x69, 0x6c, 0x4d, 0x73, 0x67, - 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x72, 0x63, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, 0x63, 0x72, 0x63, 0x12, 0x1d, 0x0a, 0x0a, 0x69, - 0x74, 0x65, 0x6d, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x09, 0x69, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x72, - 0x63, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x07, 0x52, 0x04, 0x63, 0x72, 0x63, 0x32, 0x12, 0x1f, - 0x0a, 0x0b, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x32, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x69, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x32, 0x12, - 0x19, 0x0a, 0x08, 0x63, 0x72, 0x63, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x07, 0x63, 0x72, 0x63, 0x50, 0x61, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x72, - 0x63, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x32, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x63, - 0x72, 0x63, 0x50, 0x61, 0x72, 0x74, 0x32, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x50, - 0x0a, 0x0b, 0x69, 0x74, 0x65, 0x6d, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x09, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x55, 0x74, 0x69, 0x6c, 0x4d, 0x73, 0x67, 0x5f, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x52, 0x0b, 0x69, 0x74, 0x65, 0x6d, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x74, 0x65, 0x6d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x74, 0x65, 0x6d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1f, - 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x32, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x32, 0x1a, 0x5c, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x72, - 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x63, 0x72, 0x63, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0xcb, 0x04, 0x0a, 0x16, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x5f, 0x44, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x66, - 0x69, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x21, 0x0a, 0x0c, - 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x4c, 0x69, 0x6e, 0x65, 0x12, - 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x73, - 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, - 0x1c, 0x0a, 0x09, 0x6f, 0x73, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x09, 0x6f, 0x73, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, - 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4b, - 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x44, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x2e, 0x43, 0x56, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, - 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x3e, 0x0a, 0x07, 0x6d, - 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x64, - 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x5f, 0x44, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x43, 0x4d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x73, 0x0a, 0x0c, 0x43, - 0x56, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, - 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x1a, 0x6c, 0x0a, 0x07, 0x43, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x62, - 0x61, 0x73, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, - 0x62, 0x61, 0x73, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x6e, - 0x0a, 0x1c, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1c, - 0x0a, 0x09, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xf0, - 0x06, 0x0a, 0x1f, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, - 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x72, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, - 0x03, 0x63, 0x72, 0x63, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x74, 0x65, 0x6d, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x73, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x12, 0x17, 0x0a, + 0x07, 0x68, 0x61, 0x6e, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x68, 0x61, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x15, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x48, 0x61, 0x73, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x66, 0x66, + 0x65, 0x63, 0x74, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x0b, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x22, 0x58, 0x0a, 0x1f, + 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x6e, 0x69, 0x6d, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x47, 0x72, 0x61, 0x70, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x21, 0x0a, 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x84, 0x01, 0x0a, 0x1c, 0x43, 0x55, 0x73, 0x65, 0x72, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x73, 0x73, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x5f, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x5f, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6c, 0x64, + 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x73, 0x73, 0x5f, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x73, 0x73, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x69, 0x73, 0x5f, 0x61, 0x64, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x41, 0x64, 0x64, 0x22, 0x3c, 0x0a, + 0x1b, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, + 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x43, + 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x61, 0x67, 0x43, 0x6f, + 0x6d, 0x70, 0x65, 0x6e, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, + 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x5e, 0x0a, 0x1c, 0x43, + 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x44, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x64, + 0x6c, 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x64, 0x6c, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x75, + 0x6c, 0x6c, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0a, 0x66, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x1d, + 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x55, 0x74, 0x69, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, + 0x05, 0x75, 0x74, 0x69, 0x6c, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x75, 0x74, + 0x69, 0x6c, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x74, 0x69, 0x6c, 0x32, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x75, 0x74, 0x69, 0x6c, 0x32, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x74, 0x69, + 0x6c, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x75, 0x74, 0x69, 0x6c, 0x33, 0x12, + 0x14, 0x0a, 0x05, 0x75, 0x74, 0x69, 0x6c, 0x34, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x75, 0x74, 0x69, 0x6c, 0x34, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x74, 0x69, 0x6c, 0x35, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x75, 0x74, 0x69, 0x6c, 0x35, 0x22, 0x96, 0x04, 0x0a, 0x1d, + 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x55, 0x74, 0x69, + 0x6c, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x63, 0x72, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, 0x63, 0x72, 0x63, 0x12, + 0x1d, 0x0a, 0x0a, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x63, 0x72, 0x63, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x07, 0x52, 0x04, 0x63, 0x72, + 0x63, 0x32, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x69, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x32, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x72, 0x63, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x63, 0x72, 0x63, 0x50, 0x61, 0x72, 0x74, 0x12, 0x1b, + 0x0a, 0x09, 0x63, 0x72, 0x63, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x32, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x08, 0x63, 0x72, 0x63, 0x50, 0x61, 0x72, 0x74, 0x32, 0x12, 0x29, 0x0a, 0x10, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x12, 0x50, 0x0a, 0x0b, 0x69, 0x74, 0x65, 0x6d, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, + 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x55, 0x74, 0x69, 0x6c, + 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x74, 0x65, + 0x6d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x0b, 0x69, 0x74, 0x65, 0x6d, 0x64, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x74, 0x65, 0x6d, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x74, 0x65, 0x6d, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x32, 0x1a, 0x5c, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, + 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x10, + 0x0a, 0x03, 0x63, 0x72, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x63, 0x72, 0x63, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xcb, 0x04, 0x0a, 0x16, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x44, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x1f, 0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x6c, 0x69, 0x6e, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x4c, + 0x69, 0x6e, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x46, + 0x69, 0x6c, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, + 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x73, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6f, 0x73, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x65, 0x72, 0x66, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x65, 0x72, 0x66, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x29, - 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x57, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x69, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x64, 0x6f, 0x74, - 0x61, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x49, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x2e, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x59, - 0x0a, 0x0c, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x32, 0x18, 0x0a, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x55, 0x73, 0x65, - 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x0c, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x32, 0x12, 0x59, 0x0a, 0x0c, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x33, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x35, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, + 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x4b, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, + 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x44, 0x6c, 0x6c, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x43, 0x56, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, + 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, + 0x3e, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x5f, 0x44, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x43, + 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x1a, + 0x73, 0x0a, 0x0c, 0x43, 0x56, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x6c, 0x0a, 0x07, 0x43, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, + 0x1b, 0x0a, 0x09, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x08, 0x62, 0x61, 0x73, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, + 0x73, 0x69, 0x7a, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x22, 0x6e, 0x0a, 0x1c, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x22, 0xf0, 0x06, 0x0a, 0x1f, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x0c, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x69, 0x65, 0x73, 0x33, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x6e, 0x76, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x69, 0x6e, 0x76, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x23, 0x0a, 0x0d, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x1a, - 0x8f, 0x02, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x69, - 0x6d, 0x61, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x70, 0x72, 0x69, 0x6d, - 0x61, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x66, - 0x69, 0x72, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x66, 0x69, 0x72, 0x73, - 0x74, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x61, 0x73, - 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, - 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x64, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x62, 0x61, 0x73, - 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x61, 0x73, 0x65, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x62, 0x61, 0x73, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x68, 0x61, 0x73, - 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x62, 0x61, 0x73, 0x65, 0x48, 0x61, 0x73, - 0x68, 0x22, 0xac, 0x03, 0x0a, 0x1d, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, - 0x74, 0x69, 0x63, 0x12, 0x50, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, - 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, - 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x44, 0x69, - 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, - 0x73, 0x74, 0x69, 0x63, 0x73, 0x1a, 0xb8, 0x02, 0x0a, 0x0a, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, - 0x73, 0x74, 0x69, 0x63, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, - 0x65, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x61, 0x72, 0x64, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x76, 0x61, 0x72, - 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, - 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, - 0x22, 0xfc, 0x04, 0x0a, 0x20, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x5f, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x5f, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, - 0x74, 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x64, 0x6f, 0x74, - 0x61, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x44, - 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, - 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x75, - 0x69, 0x6c, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x73, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6f, - 0x73, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x1a, 0xe8, 0x02, 0x0a, 0x0a, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, - 0x74, 0x69, 0x63, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, - 0x16, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, - 0x61, 0x6e, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x6c, 0x69, - 0x61, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x12, - 0x16, 0x0a, 0x06, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x06, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x78, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, - 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x61, - 0x75, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x61, 0x75, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x62, 0x6f, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x22, - 0x94, 0x01, 0x0a, 0x1a, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x5f, 0x45, 0x78, 0x74, 0x72, 0x61, 0x55, 0x73, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, - 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x69, 0x74, - 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x31, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x31, 0x18, 0x04, 0x20, - 0x03, 0x28, 0x0c, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x31, 0x12, 0x18, 0x0a, 0x07, - 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x32, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x07, 0x64, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x32, 0x22, 0xbe, 0x02, 0x0a, 0x20, 0x43, 0x55, 0x73, 0x65, 0x72, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x65, - 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x75, 0x6c, 0x65, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x75, 0x6c, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x29, 0x0a, 0x10, - 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, 0x12, 0x4b, 0x0a, 0x08, 0x63, 0x72, 0x69, 0x74, 0x65, - 0x72, 0x69, 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x64, 0x6f, 0x74, 0x61, - 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x4e, 0x6f, - 0x74, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x46, 0x6f, 0x75, 0x6e, - 0x64, 0x2e, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x52, 0x08, 0x63, 0x72, 0x69, 0x74, - 0x65, 0x72, 0x69, 0x61, 0x1a, 0x41, 0x0a, 0x08, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, - 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x53, 0x79, 0x6d, 0x62, 0x6f, - 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb3, 0x01, 0x0a, 0x24, 0x43, 0x55, 0x73, 0x65, - 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x21, 0x0a, - 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x6c, 0x6f, 0x74, 0x73, - 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x0a, - 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x52, 0x09, 0x65, 0x6e, 0x74, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2a, 0xac, 0x09, - 0x0a, 0x11, 0x45, 0x42, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x4d, 0x5f, 0x41, 0x63, 0x68, 0x69, 0x65, 0x76, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0x65, 0x12, 0x13, 0x0a, 0x0f, - 0x55, 0x4d, 0x5f, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x10, - 0x66, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x4d, 0x5f, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x61, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x10, 0x67, 0x12, 0x17, 0x0a, 0x13, - 0x55, 0x4d, 0x5f, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x63, - 0x61, 0x6c, 0x65, 0x10, 0x68, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x4d, 0x5f, 0x44, 0x65, 0x73, 0x69, - 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x10, 0x69, 0x12, 0x0b, - 0x0a, 0x07, 0x55, 0x4d, 0x5f, 0x46, 0x61, 0x64, 0x65, 0x10, 0x6a, 0x12, 0x10, 0x0a, 0x0c, 0x55, - 0x4d, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x10, 0x6b, 0x12, 0x0d, 0x0a, - 0x09, 0x55, 0x4d, 0x5f, 0x48, 0x75, 0x64, 0x4d, 0x73, 0x67, 0x10, 0x6e, 0x12, 0x0e, 0x0a, 0x0a, - 0x55, 0x4d, 0x5f, 0x48, 0x75, 0x64, 0x54, 0x65, 0x78, 0x74, 0x10, 0x6f, 0x12, 0x12, 0x0a, 0x0e, - 0x55, 0x4d, 0x5f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x10, 0x71, - 0x12, 0x13, 0x0a, 0x0f, 0x55, 0x4d, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x10, 0x72, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4d, 0x5f, 0x52, 0x65, 0x73, 0x65, - 0x74, 0x48, 0x55, 0x44, 0x10, 0x73, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4d, 0x5f, 0x52, 0x75, 0x6d, - 0x62, 0x6c, 0x65, 0x10, 0x74, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x4d, 0x5f, 0x53, 0x61, 0x79, 0x54, - 0x65, 0x78, 0x74, 0x10, 0x75, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4d, 0x5f, 0x53, 0x61, 0x79, 0x54, - 0x65, 0x78, 0x74, 0x32, 0x10, 0x76, 0x12, 0x15, 0x0a, 0x11, 0x55, 0x4d, 0x5f, 0x53, 0x61, 0x79, - 0x54, 0x65, 0x78, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x10, 0x77, 0x12, 0x0c, 0x0a, - 0x08, 0x55, 0x4d, 0x5f, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x10, 0x78, 0x12, 0x0f, 0x0a, 0x0b, 0x55, - 0x4d, 0x5f, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x44, 0x69, 0x72, 0x10, 0x79, 0x12, 0x11, 0x0a, 0x0d, - 0x55, 0x4d, 0x5f, 0x57, 0x61, 0x74, 0x65, 0x72, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x10, 0x7a, 0x12, - 0x0e, 0x0a, 0x0a, 0x55, 0x4d, 0x5f, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x73, 0x67, 0x10, 0x7c, 0x12, - 0x11, 0x0a, 0x0d, 0x55, 0x4d, 0x5f, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x54, 0x69, 0x6c, 0x74, - 0x10, 0x7d, 0x12, 0x11, 0x0a, 0x0c, 0x55, 0x4d, 0x5f, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x4d, 0x61, - 0x73, 0x6b, 0x10, 0x80, 0x01, 0x12, 0x11, 0x0a, 0x0c, 0x55, 0x4d, 0x5f, 0x53, 0x65, 0x6e, 0x64, - 0x41, 0x75, 0x64, 0x69, 0x6f, 0x10, 0x82, 0x01, 0x12, 0x12, 0x0a, 0x0d, 0x55, 0x4d, 0x5f, 0x49, - 0x74, 0x65, 0x6d, 0x50, 0x69, 0x63, 0x6b, 0x75, 0x70, 0x10, 0x83, 0x01, 0x12, 0x12, 0x0a, 0x0d, - 0x55, 0x4d, 0x5f, 0x41, 0x6d, 0x6d, 0x6f, 0x44, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x10, 0x84, 0x01, - 0x12, 0x10, 0x0a, 0x0b, 0x55, 0x4d, 0x5f, 0x53, 0x68, 0x6f, 0x77, 0x4d, 0x65, 0x6e, 0x75, 0x10, - 0x86, 0x01, 0x12, 0x12, 0x0a, 0x0d, 0x55, 0x4d, 0x5f, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, - 0x4d, 0x73, 0x67, 0x10, 0x87, 0x01, 0x12, 0x1f, 0x0a, 0x1a, 0x55, 0x4d, 0x5f, 0x43, 0x6c, 0x6f, - 0x73, 0x65, 0x43, 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, - 0x6c, 0x64, 0x65, 0x72, 0x10, 0x8e, 0x01, 0x12, 0x18, 0x0a, 0x13, 0x55, 0x4d, 0x5f, 0x43, 0x61, - 0x6d, 0x65, 0x72, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x8f, - 0x01, 0x12, 0x16, 0x0a, 0x11, 0x55, 0x4d, 0x5f, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x10, 0x90, 0x01, 0x12, 0x17, 0x0a, 0x12, 0x55, 0x4d, 0x5f, - 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x10, - 0x91, 0x01, 0x12, 0x10, 0x0a, 0x0b, 0x55, 0x4d, 0x5f, 0x48, 0x75, 0x64, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x10, 0x92, 0x01, 0x12, 0x17, 0x0a, 0x12, 0x55, 0x4d, 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0x94, 0x01, 0x12, 0x17, 0x0a, - 0x12, 0x55, 0x4d, 0x5f, 0x41, 0x6e, 0x69, 0x6d, 0x47, 0x72, 0x61, 0x70, 0x68, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x10, 0x95, 0x01, 0x12, 0x1b, 0x0a, 0x16, 0x55, 0x4d, 0x5f, 0x48, 0x61, 0x70, - 0x74, 0x69, 0x63, 0x73, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x50, 0x75, 0x6c, 0x73, 0x65, - 0x10, 0x96, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x55, 0x4d, 0x5f, 0x48, 0x61, 0x70, 0x74, 0x69, 0x63, - 0x73, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x10, 0x97, - 0x01, 0x12, 0x19, 0x0a, 0x14, 0x55, 0x4d, 0x5f, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x51, - 0x75, 0x65, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, 0x98, 0x01, 0x12, 0x18, 0x0a, 0x13, - 0x55, 0x4d, 0x5f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x73, 0x73, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x65, 0x73, 0x10, 0x99, 0x01, 0x12, 0x17, 0x0a, 0x12, 0x55, 0x4d, 0x5f, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x10, 0x9a, 0x01, 0x12, - 0x1c, 0x0a, 0x17, 0x55, 0x4d, 0x5f, 0x4c, 0x61, 0x67, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x73, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x9b, 0x01, 0x12, 0x18, 0x0a, - 0x13, 0x55, 0x4d, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x6c, 0x6c, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x10, 0x9c, 0x01, 0x12, 0x19, 0x0a, 0x14, 0x55, 0x4d, 0x5f, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x55, 0x74, 0x69, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, - 0x9d, 0x01, 0x12, 0x1a, 0x0a, 0x15, 0x55, 0x4d, 0x5f, 0x55, 0x74, 0x69, 0x6c, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x10, 0x9e, 0x01, 0x12, 0x19, - 0x0a, 0x14, 0x55, 0x4d, 0x5f, 0x44, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x10, 0x9f, 0x01, 0x12, 0x18, 0x0a, 0x13, 0x55, 0x4d, 0x5f, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x10, 0xa0, 0x01, 0x12, 0x19, 0x0a, 0x14, 0x55, 0x4d, 0x5f, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x10, 0xa1, 0x01, 0x12, 0x19, - 0x0a, 0x14, 0x55, 0x4d, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x69, 0x61, 0x67, - 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x10, 0xa2, 0x01, 0x12, 0x1a, 0x0a, 0x15, 0x55, 0x4d, 0x5f, - 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x10, 0xa3, 0x01, 0x12, 0x15, 0x0a, 0x10, 0x55, 0x4d, 0x5f, 0x45, 0x78, 0x74, 0x72, - 0x61, 0x55, 0x73, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x10, 0xa4, 0x01, 0x12, 0x1b, 0x0a, 0x16, - 0x55, 0x4d, 0x5f, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xa5, 0x01, 0x12, 0x1f, 0x0a, 0x1a, 0x55, 0x4d, 0x5f, - 0x50, 0x6c, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x10, 0xa6, 0x01, 0x12, 0x10, 0x0a, 0x0b, 0x55, 0x4d, - 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0xc8, 0x01, 0x2a, 0x94, 0x01, 0x0a, - 0x13, 0x45, 0x42, 0x61, 0x73, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x0d, 0x45, 0x4d, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x4a, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x10, 0x88, 0x01, 0x12, 0x15, 0x0a, 0x10, 0x45, 0x4d, 0x5f, 0x53, - 0x63, 0x72, 0x65, 0x65, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x10, 0x89, 0x01, 0x12, - 0x17, 0x0a, 0x12, 0x45, 0x4d, 0x5f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x6c, 0x6c, 0x44, - 0x65, 0x63, 0x61, 0x6c, 0x73, 0x10, 0x8a, 0x01, 0x12, 0x16, 0x0a, 0x11, 0x45, 0x4d, 0x5f, 0x50, - 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x10, 0x8b, 0x01, - 0x12, 0x0f, 0x0a, 0x0a, 0x45, 0x4d, 0x5f, 0x44, 0x6f, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x10, 0x8c, - 0x01, 0x12, 0x10, 0x0a, 0x0b, 0x45, 0x4d, 0x5f, 0x46, 0x69, 0x78, 0x41, 0x6e, 0x67, 0x6c, 0x65, - 0x10, 0x8d, 0x01, 0x2a, 0x6f, 0x0a, 0x09, 0x65, 0x52, 0x6f, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x16, 0x0a, 0x09, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x4f, 0x4c, 0x4c, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x52, 0x4f, 0x4c, 0x4c, - 0x5f, 0x43, 0x52, 0x45, 0x44, 0x49, 0x54, 0x53, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x52, 0x4f, - 0x4c, 0x4c, 0x5f, 0x4c, 0x41, 0x54, 0x45, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x4c, 0x4f, 0x47, - 0x4f, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4f, 0x55, 0x54, 0x54, - 0x52, 0x4f, 0x10, 0x03, 0x2a, 0xd3, 0x0d, 0x0a, 0x10, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, - 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x26, 0x0a, 0x22, 0x47, 0x41, 0x4d, - 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, - 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, - 0x00, 0x12, 0x26, 0x0a, 0x22, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, - 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x2e, 0x0a, 0x2a, 0x47, 0x41, 0x4d, - 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, - 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, - 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x10, 0x02, 0x12, 0x32, 0x0a, 0x2e, 0x47, 0x41, 0x4d, - 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, - 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, - 0x4f, 0x52, 0x49, 0x45, 0x4e, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x12, 0x2f, 0x0a, - 0x2b, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, - 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x50, 0x44, - 0x41, 0x54, 0x45, 0x5f, 0x46, 0x41, 0x4c, 0x4c, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x04, 0x12, 0x2a, - 0x0a, 0x26, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, - 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x50, - 0x44, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x10, 0x05, 0x12, 0x2d, 0x0a, 0x29, 0x47, 0x41, - 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, - 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, - 0x5f, 0x4f, 0x46, 0x46, 0x53, 0x45, 0x54, 0x10, 0x06, 0x12, 0x27, 0x0a, 0x23, 0x47, 0x41, 0x4d, - 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, - 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, - 0x10, 0x07, 0x12, 0x31, 0x0a, 0x2d, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, - 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, - 0x54, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4c, 0x56, - 0x49, 0x4e, 0x47, 0x10, 0x08, 0x12, 0x27, 0x0a, 0x23, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, - 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x4c, 0x45, 0x41, 0x53, 0x45, 0x10, 0x09, 0x12, 0x27, - 0x0a, 0x23, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, - 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x41, - 0x54, 0x45, 0x4e, 0x43, 0x59, 0x10, 0x0a, 0x12, 0x2b, 0x0a, 0x27, 0x47, 0x41, 0x4d, 0x45, 0x5f, - 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, - 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x48, 0x4f, 0x55, 0x4c, 0x44, 0x5f, 0x44, 0x52, - 0x41, 0x57, 0x10, 0x0b, 0x12, 0x26, 0x0a, 0x22, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, - 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x5f, 0x46, 0x52, 0x4f, 0x5a, 0x45, 0x4e, 0x10, 0x0c, 0x12, 0x3f, 0x0a, 0x3b, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x72, 0x63, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x07, 0x52, 0x03, 0x63, 0x72, 0x63, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x74, 0x65, 0x6d, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x74, + 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x73, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6f, 0x73, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x65, 0x72, 0x66, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x65, 0x72, 0x66, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x57, 0x0a, 0x0b, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, + 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x5f, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x69, + 0x65, 0x73, 0x12, 0x59, 0x0a, 0x0c, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x69, 0x65, + 0x73, 0x32, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, + 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x49, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, + 0x0c, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x32, 0x12, 0x59, 0x0a, + 0x0c, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x33, 0x18, 0x0e, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x0c, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x33, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x6e, 0x76, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x69, 0x6e, 0x76, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x62, 0x75, 0x69, 0x6c, + 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x1a, 0x8f, 0x02, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x18, 0x0a, + 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, + 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x66, 0x69, 0x72, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, + 0x09, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x62, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, + 0x73, 0x65, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0a, 0x62, 0x61, 0x73, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x62, + 0x61, 0x73, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x62, 0x61, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x61, 0x73, 0x65, + 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x62, 0x61, 0x73, + 0x65, 0x48, 0x61, 0x73, 0x68, 0x22, 0xac, 0x03, 0x0a, 0x1d, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x69, 0x61, + 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x12, 0x50, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, + 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x64, + 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, + 0x63, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, + 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x1a, 0xb8, 0x02, 0x0a, 0x0a, 0x44, 0x69, + 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x16, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x72, 0x61, 0x6e, + 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x06, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1c, 0x0a, 0x09, + 0x76, 0x61, 0x72, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x09, 0x76, 0x61, 0x72, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x78, 0x74, 0x22, 0xfc, 0x04, 0x0a, 0x20, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, + 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x0b, 0x64, 0x69, 0x61, + 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, + 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x5f, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x5f, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, + 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x23, + 0x0a, 0x0d, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, + 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x6f, 0x73, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x09, 0x6f, 0x73, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x1a, 0xe8, 0x02, 0x0a, 0x0a, 0x44, 0x69, 0x61, + 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x62, + 0x61, 0x73, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x6c, + 0x69, 0x61, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x06, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, + 0x18, 0x0a, 0x07, 0x61, 0x75, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x07, 0x61, 0x75, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6c, 0x61, + 0x63, 0x65, 0x62, 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x63, + 0x65, 0x62, 0x6f, 0x22, 0x94, 0x01, 0x0a, 0x1a, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x5f, 0x45, 0x78, 0x74, 0x72, 0x61, 0x55, 0x73, 0x65, 0x72, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x31, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x31, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x31, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x31, + 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x32, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0c, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x32, 0x22, 0xec, 0x04, 0x0a, 0x20, 0x43, + 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x12, + 0x1b, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, + 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x72, 0x75, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x6e, + 0x63, 0x65, 0x70, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, 0x12, 0x4b, 0x0a, 0x08, 0x63, + 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, + 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x5f, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x52, 0x08, + 0x63, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x6e, 0x74, 0x5f, + 0x63, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, + 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x69, 0x6e, 0x74, 0x5f, 0x63, 0x72, + 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x11, 0x69, 0x6e, 0x74, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, + 0x63, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x08, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x12, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x43, 0x72, 0x69, 0x74, 0x65, + 0x72, 0x69, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x5f, 0x63, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x02, 0x52, 0x13, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x43, 0x72, + 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x15, + 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x5f, 0x63, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x13, 0x73, 0x79, 0x6d, + 0x62, 0x6f, 0x6c, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x12, 0x34, 0x0a, 0x16, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x5f, 0x63, 0x72, 0x69, 0x74, 0x65, + 0x72, 0x69, 0x61, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x14, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x41, 0x0a, 0x08, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, + 0x69, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, + 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x53, 0x79, 0x6d, + 0x62, 0x6f, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xd0, 0x01, 0x0a, 0x24, 0x43, 0x55, + 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, + 0x21, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x6c, 0x6f, + 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, + 0x0a, 0x0a, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6f, 0x74, 0x61, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x52, 0x09, 0x65, 0x6e, 0x74, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, + 0x1b, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x08, 0x70, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x2a, 0xac, 0x09, 0x0a, + 0x11, 0x45, 0x42, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x73, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x4d, 0x5f, 0x41, 0x63, 0x68, 0x69, 0x65, 0x76, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x55, + 0x4d, 0x5f, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x66, + 0x12, 0x19, 0x0a, 0x15, 0x55, 0x4d, 0x5f, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x61, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x10, 0x67, 0x12, 0x17, 0x0a, 0x13, 0x55, + 0x4d, 0x5f, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x63, 0x61, + 0x6c, 0x65, 0x10, 0x68, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x4d, 0x5f, 0x44, 0x65, 0x73, 0x69, 0x72, + 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x10, 0x69, 0x12, 0x0b, 0x0a, + 0x07, 0x55, 0x4d, 0x5f, 0x46, 0x61, 0x64, 0x65, 0x10, 0x6a, 0x12, 0x10, 0x0a, 0x0c, 0x55, 0x4d, + 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x10, 0x6b, 0x12, 0x0d, 0x0a, 0x09, + 0x55, 0x4d, 0x5f, 0x48, 0x75, 0x64, 0x4d, 0x73, 0x67, 0x10, 0x6e, 0x12, 0x0e, 0x0a, 0x0a, 0x55, + 0x4d, 0x5f, 0x48, 0x75, 0x64, 0x54, 0x65, 0x78, 0x74, 0x10, 0x6f, 0x12, 0x12, 0x0a, 0x0e, 0x55, + 0x4d, 0x5f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x10, 0x71, 0x12, + 0x13, 0x0a, 0x0f, 0x55, 0x4d, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x10, 0x72, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4d, 0x5f, 0x52, 0x65, 0x73, 0x65, 0x74, + 0x48, 0x55, 0x44, 0x10, 0x73, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4d, 0x5f, 0x52, 0x75, 0x6d, 0x62, + 0x6c, 0x65, 0x10, 0x74, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x4d, 0x5f, 0x53, 0x61, 0x79, 0x54, 0x65, + 0x78, 0x74, 0x10, 0x75, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4d, 0x5f, 0x53, 0x61, 0x79, 0x54, 0x65, + 0x78, 0x74, 0x32, 0x10, 0x76, 0x12, 0x15, 0x0a, 0x11, 0x55, 0x4d, 0x5f, 0x53, 0x61, 0x79, 0x54, + 0x65, 0x78, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x10, 0x77, 0x12, 0x0c, 0x0a, 0x08, + 0x55, 0x4d, 0x5f, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x10, 0x78, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4d, + 0x5f, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x44, 0x69, 0x72, 0x10, 0x79, 0x12, 0x11, 0x0a, 0x0d, 0x55, + 0x4d, 0x5f, 0x57, 0x61, 0x74, 0x65, 0x72, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x10, 0x7a, 0x12, 0x0e, + 0x0a, 0x0a, 0x55, 0x4d, 0x5f, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x73, 0x67, 0x10, 0x7c, 0x12, 0x11, + 0x0a, 0x0d, 0x55, 0x4d, 0x5f, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x54, 0x69, 0x6c, 0x74, 0x10, + 0x7d, 0x12, 0x11, 0x0a, 0x0c, 0x55, 0x4d, 0x5f, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x4d, 0x61, 0x73, + 0x6b, 0x10, 0x80, 0x01, 0x12, 0x11, 0x0a, 0x0c, 0x55, 0x4d, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x41, + 0x75, 0x64, 0x69, 0x6f, 0x10, 0x82, 0x01, 0x12, 0x12, 0x0a, 0x0d, 0x55, 0x4d, 0x5f, 0x49, 0x74, + 0x65, 0x6d, 0x50, 0x69, 0x63, 0x6b, 0x75, 0x70, 0x10, 0x83, 0x01, 0x12, 0x12, 0x0a, 0x0d, 0x55, + 0x4d, 0x5f, 0x41, 0x6d, 0x6d, 0x6f, 0x44, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x10, 0x84, 0x01, 0x12, + 0x10, 0x0a, 0x0b, 0x55, 0x4d, 0x5f, 0x53, 0x68, 0x6f, 0x77, 0x4d, 0x65, 0x6e, 0x75, 0x10, 0x86, + 0x01, 0x12, 0x12, 0x0a, 0x0d, 0x55, 0x4d, 0x5f, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x4d, + 0x73, 0x67, 0x10, 0x87, 0x01, 0x12, 0x1f, 0x0a, 0x1a, 0x55, 0x4d, 0x5f, 0x43, 0x6c, 0x6f, 0x73, + 0x65, 0x43, 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, + 0x64, 0x65, 0x72, 0x10, 0x8e, 0x01, 0x12, 0x18, 0x0a, 0x13, 0x55, 0x4d, 0x5f, 0x43, 0x61, 0x6d, + 0x65, 0x72, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x8f, 0x01, + 0x12, 0x16, 0x0a, 0x11, 0x55, 0x4d, 0x5f, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x10, 0x90, 0x01, 0x12, 0x17, 0x0a, 0x12, 0x55, 0x4d, 0x5f, 0x50, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x10, 0x91, + 0x01, 0x12, 0x10, 0x0a, 0x0b, 0x55, 0x4d, 0x5f, 0x48, 0x75, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x10, 0x92, 0x01, 0x12, 0x17, 0x0a, 0x12, 0x55, 0x4d, 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x47, 0x61, 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0x94, 0x01, 0x12, 0x17, 0x0a, 0x12, + 0x55, 0x4d, 0x5f, 0x41, 0x6e, 0x69, 0x6d, 0x47, 0x72, 0x61, 0x70, 0x68, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x10, 0x95, 0x01, 0x12, 0x1b, 0x0a, 0x16, 0x55, 0x4d, 0x5f, 0x48, 0x61, 0x70, 0x74, + 0x69, 0x63, 0x73, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x50, 0x75, 0x6c, 0x73, 0x65, 0x10, + 0x96, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x55, 0x4d, 0x5f, 0x48, 0x61, 0x70, 0x74, 0x69, 0x63, 0x73, + 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x10, 0x97, 0x01, + 0x12, 0x19, 0x0a, 0x14, 0x55, 0x4d, 0x5f, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x51, 0x75, + 0x65, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, 0x98, 0x01, 0x12, 0x18, 0x0a, 0x13, 0x55, + 0x4d, 0x5f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x73, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x65, 0x73, 0x10, 0x99, 0x01, 0x12, 0x17, 0x0a, 0x12, 0x55, 0x4d, 0x5f, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x10, 0x9a, 0x01, 0x12, 0x1c, + 0x0a, 0x17, 0x55, 0x4d, 0x5f, 0x4c, 0x61, 0x67, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x73, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x9b, 0x01, 0x12, 0x18, 0x0a, 0x13, + 0x55, 0x4d, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x6c, 0x6c, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x10, 0x9c, 0x01, 0x12, 0x19, 0x0a, 0x14, 0x55, 0x4d, 0x5f, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x55, 0x74, 0x69, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x9d, + 0x01, 0x12, 0x1a, 0x0a, 0x15, 0x55, 0x4d, 0x5f, 0x55, 0x74, 0x69, 0x6c, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x10, 0x9e, 0x01, 0x12, 0x19, 0x0a, + 0x14, 0x55, 0x4d, 0x5f, 0x44, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x10, 0x9f, 0x01, 0x12, 0x18, 0x0a, 0x13, 0x55, 0x4d, 0x5f, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x10, + 0xa0, 0x01, 0x12, 0x19, 0x0a, 0x14, 0x55, 0x4d, 0x5f, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x10, 0xa1, 0x01, 0x12, 0x19, 0x0a, + 0x14, 0x55, 0x4d, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x69, 0x61, 0x67, 0x6e, + 0x6f, 0x73, 0x74, 0x69, 0x63, 0x10, 0xa2, 0x01, 0x12, 0x1a, 0x0a, 0x15, 0x55, 0x4d, 0x5f, 0x44, + 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x10, 0xa3, 0x01, 0x12, 0x15, 0x0a, 0x10, 0x55, 0x4d, 0x5f, 0x45, 0x78, 0x74, 0x72, 0x61, + 0x55, 0x73, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x10, 0xa4, 0x01, 0x12, 0x1b, 0x0a, 0x16, 0x55, + 0x4d, 0x5f, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xa5, 0x01, 0x12, 0x1f, 0x0a, 0x1a, 0x55, 0x4d, 0x5f, 0x50, + 0x6c, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x10, 0xa6, 0x01, 0x12, 0x10, 0x0a, 0x0b, 0x55, 0x4d, 0x5f, + 0x4d, 0x41, 0x58, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0xc8, 0x01, 0x2a, 0x94, 0x01, 0x0a, 0x13, + 0x45, 0x42, 0x61, 0x73, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x0d, 0x45, 0x4d, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x4a, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x10, 0x88, 0x01, 0x12, 0x15, 0x0a, 0x10, 0x45, 0x4d, 0x5f, 0x53, 0x63, + 0x72, 0x65, 0x65, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x10, 0x89, 0x01, 0x12, 0x17, + 0x0a, 0x12, 0x45, 0x4d, 0x5f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x6c, 0x6c, 0x44, 0x65, + 0x63, 0x61, 0x6c, 0x73, 0x10, 0x8a, 0x01, 0x12, 0x16, 0x0a, 0x11, 0x45, 0x4d, 0x5f, 0x50, 0x72, + 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x10, 0x8b, 0x01, 0x12, + 0x0f, 0x0a, 0x0a, 0x45, 0x4d, 0x5f, 0x44, 0x6f, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x10, 0x8c, 0x01, + 0x12, 0x10, 0x0a, 0x0b, 0x45, 0x4d, 0x5f, 0x46, 0x69, 0x78, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x10, + 0x8d, 0x01, 0x2a, 0x6f, 0x0a, 0x09, 0x65, 0x52, 0x6f, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x16, 0x0a, 0x09, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x53, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, + 0x43, 0x52, 0x45, 0x44, 0x49, 0x54, 0x53, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x52, 0x4f, 0x4c, + 0x4c, 0x5f, 0x4c, 0x41, 0x54, 0x45, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x4c, 0x4f, 0x47, 0x4f, + 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4f, 0x55, 0x54, 0x54, 0x52, + 0x4f, 0x10, 0x03, 0x2a, 0xfe, 0x0d, 0x0a, 0x10, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, + 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x26, 0x0a, 0x22, 0x47, 0x41, 0x4d, 0x45, + 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, + 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x00, + 0x12, 0x26, 0x0a, 0x22, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, + 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, + 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x2e, 0x0a, 0x2a, 0x47, 0x41, 0x4d, 0x45, + 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, + 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x46, + 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x10, 0x02, 0x12, 0x32, 0x0a, 0x2e, 0x47, 0x41, 0x4d, 0x45, + 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, + 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x4f, + 0x52, 0x49, 0x45, 0x4e, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x12, 0x2f, 0x0a, 0x2b, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, - 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x48, 0x41, 0x4e, - 0x47, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, - 0x5f, 0x41, 0x54, 0x54, 0x41, 0x43, 0x48, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x0d, 0x12, 0x36, 0x0a, - 0x32, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, + 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x50, 0x44, 0x41, + 0x54, 0x45, 0x5f, 0x46, 0x41, 0x4c, 0x4c, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x04, 0x12, 0x2a, 0x0a, + 0x26, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x50, 0x44, - 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, - 0x49, 0x4f, 0x4e, 0x10, 0x0e, 0x12, 0x32, 0x0a, 0x2e, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, - 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x46, 0x4f, 0x57, 0x5f, 0x50, 0x52, 0x4f, - 0x50, 0x45, 0x52, 0x54, 0x49, 0x45, 0x53, 0x10, 0x0f, 0x12, 0x28, 0x0a, 0x24, 0x47, 0x41, 0x4d, + 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x10, 0x05, 0x12, 0x2d, 0x0a, 0x29, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, - 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x54, 0x45, 0x58, - 0x54, 0x10, 0x10, 0x12, 0x34, 0x0a, 0x30, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, + 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, + 0x4f, 0x46, 0x46, 0x53, 0x45, 0x54, 0x10, 0x06, 0x12, 0x27, 0x0a, 0x23, 0x47, 0x41, 0x4d, 0x45, + 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, + 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x10, + 0x07, 0x12, 0x31, 0x0a, 0x2d, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, + 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4c, 0x56, 0x49, + 0x4e, 0x47, 0x10, 0x08, 0x12, 0x27, 0x0a, 0x23, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, + 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x4c, 0x45, 0x41, 0x53, 0x45, 0x10, 0x09, 0x12, 0x27, 0x0a, + 0x23, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, + 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x41, 0x54, + 0x45, 0x4e, 0x43, 0x59, 0x10, 0x0a, 0x12, 0x2b, 0x0a, 0x27, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, + 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x48, 0x4f, 0x55, 0x4c, 0x44, 0x5f, 0x44, 0x52, 0x41, + 0x57, 0x10, 0x0b, 0x12, 0x26, 0x0a, 0x22, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x53, 0x48, 0x4f, 0x55, 0x4c, 0x44, 0x5f, 0x43, 0x48, - 0x45, 0x43, 0x4b, 0x5f, 0x46, 0x4f, 0x57, 0x10, 0x11, 0x12, 0x37, 0x0a, 0x33, 0x47, 0x41, 0x4d, - 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, - 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x4e, - 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x4c, - 0x10, 0x12, 0x12, 0x3a, 0x0a, 0x36, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, + 0x4e, 0x54, 0x5f, 0x46, 0x52, 0x4f, 0x5a, 0x45, 0x4e, 0x10, 0x0c, 0x12, 0x3f, 0x0a, 0x3b, 0x47, + 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, + 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, + 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, + 0x41, 0x54, 0x54, 0x41, 0x43, 0x48, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x0d, 0x12, 0x36, 0x0a, 0x32, + 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, + 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x50, 0x44, 0x41, + 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, + 0x4f, 0x4e, 0x10, 0x0e, 0x12, 0x32, 0x0a, 0x2e, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, + 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x46, 0x4f, 0x57, 0x5f, 0x50, 0x52, 0x4f, 0x50, + 0x45, 0x52, 0x54, 0x49, 0x45, 0x53, 0x10, 0x0f, 0x12, 0x28, 0x0a, 0x24, 0x47, 0x41, 0x4d, 0x45, + 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, + 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x54, 0x45, 0x58, 0x54, + 0x10, 0x10, 0x12, 0x34, 0x0a, 0x30, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, - 0x54, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x4f, - 0x49, 0x4e, 0x54, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x10, 0x13, 0x12, 0x35, - 0x0a, 0x31, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, - 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x45, - 0x54, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x49, 0x42, - 0x55, 0x54, 0x45, 0x10, 0x14, 0x12, 0x3d, 0x0a, 0x39, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, - 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x5f, 0x4f, - 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x49, 0x43, 0x5f, 0x46, 0x4c, - 0x41, 0x47, 0x10, 0x15, 0x12, 0x3f, 0x0a, 0x3b, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, + 0x54, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x53, 0x48, 0x4f, 0x55, 0x4c, 0x44, 0x5f, 0x43, 0x48, 0x45, + 0x43, 0x4b, 0x5f, 0x46, 0x4f, 0x57, 0x10, 0x11, 0x12, 0x37, 0x0a, 0x33, 0x47, 0x41, 0x4d, 0x45, + 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, + 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x54, + 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x10, + 0x12, 0x12, 0x3a, 0x0a, 0x36, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, + 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x4f, 0x49, + 0x4e, 0x54, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x10, 0x13, 0x12, 0x35, 0x0a, + 0x31, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, + 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x54, + 0x5f, 0x54, 0x45, 0x58, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x49, 0x42, 0x55, + 0x54, 0x45, 0x10, 0x14, 0x12, 0x3d, 0x0a, 0x39, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x5f, 0x4f, 0x42, - 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x44, 0x45, - 0x53, 0x41, 0x54, 0x10, 0x16, 0x12, 0x2d, 0x0a, 0x29, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, - 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x5f, 0x4e, 0x41, 0x4d, - 0x45, 0x44, 0x10, 0x17, 0x12, 0x2c, 0x0a, 0x28, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, + 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x49, 0x43, 0x5f, 0x46, 0x4c, 0x41, + 0x47, 0x10, 0x15, 0x12, 0x3f, 0x0a, 0x3b, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, + 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x5f, 0x4f, 0x42, 0x4a, + 0x45, 0x43, 0x54, 0x5f, 0x54, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x44, 0x45, 0x53, + 0x41, 0x54, 0x10, 0x16, 0x12, 0x2d, 0x0a, 0x29, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x4b, 0x49, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x54, 0x49, 0x4d, 0x45, - 0x10, 0x18, 0x12, 0x2a, 0x0a, 0x26, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, - 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, - 0x54, 0x5f, 0x43, 0x41, 0x4e, 0x5f, 0x46, 0x52, 0x45, 0x45, 0x5a, 0x45, 0x10, 0x19, 0x12, 0x37, - 0x0a, 0x33, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, - 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x45, - 0x54, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x44, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x5f, 0x43, 0x4f, - 0x4e, 0x54, 0x45, 0x58, 0x54, 0x10, 0x1a, 0x12, 0x30, 0x0a, 0x2c, 0x47, 0x41, 0x4d, 0x45, 0x5f, - 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, - 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x52, - 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x10, 0x1b, 0x12, 0x3a, 0x0a, 0x36, 0x47, 0x41, 0x4d, - 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, - 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x46, 0x52, 0x45, 0x45, 0x5a, 0x45, 0x5f, - 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x52, - 0x49, 0x44, 0x45, 0x10, 0x1c, 0x12, 0x30, 0x0a, 0x2c, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, - 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x46, 0x52, 0x45, 0x45, 0x5a, 0x45, 0x5f, 0x49, 0x4e, 0x56, 0x4f, - 0x4c, 0x56, 0x49, 0x4e, 0x47, 0x10, 0x1d, 0x12, 0x3e, 0x0a, 0x3a, 0x47, 0x41, 0x4d, 0x45, 0x5f, - 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, - 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x4c, - 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x52, 0x49, 0x44, 0x45, 0x5f, 0x45, 0x4c, - 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x1e, 0x12, 0x38, 0x0a, 0x34, 0x47, 0x41, 0x4d, 0x45, 0x5f, - 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, - 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x4c, 0x45, 0x41, 0x52, 0x5f, 0x4d, 0x4f, 0x44, - 0x45, 0x4c, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x52, 0x49, 0x44, 0x45, 0x10, - 0x1f, 0x12, 0x32, 0x0a, 0x2e, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, + 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x5f, 0x4e, 0x41, 0x4d, 0x45, + 0x44, 0x10, 0x17, 0x12, 0x2c, 0x0a, 0x28, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, + 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x5f, 0x53, 0x4b, 0x49, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x10, + 0x18, 0x12, 0x2a, 0x0a, 0x26, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x48, 0x59, 0x53, 0x49, 0x43, 0x53, 0x5f, - 0x53, 0x49, 0x4d, 0x10, 0x20, 0x12, 0x33, 0x0a, 0x2f, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, - 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x5f, 0x50, 0x48, 0x59, - 0x53, 0x49, 0x43, 0x53, 0x5f, 0x53, 0x49, 0x4d, 0x10, 0x21, 0x2a, 0x74, 0x0a, 0x10, 0x45, 0x48, - 0x61, 0x70, 0x74, 0x69, 0x63, 0x50, 0x75, 0x6c, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, - 0x0a, 0x1a, 0x56, 0x52, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x5f, 0x48, 0x41, 0x50, 0x54, 0x49, 0x43, - 0x5f, 0x50, 0x55, 0x4c, 0x53, 0x45, 0x5f, 0x4c, 0x49, 0x47, 0x48, 0x54, 0x10, 0x00, 0x12, 0x1f, - 0x0a, 0x1b, 0x56, 0x52, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x5f, 0x48, 0x41, 0x50, 0x54, 0x49, 0x43, - 0x5f, 0x50, 0x55, 0x4c, 0x53, 0x45, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x55, 0x4d, 0x10, 0x01, 0x12, - 0x1f, 0x0a, 0x1b, 0x56, 0x52, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x5f, 0x48, 0x41, 0x50, 0x54, 0x49, - 0x43, 0x5f, 0x50, 0x55, 0x4c, 0x53, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x4f, 0x4e, 0x47, 0x10, 0x02, - 0x42, 0x25, 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, - 0x6f, 0x74, 0x61, 0x62, 0x75, 0x66, 0x66, 0x2f, 0x6d, 0x61, 0x6e, 0x74, 0x61, 0x2f, 0x64, 0x6f, - 0x74, 0x61, 0x3b, 0x64, 0x6f, 0x74, 0x61, + 0x5f, 0x43, 0x41, 0x4e, 0x5f, 0x46, 0x52, 0x45, 0x45, 0x5a, 0x45, 0x10, 0x19, 0x12, 0x37, 0x0a, + 0x33, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, + 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x54, + 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x44, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x5f, 0x43, 0x4f, 0x4e, + 0x54, 0x45, 0x58, 0x54, 0x10, 0x1a, 0x12, 0x30, 0x0a, 0x2c, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, + 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x52, 0x41, + 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x10, 0x1b, 0x12, 0x3a, 0x0a, 0x36, 0x47, 0x41, 0x4d, 0x45, + 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, + 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x46, 0x52, 0x45, 0x45, 0x5a, 0x45, 0x5f, 0x54, + 0x52, 0x41, 0x4e, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x52, 0x49, + 0x44, 0x45, 0x10, 0x1c, 0x12, 0x30, 0x0a, 0x2c, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, + 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x5f, 0x46, 0x52, 0x45, 0x45, 0x5a, 0x45, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4c, + 0x56, 0x49, 0x4e, 0x47, 0x10, 0x1d, 0x12, 0x3e, 0x0a, 0x3a, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, + 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x4c, + 0x49, 0x53, 0x54, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x52, 0x49, 0x44, 0x45, 0x5f, 0x45, 0x4c, 0x45, + 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x1e, 0x12, 0x38, 0x0a, 0x34, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, + 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x4c, 0x45, 0x41, 0x52, 0x5f, 0x4d, 0x4f, 0x44, 0x45, + 0x4c, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x52, 0x49, 0x44, 0x45, 0x10, 0x1f, + 0x12, 0x32, 0x0a, 0x2e, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, + 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, + 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x48, 0x59, 0x53, 0x49, 0x43, 0x53, 0x5f, 0x53, + 0x49, 0x4d, 0x10, 0x20, 0x12, 0x33, 0x0a, 0x2f, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, + 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x5f, 0x50, 0x48, 0x59, 0x53, + 0x49, 0x43, 0x53, 0x5f, 0x53, 0x49, 0x4d, 0x10, 0x21, 0x12, 0x29, 0x0a, 0x25, 0x47, 0x41, 0x4d, + 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, + 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x56, 0x44, 0x41, + 0x54, 0x41, 0x10, 0x22, 0x2a, 0x74, 0x0a, 0x10, 0x45, 0x48, 0x61, 0x70, 0x74, 0x69, 0x63, 0x50, + 0x75, 0x6c, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x1a, 0x56, 0x52, 0x5f, 0x48, + 0x41, 0x4e, 0x44, 0x5f, 0x48, 0x41, 0x50, 0x54, 0x49, 0x43, 0x5f, 0x50, 0x55, 0x4c, 0x53, 0x45, + 0x5f, 0x4c, 0x49, 0x47, 0x48, 0x54, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x56, 0x52, 0x5f, 0x48, + 0x41, 0x4e, 0x44, 0x5f, 0x48, 0x41, 0x50, 0x54, 0x49, 0x43, 0x5f, 0x50, 0x55, 0x4c, 0x53, 0x45, + 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x55, 0x4d, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x56, 0x52, 0x5f, + 0x48, 0x41, 0x4e, 0x44, 0x5f, 0x48, 0x41, 0x50, 0x54, 0x49, 0x43, 0x5f, 0x50, 0x55, 0x4c, 0x53, + 0x45, 0x5f, 0x53, 0x54, 0x52, 0x4f, 0x4e, 0x47, 0x10, 0x02, 0x42, 0x25, 0x5a, 0x23, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x62, 0x75, 0x66, + 0x66, 0x2f, 0x6d, 0x61, 0x6e, 0x74, 0x61, 0x2f, 0x64, 0x6f, 0x74, 0x61, 0x3b, 0x64, 0x6f, 0x74, + 0x61, } var ( @@ -8783,7 +8963,7 @@ func file_usermessages_proto_rawDescGZIP() []byte { } var file_usermessages_proto_enumTypes = make([]protoimpl.EnumInfo, 5) -var file_usermessages_proto_msgTypes = make([]protoimpl.MessageInfo, 101) +var file_usermessages_proto_msgTypes = make([]protoimpl.MessageInfo, 102) var file_usermessages_proto_goTypes = []interface{}{ (EBaseUserMessages)(0), // 0: dota.EBaseUserMessages (EBaseEntityMessages)(0), // 1: dota.EBaseEntityMessages @@ -8880,36 +9060,37 @@ var file_usermessages_proto_goTypes = []interface{}{ (*CUserMsg_ParticleManager_SetParticleNamedValueContext)(nil), // 92: dota.CUserMsg_ParticleManager.SetParticleNamedValueContext (*CUserMsg_ParticleManager_CreatePhysicsSim)(nil), // 93: dota.CUserMsg_ParticleManager.CreatePhysicsSim (*CUserMsg_ParticleManager_DestroyPhysicsSim)(nil), // 94: dota.CUserMsg_ParticleManager.DestroyPhysicsSim - (*CUserMsg_ParticleManager_SetParticleNamedValueContext_FloatContextValue)(nil), // 95: dota.CUserMsg_ParticleManager.SetParticleNamedValueContext.FloatContextValue - (*CUserMsg_ParticleManager_SetParticleNamedValueContext_VectorContextValue)(nil), // 96: dota.CUserMsg_ParticleManager.SetParticleNamedValueContext.VectorContextValue - (*CUserMsg_ParticleManager_SetParticleNamedValueContext_TransformContextValue)(nil), // 97: dota.CUserMsg_ParticleManager.SetParticleNamedValueContext.TransformContextValue - (*CUserMsg_ParticleManager_SetParticleNamedValueContext_EHandleContext)(nil), // 98: dota.CUserMsg_ParticleManager.SetParticleNamedValueContext.EHandleContext - (*CUserMessage_UtilMsg_Response_ItemDetail)(nil), // 99: dota.CUserMessage_UtilMsg_Response.ItemDetail - (*CUserMessage_DllStatus_CVDiagnostic)(nil), // 100: dota.CUserMessage_DllStatus.CVDiagnostic - (*CUserMessage_DllStatus_CModule)(nil), // 101: dota.CUserMessage_DllStatus.CModule - (*CUserMessage_Inventory_Response_InventoryDetail)(nil), // 102: dota.CUserMessage_Inventory_Response.InventoryDetail - (*CUserMessageRequestDiagnostic_Diagnostic)(nil), // 103: dota.CUserMessageRequestDiagnostic.Diagnostic - (*CUserMessage_Diagnostic_Response_Diagnostic)(nil), // 104: dota.CUserMessage_Diagnostic_Response.Diagnostic - (*CUserMessage_NotifyResponseFound_Criteria)(nil), // 105: dota.CUserMessage_NotifyResponseFound.Criteria - (*CMsgVector)(nil), // 106: dota.CMsgVector - (*CEntityMsg)(nil), // 107: dota.CEntityMsg - (*CMsgQAngle)(nil), // 108: dota.CMsgQAngle - (*CMsgQuaternion)(nil), // 109: dota.CMsgQuaternion + (*CUserMsg_ParticleManager_SetVData)(nil), // 95: dota.CUserMsg_ParticleManager.SetVData + (*CUserMsg_ParticleManager_SetParticleNamedValueContext_FloatContextValue)(nil), // 96: dota.CUserMsg_ParticleManager.SetParticleNamedValueContext.FloatContextValue + (*CUserMsg_ParticleManager_SetParticleNamedValueContext_VectorContextValue)(nil), // 97: dota.CUserMsg_ParticleManager.SetParticleNamedValueContext.VectorContextValue + (*CUserMsg_ParticleManager_SetParticleNamedValueContext_TransformContextValue)(nil), // 98: dota.CUserMsg_ParticleManager.SetParticleNamedValueContext.TransformContextValue + (*CUserMsg_ParticleManager_SetParticleNamedValueContext_EHandleContext)(nil), // 99: dota.CUserMsg_ParticleManager.SetParticleNamedValueContext.EHandleContext + (*CUserMessage_UtilMsg_Response_ItemDetail)(nil), // 100: dota.CUserMessage_UtilMsg_Response.ItemDetail + (*CUserMessage_DllStatus_CVDiagnostic)(nil), // 101: dota.CUserMessage_DllStatus.CVDiagnostic + (*CUserMessage_DllStatus_CModule)(nil), // 102: dota.CUserMessage_DllStatus.CModule + (*CUserMessage_Inventory_Response_InventoryDetail)(nil), // 103: dota.CUserMessage_Inventory_Response.InventoryDetail + (*CUserMessageRequestDiagnostic_Diagnostic)(nil), // 104: dota.CUserMessageRequestDiagnostic.Diagnostic + (*CUserMessage_Diagnostic_Response_Diagnostic)(nil), // 105: dota.CUserMessage_Diagnostic_Response.Diagnostic + (*CUserMessage_NotifyResponseFound_Criteria)(nil), // 106: dota.CUserMessage_NotifyResponseFound.Criteria + (*CMsgVector)(nil), // 107: dota.CMsgVector + (*CEntityMsg)(nil), // 108: dota.CEntityMsg + (*CMsgQAngle)(nil), // 109: dota.CMsgQAngle + (*CMsgQuaternion)(nil), // 110: dota.CMsgQuaternion } var file_usermessages_proto_depIdxs = []int32{ 12, // 0: dota.CUserMessageShakeDir.shake:type_name -> dota.CUserMessageShake - 106, // 1: dota.CUserMessageShakeDir.direction:type_name -> dota.CMsgVector - 106, // 2: dota.CUserMessageScreenTilt.angle:type_name -> dota.CMsgVector + 107, // 1: dota.CUserMessageShakeDir.direction:type_name -> dota.CMsgVector + 107, // 2: dota.CUserMessageScreenTilt.angle:type_name -> dota.CMsgVector 2, // 3: dota.CUserMessageCreditsMsg.rolltype:type_name -> dota.eRollType - 107, // 4: dota.CEntityMessagePlayJingle.entity_msg:type_name -> dota.CEntityMsg - 107, // 5: dota.CEntityMessageScreenOverlay.entity_msg:type_name -> dota.CEntityMsg - 107, // 6: dota.CEntityMessageRemoveAllDecals.entity_msg:type_name -> dota.CEntityMsg - 106, // 7: dota.CEntityMessagePropagateForce.impulse:type_name -> dota.CMsgVector - 107, // 8: dota.CEntityMessagePropagateForce.entity_msg:type_name -> dota.CEntityMsg - 106, // 9: dota.CEntityMessageDoSpark.origin:type_name -> dota.CMsgVector - 107, // 10: dota.CEntityMessageDoSpark.entity_msg:type_name -> dota.CEntityMsg - 108, // 11: dota.CEntityMessageFixAngle.angle:type_name -> dota.CMsgQAngle - 107, // 12: dota.CEntityMessageFixAngle.entity_msg:type_name -> dota.CEntityMsg + 108, // 4: dota.CEntityMessagePlayJingle.entity_msg:type_name -> dota.CEntityMsg + 108, // 5: dota.CEntityMessageScreenOverlay.entity_msg:type_name -> dota.CEntityMsg + 108, // 6: dota.CEntityMessageRemoveAllDecals.entity_msg:type_name -> dota.CEntityMsg + 107, // 7: dota.CEntityMessagePropagateForce.impulse:type_name -> dota.CMsgVector + 108, // 8: dota.CEntityMessagePropagateForce.entity_msg:type_name -> dota.CEntityMsg + 107, // 9: dota.CEntityMessageDoSpark.origin:type_name -> dota.CMsgVector + 108, // 10: dota.CEntityMessageDoSpark.entity_msg:type_name -> dota.CEntityMsg + 109, // 11: dota.CEntityMessageFixAngle.angle:type_name -> dota.CMsgQAngle + 108, // 12: dota.CEntityMessageFixAngle.entity_msg:type_name -> dota.CEntityMsg 61, // 13: dota.CUserMessageCameraTransition.params_data_driven:type_name -> dota.CUserMessageCameraTransition.Transition_DataDriven 3, // 14: dota.CUserMsg_ParticleManager.type:type_name -> dota.PARTICLE_MESSAGE 62, // 15: dota.CUserMsg_ParticleManager.release_particle_index:type_name -> dota.CUserMsg_ParticleManager.ReleaseParticleIndex @@ -8945,43 +9126,45 @@ var file_usermessages_proto_depIdxs = []int32{ 91, // 45: dota.CUserMsg_ParticleManager.clear_modellist_override:type_name -> dota.CUserMsg_ParticleManager.ClearModellistOverride 93, // 46: dota.CUserMsg_ParticleManager.create_physics_sim:type_name -> dota.CUserMsg_ParticleManager.CreatePhysicsSim 94, // 47: dota.CUserMsg_ParticleManager.destroy_physics_sim:type_name -> dota.CUserMsg_ParticleManager.DestroyPhysicsSim - 99, // 48: dota.CUserMessage_UtilMsg_Response.itemdetails:type_name -> dota.CUserMessage_UtilMsg_Response.ItemDetail - 100, // 49: dota.CUserMessage_DllStatus.diagnostics:type_name -> dota.CUserMessage_DllStatus.CVDiagnostic - 101, // 50: dota.CUserMessage_DllStatus.modules:type_name -> dota.CUserMessage_DllStatus.CModule - 102, // 51: dota.CUserMessage_Inventory_Response.inventories:type_name -> dota.CUserMessage_Inventory_Response.InventoryDetail - 102, // 52: dota.CUserMessage_Inventory_Response.inventories2:type_name -> dota.CUserMessage_Inventory_Response.InventoryDetail - 102, // 53: dota.CUserMessage_Inventory_Response.inventories3:type_name -> dota.CUserMessage_Inventory_Response.InventoryDetail - 103, // 54: dota.CUserMessageRequestDiagnostic.diagnostics:type_name -> dota.CUserMessageRequestDiagnostic.Diagnostic - 104, // 55: dota.CUserMessage_Diagnostic_Response.diagnostics:type_name -> dota.CUserMessage_Diagnostic_Response.Diagnostic - 105, // 56: dota.CUserMessage_NotifyResponseFound.criteria:type_name -> dota.CUserMessage_NotifyResponseFound.Criteria - 106, // 57: dota.CUserMessage_PlayResponseConditional.ent_origin:type_name -> dota.CMsgVector - 106, // 58: dota.CUserMsg_ParticleManager.UpdateParticle_OBSOLETE.position:type_name -> dota.CMsgVector - 106, // 59: dota.CUserMsg_ParticleManager.UpdateParticleFwd_OBSOLETE.forward:type_name -> dota.CMsgVector - 106, // 60: dota.CUserMsg_ParticleManager.UpdateParticleOrient_OBSOLETE.forward:type_name -> dota.CMsgVector - 106, // 61: dota.CUserMsg_ParticleManager.UpdateParticleOrient_OBSOLETE.deprecated_right:type_name -> dota.CMsgVector - 106, // 62: dota.CUserMsg_ParticleManager.UpdateParticleOrient_OBSOLETE.up:type_name -> dota.CMsgVector - 106, // 63: dota.CUserMsg_ParticleManager.UpdateParticleOrient_OBSOLETE.left:type_name -> dota.CMsgVector - 106, // 64: dota.CUserMsg_ParticleManager.UpdateParticleTransform.position:type_name -> dota.CMsgVector - 109, // 65: dota.CUserMsg_ParticleManager.UpdateParticleTransform.orientation:type_name -> dota.CMsgQuaternion - 106, // 66: dota.CUserMsg_ParticleManager.UpdateParticleFallback.position:type_name -> dota.CMsgVector - 106, // 67: dota.CUserMsg_ParticleManager.UpdateParticleOffset.origin_offset:type_name -> dota.CMsgVector - 108, // 68: dota.CUserMsg_ParticleManager.UpdateParticleOffset.angle_offset:type_name -> dota.CMsgQAngle - 106, // 69: dota.CUserMsg_ParticleManager.UpdateParticleEnt.fallback_position:type_name -> dota.CMsgVector - 106, // 70: dota.CUserMsg_ParticleManager.UpdateParticleEnt.offset_position:type_name -> dota.CMsgVector - 108, // 71: dota.CUserMsg_ParticleManager.UpdateParticleEnt.offset_angles:type_name -> dota.CMsgQAngle - 106, // 72: dota.CUserMsg_ParticleManager.UpdateEntityPosition.position:type_name -> dota.CMsgVector - 95, // 73: dota.CUserMsg_ParticleManager.SetParticleNamedValueContext.float_values:type_name -> dota.CUserMsg_ParticleManager.SetParticleNamedValueContext.FloatContextValue - 96, // 74: dota.CUserMsg_ParticleManager.SetParticleNamedValueContext.vector_values:type_name -> dota.CUserMsg_ParticleManager.SetParticleNamedValueContext.VectorContextValue - 97, // 75: dota.CUserMsg_ParticleManager.SetParticleNamedValueContext.transform_values:type_name -> dota.CUserMsg_ParticleManager.SetParticleNamedValueContext.TransformContextValue - 98, // 76: dota.CUserMsg_ParticleManager.SetParticleNamedValueContext.ehandle_values:type_name -> dota.CUserMsg_ParticleManager.SetParticleNamedValueContext.EHandleContext - 106, // 77: dota.CUserMsg_ParticleManager.SetParticleNamedValueContext.VectorContextValue.value:type_name -> dota.CMsgVector - 108, // 78: dota.CUserMsg_ParticleManager.SetParticleNamedValueContext.TransformContextValue.angles:type_name -> dota.CMsgQAngle - 106, // 79: dota.CUserMsg_ParticleManager.SetParticleNamedValueContext.TransformContextValue.translation:type_name -> dota.CMsgVector - 80, // [80:80] is the sub-list for method output_type - 80, // [80:80] is the sub-list for method input_type - 80, // [80:80] is the sub-list for extension type_name - 80, // [80:80] is the sub-list for extension extendee - 0, // [0:80] is the sub-list for field type_name + 95, // 48: dota.CUserMsg_ParticleManager.set_vdata:type_name -> dota.CUserMsg_ParticleManager.SetVData + 100, // 49: dota.CUserMessage_UtilMsg_Response.itemdetails:type_name -> dota.CUserMessage_UtilMsg_Response.ItemDetail + 101, // 50: dota.CUserMessage_DllStatus.diagnostics:type_name -> dota.CUserMessage_DllStatus.CVDiagnostic + 102, // 51: dota.CUserMessage_DllStatus.modules:type_name -> dota.CUserMessage_DllStatus.CModule + 103, // 52: dota.CUserMessage_Inventory_Response.inventories:type_name -> dota.CUserMessage_Inventory_Response.InventoryDetail + 103, // 53: dota.CUserMessage_Inventory_Response.inventories2:type_name -> dota.CUserMessage_Inventory_Response.InventoryDetail + 103, // 54: dota.CUserMessage_Inventory_Response.inventories3:type_name -> dota.CUserMessage_Inventory_Response.InventoryDetail + 104, // 55: dota.CUserMessageRequestDiagnostic.diagnostics:type_name -> dota.CUserMessageRequestDiagnostic.Diagnostic + 105, // 56: dota.CUserMessage_Diagnostic_Response.diagnostics:type_name -> dota.CUserMessage_Diagnostic_Response.Diagnostic + 106, // 57: dota.CUserMessage_NotifyResponseFound.criteria:type_name -> dota.CUserMessage_NotifyResponseFound.Criteria + 107, // 58: dota.CUserMessage_PlayResponseConditional.ent_origin:type_name -> dota.CMsgVector + 107, // 59: dota.CUserMsg_ParticleManager.CreateParticle.aggregation_position:type_name -> dota.CMsgVector + 107, // 60: dota.CUserMsg_ParticleManager.UpdateParticle_OBSOLETE.position:type_name -> dota.CMsgVector + 107, // 61: dota.CUserMsg_ParticleManager.UpdateParticleFwd_OBSOLETE.forward:type_name -> dota.CMsgVector + 107, // 62: dota.CUserMsg_ParticleManager.UpdateParticleOrient_OBSOLETE.forward:type_name -> dota.CMsgVector + 107, // 63: dota.CUserMsg_ParticleManager.UpdateParticleOrient_OBSOLETE.deprecated_right:type_name -> dota.CMsgVector + 107, // 64: dota.CUserMsg_ParticleManager.UpdateParticleOrient_OBSOLETE.up:type_name -> dota.CMsgVector + 107, // 65: dota.CUserMsg_ParticleManager.UpdateParticleOrient_OBSOLETE.left:type_name -> dota.CMsgVector + 107, // 66: dota.CUserMsg_ParticleManager.UpdateParticleTransform.position:type_name -> dota.CMsgVector + 110, // 67: dota.CUserMsg_ParticleManager.UpdateParticleTransform.orientation:type_name -> dota.CMsgQuaternion + 107, // 68: dota.CUserMsg_ParticleManager.UpdateParticleFallback.position:type_name -> dota.CMsgVector + 107, // 69: dota.CUserMsg_ParticleManager.UpdateParticleOffset.origin_offset:type_name -> dota.CMsgVector + 109, // 70: dota.CUserMsg_ParticleManager.UpdateParticleOffset.angle_offset:type_name -> dota.CMsgQAngle + 107, // 71: dota.CUserMsg_ParticleManager.UpdateParticleEnt.fallback_position:type_name -> dota.CMsgVector + 107, // 72: dota.CUserMsg_ParticleManager.UpdateParticleEnt.offset_position:type_name -> dota.CMsgVector + 109, // 73: dota.CUserMsg_ParticleManager.UpdateParticleEnt.offset_angles:type_name -> dota.CMsgQAngle + 107, // 74: dota.CUserMsg_ParticleManager.UpdateEntityPosition.position:type_name -> dota.CMsgVector + 96, // 75: dota.CUserMsg_ParticleManager.SetParticleNamedValueContext.float_values:type_name -> dota.CUserMsg_ParticleManager.SetParticleNamedValueContext.FloatContextValue + 97, // 76: dota.CUserMsg_ParticleManager.SetParticleNamedValueContext.vector_values:type_name -> dota.CUserMsg_ParticleManager.SetParticleNamedValueContext.VectorContextValue + 98, // 77: dota.CUserMsg_ParticleManager.SetParticleNamedValueContext.transform_values:type_name -> dota.CUserMsg_ParticleManager.SetParticleNamedValueContext.TransformContextValue + 99, // 78: dota.CUserMsg_ParticleManager.SetParticleNamedValueContext.ehandle_values:type_name -> dota.CUserMsg_ParticleManager.SetParticleNamedValueContext.EHandleContext + 107, // 79: dota.CUserMsg_ParticleManager.SetParticleNamedValueContext.VectorContextValue.value:type_name -> dota.CMsgVector + 109, // 80: dota.CUserMsg_ParticleManager.SetParticleNamedValueContext.TransformContextValue.angles:type_name -> dota.CMsgQAngle + 107, // 81: dota.CUserMsg_ParticleManager.SetParticleNamedValueContext.TransformContextValue.translation:type_name -> dota.CMsgVector + 82, // [82:82] is the sub-list for method output_type + 82, // [82:82] is the sub-list for method input_type + 82, // [82:82] is the sub-list for extension type_name + 82, // [82:82] is the sub-list for extension extendee + 0, // [0:82] is the sub-list for field type_name } func init() { file_usermessages_proto_init() } @@ -10074,7 +10257,7 @@ func file_usermessages_proto_init() { } } file_usermessages_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CUserMsg_ParticleManager_SetParticleNamedValueContext_FloatContextValue); i { + switch v := v.(*CUserMsg_ParticleManager_SetVData); i { case 0: return &v.state case 1: @@ -10086,7 +10269,7 @@ func file_usermessages_proto_init() { } } file_usermessages_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CUserMsg_ParticleManager_SetParticleNamedValueContext_VectorContextValue); i { + switch v := v.(*CUserMsg_ParticleManager_SetParticleNamedValueContext_FloatContextValue); i { case 0: return &v.state case 1: @@ -10098,7 +10281,7 @@ func file_usermessages_proto_init() { } } file_usermessages_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CUserMsg_ParticleManager_SetParticleNamedValueContext_TransformContextValue); i { + switch v := v.(*CUserMsg_ParticleManager_SetParticleNamedValueContext_VectorContextValue); i { case 0: return &v.state case 1: @@ -10110,7 +10293,7 @@ func file_usermessages_proto_init() { } } file_usermessages_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CUserMsg_ParticleManager_SetParticleNamedValueContext_EHandleContext); i { + switch v := v.(*CUserMsg_ParticleManager_SetParticleNamedValueContext_TransformContextValue); i { case 0: return &v.state case 1: @@ -10122,7 +10305,7 @@ func file_usermessages_proto_init() { } } file_usermessages_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CUserMessage_UtilMsg_Response_ItemDetail); i { + switch v := v.(*CUserMsg_ParticleManager_SetParticleNamedValueContext_EHandleContext); i { case 0: return &v.state case 1: @@ -10134,7 +10317,7 @@ func file_usermessages_proto_init() { } } file_usermessages_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CUserMessage_DllStatus_CVDiagnostic); i { + switch v := v.(*CUserMessage_UtilMsg_Response_ItemDetail); i { case 0: return &v.state case 1: @@ -10146,7 +10329,7 @@ func file_usermessages_proto_init() { } } file_usermessages_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CUserMessage_DllStatus_CModule); i { + switch v := v.(*CUserMessage_DllStatus_CVDiagnostic); i { case 0: return &v.state case 1: @@ -10158,7 +10341,7 @@ func file_usermessages_proto_init() { } } file_usermessages_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CUserMessage_Inventory_Response_InventoryDetail); i { + switch v := v.(*CUserMessage_DllStatus_CModule); i { case 0: return &v.state case 1: @@ -10170,7 +10353,7 @@ func file_usermessages_proto_init() { } } file_usermessages_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CUserMessageRequestDiagnostic_Diagnostic); i { + switch v := v.(*CUserMessage_Inventory_Response_InventoryDetail); i { case 0: return &v.state case 1: @@ -10182,7 +10365,7 @@ func file_usermessages_proto_init() { } } file_usermessages_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CUserMessage_Diagnostic_Response_Diagnostic); i { + switch v := v.(*CUserMessageRequestDiagnostic_Diagnostic); i { case 0: return &v.state case 1: @@ -10194,6 +10377,18 @@ func file_usermessages_proto_init() { } } file_usermessages_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessage_Diagnostic_Response_Diagnostic); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_usermessages_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CUserMessage_NotifyResponseFound_Criteria); i { case 0: return &v.state @@ -10212,7 +10407,7 @@ func file_usermessages_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_usermessages_proto_rawDesc, NumEnums: 5, - NumMessages: 101, + NumMessages: 102, NumExtensions: 0, NumServices: 0, }, diff --git a/dota/usermessages.proto b/dota/usermessages.proto index 429347c..f797297 100644 --- a/dota/usermessages.proto +++ b/dota/usermessages.proto @@ -112,6 +112,7 @@ enum PARTICLE_MESSAGE { GAME_PARTICLE_MANAGER_EVENT_CLEAR_MODELLIST_OVERRIDE = 31; GAME_PARTICLE_MANAGER_EVENT_CREATE_PHYSICS_SIM = 32; GAME_PARTICLE_MANAGER_EVENT_DESTROY_PHYSICS_SIM = 33; + GAME_PARTICLE_MANAGER_EVENT_SET_VDATA = 34; } enum EHapticPulseType { @@ -355,6 +356,7 @@ message CUserMsg_ParticleManager { optional string control_point_configuration = 7; optional bool cluster = 8; optional float endcap_time = 9; + optional CMsgVector aggregation_position = 10; } message DestroyParticle { @@ -536,11 +538,17 @@ message CUserMsg_ParticleManager { message CreatePhysicsSim { optional string prop_group_name = 1; + optional bool use_high_quality_simulation = 2; + optional uint32 max_particle_count = 3; } message DestroyPhysicsSim { } + message SetVData { + optional string vdata_name = 1; + } + required PARTICLE_MESSAGE type = 1; required uint32 index = 2; optional CUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3; @@ -576,6 +584,7 @@ message CUserMsg_ParticleManager { optional CUserMsg_ParticleManager.ClearModellistOverride clear_modellist_override = 34; optional CUserMsg_ParticleManager.CreatePhysicsSim create_physics_sim = 35; optional CUserMsg_ParticleManager.DestroyPhysicsSim destroy_physics_sim = 36; + optional CUserMsg_ParticleManager.SetVData set_vdata = 37; extensions 100 to 201; } @@ -782,6 +791,12 @@ message CUserMessage_NotifyResponseFound { optional string response_value = 3; optional string response_concept = 4; repeated CUserMessage_NotifyResponseFound.Criteria criteria = 5; + repeated uint32 int_criteria_names = 6; + repeated int32 int_criteria_values = 7; + repeated uint32 float_criteria_names = 8; + repeated float float_criteria_values = 9; + repeated uint32 symbol_criteria_names = 10; + repeated uint32 symbol_criteria_values = 11; } message CUserMessage_PlayResponseConditional { @@ -789,4 +804,5 @@ message CUserMessage_PlayResponseConditional { repeated int32 player_slots = 2; optional string response = 3; optional CMsgVector ent_origin = 4; + optional float pre_delay = 5; }