// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.0 // protoc v3.21.2 // source: dota_shared_enums.proto package demo 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 DOTA_GameMode int32 const ( DOTA_GameMode_DOTA_GAMEMODE_NONE DOTA_GameMode = 0 DOTA_GameMode_DOTA_GAMEMODE_AP DOTA_GameMode = 1 DOTA_GameMode_DOTA_GAMEMODE_CM DOTA_GameMode = 2 DOTA_GameMode_DOTA_GAMEMODE_RD DOTA_GameMode = 3 DOTA_GameMode_DOTA_GAMEMODE_SD DOTA_GameMode = 4 DOTA_GameMode_DOTA_GAMEMODE_AR DOTA_GameMode = 5 DOTA_GameMode_DOTA_GAMEMODE_INTRO DOTA_GameMode = 6 DOTA_GameMode_DOTA_GAMEMODE_HW DOTA_GameMode = 7 DOTA_GameMode_DOTA_GAMEMODE_REVERSE_CM DOTA_GameMode = 8 DOTA_GameMode_DOTA_GAMEMODE_XMAS DOTA_GameMode = 9 DOTA_GameMode_DOTA_GAMEMODE_TUTORIAL DOTA_GameMode = 10 DOTA_GameMode_DOTA_GAMEMODE_MO DOTA_GameMode = 11 DOTA_GameMode_DOTA_GAMEMODE_LP DOTA_GameMode = 12 DOTA_GameMode_DOTA_GAMEMODE_POOL1 DOTA_GameMode = 13 DOTA_GameMode_DOTA_GAMEMODE_FH DOTA_GameMode = 14 DOTA_GameMode_DOTA_GAMEMODE_CUSTOM DOTA_GameMode = 15 DOTA_GameMode_DOTA_GAMEMODE_CD DOTA_GameMode = 16 DOTA_GameMode_DOTA_GAMEMODE_BD DOTA_GameMode = 17 DOTA_GameMode_DOTA_GAMEMODE_ABILITY_DRAFT DOTA_GameMode = 18 DOTA_GameMode_DOTA_GAMEMODE_EVENT DOTA_GameMode = 19 DOTA_GameMode_DOTA_GAMEMODE_ARDM DOTA_GameMode = 20 DOTA_GameMode_DOTA_GAMEMODE_1V1MID DOTA_GameMode = 21 DOTA_GameMode_DOTA_GAMEMODE_ALL_DRAFT DOTA_GameMode = 22 DOTA_GameMode_DOTA_GAMEMODE_TURBO DOTA_GameMode = 23 DOTA_GameMode_DOTA_GAMEMODE_MUTATION DOTA_GameMode = 24 DOTA_GameMode_DOTA_GAMEMODE_COACHES_CHALLENGE DOTA_GameMode = 25 ) // Enum value maps for DOTA_GameMode. var ( DOTA_GameMode_name = map[int32]string{ 0: "DOTA_GAMEMODE_NONE", 1: "DOTA_GAMEMODE_AP", 2: "DOTA_GAMEMODE_CM", 3: "DOTA_GAMEMODE_RD", 4: "DOTA_GAMEMODE_SD", 5: "DOTA_GAMEMODE_AR", 6: "DOTA_GAMEMODE_INTRO", 7: "DOTA_GAMEMODE_HW", 8: "DOTA_GAMEMODE_REVERSE_CM", 9: "DOTA_GAMEMODE_XMAS", 10: "DOTA_GAMEMODE_TUTORIAL", 11: "DOTA_GAMEMODE_MO", 12: "DOTA_GAMEMODE_LP", 13: "DOTA_GAMEMODE_POOL1", 14: "DOTA_GAMEMODE_FH", 15: "DOTA_GAMEMODE_CUSTOM", 16: "DOTA_GAMEMODE_CD", 17: "DOTA_GAMEMODE_BD", 18: "DOTA_GAMEMODE_ABILITY_DRAFT", 19: "DOTA_GAMEMODE_EVENT", 20: "DOTA_GAMEMODE_ARDM", 21: "DOTA_GAMEMODE_1V1MID", 22: "DOTA_GAMEMODE_ALL_DRAFT", 23: "DOTA_GAMEMODE_TURBO", 24: "DOTA_GAMEMODE_MUTATION", 25: "DOTA_GAMEMODE_COACHES_CHALLENGE", } DOTA_GameMode_value = map[string]int32{ "DOTA_GAMEMODE_NONE": 0, "DOTA_GAMEMODE_AP": 1, "DOTA_GAMEMODE_CM": 2, "DOTA_GAMEMODE_RD": 3, "DOTA_GAMEMODE_SD": 4, "DOTA_GAMEMODE_AR": 5, "DOTA_GAMEMODE_INTRO": 6, "DOTA_GAMEMODE_HW": 7, "DOTA_GAMEMODE_REVERSE_CM": 8, "DOTA_GAMEMODE_XMAS": 9, "DOTA_GAMEMODE_TUTORIAL": 10, "DOTA_GAMEMODE_MO": 11, "DOTA_GAMEMODE_LP": 12, "DOTA_GAMEMODE_POOL1": 13, "DOTA_GAMEMODE_FH": 14, "DOTA_GAMEMODE_CUSTOM": 15, "DOTA_GAMEMODE_CD": 16, "DOTA_GAMEMODE_BD": 17, "DOTA_GAMEMODE_ABILITY_DRAFT": 18, "DOTA_GAMEMODE_EVENT": 19, "DOTA_GAMEMODE_ARDM": 20, "DOTA_GAMEMODE_1V1MID": 21, "DOTA_GAMEMODE_ALL_DRAFT": 22, "DOTA_GAMEMODE_TURBO": 23, "DOTA_GAMEMODE_MUTATION": 24, "DOTA_GAMEMODE_COACHES_CHALLENGE": 25, } ) func (x DOTA_GameMode) Enum() *DOTA_GameMode { p := new(DOTA_GameMode) *p = x return p } func (x DOTA_GameMode) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (DOTA_GameMode) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[0].Descriptor() } func (DOTA_GameMode) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[0] } func (x DOTA_GameMode) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *DOTA_GameMode) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = DOTA_GameMode(num) return nil } // Deprecated: Use DOTA_GameMode.Descriptor instead. func (DOTA_GameMode) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{0} } type DOTA_GameState int32 const ( DOTA_GameState_DOTA_GAMERULES_STATE_INIT DOTA_GameState = 0 DOTA_GameState_DOTA_GAMERULES_STATE_WAIT_FOR_PLAYERS_TO_LOAD DOTA_GameState = 1 DOTA_GameState_DOTA_GAMERULES_STATE_HERO_SELECTION DOTA_GameState = 2 DOTA_GameState_DOTA_GAMERULES_STATE_STRATEGY_TIME DOTA_GameState = 3 DOTA_GameState_DOTA_GAMERULES_STATE_PRE_GAME DOTA_GameState = 4 DOTA_GameState_DOTA_GAMERULES_STATE_GAME_IN_PROGRESS DOTA_GameState = 5 DOTA_GameState_DOTA_GAMERULES_STATE_POST_GAME DOTA_GameState = 6 DOTA_GameState_DOTA_GAMERULES_STATE_DISCONNECT DOTA_GameState = 7 DOTA_GameState_DOTA_GAMERULES_STATE_TEAM_SHOWCASE DOTA_GameState = 8 DOTA_GameState_DOTA_GAMERULES_STATE_CUSTOM_GAME_SETUP DOTA_GameState = 9 DOTA_GameState_DOTA_GAMERULES_STATE_WAIT_FOR_MAP_TO_LOAD DOTA_GameState = 10 DOTA_GameState_DOTA_GAMERULES_STATE_SCENARIO_SETUP DOTA_GameState = 11 DOTA_GameState_DOTA_GAMERULES_STATE_LAST DOTA_GameState = 12 ) // Enum value maps for DOTA_GameState. var ( DOTA_GameState_name = map[int32]string{ 0: "DOTA_GAMERULES_STATE_INIT", 1: "DOTA_GAMERULES_STATE_WAIT_FOR_PLAYERS_TO_LOAD", 2: "DOTA_GAMERULES_STATE_HERO_SELECTION", 3: "DOTA_GAMERULES_STATE_STRATEGY_TIME", 4: "DOTA_GAMERULES_STATE_PRE_GAME", 5: "DOTA_GAMERULES_STATE_GAME_IN_PROGRESS", 6: "DOTA_GAMERULES_STATE_POST_GAME", 7: "DOTA_GAMERULES_STATE_DISCONNECT", 8: "DOTA_GAMERULES_STATE_TEAM_SHOWCASE", 9: "DOTA_GAMERULES_STATE_CUSTOM_GAME_SETUP", 10: "DOTA_GAMERULES_STATE_WAIT_FOR_MAP_TO_LOAD", 11: "DOTA_GAMERULES_STATE_SCENARIO_SETUP", 12: "DOTA_GAMERULES_STATE_LAST", } DOTA_GameState_value = map[string]int32{ "DOTA_GAMERULES_STATE_INIT": 0, "DOTA_GAMERULES_STATE_WAIT_FOR_PLAYERS_TO_LOAD": 1, "DOTA_GAMERULES_STATE_HERO_SELECTION": 2, "DOTA_GAMERULES_STATE_STRATEGY_TIME": 3, "DOTA_GAMERULES_STATE_PRE_GAME": 4, "DOTA_GAMERULES_STATE_GAME_IN_PROGRESS": 5, "DOTA_GAMERULES_STATE_POST_GAME": 6, "DOTA_GAMERULES_STATE_DISCONNECT": 7, "DOTA_GAMERULES_STATE_TEAM_SHOWCASE": 8, "DOTA_GAMERULES_STATE_CUSTOM_GAME_SETUP": 9, "DOTA_GAMERULES_STATE_WAIT_FOR_MAP_TO_LOAD": 10, "DOTA_GAMERULES_STATE_SCENARIO_SETUP": 11, "DOTA_GAMERULES_STATE_LAST": 12, } ) func (x DOTA_GameState) Enum() *DOTA_GameState { p := new(DOTA_GameState) *p = x return p } func (x DOTA_GameState) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (DOTA_GameState) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[1].Descriptor() } func (DOTA_GameState) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[1] } func (x DOTA_GameState) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *DOTA_GameState) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = DOTA_GameState(num) return nil } // Deprecated: Use DOTA_GameState.Descriptor instead. func (DOTA_GameState) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{1} } type DOTA_GC_TEAM int32 const ( DOTA_GC_TEAM_DOTA_GC_TEAM_GOOD_GUYS DOTA_GC_TEAM = 0 DOTA_GC_TEAM_DOTA_GC_TEAM_BAD_GUYS DOTA_GC_TEAM = 1 DOTA_GC_TEAM_DOTA_GC_TEAM_BROADCASTER DOTA_GC_TEAM = 2 DOTA_GC_TEAM_DOTA_GC_TEAM_SPECTATOR DOTA_GC_TEAM = 3 DOTA_GC_TEAM_DOTA_GC_TEAM_PLAYER_POOL DOTA_GC_TEAM = 4 DOTA_GC_TEAM_DOTA_GC_TEAM_NOTEAM DOTA_GC_TEAM = 5 DOTA_GC_TEAM_DOTA_GC_TEAM_CUSTOM_1 DOTA_GC_TEAM = 6 DOTA_GC_TEAM_DOTA_GC_TEAM_CUSTOM_2 DOTA_GC_TEAM = 7 DOTA_GC_TEAM_DOTA_GC_TEAM_CUSTOM_3 DOTA_GC_TEAM = 8 DOTA_GC_TEAM_DOTA_GC_TEAM_CUSTOM_4 DOTA_GC_TEAM = 9 DOTA_GC_TEAM_DOTA_GC_TEAM_CUSTOM_5 DOTA_GC_TEAM = 10 DOTA_GC_TEAM_DOTA_GC_TEAM_CUSTOM_6 DOTA_GC_TEAM = 11 DOTA_GC_TEAM_DOTA_GC_TEAM_CUSTOM_7 DOTA_GC_TEAM = 12 DOTA_GC_TEAM_DOTA_GC_TEAM_CUSTOM_8 DOTA_GC_TEAM = 13 DOTA_GC_TEAM_DOTA_GC_TEAM_NEUTRALS DOTA_GC_TEAM = 14 ) // Enum value maps for DOTA_GC_TEAM. var ( DOTA_GC_TEAM_name = map[int32]string{ 0: "DOTA_GC_TEAM_GOOD_GUYS", 1: "DOTA_GC_TEAM_BAD_GUYS", 2: "DOTA_GC_TEAM_BROADCASTER", 3: "DOTA_GC_TEAM_SPECTATOR", 4: "DOTA_GC_TEAM_PLAYER_POOL", 5: "DOTA_GC_TEAM_NOTEAM", 6: "DOTA_GC_TEAM_CUSTOM_1", 7: "DOTA_GC_TEAM_CUSTOM_2", 8: "DOTA_GC_TEAM_CUSTOM_3", 9: "DOTA_GC_TEAM_CUSTOM_4", 10: "DOTA_GC_TEAM_CUSTOM_5", 11: "DOTA_GC_TEAM_CUSTOM_6", 12: "DOTA_GC_TEAM_CUSTOM_7", 13: "DOTA_GC_TEAM_CUSTOM_8", 14: "DOTA_GC_TEAM_NEUTRALS", } DOTA_GC_TEAM_value = map[string]int32{ "DOTA_GC_TEAM_GOOD_GUYS": 0, "DOTA_GC_TEAM_BAD_GUYS": 1, "DOTA_GC_TEAM_BROADCASTER": 2, "DOTA_GC_TEAM_SPECTATOR": 3, "DOTA_GC_TEAM_PLAYER_POOL": 4, "DOTA_GC_TEAM_NOTEAM": 5, "DOTA_GC_TEAM_CUSTOM_1": 6, "DOTA_GC_TEAM_CUSTOM_2": 7, "DOTA_GC_TEAM_CUSTOM_3": 8, "DOTA_GC_TEAM_CUSTOM_4": 9, "DOTA_GC_TEAM_CUSTOM_5": 10, "DOTA_GC_TEAM_CUSTOM_6": 11, "DOTA_GC_TEAM_CUSTOM_7": 12, "DOTA_GC_TEAM_CUSTOM_8": 13, "DOTA_GC_TEAM_NEUTRALS": 14, } ) func (x DOTA_GC_TEAM) Enum() *DOTA_GC_TEAM { p := new(DOTA_GC_TEAM) *p = x return p } func (x DOTA_GC_TEAM) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (DOTA_GC_TEAM) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[2].Descriptor() } func (DOTA_GC_TEAM) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[2] } func (x DOTA_GC_TEAM) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *DOTA_GC_TEAM) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = DOTA_GC_TEAM(num) return nil } // Deprecated: Use DOTA_GC_TEAM.Descriptor instead. func (DOTA_GC_TEAM) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{2} } type EEvent int32 const ( EEvent_EVENT_ID_NONE EEvent = 0 EEvent_EVENT_ID_DIRETIDE EEvent = 1 EEvent_EVENT_ID_SPRING_FESTIVAL EEvent = 2 EEvent_EVENT_ID_FROSTIVUS_2013 EEvent = 3 EEvent_EVENT_ID_COMPENDIUM_2014 EEvent = 4 EEvent_EVENT_ID_NEXON_PC_BANG EEvent = 5 EEvent_EVENT_ID_PWRD_DAC_2015 EEvent = 6 EEvent_EVENT_ID_NEW_BLOOM_2015 EEvent = 7 EEvent_EVENT_ID_INTERNATIONAL_2015 EEvent = 8 EEvent_EVENT_ID_FALL_MAJOR_2015 EEvent = 9 EEvent_EVENT_ID_ORACLE_PA EEvent = 10 EEvent_EVENT_ID_NEW_BLOOM_2015_PREBEAST EEvent = 11 EEvent_EVENT_ID_FROSTIVUS EEvent = 12 EEvent_EVENT_ID_WINTER_MAJOR_2016 EEvent = 13 EEvent_EVENT_ID_INTERNATIONAL_2016 EEvent = 14 EEvent_EVENT_ID_FALL_MAJOR_2016 EEvent = 15 EEvent_EVENT_ID_WINTER_MAJOR_2017 EEvent = 16 EEvent_EVENT_ID_NEW_BLOOM_2017 EEvent = 17 EEvent_EVENT_ID_INTERNATIONAL_2017 EEvent = 18 EEvent_EVENT_ID_PLUS_SUBSCRIPTION EEvent = 19 EEvent_EVENT_ID_SINGLES_DAY_2017 EEvent = 20 EEvent_EVENT_ID_FROSTIVUS_2017 EEvent = 21 EEvent_EVENT_ID_INTERNATIONAL_2018 EEvent = 22 EEvent_EVENT_ID_FROSTIVUS_2018 EEvent = 23 EEvent_EVENT_ID_NEW_BLOOM_2019 EEvent = 24 EEvent_EVENT_ID_INTERNATIONAL_2019 EEvent = 25 EEvent_EVENT_ID_NEW_PLAYER_EXPERIENCE EEvent = 26 EEvent_EVENT_ID_FROSTIVUS_2019 EEvent = 27 EEvent_EVENT_ID_NEW_BLOOM_2020 EEvent = 28 EEvent_EVENT_ID_INTERNATIONAL_2020 EEvent = 29 EEvent_EVENT_ID_TEAM_FANDOM EEvent = 30 EEvent_EVENT_ID_DIRETIDE_2020 EEvent = 31 EEvent_EVENT_ID_SPRING_2021 EEvent = 32 EEvent_EVENT_ID_FALL_2021 EEvent = 33 EEvent_EVENT_ID_TEAM_FANDOM_FALL_2021 EEvent = 34 EEvent_EVENT_ID_TEAM_2021_2022_TOUR2 EEvent = 35 EEvent_EVENT_ID_INTERNATIONAL_2022 EEvent = 36 EEvent_EVENT_ID_TEAM_2021_2022_TOUR3 EEvent = 37 EEvent_EVENT_ID_TEAM_INTERNATIONAL_2022 EEvent = 38 ) // Enum value maps for EEvent. var ( EEvent_name = map[int32]string{ 0: "EVENT_ID_NONE", 1: "EVENT_ID_DIRETIDE", 2: "EVENT_ID_SPRING_FESTIVAL", 3: "EVENT_ID_FROSTIVUS_2013", 4: "EVENT_ID_COMPENDIUM_2014", 5: "EVENT_ID_NEXON_PC_BANG", 6: "EVENT_ID_PWRD_DAC_2015", 7: "EVENT_ID_NEW_BLOOM_2015", 8: "EVENT_ID_INTERNATIONAL_2015", 9: "EVENT_ID_FALL_MAJOR_2015", 10: "EVENT_ID_ORACLE_PA", 11: "EVENT_ID_NEW_BLOOM_2015_PREBEAST", 12: "EVENT_ID_FROSTIVUS", 13: "EVENT_ID_WINTER_MAJOR_2016", 14: "EVENT_ID_INTERNATIONAL_2016", 15: "EVENT_ID_FALL_MAJOR_2016", 16: "EVENT_ID_WINTER_MAJOR_2017", 17: "EVENT_ID_NEW_BLOOM_2017", 18: "EVENT_ID_INTERNATIONAL_2017", 19: "EVENT_ID_PLUS_SUBSCRIPTION", 20: "EVENT_ID_SINGLES_DAY_2017", 21: "EVENT_ID_FROSTIVUS_2017", 22: "EVENT_ID_INTERNATIONAL_2018", 23: "EVENT_ID_FROSTIVUS_2018", 24: "EVENT_ID_NEW_BLOOM_2019", 25: "EVENT_ID_INTERNATIONAL_2019", 26: "EVENT_ID_NEW_PLAYER_EXPERIENCE", 27: "EVENT_ID_FROSTIVUS_2019", 28: "EVENT_ID_NEW_BLOOM_2020", 29: "EVENT_ID_INTERNATIONAL_2020", 30: "EVENT_ID_TEAM_FANDOM", 31: "EVENT_ID_DIRETIDE_2020", 32: "EVENT_ID_SPRING_2021", 33: "EVENT_ID_FALL_2021", 34: "EVENT_ID_TEAM_FANDOM_FALL_2021", 35: "EVENT_ID_TEAM_2021_2022_TOUR2", 36: "EVENT_ID_INTERNATIONAL_2022", 37: "EVENT_ID_TEAM_2021_2022_TOUR3", 38: "EVENT_ID_TEAM_INTERNATIONAL_2022", } EEvent_value = map[string]int32{ "EVENT_ID_NONE": 0, "EVENT_ID_DIRETIDE": 1, "EVENT_ID_SPRING_FESTIVAL": 2, "EVENT_ID_FROSTIVUS_2013": 3, "EVENT_ID_COMPENDIUM_2014": 4, "EVENT_ID_NEXON_PC_BANG": 5, "EVENT_ID_PWRD_DAC_2015": 6, "EVENT_ID_NEW_BLOOM_2015": 7, "EVENT_ID_INTERNATIONAL_2015": 8, "EVENT_ID_FALL_MAJOR_2015": 9, "EVENT_ID_ORACLE_PA": 10, "EVENT_ID_NEW_BLOOM_2015_PREBEAST": 11, "EVENT_ID_FROSTIVUS": 12, "EVENT_ID_WINTER_MAJOR_2016": 13, "EVENT_ID_INTERNATIONAL_2016": 14, "EVENT_ID_FALL_MAJOR_2016": 15, "EVENT_ID_WINTER_MAJOR_2017": 16, "EVENT_ID_NEW_BLOOM_2017": 17, "EVENT_ID_INTERNATIONAL_2017": 18, "EVENT_ID_PLUS_SUBSCRIPTION": 19, "EVENT_ID_SINGLES_DAY_2017": 20, "EVENT_ID_FROSTIVUS_2017": 21, "EVENT_ID_INTERNATIONAL_2018": 22, "EVENT_ID_FROSTIVUS_2018": 23, "EVENT_ID_NEW_BLOOM_2019": 24, "EVENT_ID_INTERNATIONAL_2019": 25, "EVENT_ID_NEW_PLAYER_EXPERIENCE": 26, "EVENT_ID_FROSTIVUS_2019": 27, "EVENT_ID_NEW_BLOOM_2020": 28, "EVENT_ID_INTERNATIONAL_2020": 29, "EVENT_ID_TEAM_FANDOM": 30, "EVENT_ID_DIRETIDE_2020": 31, "EVENT_ID_SPRING_2021": 32, "EVENT_ID_FALL_2021": 33, "EVENT_ID_TEAM_FANDOM_FALL_2021": 34, "EVENT_ID_TEAM_2021_2022_TOUR2": 35, "EVENT_ID_INTERNATIONAL_2022": 36, "EVENT_ID_TEAM_2021_2022_TOUR3": 37, "EVENT_ID_TEAM_INTERNATIONAL_2022": 38, } ) func (x EEvent) Enum() *EEvent { p := new(EEvent) *p = x return p } func (x EEvent) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (EEvent) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[3].Descriptor() } func (EEvent) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[3] } func (x EEvent) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *EEvent) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = EEvent(num) return nil } // Deprecated: Use EEvent.Descriptor instead. func (EEvent) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{3} } type DOTALeaverStatusT int32 const ( DOTALeaverStatusT_DOTA_LEAVER_NONE DOTALeaverStatusT = 0 DOTALeaverStatusT_DOTA_LEAVER_DISCONNECTED DOTALeaverStatusT = 1 DOTALeaverStatusT_DOTA_LEAVER_DISCONNECTED_TOO_LONG DOTALeaverStatusT = 2 DOTALeaverStatusT_DOTA_LEAVER_ABANDONED DOTALeaverStatusT = 3 DOTALeaverStatusT_DOTA_LEAVER_AFK DOTALeaverStatusT = 4 DOTALeaverStatusT_DOTA_LEAVER_NEVER_CONNECTED DOTALeaverStatusT = 5 DOTALeaverStatusT_DOTA_LEAVER_NEVER_CONNECTED_TOO_LONG DOTALeaverStatusT = 6 DOTALeaverStatusT_DOTA_LEAVER_FAILED_TO_READY_UP DOTALeaverStatusT = 7 DOTALeaverStatusT_DOTA_LEAVER_DECLINED DOTALeaverStatusT = 8 ) // Enum value maps for DOTALeaverStatusT. var ( DOTALeaverStatusT_name = map[int32]string{ 0: "DOTA_LEAVER_NONE", 1: "DOTA_LEAVER_DISCONNECTED", 2: "DOTA_LEAVER_DISCONNECTED_TOO_LONG", 3: "DOTA_LEAVER_ABANDONED", 4: "DOTA_LEAVER_AFK", 5: "DOTA_LEAVER_NEVER_CONNECTED", 6: "DOTA_LEAVER_NEVER_CONNECTED_TOO_LONG", 7: "DOTA_LEAVER_FAILED_TO_READY_UP", 8: "DOTA_LEAVER_DECLINED", } DOTALeaverStatusT_value = map[string]int32{ "DOTA_LEAVER_NONE": 0, "DOTA_LEAVER_DISCONNECTED": 1, "DOTA_LEAVER_DISCONNECTED_TOO_LONG": 2, "DOTA_LEAVER_ABANDONED": 3, "DOTA_LEAVER_AFK": 4, "DOTA_LEAVER_NEVER_CONNECTED": 5, "DOTA_LEAVER_NEVER_CONNECTED_TOO_LONG": 6, "DOTA_LEAVER_FAILED_TO_READY_UP": 7, "DOTA_LEAVER_DECLINED": 8, } ) func (x DOTALeaverStatusT) Enum() *DOTALeaverStatusT { p := new(DOTALeaverStatusT) *p = x return p } func (x DOTALeaverStatusT) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (DOTALeaverStatusT) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[4].Descriptor() } func (DOTALeaverStatusT) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[4] } func (x DOTALeaverStatusT) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *DOTALeaverStatusT) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = DOTALeaverStatusT(num) return nil } // Deprecated: Use DOTALeaverStatusT.Descriptor instead. func (DOTALeaverStatusT) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{4} } type DOTAConnectionStateT int32 const ( DOTAConnectionStateT_DOTA_CONNECTION_STATE_UNKNOWN DOTAConnectionStateT = 0 DOTAConnectionStateT_DOTA_CONNECTION_STATE_NOT_YET_CONNECTED DOTAConnectionStateT = 1 DOTAConnectionStateT_DOTA_CONNECTION_STATE_CONNECTED DOTAConnectionStateT = 2 DOTAConnectionStateT_DOTA_CONNECTION_STATE_DISCONNECTED DOTAConnectionStateT = 3 DOTAConnectionStateT_DOTA_CONNECTION_STATE_ABANDONED DOTAConnectionStateT = 4 DOTAConnectionStateT_DOTA_CONNECTION_STATE_LOADING DOTAConnectionStateT = 5 DOTAConnectionStateT_DOTA_CONNECTION_STATE_FAILED DOTAConnectionStateT = 6 ) // Enum value maps for DOTAConnectionStateT. var ( DOTAConnectionStateT_name = map[int32]string{ 0: "DOTA_CONNECTION_STATE_UNKNOWN", 1: "DOTA_CONNECTION_STATE_NOT_YET_CONNECTED", 2: "DOTA_CONNECTION_STATE_CONNECTED", 3: "DOTA_CONNECTION_STATE_DISCONNECTED", 4: "DOTA_CONNECTION_STATE_ABANDONED", 5: "DOTA_CONNECTION_STATE_LOADING", 6: "DOTA_CONNECTION_STATE_FAILED", } DOTAConnectionStateT_value = map[string]int32{ "DOTA_CONNECTION_STATE_UNKNOWN": 0, "DOTA_CONNECTION_STATE_NOT_YET_CONNECTED": 1, "DOTA_CONNECTION_STATE_CONNECTED": 2, "DOTA_CONNECTION_STATE_DISCONNECTED": 3, "DOTA_CONNECTION_STATE_ABANDONED": 4, "DOTA_CONNECTION_STATE_LOADING": 5, "DOTA_CONNECTION_STATE_FAILED": 6, } ) func (x DOTAConnectionStateT) Enum() *DOTAConnectionStateT { p := new(DOTAConnectionStateT) *p = x return p } func (x DOTAConnectionStateT) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (DOTAConnectionStateT) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[5].Descriptor() } func (DOTAConnectionStateT) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[5] } func (x DOTAConnectionStateT) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *DOTAConnectionStateT) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = DOTAConnectionStateT(num) return nil } // Deprecated: Use DOTAConnectionStateT.Descriptor instead. func (DOTAConnectionStateT) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{5} } type Fantasy_Roles int32 const ( Fantasy_Roles_FANTASY_ROLE_UNDEFINED Fantasy_Roles = 0 Fantasy_Roles_FANTASY_ROLE_CORE Fantasy_Roles = 1 Fantasy_Roles_FANTASY_ROLE_SUPPORT Fantasy_Roles = 2 Fantasy_Roles_FANTASY_ROLE_OFFLANE Fantasy_Roles = 3 Fantasy_Roles_FANTASY_ROLE_MID Fantasy_Roles = 4 ) // Enum value maps for Fantasy_Roles. var ( Fantasy_Roles_name = map[int32]string{ 0: "FANTASY_ROLE_UNDEFINED", 1: "FANTASY_ROLE_CORE", 2: "FANTASY_ROLE_SUPPORT", 3: "FANTASY_ROLE_OFFLANE", 4: "FANTASY_ROLE_MID", } Fantasy_Roles_value = map[string]int32{ "FANTASY_ROLE_UNDEFINED": 0, "FANTASY_ROLE_CORE": 1, "FANTASY_ROLE_SUPPORT": 2, "FANTASY_ROLE_OFFLANE": 3, "FANTASY_ROLE_MID": 4, } ) func (x Fantasy_Roles) Enum() *Fantasy_Roles { p := new(Fantasy_Roles) *p = x return p } func (x Fantasy_Roles) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Fantasy_Roles) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[6].Descriptor() } func (Fantasy_Roles) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[6] } func (x Fantasy_Roles) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Fantasy_Roles) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Fantasy_Roles(num) return nil } // Deprecated: Use Fantasy_Roles.Descriptor instead. func (Fantasy_Roles) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{6} } type Fantasy_Team_Slots int32 const ( Fantasy_Team_Slots_FANTASY_SLOT_NONE Fantasy_Team_Slots = 0 Fantasy_Team_Slots_FANTASY_SLOT_CORE Fantasy_Team_Slots = 1 Fantasy_Team_Slots_FANTASY_SLOT_SUPPORT Fantasy_Team_Slots = 2 Fantasy_Team_Slots_FANTASY_SLOT_ANY Fantasy_Team_Slots = 3 Fantasy_Team_Slots_FANTASY_SLOT_BENCH Fantasy_Team_Slots = 4 ) // Enum value maps for Fantasy_Team_Slots. var ( Fantasy_Team_Slots_name = map[int32]string{ 0: "FANTASY_SLOT_NONE", 1: "FANTASY_SLOT_CORE", 2: "FANTASY_SLOT_SUPPORT", 3: "FANTASY_SLOT_ANY", 4: "FANTASY_SLOT_BENCH", } Fantasy_Team_Slots_value = map[string]int32{ "FANTASY_SLOT_NONE": 0, "FANTASY_SLOT_CORE": 1, "FANTASY_SLOT_SUPPORT": 2, "FANTASY_SLOT_ANY": 3, "FANTASY_SLOT_BENCH": 4, } ) func (x Fantasy_Team_Slots) Enum() *Fantasy_Team_Slots { p := new(Fantasy_Team_Slots) *p = x return p } func (x Fantasy_Team_Slots) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Fantasy_Team_Slots) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[7].Descriptor() } func (Fantasy_Team_Slots) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[7] } func (x Fantasy_Team_Slots) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Fantasy_Team_Slots) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Fantasy_Team_Slots(num) return nil } // Deprecated: Use Fantasy_Team_Slots.Descriptor instead. func (Fantasy_Team_Slots) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{7} } type Fantasy_Selection_Mode int32 const ( Fantasy_Selection_Mode_FANTASY_SELECTION_INVALID Fantasy_Selection_Mode = 0 Fantasy_Selection_Mode_FANTASY_SELECTION_LOCKED Fantasy_Selection_Mode = 1 Fantasy_Selection_Mode_FANTASY_SELECTION_SHUFFLE Fantasy_Selection_Mode = 2 Fantasy_Selection_Mode_FANTASY_SELECTION_FREE_PICK Fantasy_Selection_Mode = 3 Fantasy_Selection_Mode_FANTASY_SELECTION_ENDED Fantasy_Selection_Mode = 4 Fantasy_Selection_Mode_FANTASY_SELECTION_PRE_SEASON Fantasy_Selection_Mode = 5 Fantasy_Selection_Mode_FANTASY_SELECTION_PRE_DRAFT Fantasy_Selection_Mode = 6 Fantasy_Selection_Mode_FANTASY_SELECTION_DRAFTING Fantasy_Selection_Mode = 7 Fantasy_Selection_Mode_FANTASY_SELECTION_REGULAR_SEASON Fantasy_Selection_Mode = 8 Fantasy_Selection_Mode_FANTASY_SELECTION_CARD_BASED Fantasy_Selection_Mode = 9 ) // Enum value maps for Fantasy_Selection_Mode. var ( Fantasy_Selection_Mode_name = map[int32]string{ 0: "FANTASY_SELECTION_INVALID", 1: "FANTASY_SELECTION_LOCKED", 2: "FANTASY_SELECTION_SHUFFLE", 3: "FANTASY_SELECTION_FREE_PICK", 4: "FANTASY_SELECTION_ENDED", 5: "FANTASY_SELECTION_PRE_SEASON", 6: "FANTASY_SELECTION_PRE_DRAFT", 7: "FANTASY_SELECTION_DRAFTING", 8: "FANTASY_SELECTION_REGULAR_SEASON", 9: "FANTASY_SELECTION_CARD_BASED", } Fantasy_Selection_Mode_value = map[string]int32{ "FANTASY_SELECTION_INVALID": 0, "FANTASY_SELECTION_LOCKED": 1, "FANTASY_SELECTION_SHUFFLE": 2, "FANTASY_SELECTION_FREE_PICK": 3, "FANTASY_SELECTION_ENDED": 4, "FANTASY_SELECTION_PRE_SEASON": 5, "FANTASY_SELECTION_PRE_DRAFT": 6, "FANTASY_SELECTION_DRAFTING": 7, "FANTASY_SELECTION_REGULAR_SEASON": 8, "FANTASY_SELECTION_CARD_BASED": 9, } ) func (x Fantasy_Selection_Mode) Enum() *Fantasy_Selection_Mode { p := new(Fantasy_Selection_Mode) *p = x return p } func (x Fantasy_Selection_Mode) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Fantasy_Selection_Mode) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[8].Descriptor() } func (Fantasy_Selection_Mode) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[8] } func (x Fantasy_Selection_Mode) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Fantasy_Selection_Mode) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Fantasy_Selection_Mode(num) return nil } // Deprecated: Use Fantasy_Selection_Mode.Descriptor instead. func (Fantasy_Selection_Mode) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{8} } type DOTAChatChannelTypeT int32 const ( DOTAChatChannelTypeT_DOTAChannelType_Regional DOTAChatChannelTypeT = 0 DOTAChatChannelTypeT_DOTAChannelType_Custom DOTAChatChannelTypeT = 1 DOTAChatChannelTypeT_DOTAChannelType_Party DOTAChatChannelTypeT = 2 DOTAChatChannelTypeT_DOTAChannelType_Lobby DOTAChatChannelTypeT = 3 DOTAChatChannelTypeT_DOTAChannelType_Team DOTAChatChannelTypeT = 4 DOTAChatChannelTypeT_DOTAChannelType_Guild DOTAChatChannelTypeT = 5 DOTAChatChannelTypeT_DOTAChannelType_Fantasy DOTAChatChannelTypeT = 6 DOTAChatChannelTypeT_DOTAChannelType_Whisper DOTAChatChannelTypeT = 7 DOTAChatChannelTypeT_DOTAChannelType_Console DOTAChatChannelTypeT = 8 DOTAChatChannelTypeT_DOTAChannelType_Tab DOTAChatChannelTypeT = 9 DOTAChatChannelTypeT_DOTAChannelType_Invalid DOTAChatChannelTypeT = 10 DOTAChatChannelTypeT_DOTAChannelType_GameAll DOTAChatChannelTypeT = 11 DOTAChatChannelTypeT_DOTAChannelType_GameAllies DOTAChatChannelTypeT = 12 DOTAChatChannelTypeT_DOTAChannelType_GameSpectator DOTAChatChannelTypeT = 13 DOTAChatChannelTypeT_DOTAChannelType_GameCoaching DOTAChatChannelTypeT = 14 DOTAChatChannelTypeT_DOTAChannelType_Cafe DOTAChatChannelTypeT = 15 DOTAChatChannelTypeT_DOTAChannelType_CustomGame DOTAChatChannelTypeT = 16 DOTAChatChannelTypeT_DOTAChannelType_Private DOTAChatChannelTypeT = 17 DOTAChatChannelTypeT_DOTAChannelType_PostGame DOTAChatChannelTypeT = 18 DOTAChatChannelTypeT_DOTAChannelType_BattleCup DOTAChatChannelTypeT = 19 DOTAChatChannelTypeT_DOTAChannelType_HLTVSpectator DOTAChatChannelTypeT = 20 DOTAChatChannelTypeT_DOTAChannelType_GameEvents DOTAChatChannelTypeT = 21 DOTAChatChannelTypeT_DOTAChannelType_Trivia DOTAChatChannelTypeT = 22 DOTAChatChannelTypeT_DOTAChannelType_NewPlayer DOTAChatChannelTypeT = 23 DOTAChatChannelTypeT_DOTAChannelType_PrivateCoaching DOTAChatChannelTypeT = 24 ) // Enum value maps for DOTAChatChannelTypeT. var ( DOTAChatChannelTypeT_name = map[int32]string{ 0: "DOTAChannelType_Regional", 1: "DOTAChannelType_Custom", 2: "DOTAChannelType_Party", 3: "DOTAChannelType_Lobby", 4: "DOTAChannelType_Team", 5: "DOTAChannelType_Guild", 6: "DOTAChannelType_Fantasy", 7: "DOTAChannelType_Whisper", 8: "DOTAChannelType_Console", 9: "DOTAChannelType_Tab", 10: "DOTAChannelType_Invalid", 11: "DOTAChannelType_GameAll", 12: "DOTAChannelType_GameAllies", 13: "DOTAChannelType_GameSpectator", 14: "DOTAChannelType_GameCoaching", 15: "DOTAChannelType_Cafe", 16: "DOTAChannelType_CustomGame", 17: "DOTAChannelType_Private", 18: "DOTAChannelType_PostGame", 19: "DOTAChannelType_BattleCup", 20: "DOTAChannelType_HLTVSpectator", 21: "DOTAChannelType_GameEvents", 22: "DOTAChannelType_Trivia", 23: "DOTAChannelType_NewPlayer", 24: "DOTAChannelType_PrivateCoaching", } DOTAChatChannelTypeT_value = map[string]int32{ "DOTAChannelType_Regional": 0, "DOTAChannelType_Custom": 1, "DOTAChannelType_Party": 2, "DOTAChannelType_Lobby": 3, "DOTAChannelType_Team": 4, "DOTAChannelType_Guild": 5, "DOTAChannelType_Fantasy": 6, "DOTAChannelType_Whisper": 7, "DOTAChannelType_Console": 8, "DOTAChannelType_Tab": 9, "DOTAChannelType_Invalid": 10, "DOTAChannelType_GameAll": 11, "DOTAChannelType_GameAllies": 12, "DOTAChannelType_GameSpectator": 13, "DOTAChannelType_GameCoaching": 14, "DOTAChannelType_Cafe": 15, "DOTAChannelType_CustomGame": 16, "DOTAChannelType_Private": 17, "DOTAChannelType_PostGame": 18, "DOTAChannelType_BattleCup": 19, "DOTAChannelType_HLTVSpectator": 20, "DOTAChannelType_GameEvents": 21, "DOTAChannelType_Trivia": 22, "DOTAChannelType_NewPlayer": 23, "DOTAChannelType_PrivateCoaching": 24, } ) func (x DOTAChatChannelTypeT) Enum() *DOTAChatChannelTypeT { p := new(DOTAChatChannelTypeT) *p = x return p } func (x DOTAChatChannelTypeT) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (DOTAChatChannelTypeT) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[9].Descriptor() } func (DOTAChatChannelTypeT) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[9] } func (x DOTAChatChannelTypeT) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *DOTAChatChannelTypeT) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = DOTAChatChannelTypeT(num) return nil } // Deprecated: Use DOTAChatChannelTypeT.Descriptor instead. func (DOTAChatChannelTypeT) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{9} } type EChatSpecialPrivileges int32 const ( EChatSpecialPrivileges_k_EChatSpecialPrivileges_None EChatSpecialPrivileges = 0 EChatSpecialPrivileges_k_EChatSpecialPrivileges_Moderator EChatSpecialPrivileges = 1 EChatSpecialPrivileges_k_EChatSpecialPrivileges_SuperModerator EChatSpecialPrivileges = 2 ) // Enum value maps for EChatSpecialPrivileges. var ( EChatSpecialPrivileges_name = map[int32]string{ 0: "k_EChatSpecialPrivileges_None", 1: "k_EChatSpecialPrivileges_Moderator", 2: "k_EChatSpecialPrivileges_SuperModerator", } EChatSpecialPrivileges_value = map[string]int32{ "k_EChatSpecialPrivileges_None": 0, "k_EChatSpecialPrivileges_Moderator": 1, "k_EChatSpecialPrivileges_SuperModerator": 2, } ) func (x EChatSpecialPrivileges) Enum() *EChatSpecialPrivileges { p := new(EChatSpecialPrivileges) *p = x return p } func (x EChatSpecialPrivileges) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (EChatSpecialPrivileges) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[10].Descriptor() } func (EChatSpecialPrivileges) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[10] } func (x EChatSpecialPrivileges) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *EChatSpecialPrivileges) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = EChatSpecialPrivileges(num) return nil } // Deprecated: Use EChatSpecialPrivileges.Descriptor instead. func (EChatSpecialPrivileges) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{10} } type EProfileCardSlotType int32 const ( EProfileCardSlotType_k_EProfileCardSlotType_Empty EProfileCardSlotType = 0 EProfileCardSlotType_k_EProfileCardSlotType_Stat EProfileCardSlotType = 1 EProfileCardSlotType_k_EProfileCardSlotType_Trophy EProfileCardSlotType = 2 EProfileCardSlotType_k_EProfileCardSlotType_Item EProfileCardSlotType = 3 EProfileCardSlotType_k_EProfileCardSlotType_Hero EProfileCardSlotType = 4 EProfileCardSlotType_k_EProfileCardSlotType_Emoticon EProfileCardSlotType = 5 EProfileCardSlotType_k_EProfileCardSlotType_Team EProfileCardSlotType = 6 ) // Enum value maps for EProfileCardSlotType. var ( EProfileCardSlotType_name = map[int32]string{ 0: "k_EProfileCardSlotType_Empty", 1: "k_EProfileCardSlotType_Stat", 2: "k_EProfileCardSlotType_Trophy", 3: "k_EProfileCardSlotType_Item", 4: "k_EProfileCardSlotType_Hero", 5: "k_EProfileCardSlotType_Emoticon", 6: "k_EProfileCardSlotType_Team", } EProfileCardSlotType_value = map[string]int32{ "k_EProfileCardSlotType_Empty": 0, "k_EProfileCardSlotType_Stat": 1, "k_EProfileCardSlotType_Trophy": 2, "k_EProfileCardSlotType_Item": 3, "k_EProfileCardSlotType_Hero": 4, "k_EProfileCardSlotType_Emoticon": 5, "k_EProfileCardSlotType_Team": 6, } ) func (x EProfileCardSlotType) Enum() *EProfileCardSlotType { p := new(EProfileCardSlotType) *p = x return p } func (x EProfileCardSlotType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (EProfileCardSlotType) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[11].Descriptor() } func (EProfileCardSlotType) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[11] } func (x EProfileCardSlotType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *EProfileCardSlotType) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = EProfileCardSlotType(num) return nil } // Deprecated: Use EProfileCardSlotType.Descriptor instead. func (EProfileCardSlotType) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{11} } type EMatchGroupServerStatus int32 const ( EMatchGroupServerStatus_k_EMatchGroupServerStatus_OK EMatchGroupServerStatus = 0 EMatchGroupServerStatus_k_EMatchGroupServerStatus_LimitedAvailability EMatchGroupServerStatus = 1 EMatchGroupServerStatus_k_EMatchGroupServerStatus_Offline EMatchGroupServerStatus = 2 ) // Enum value maps for EMatchGroupServerStatus. var ( EMatchGroupServerStatus_name = map[int32]string{ 0: "k_EMatchGroupServerStatus_OK", 1: "k_EMatchGroupServerStatus_LimitedAvailability", 2: "k_EMatchGroupServerStatus_Offline", } EMatchGroupServerStatus_value = map[string]int32{ "k_EMatchGroupServerStatus_OK": 0, "k_EMatchGroupServerStatus_LimitedAvailability": 1, "k_EMatchGroupServerStatus_Offline": 2, } ) func (x EMatchGroupServerStatus) Enum() *EMatchGroupServerStatus { p := new(EMatchGroupServerStatus) *p = x return p } func (x EMatchGroupServerStatus) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (EMatchGroupServerStatus) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[12].Descriptor() } func (EMatchGroupServerStatus) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[12] } func (x EMatchGroupServerStatus) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *EMatchGroupServerStatus) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = EMatchGroupServerStatus(num) return nil } // Deprecated: Use EMatchGroupServerStatus.Descriptor instead. func (EMatchGroupServerStatus) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{12} } type DOTA_CM_PICK int32 const ( DOTA_CM_PICK_DOTA_CM_RANDOM DOTA_CM_PICK = 0 DOTA_CM_PICK_DOTA_CM_GOOD_GUYS DOTA_CM_PICK = 1 DOTA_CM_PICK_DOTA_CM_BAD_GUYS DOTA_CM_PICK = 2 ) // Enum value maps for DOTA_CM_PICK. var ( DOTA_CM_PICK_name = map[int32]string{ 0: "DOTA_CM_RANDOM", 1: "DOTA_CM_GOOD_GUYS", 2: "DOTA_CM_BAD_GUYS", } DOTA_CM_PICK_value = map[string]int32{ "DOTA_CM_RANDOM": 0, "DOTA_CM_GOOD_GUYS": 1, "DOTA_CM_BAD_GUYS": 2, } ) func (x DOTA_CM_PICK) Enum() *DOTA_CM_PICK { p := new(DOTA_CM_PICK) *p = x return p } func (x DOTA_CM_PICK) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (DOTA_CM_PICK) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[13].Descriptor() } func (DOTA_CM_PICK) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[13] } func (x DOTA_CM_PICK) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *DOTA_CM_PICK) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = DOTA_CM_PICK(num) return nil } // Deprecated: Use DOTA_CM_PICK.Descriptor instead. func (DOTA_CM_PICK) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{13} } type DOTALowPriorityBanType int32 const ( DOTALowPriorityBanType_DOTA_LOW_PRIORITY_BAN_ABANDON DOTALowPriorityBanType = 0 DOTALowPriorityBanType_DOTA_LOW_PRIORITY_BAN_REPORTS DOTALowPriorityBanType = 1 DOTALowPriorityBanType_DOTA_LOW_PRIORITY_BAN_SECONDARY_ABANDON DOTALowPriorityBanType = 2 DOTALowPriorityBanType_DOTA_LOW_PRIORITY_BAN_PRE_GAME_ROLE DOTALowPriorityBanType = 3 ) // Enum value maps for DOTALowPriorityBanType. var ( DOTALowPriorityBanType_name = map[int32]string{ 0: "DOTA_LOW_PRIORITY_BAN_ABANDON", 1: "DOTA_LOW_PRIORITY_BAN_REPORTS", 2: "DOTA_LOW_PRIORITY_BAN_SECONDARY_ABANDON", 3: "DOTA_LOW_PRIORITY_BAN_PRE_GAME_ROLE", } DOTALowPriorityBanType_value = map[string]int32{ "DOTA_LOW_PRIORITY_BAN_ABANDON": 0, "DOTA_LOW_PRIORITY_BAN_REPORTS": 1, "DOTA_LOW_PRIORITY_BAN_SECONDARY_ABANDON": 2, "DOTA_LOW_PRIORITY_BAN_PRE_GAME_ROLE": 3, } ) func (x DOTALowPriorityBanType) Enum() *DOTALowPriorityBanType { p := new(DOTALowPriorityBanType) *p = x return p } func (x DOTALowPriorityBanType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (DOTALowPriorityBanType) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[14].Descriptor() } func (DOTALowPriorityBanType) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[14] } func (x DOTALowPriorityBanType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *DOTALowPriorityBanType) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = DOTALowPriorityBanType(num) return nil } // Deprecated: Use DOTALowPriorityBanType.Descriptor instead. func (DOTALowPriorityBanType) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{14} } type DOTALobbyReadyState int32 const ( DOTALobbyReadyState_DOTALobbyReadyState_UNDECLARED DOTALobbyReadyState = 0 DOTALobbyReadyState_DOTALobbyReadyState_ACCEPTED DOTALobbyReadyState = 1 DOTALobbyReadyState_DOTALobbyReadyState_DECLINED DOTALobbyReadyState = 2 ) // Enum value maps for DOTALobbyReadyState. var ( DOTALobbyReadyState_name = map[int32]string{ 0: "DOTALobbyReadyState_UNDECLARED", 1: "DOTALobbyReadyState_ACCEPTED", 2: "DOTALobbyReadyState_DECLINED", } DOTALobbyReadyState_value = map[string]int32{ "DOTALobbyReadyState_UNDECLARED": 0, "DOTALobbyReadyState_ACCEPTED": 1, "DOTALobbyReadyState_DECLINED": 2, } ) func (x DOTALobbyReadyState) Enum() *DOTALobbyReadyState { p := new(DOTALobbyReadyState) *p = x return p } func (x DOTALobbyReadyState) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (DOTALobbyReadyState) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[15].Descriptor() } func (DOTALobbyReadyState) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[15] } func (x DOTALobbyReadyState) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *DOTALobbyReadyState) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = DOTALobbyReadyState(num) return nil } // Deprecated: Use DOTALobbyReadyState.Descriptor instead. func (DOTALobbyReadyState) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{15} } type DOTAGameVersion int32 const ( DOTAGameVersion_GAME_VERSION_CURRENT DOTAGameVersion = 0 DOTAGameVersion_GAME_VERSION_STABLE DOTAGameVersion = 1 ) // Enum value maps for DOTAGameVersion. var ( DOTAGameVersion_name = map[int32]string{ 0: "GAME_VERSION_CURRENT", 1: "GAME_VERSION_STABLE", } DOTAGameVersion_value = map[string]int32{ "GAME_VERSION_CURRENT": 0, "GAME_VERSION_STABLE": 1, } ) func (x DOTAGameVersion) Enum() *DOTAGameVersion { p := new(DOTAGameVersion) *p = x return p } func (x DOTAGameVersion) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (DOTAGameVersion) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[16].Descriptor() } func (DOTAGameVersion) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[16] } func (x DOTAGameVersion) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *DOTAGameVersion) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = DOTAGameVersion(num) return nil } // Deprecated: Use DOTAGameVersion.Descriptor instead. func (DOTAGameVersion) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{16} } type DOTAJoinLobbyResult int32 const ( DOTAJoinLobbyResult_DOTA_JOIN_RESULT_SUCCESS DOTAJoinLobbyResult = 0 DOTAJoinLobbyResult_DOTA_JOIN_RESULT_ALREADY_IN_GAME DOTAJoinLobbyResult = 1 DOTAJoinLobbyResult_DOTA_JOIN_RESULT_INVALID_LOBBY DOTAJoinLobbyResult = 2 DOTAJoinLobbyResult_DOTA_JOIN_RESULT_INCORRECT_PASSWORD DOTAJoinLobbyResult = 3 DOTAJoinLobbyResult_DOTA_JOIN_RESULT_ACCESS_DENIED DOTAJoinLobbyResult = 4 DOTAJoinLobbyResult_DOTA_JOIN_RESULT_GENERIC_ERROR DOTAJoinLobbyResult = 5 DOTAJoinLobbyResult_DOTA_JOIN_RESULT_INCORRECT_VERSION DOTAJoinLobbyResult = 6 DOTAJoinLobbyResult_DOTA_JOIN_RESULT_IN_TEAM_PARTY DOTAJoinLobbyResult = 7 DOTAJoinLobbyResult_DOTA_JOIN_RESULT_NO_LOBBY_FOUND DOTAJoinLobbyResult = 8 DOTAJoinLobbyResult_DOTA_JOIN_RESULT_LOBBY_FULL DOTAJoinLobbyResult = 9 DOTAJoinLobbyResult_DOTA_JOIN_RESULT_CUSTOM_GAME_INCORRECT_VERSION DOTAJoinLobbyResult = 10 DOTAJoinLobbyResult_DOTA_JOIN_RESULT_TIMEOUT DOTAJoinLobbyResult = 11 DOTAJoinLobbyResult_DOTA_JOIN_RESULT_CUSTOM_GAME_COOLDOWN DOTAJoinLobbyResult = 12 DOTAJoinLobbyResult_DOTA_JOIN_RESULT_BUSY DOTAJoinLobbyResult = 13 DOTAJoinLobbyResult_DOTA_JOIN_RESULT_NO_PLAYTIME DOTAJoinLobbyResult = 14 ) // Enum value maps for DOTAJoinLobbyResult. var ( DOTAJoinLobbyResult_name = map[int32]string{ 0: "DOTA_JOIN_RESULT_SUCCESS", 1: "DOTA_JOIN_RESULT_ALREADY_IN_GAME", 2: "DOTA_JOIN_RESULT_INVALID_LOBBY", 3: "DOTA_JOIN_RESULT_INCORRECT_PASSWORD", 4: "DOTA_JOIN_RESULT_ACCESS_DENIED", 5: "DOTA_JOIN_RESULT_GENERIC_ERROR", 6: "DOTA_JOIN_RESULT_INCORRECT_VERSION", 7: "DOTA_JOIN_RESULT_IN_TEAM_PARTY", 8: "DOTA_JOIN_RESULT_NO_LOBBY_FOUND", 9: "DOTA_JOIN_RESULT_LOBBY_FULL", 10: "DOTA_JOIN_RESULT_CUSTOM_GAME_INCORRECT_VERSION", 11: "DOTA_JOIN_RESULT_TIMEOUT", 12: "DOTA_JOIN_RESULT_CUSTOM_GAME_COOLDOWN", 13: "DOTA_JOIN_RESULT_BUSY", 14: "DOTA_JOIN_RESULT_NO_PLAYTIME", } DOTAJoinLobbyResult_value = map[string]int32{ "DOTA_JOIN_RESULT_SUCCESS": 0, "DOTA_JOIN_RESULT_ALREADY_IN_GAME": 1, "DOTA_JOIN_RESULT_INVALID_LOBBY": 2, "DOTA_JOIN_RESULT_INCORRECT_PASSWORD": 3, "DOTA_JOIN_RESULT_ACCESS_DENIED": 4, "DOTA_JOIN_RESULT_GENERIC_ERROR": 5, "DOTA_JOIN_RESULT_INCORRECT_VERSION": 6, "DOTA_JOIN_RESULT_IN_TEAM_PARTY": 7, "DOTA_JOIN_RESULT_NO_LOBBY_FOUND": 8, "DOTA_JOIN_RESULT_LOBBY_FULL": 9, "DOTA_JOIN_RESULT_CUSTOM_GAME_INCORRECT_VERSION": 10, "DOTA_JOIN_RESULT_TIMEOUT": 11, "DOTA_JOIN_RESULT_CUSTOM_GAME_COOLDOWN": 12, "DOTA_JOIN_RESULT_BUSY": 13, "DOTA_JOIN_RESULT_NO_PLAYTIME": 14, } ) func (x DOTAJoinLobbyResult) Enum() *DOTAJoinLobbyResult { p := new(DOTAJoinLobbyResult) *p = x return p } func (x DOTAJoinLobbyResult) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (DOTAJoinLobbyResult) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[17].Descriptor() } func (DOTAJoinLobbyResult) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[17] } func (x DOTAJoinLobbyResult) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *DOTAJoinLobbyResult) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = DOTAJoinLobbyResult(num) return nil } // Deprecated: Use DOTAJoinLobbyResult.Descriptor instead. func (DOTAJoinLobbyResult) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{17} } type DOTASelectionPriorityRules int32 const ( DOTASelectionPriorityRules_k_DOTASelectionPriorityRules_Manual DOTASelectionPriorityRules = 0 DOTASelectionPriorityRules_k_DOTASelectionPriorityRules_Automatic DOTASelectionPriorityRules = 1 ) // Enum value maps for DOTASelectionPriorityRules. var ( DOTASelectionPriorityRules_name = map[int32]string{ 0: "k_DOTASelectionPriorityRules_Manual", 1: "k_DOTASelectionPriorityRules_Automatic", } DOTASelectionPriorityRules_value = map[string]int32{ "k_DOTASelectionPriorityRules_Manual": 0, "k_DOTASelectionPriorityRules_Automatic": 1, } ) func (x DOTASelectionPriorityRules) Enum() *DOTASelectionPriorityRules { p := new(DOTASelectionPriorityRules) *p = x return p } func (x DOTASelectionPriorityRules) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (DOTASelectionPriorityRules) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[18].Descriptor() } func (DOTASelectionPriorityRules) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[18] } func (x DOTASelectionPriorityRules) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *DOTASelectionPriorityRules) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = DOTASelectionPriorityRules(num) return nil } // Deprecated: Use DOTASelectionPriorityRules.Descriptor instead. func (DOTASelectionPriorityRules) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{18} } type DOTASelectionPriorityChoice int32 const ( DOTASelectionPriorityChoice_k_DOTASelectionPriorityChoice_Invalid DOTASelectionPriorityChoice = 0 DOTASelectionPriorityChoice_k_DOTASelectionPriorityChoice_FirstPick DOTASelectionPriorityChoice = 1 DOTASelectionPriorityChoice_k_DOTASelectionPriorityChoice_SecondPick DOTASelectionPriorityChoice = 2 DOTASelectionPriorityChoice_k_DOTASelectionPriorityChoice_Radiant DOTASelectionPriorityChoice = 3 DOTASelectionPriorityChoice_k_DOTASelectionPriorityChoice_Dire DOTASelectionPriorityChoice = 4 ) // Enum value maps for DOTASelectionPriorityChoice. var ( DOTASelectionPriorityChoice_name = map[int32]string{ 0: "k_DOTASelectionPriorityChoice_Invalid", 1: "k_DOTASelectionPriorityChoice_FirstPick", 2: "k_DOTASelectionPriorityChoice_SecondPick", 3: "k_DOTASelectionPriorityChoice_Radiant", 4: "k_DOTASelectionPriorityChoice_Dire", } DOTASelectionPriorityChoice_value = map[string]int32{ "k_DOTASelectionPriorityChoice_Invalid": 0, "k_DOTASelectionPriorityChoice_FirstPick": 1, "k_DOTASelectionPriorityChoice_SecondPick": 2, "k_DOTASelectionPriorityChoice_Radiant": 3, "k_DOTASelectionPriorityChoice_Dire": 4, } ) func (x DOTASelectionPriorityChoice) Enum() *DOTASelectionPriorityChoice { p := new(DOTASelectionPriorityChoice) *p = x return p } func (x DOTASelectionPriorityChoice) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (DOTASelectionPriorityChoice) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[19].Descriptor() } func (DOTASelectionPriorityChoice) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[19] } func (x DOTASelectionPriorityChoice) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *DOTASelectionPriorityChoice) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = DOTASelectionPriorityChoice(num) return nil } // Deprecated: Use DOTASelectionPriorityChoice.Descriptor instead. func (DOTASelectionPriorityChoice) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{19} } type DOTAMatchVote int32 const ( DOTAMatchVote_DOTAMatchVote_INVALID DOTAMatchVote = 0 DOTAMatchVote_DOTAMatchVote_POSITIVE DOTAMatchVote = 1 DOTAMatchVote_DOTAMatchVote_NEGATIVE DOTAMatchVote = 2 ) // Enum value maps for DOTAMatchVote. var ( DOTAMatchVote_name = map[int32]string{ 0: "DOTAMatchVote_INVALID", 1: "DOTAMatchVote_POSITIVE", 2: "DOTAMatchVote_NEGATIVE", } DOTAMatchVote_value = map[string]int32{ "DOTAMatchVote_INVALID": 0, "DOTAMatchVote_POSITIVE": 1, "DOTAMatchVote_NEGATIVE": 2, } ) func (x DOTAMatchVote) Enum() *DOTAMatchVote { p := new(DOTAMatchVote) *p = x return p } func (x DOTAMatchVote) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (DOTAMatchVote) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[20].Descriptor() } func (DOTAMatchVote) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[20] } func (x DOTAMatchVote) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *DOTAMatchVote) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = DOTAMatchVote(num) return nil } // Deprecated: Use DOTAMatchVote.Descriptor instead. func (DOTAMatchVote) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{20} } type DOTALobbyVisibility int32 const ( DOTALobbyVisibility_DOTALobbyVisibility_Public DOTALobbyVisibility = 0 DOTALobbyVisibility_DOTALobbyVisibility_Friends DOTALobbyVisibility = 1 DOTALobbyVisibility_DOTALobbyVisibility_Unlisted DOTALobbyVisibility = 2 ) // Enum value maps for DOTALobbyVisibility. var ( DOTALobbyVisibility_name = map[int32]string{ 0: "DOTALobbyVisibility_Public", 1: "DOTALobbyVisibility_Friends", 2: "DOTALobbyVisibility_Unlisted", } DOTALobbyVisibility_value = map[string]int32{ "DOTALobbyVisibility_Public": 0, "DOTALobbyVisibility_Friends": 1, "DOTALobbyVisibility_Unlisted": 2, } ) func (x DOTALobbyVisibility) Enum() *DOTALobbyVisibility { p := new(DOTALobbyVisibility) *p = x return p } func (x DOTALobbyVisibility) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (DOTALobbyVisibility) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[21].Descriptor() } func (DOTALobbyVisibility) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[21] } func (x DOTALobbyVisibility) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *DOTALobbyVisibility) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = DOTALobbyVisibility(num) return nil } // Deprecated: Use DOTALobbyVisibility.Descriptor instead. func (DOTALobbyVisibility) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{21} } type EDOTAPlayerMMRType int32 const ( EDOTAPlayerMMRType_k_EDOTAPlayerMMRType_Invalid EDOTAPlayerMMRType = 0 EDOTAPlayerMMRType_k_EDOTAPlayerMMRType_GeneralHidden EDOTAPlayerMMRType = 1 EDOTAPlayerMMRType_k_EDOTAPlayerMMRType_GeneralCompetitive EDOTAPlayerMMRType = 3 EDOTAPlayerMMRType_k_EDOTAPlayerMMRType_SoloCompetitive2019 EDOTAPlayerMMRType = 4 EDOTAPlayerMMRType_k_EDOTAPlayerMMRType_1v1Competitive_UNUSED EDOTAPlayerMMRType = 5 ) // Enum value maps for EDOTAPlayerMMRType. var ( EDOTAPlayerMMRType_name = map[int32]string{ 0: "k_EDOTAPlayerMMRType_Invalid", 1: "k_EDOTAPlayerMMRType_GeneralHidden", 3: "k_EDOTAPlayerMMRType_GeneralCompetitive", 4: "k_EDOTAPlayerMMRType_SoloCompetitive2019", 5: "k_EDOTAPlayerMMRType_1v1Competitive_UNUSED", } EDOTAPlayerMMRType_value = map[string]int32{ "k_EDOTAPlayerMMRType_Invalid": 0, "k_EDOTAPlayerMMRType_GeneralHidden": 1, "k_EDOTAPlayerMMRType_GeneralCompetitive": 3, "k_EDOTAPlayerMMRType_SoloCompetitive2019": 4, "k_EDOTAPlayerMMRType_1v1Competitive_UNUSED": 5, } ) func (x EDOTAPlayerMMRType) Enum() *EDOTAPlayerMMRType { p := new(EDOTAPlayerMMRType) *p = x return p } func (x EDOTAPlayerMMRType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (EDOTAPlayerMMRType) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[22].Descriptor() } func (EDOTAPlayerMMRType) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[22] } func (x EDOTAPlayerMMRType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *EDOTAPlayerMMRType) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = EDOTAPlayerMMRType(num) return nil } // Deprecated: Use EDOTAPlayerMMRType.Descriptor instead. func (EDOTAPlayerMMRType) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{22} } type EDOTAMMRBoostType int32 const ( EDOTAMMRBoostType_k_EDOTAMMRBoostType_None EDOTAMMRBoostType = 0 EDOTAMMRBoostType_k_EDOTAMMRBoostType_Leader EDOTAMMRBoostType = 1 EDOTAMMRBoostType_k_EDOTAMMRBoostType_Follower EDOTAMMRBoostType = 2 ) // Enum value maps for EDOTAMMRBoostType. var ( EDOTAMMRBoostType_name = map[int32]string{ 0: "k_EDOTAMMRBoostType_None", 1: "k_EDOTAMMRBoostType_Leader", 2: "k_EDOTAMMRBoostType_Follower", } EDOTAMMRBoostType_value = map[string]int32{ "k_EDOTAMMRBoostType_None": 0, "k_EDOTAMMRBoostType_Leader": 1, "k_EDOTAMMRBoostType_Follower": 2, } ) func (x EDOTAMMRBoostType) Enum() *EDOTAMMRBoostType { p := new(EDOTAMMRBoostType) *p = x return p } func (x EDOTAMMRBoostType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (EDOTAMMRBoostType) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[23].Descriptor() } func (EDOTAMMRBoostType) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[23] } func (x EDOTAMMRBoostType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *EDOTAMMRBoostType) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = EDOTAMMRBoostType(num) return nil } // Deprecated: Use EDOTAMMRBoostType.Descriptor instead. func (EDOTAMMRBoostType) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{23} } type MatchType int32 const ( MatchType_MATCH_TYPE_CASUAL MatchType = 0 MatchType_MATCH_TYPE_COOP_BOTS MatchType = 1 MatchType_MATCH_TYPE_LEGACY_TEAM_RANKED MatchType = 2 MatchType_MATCH_TYPE_LEGACY_SOLO_QUEUE MatchType = 3 MatchType_MATCH_TYPE_COMPETITIVE MatchType = 4 MatchType_MATCH_TYPE_WEEKEND_TOURNEY MatchType = 5 MatchType_MATCH_TYPE_CASUAL_1V1 MatchType = 6 MatchType_MATCH_TYPE_EVENT MatchType = 7 MatchType_MATCH_TYPE_SEASONAL_RANKED MatchType = 8 MatchType_MATCH_TYPE_LOWPRI_DEPRECATED MatchType = 9 MatchType_MATCH_TYPE_STEAM_GROUP MatchType = 10 MatchType_MATCH_TYPE_MUTATION MatchType = 11 MatchType_MATCH_TYPE_COACHES_CHALLENGE MatchType = 12 MatchType_MATCH_TYPE_GAUNTLET MatchType = 13 MatchType_MATCH_TYPE_NEW_PLAYER_POOL MatchType = 14 ) // Enum value maps for MatchType. var ( MatchType_name = map[int32]string{ 0: "MATCH_TYPE_CASUAL", 1: "MATCH_TYPE_COOP_BOTS", 2: "MATCH_TYPE_LEGACY_TEAM_RANKED", 3: "MATCH_TYPE_LEGACY_SOLO_QUEUE", 4: "MATCH_TYPE_COMPETITIVE", 5: "MATCH_TYPE_WEEKEND_TOURNEY", 6: "MATCH_TYPE_CASUAL_1V1", 7: "MATCH_TYPE_EVENT", 8: "MATCH_TYPE_SEASONAL_RANKED", 9: "MATCH_TYPE_LOWPRI_DEPRECATED", 10: "MATCH_TYPE_STEAM_GROUP", 11: "MATCH_TYPE_MUTATION", 12: "MATCH_TYPE_COACHES_CHALLENGE", 13: "MATCH_TYPE_GAUNTLET", 14: "MATCH_TYPE_NEW_PLAYER_POOL", } MatchType_value = map[string]int32{ "MATCH_TYPE_CASUAL": 0, "MATCH_TYPE_COOP_BOTS": 1, "MATCH_TYPE_LEGACY_TEAM_RANKED": 2, "MATCH_TYPE_LEGACY_SOLO_QUEUE": 3, "MATCH_TYPE_COMPETITIVE": 4, "MATCH_TYPE_WEEKEND_TOURNEY": 5, "MATCH_TYPE_CASUAL_1V1": 6, "MATCH_TYPE_EVENT": 7, "MATCH_TYPE_SEASONAL_RANKED": 8, "MATCH_TYPE_LOWPRI_DEPRECATED": 9, "MATCH_TYPE_STEAM_GROUP": 10, "MATCH_TYPE_MUTATION": 11, "MATCH_TYPE_COACHES_CHALLENGE": 12, "MATCH_TYPE_GAUNTLET": 13, "MATCH_TYPE_NEW_PLAYER_POOL": 14, } ) func (x MatchType) Enum() *MatchType { p := new(MatchType) *p = x return p } func (x MatchType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (MatchType) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[24].Descriptor() } func (MatchType) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[24] } func (x MatchType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *MatchType) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = MatchType(num) return nil } // Deprecated: Use MatchType.Descriptor instead. func (MatchType) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{24} } type DOTABotDifficulty int32 const ( DOTABotDifficulty_BOT_DIFFICULTY_PASSIVE DOTABotDifficulty = 0 DOTABotDifficulty_BOT_DIFFICULTY_EASY DOTABotDifficulty = 1 DOTABotDifficulty_BOT_DIFFICULTY_MEDIUM DOTABotDifficulty = 2 DOTABotDifficulty_BOT_DIFFICULTY_HARD DOTABotDifficulty = 3 DOTABotDifficulty_BOT_DIFFICULTY_UNFAIR DOTABotDifficulty = 4 DOTABotDifficulty_BOT_DIFFICULTY_INVALID DOTABotDifficulty = 5 DOTABotDifficulty_BOT_DIFFICULTY_EXTRA1 DOTABotDifficulty = 6 DOTABotDifficulty_BOT_DIFFICULTY_EXTRA2 DOTABotDifficulty = 7 DOTABotDifficulty_BOT_DIFFICULTY_EXTRA3 DOTABotDifficulty = 8 DOTABotDifficulty_BOT_DIFFICULTY_NPX DOTABotDifficulty = 9 ) // Enum value maps for DOTABotDifficulty. var ( DOTABotDifficulty_name = map[int32]string{ 0: "BOT_DIFFICULTY_PASSIVE", 1: "BOT_DIFFICULTY_EASY", 2: "BOT_DIFFICULTY_MEDIUM", 3: "BOT_DIFFICULTY_HARD", 4: "BOT_DIFFICULTY_UNFAIR", 5: "BOT_DIFFICULTY_INVALID", 6: "BOT_DIFFICULTY_EXTRA1", 7: "BOT_DIFFICULTY_EXTRA2", 8: "BOT_DIFFICULTY_EXTRA3", 9: "BOT_DIFFICULTY_NPX", } DOTABotDifficulty_value = map[string]int32{ "BOT_DIFFICULTY_PASSIVE": 0, "BOT_DIFFICULTY_EASY": 1, "BOT_DIFFICULTY_MEDIUM": 2, "BOT_DIFFICULTY_HARD": 3, "BOT_DIFFICULTY_UNFAIR": 4, "BOT_DIFFICULTY_INVALID": 5, "BOT_DIFFICULTY_EXTRA1": 6, "BOT_DIFFICULTY_EXTRA2": 7, "BOT_DIFFICULTY_EXTRA3": 8, "BOT_DIFFICULTY_NPX": 9, } ) func (x DOTABotDifficulty) Enum() *DOTABotDifficulty { p := new(DOTABotDifficulty) *p = x return p } func (x DOTABotDifficulty) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (DOTABotDifficulty) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[25].Descriptor() } func (DOTABotDifficulty) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[25] } func (x DOTABotDifficulty) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *DOTABotDifficulty) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = DOTABotDifficulty(num) return nil } // Deprecated: Use DOTABotDifficulty.Descriptor instead. func (DOTABotDifficulty) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{25} } type DOTA_BOT_MODE int32 const ( DOTA_BOT_MODE_DOTA_BOT_MODE_NONE DOTA_BOT_MODE = 0 DOTA_BOT_MODE_DOTA_BOT_MODE_LANING DOTA_BOT_MODE = 1 DOTA_BOT_MODE_DOTA_BOT_MODE_ATTACK DOTA_BOT_MODE = 2 DOTA_BOT_MODE_DOTA_BOT_MODE_ROAM DOTA_BOT_MODE = 3 DOTA_BOT_MODE_DOTA_BOT_MODE_RETREAT DOTA_BOT_MODE = 4 DOTA_BOT_MODE_DOTA_BOT_MODE_SECRET_SHOP DOTA_BOT_MODE = 5 DOTA_BOT_MODE_DOTA_BOT_MODE_SIDE_SHOP DOTA_BOT_MODE = 6 DOTA_BOT_MODE_DOTA_BOT_MODE_RUNE DOTA_BOT_MODE = 7 DOTA_BOT_MODE_DOTA_BOT_MODE_PUSH_TOWER_TOP DOTA_BOT_MODE = 8 DOTA_BOT_MODE_DOTA_BOT_MODE_PUSH_TOWER_MID DOTA_BOT_MODE = 9 DOTA_BOT_MODE_DOTA_BOT_MODE_PUSH_TOWER_BOT DOTA_BOT_MODE = 10 DOTA_BOT_MODE_DOTA_BOT_MODE_DEFEND_TOWER_TOP DOTA_BOT_MODE = 11 DOTA_BOT_MODE_DOTA_BOT_MODE_DEFEND_TOWER_MID DOTA_BOT_MODE = 12 DOTA_BOT_MODE_DOTA_BOT_MODE_DEFEND_TOWER_BOT DOTA_BOT_MODE = 13 DOTA_BOT_MODE_DOTA_BOT_MODE_ASSEMBLE DOTA_BOT_MODE = 14 DOTA_BOT_MODE_DOTA_BOT_MODE_ASSEMBLE_WITH_HUMANS DOTA_BOT_MODE = 15 DOTA_BOT_MODE_DOTA_BOT_MODE_TEAM_ROAM DOTA_BOT_MODE = 16 DOTA_BOT_MODE_DOTA_BOT_MODE_FARM DOTA_BOT_MODE = 17 DOTA_BOT_MODE_DOTA_BOT_MODE_DEFEND_ALLY DOTA_BOT_MODE = 18 DOTA_BOT_MODE_DOTA_BOT_MODE_EVASIVE_MANEUVERS DOTA_BOT_MODE = 19 DOTA_BOT_MODE_DOTA_BOT_MODE_ROSHAN DOTA_BOT_MODE = 20 DOTA_BOT_MODE_DOTA_BOT_MODE_ITEM DOTA_BOT_MODE = 21 DOTA_BOT_MODE_DOTA_BOT_MODE_WARD DOTA_BOT_MODE = 22 DOTA_BOT_MODE_DOTA_BOT_MODE_COMPANION DOTA_BOT_MODE = 23 DOTA_BOT_MODE_DOTA_BOT_MODE_TUTORIAL_BOSS DOTA_BOT_MODE = 24 DOTA_BOT_MODE_DOTA_BOT_MODE_MINION DOTA_BOT_MODE = 25 DOTA_BOT_MODE_DOTA_BOT_MODE_OUTPOST DOTA_BOT_MODE = 26 ) // Enum value maps for DOTA_BOT_MODE. var ( DOTA_BOT_MODE_name = map[int32]string{ 0: "DOTA_BOT_MODE_NONE", 1: "DOTA_BOT_MODE_LANING", 2: "DOTA_BOT_MODE_ATTACK", 3: "DOTA_BOT_MODE_ROAM", 4: "DOTA_BOT_MODE_RETREAT", 5: "DOTA_BOT_MODE_SECRET_SHOP", 6: "DOTA_BOT_MODE_SIDE_SHOP", 7: "DOTA_BOT_MODE_RUNE", 8: "DOTA_BOT_MODE_PUSH_TOWER_TOP", 9: "DOTA_BOT_MODE_PUSH_TOWER_MID", 10: "DOTA_BOT_MODE_PUSH_TOWER_BOT", 11: "DOTA_BOT_MODE_DEFEND_TOWER_TOP", 12: "DOTA_BOT_MODE_DEFEND_TOWER_MID", 13: "DOTA_BOT_MODE_DEFEND_TOWER_BOT", 14: "DOTA_BOT_MODE_ASSEMBLE", 15: "DOTA_BOT_MODE_ASSEMBLE_WITH_HUMANS", 16: "DOTA_BOT_MODE_TEAM_ROAM", 17: "DOTA_BOT_MODE_FARM", 18: "DOTA_BOT_MODE_DEFEND_ALLY", 19: "DOTA_BOT_MODE_EVASIVE_MANEUVERS", 20: "DOTA_BOT_MODE_ROSHAN", 21: "DOTA_BOT_MODE_ITEM", 22: "DOTA_BOT_MODE_WARD", 23: "DOTA_BOT_MODE_COMPANION", 24: "DOTA_BOT_MODE_TUTORIAL_BOSS", 25: "DOTA_BOT_MODE_MINION", 26: "DOTA_BOT_MODE_OUTPOST", } DOTA_BOT_MODE_value = map[string]int32{ "DOTA_BOT_MODE_NONE": 0, "DOTA_BOT_MODE_LANING": 1, "DOTA_BOT_MODE_ATTACK": 2, "DOTA_BOT_MODE_ROAM": 3, "DOTA_BOT_MODE_RETREAT": 4, "DOTA_BOT_MODE_SECRET_SHOP": 5, "DOTA_BOT_MODE_SIDE_SHOP": 6, "DOTA_BOT_MODE_RUNE": 7, "DOTA_BOT_MODE_PUSH_TOWER_TOP": 8, "DOTA_BOT_MODE_PUSH_TOWER_MID": 9, "DOTA_BOT_MODE_PUSH_TOWER_BOT": 10, "DOTA_BOT_MODE_DEFEND_TOWER_TOP": 11, "DOTA_BOT_MODE_DEFEND_TOWER_MID": 12, "DOTA_BOT_MODE_DEFEND_TOWER_BOT": 13, "DOTA_BOT_MODE_ASSEMBLE": 14, "DOTA_BOT_MODE_ASSEMBLE_WITH_HUMANS": 15, "DOTA_BOT_MODE_TEAM_ROAM": 16, "DOTA_BOT_MODE_FARM": 17, "DOTA_BOT_MODE_DEFEND_ALLY": 18, "DOTA_BOT_MODE_EVASIVE_MANEUVERS": 19, "DOTA_BOT_MODE_ROSHAN": 20, "DOTA_BOT_MODE_ITEM": 21, "DOTA_BOT_MODE_WARD": 22, "DOTA_BOT_MODE_COMPANION": 23, "DOTA_BOT_MODE_TUTORIAL_BOSS": 24, "DOTA_BOT_MODE_MINION": 25, "DOTA_BOT_MODE_OUTPOST": 26, } ) func (x DOTA_BOT_MODE) Enum() *DOTA_BOT_MODE { p := new(DOTA_BOT_MODE) *p = x return p } func (x DOTA_BOT_MODE) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (DOTA_BOT_MODE) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[26].Descriptor() } func (DOTA_BOT_MODE) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[26] } func (x DOTA_BOT_MODE) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *DOTA_BOT_MODE) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = DOTA_BOT_MODE(num) return nil } // Deprecated: Use DOTA_BOT_MODE.Descriptor instead. func (DOTA_BOT_MODE) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{26} } type MatchLanguages int32 const ( MatchLanguages_MATCH_LANGUAGE_INVALID MatchLanguages = 0 MatchLanguages_MATCH_LANGUAGE_ENGLISH MatchLanguages = 1 MatchLanguages_MATCH_LANGUAGE_RUSSIAN MatchLanguages = 2 MatchLanguages_MATCH_LANGUAGE_CHINESE MatchLanguages = 3 MatchLanguages_MATCH_LANGUAGE_KOREAN MatchLanguages = 4 MatchLanguages_MATCH_LANGUAGE_SPANISH MatchLanguages = 5 MatchLanguages_MATCH_LANGUAGE_PORTUGUESE MatchLanguages = 6 MatchLanguages_MATCH_LANGUAGE_ENGLISH2 MatchLanguages = 7 ) // Enum value maps for MatchLanguages. var ( MatchLanguages_name = map[int32]string{ 0: "MATCH_LANGUAGE_INVALID", 1: "MATCH_LANGUAGE_ENGLISH", 2: "MATCH_LANGUAGE_RUSSIAN", 3: "MATCH_LANGUAGE_CHINESE", 4: "MATCH_LANGUAGE_KOREAN", 5: "MATCH_LANGUAGE_SPANISH", 6: "MATCH_LANGUAGE_PORTUGUESE", 7: "MATCH_LANGUAGE_ENGLISH2", } MatchLanguages_value = map[string]int32{ "MATCH_LANGUAGE_INVALID": 0, "MATCH_LANGUAGE_ENGLISH": 1, "MATCH_LANGUAGE_RUSSIAN": 2, "MATCH_LANGUAGE_CHINESE": 3, "MATCH_LANGUAGE_KOREAN": 4, "MATCH_LANGUAGE_SPANISH": 5, "MATCH_LANGUAGE_PORTUGUESE": 6, "MATCH_LANGUAGE_ENGLISH2": 7, } ) func (x MatchLanguages) Enum() *MatchLanguages { p := new(MatchLanguages) *p = x return p } func (x MatchLanguages) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (MatchLanguages) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[27].Descriptor() } func (MatchLanguages) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[27] } func (x MatchLanguages) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *MatchLanguages) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = MatchLanguages(num) return nil } // Deprecated: Use MatchLanguages.Descriptor instead. func (MatchLanguages) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{27} } type ETourneyQueueDeadlineState int32 const ( ETourneyQueueDeadlineState_k_ETourneyQueueDeadlineState_Normal ETourneyQueueDeadlineState = 0 ETourneyQueueDeadlineState_k_ETourneyQueueDeadlineState_Missed ETourneyQueueDeadlineState = 1 ETourneyQueueDeadlineState_k_ETourneyQueueDeadlineState_ExpiredOK ETourneyQueueDeadlineState = 2 ETourneyQueueDeadlineState_k_ETourneyQueueDeadlineState_SeekingBye ETourneyQueueDeadlineState = 3 ETourneyQueueDeadlineState_k_ETourneyQueueDeadlineState_EligibleForRefund ETourneyQueueDeadlineState = 4 ETourneyQueueDeadlineState_k_ETourneyQueueDeadlineState_NA ETourneyQueueDeadlineState = -1 ETourneyQueueDeadlineState_k_ETourneyQueueDeadlineState_ExpiringSoon ETourneyQueueDeadlineState = 101 ) // Enum value maps for ETourneyQueueDeadlineState. var ( ETourneyQueueDeadlineState_name = map[int32]string{ 0: "k_ETourneyQueueDeadlineState_Normal", 1: "k_ETourneyQueueDeadlineState_Missed", 2: "k_ETourneyQueueDeadlineState_ExpiredOK", 3: "k_ETourneyQueueDeadlineState_SeekingBye", 4: "k_ETourneyQueueDeadlineState_EligibleForRefund", -1: "k_ETourneyQueueDeadlineState_NA", 101: "k_ETourneyQueueDeadlineState_ExpiringSoon", } ETourneyQueueDeadlineState_value = map[string]int32{ "k_ETourneyQueueDeadlineState_Normal": 0, "k_ETourneyQueueDeadlineState_Missed": 1, "k_ETourneyQueueDeadlineState_ExpiredOK": 2, "k_ETourneyQueueDeadlineState_SeekingBye": 3, "k_ETourneyQueueDeadlineState_EligibleForRefund": 4, "k_ETourneyQueueDeadlineState_NA": -1, "k_ETourneyQueueDeadlineState_ExpiringSoon": 101, } ) func (x ETourneyQueueDeadlineState) Enum() *ETourneyQueueDeadlineState { p := new(ETourneyQueueDeadlineState) *p = x return p } func (x ETourneyQueueDeadlineState) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ETourneyQueueDeadlineState) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[28].Descriptor() } func (ETourneyQueueDeadlineState) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[28] } func (x ETourneyQueueDeadlineState) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *ETourneyQueueDeadlineState) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = ETourneyQueueDeadlineState(num) return nil } // Deprecated: Use ETourneyQueueDeadlineState.Descriptor instead. func (ETourneyQueueDeadlineState) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{28} } type EMatchOutcome int32 const ( EMatchOutcome_k_EMatchOutcome_Unknown EMatchOutcome = 0 EMatchOutcome_k_EMatchOutcome_RadVictory EMatchOutcome = 2 EMatchOutcome_k_EMatchOutcome_DireVictory EMatchOutcome = 3 EMatchOutcome_k_EMatchOutcome_NeutralVictory EMatchOutcome = 4 EMatchOutcome_k_EMatchOutcome_NoTeamWinner EMatchOutcome = 5 EMatchOutcome_k_EMatchOutcome_Custom1Victory EMatchOutcome = 6 EMatchOutcome_k_EMatchOutcome_Custom2Victory EMatchOutcome = 7 EMatchOutcome_k_EMatchOutcome_Custom3Victory EMatchOutcome = 8 EMatchOutcome_k_EMatchOutcome_Custom4Victory EMatchOutcome = 9 EMatchOutcome_k_EMatchOutcome_Custom5Victory EMatchOutcome = 10 EMatchOutcome_k_EMatchOutcome_Custom6Victory EMatchOutcome = 11 EMatchOutcome_k_EMatchOutcome_Custom7Victory EMatchOutcome = 12 EMatchOutcome_k_EMatchOutcome_Custom8Victory EMatchOutcome = 13 EMatchOutcome_k_EMatchOutcome_NotScored_PoorNetworkConditions EMatchOutcome = 64 EMatchOutcome_k_EMatchOutcome_NotScored_Leaver EMatchOutcome = 65 EMatchOutcome_k_EMatchOutcome_NotScored_ServerCrash EMatchOutcome = 66 EMatchOutcome_k_EMatchOutcome_NotScored_NeverStarted EMatchOutcome = 67 EMatchOutcome_k_EMatchOutcome_NotScored_Canceled EMatchOutcome = 68 EMatchOutcome_k_EMatchOutcome_NotScored_Suspicious EMatchOutcome = 69 ) // Enum value maps for EMatchOutcome. var ( EMatchOutcome_name = map[int32]string{ 0: "k_EMatchOutcome_Unknown", 2: "k_EMatchOutcome_RadVictory", 3: "k_EMatchOutcome_DireVictory", 4: "k_EMatchOutcome_NeutralVictory", 5: "k_EMatchOutcome_NoTeamWinner", 6: "k_EMatchOutcome_Custom1Victory", 7: "k_EMatchOutcome_Custom2Victory", 8: "k_EMatchOutcome_Custom3Victory", 9: "k_EMatchOutcome_Custom4Victory", 10: "k_EMatchOutcome_Custom5Victory", 11: "k_EMatchOutcome_Custom6Victory", 12: "k_EMatchOutcome_Custom7Victory", 13: "k_EMatchOutcome_Custom8Victory", 64: "k_EMatchOutcome_NotScored_PoorNetworkConditions", 65: "k_EMatchOutcome_NotScored_Leaver", 66: "k_EMatchOutcome_NotScored_ServerCrash", 67: "k_EMatchOutcome_NotScored_NeverStarted", 68: "k_EMatchOutcome_NotScored_Canceled", 69: "k_EMatchOutcome_NotScored_Suspicious", } EMatchOutcome_value = map[string]int32{ "k_EMatchOutcome_Unknown": 0, "k_EMatchOutcome_RadVictory": 2, "k_EMatchOutcome_DireVictory": 3, "k_EMatchOutcome_NeutralVictory": 4, "k_EMatchOutcome_NoTeamWinner": 5, "k_EMatchOutcome_Custom1Victory": 6, "k_EMatchOutcome_Custom2Victory": 7, "k_EMatchOutcome_Custom3Victory": 8, "k_EMatchOutcome_Custom4Victory": 9, "k_EMatchOutcome_Custom5Victory": 10, "k_EMatchOutcome_Custom6Victory": 11, "k_EMatchOutcome_Custom7Victory": 12, "k_EMatchOutcome_Custom8Victory": 13, "k_EMatchOutcome_NotScored_PoorNetworkConditions": 64, "k_EMatchOutcome_NotScored_Leaver": 65, "k_EMatchOutcome_NotScored_ServerCrash": 66, "k_EMatchOutcome_NotScored_NeverStarted": 67, "k_EMatchOutcome_NotScored_Canceled": 68, "k_EMatchOutcome_NotScored_Suspicious": 69, } ) func (x EMatchOutcome) Enum() *EMatchOutcome { p := new(EMatchOutcome) *p = x return p } func (x EMatchOutcome) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (EMatchOutcome) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[29].Descriptor() } func (EMatchOutcome) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[29] } func (x EMatchOutcome) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *EMatchOutcome) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = EMatchOutcome(num) return nil } // Deprecated: Use EMatchOutcome.Descriptor instead. func (EMatchOutcome) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{29} } type ELaneType int32 const ( ELaneType_LANE_TYPE_UNKNOWN ELaneType = 0 ELaneType_LANE_TYPE_SAFE ELaneType = 1 ELaneType_LANE_TYPE_OFF ELaneType = 2 ELaneType_LANE_TYPE_MID ELaneType = 3 ELaneType_LANE_TYPE_JUNGLE ELaneType = 4 ELaneType_LANE_TYPE_ROAM ELaneType = 5 ) // Enum value maps for ELaneType. var ( ELaneType_name = map[int32]string{ 0: "LANE_TYPE_UNKNOWN", 1: "LANE_TYPE_SAFE", 2: "LANE_TYPE_OFF", 3: "LANE_TYPE_MID", 4: "LANE_TYPE_JUNGLE", 5: "LANE_TYPE_ROAM", } ELaneType_value = map[string]int32{ "LANE_TYPE_UNKNOWN": 0, "LANE_TYPE_SAFE": 1, "LANE_TYPE_OFF": 2, "LANE_TYPE_MID": 3, "LANE_TYPE_JUNGLE": 4, "LANE_TYPE_ROAM": 5, } ) func (x ELaneType) Enum() *ELaneType { p := new(ELaneType) *p = x return p } func (x ELaneType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ELaneType) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[30].Descriptor() } func (ELaneType) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[30] } func (x ELaneType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *ELaneType) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = ELaneType(num) return nil } // Deprecated: Use ELaneType.Descriptor instead. func (ELaneType) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{30} } type EBadgeType int32 const ( EBadgeType_k_EBadgeType_TI7_Midweek EBadgeType = 1 EBadgeType_k_EBadgeType_TI7_Finals EBadgeType = 2 EBadgeType_k_EBadgeType_TI7_AllEvent EBadgeType = 3 EBadgeType_k_EBadgeType_TI8_Midweek EBadgeType = 4 EBadgeType_k_EBadgeType_TI8_Finals EBadgeType = 5 EBadgeType_k_EBadgeType_TI8_AllEvent EBadgeType = 6 EBadgeType_k_EBadgeType_TI10 EBadgeType = 7 ) // Enum value maps for EBadgeType. var ( EBadgeType_name = map[int32]string{ 1: "k_EBadgeType_TI7_Midweek", 2: "k_EBadgeType_TI7_Finals", 3: "k_EBadgeType_TI7_AllEvent", 4: "k_EBadgeType_TI8_Midweek", 5: "k_EBadgeType_TI8_Finals", 6: "k_EBadgeType_TI8_AllEvent", 7: "k_EBadgeType_TI10", } EBadgeType_value = map[string]int32{ "k_EBadgeType_TI7_Midweek": 1, "k_EBadgeType_TI7_Finals": 2, "k_EBadgeType_TI7_AllEvent": 3, "k_EBadgeType_TI8_Midweek": 4, "k_EBadgeType_TI8_Finals": 5, "k_EBadgeType_TI8_AllEvent": 6, "k_EBadgeType_TI10": 7, } ) func (x EBadgeType) Enum() *EBadgeType { p := new(EBadgeType) *p = x return p } func (x EBadgeType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (EBadgeType) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[31].Descriptor() } func (EBadgeType) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[31] } func (x EBadgeType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *EBadgeType) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = EBadgeType(num) return nil } // Deprecated: Use EBadgeType.Descriptor instead. func (EBadgeType) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{31} } type ELeagueStatus int32 const ( ELeagueStatus_LEAGUE_STATUS_UNSET ELeagueStatus = 0 ELeagueStatus_LEAGUE_STATUS_UNSUBMITTED ELeagueStatus = 1 ELeagueStatus_LEAGUE_STATUS_SUBMITTED ELeagueStatus = 2 ELeagueStatus_LEAGUE_STATUS_ACCEPTED ELeagueStatus = 3 ELeagueStatus_LEAGUE_STATUS_REJECTED ELeagueStatus = 4 ELeagueStatus_LEAGUE_STATUS_CONCLUDED ELeagueStatus = 5 ELeagueStatus_LEAGUE_STATUS_DELETED ELeagueStatus = 6 ) // Enum value maps for ELeagueStatus. var ( ELeagueStatus_name = map[int32]string{ 0: "LEAGUE_STATUS_UNSET", 1: "LEAGUE_STATUS_UNSUBMITTED", 2: "LEAGUE_STATUS_SUBMITTED", 3: "LEAGUE_STATUS_ACCEPTED", 4: "LEAGUE_STATUS_REJECTED", 5: "LEAGUE_STATUS_CONCLUDED", 6: "LEAGUE_STATUS_DELETED", } ELeagueStatus_value = map[string]int32{ "LEAGUE_STATUS_UNSET": 0, "LEAGUE_STATUS_UNSUBMITTED": 1, "LEAGUE_STATUS_SUBMITTED": 2, "LEAGUE_STATUS_ACCEPTED": 3, "LEAGUE_STATUS_REJECTED": 4, "LEAGUE_STATUS_CONCLUDED": 5, "LEAGUE_STATUS_DELETED": 6, } ) func (x ELeagueStatus) Enum() *ELeagueStatus { p := new(ELeagueStatus) *p = x return p } func (x ELeagueStatus) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ELeagueStatus) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[32].Descriptor() } func (ELeagueStatus) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[32] } func (x ELeagueStatus) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *ELeagueStatus) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = ELeagueStatus(num) return nil } // Deprecated: Use ELeagueStatus.Descriptor instead. func (ELeagueStatus) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{32} } type ELeagueRegion int32 const ( ELeagueRegion_LEAGUE_REGION_UNSET ELeagueRegion = 0 ELeagueRegion_LEAGUE_REGION_NA ELeagueRegion = 1 ELeagueRegion_LEAGUE_REGION_SA ELeagueRegion = 2 ELeagueRegion_LEAGUE_REGION_WEU ELeagueRegion = 3 ELeagueRegion_LEAGUE_REGION_EEU ELeagueRegion = 4 ELeagueRegion_LEAGUE_REGION_CHINA ELeagueRegion = 5 ELeagueRegion_LEAGUE_REGION_SEA ELeagueRegion = 6 ) // Enum value maps for ELeagueRegion. var ( ELeagueRegion_name = map[int32]string{ 0: "LEAGUE_REGION_UNSET", 1: "LEAGUE_REGION_NA", 2: "LEAGUE_REGION_SA", 3: "LEAGUE_REGION_WEU", 4: "LEAGUE_REGION_EEU", 5: "LEAGUE_REGION_CHINA", 6: "LEAGUE_REGION_SEA", } ELeagueRegion_value = map[string]int32{ "LEAGUE_REGION_UNSET": 0, "LEAGUE_REGION_NA": 1, "LEAGUE_REGION_SA": 2, "LEAGUE_REGION_WEU": 3, "LEAGUE_REGION_EEU": 4, "LEAGUE_REGION_CHINA": 5, "LEAGUE_REGION_SEA": 6, } ) func (x ELeagueRegion) Enum() *ELeagueRegion { p := new(ELeagueRegion) *p = x return p } func (x ELeagueRegion) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ELeagueRegion) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[33].Descriptor() } func (ELeagueRegion) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[33] } func (x ELeagueRegion) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *ELeagueRegion) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = ELeagueRegion(num) return nil } // Deprecated: Use ELeagueRegion.Descriptor instead. func (ELeagueRegion) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{33} } type ELeagueTier int32 const ( ELeagueTier_LEAGUE_TIER_UNSET ELeagueTier = 0 ELeagueTier_LEAGUE_TIER_AMATEUR ELeagueTier = 1 ELeagueTier_LEAGUE_TIER_PROFESSIONAL ELeagueTier = 2 ELeagueTier_LEAGUE_TIER_MINOR ELeagueTier = 3 ELeagueTier_LEAGUE_TIER_MAJOR ELeagueTier = 4 ELeagueTier_LEAGUE_TIER_INTERNATIONAL ELeagueTier = 5 ELeagueTier_LEAGUE_TIER_DPC_QUALIFIER ELeagueTier = 6 ELeagueTier_LEAGUE_TIER_DPC_LEAGUE_QUALIFIER ELeagueTier = 7 ELeagueTier_LEAGUE_TIER_DPC_LEAGUE ELeagueTier = 8 ELeagueTier_LEAGUE_TIER_DPC_LEAGUE_FINALS ELeagueTier = 9 ) // Enum value maps for ELeagueTier. var ( ELeagueTier_name = map[int32]string{ 0: "LEAGUE_TIER_UNSET", 1: "LEAGUE_TIER_AMATEUR", 2: "LEAGUE_TIER_PROFESSIONAL", 3: "LEAGUE_TIER_MINOR", 4: "LEAGUE_TIER_MAJOR", 5: "LEAGUE_TIER_INTERNATIONAL", 6: "LEAGUE_TIER_DPC_QUALIFIER", 7: "LEAGUE_TIER_DPC_LEAGUE_QUALIFIER", 8: "LEAGUE_TIER_DPC_LEAGUE", 9: "LEAGUE_TIER_DPC_LEAGUE_FINALS", } ELeagueTier_value = map[string]int32{ "LEAGUE_TIER_UNSET": 0, "LEAGUE_TIER_AMATEUR": 1, "LEAGUE_TIER_PROFESSIONAL": 2, "LEAGUE_TIER_MINOR": 3, "LEAGUE_TIER_MAJOR": 4, "LEAGUE_TIER_INTERNATIONAL": 5, "LEAGUE_TIER_DPC_QUALIFIER": 6, "LEAGUE_TIER_DPC_LEAGUE_QUALIFIER": 7, "LEAGUE_TIER_DPC_LEAGUE": 8, "LEAGUE_TIER_DPC_LEAGUE_FINALS": 9, } ) func (x ELeagueTier) Enum() *ELeagueTier { p := new(ELeagueTier) *p = x return p } func (x ELeagueTier) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ELeagueTier) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[34].Descriptor() } func (ELeagueTier) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[34] } func (x ELeagueTier) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *ELeagueTier) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = ELeagueTier(num) return nil } // Deprecated: Use ELeagueTier.Descriptor instead. func (ELeagueTier) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{34} } type ELeagueTierCategory int32 const ( ELeagueTierCategory_LEAGUE_TIER_CATEGORY_AMATEUR ELeagueTierCategory = 1 ELeagueTierCategory_LEAGUE_TIER_CATEGORY_PROFESSIONAL ELeagueTierCategory = 2 ELeagueTierCategory_LEAGUE_TIER_CATEGORY_DPC ELeagueTierCategory = 3 ) // Enum value maps for ELeagueTierCategory. var ( ELeagueTierCategory_name = map[int32]string{ 1: "LEAGUE_TIER_CATEGORY_AMATEUR", 2: "LEAGUE_TIER_CATEGORY_PROFESSIONAL", 3: "LEAGUE_TIER_CATEGORY_DPC", } ELeagueTierCategory_value = map[string]int32{ "LEAGUE_TIER_CATEGORY_AMATEUR": 1, "LEAGUE_TIER_CATEGORY_PROFESSIONAL": 2, "LEAGUE_TIER_CATEGORY_DPC": 3, } ) func (x ELeagueTierCategory) Enum() *ELeagueTierCategory { p := new(ELeagueTierCategory) *p = x return p } func (x ELeagueTierCategory) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ELeagueTierCategory) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[35].Descriptor() } func (ELeagueTierCategory) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[35] } func (x ELeagueTierCategory) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *ELeagueTierCategory) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = ELeagueTierCategory(num) return nil } // Deprecated: Use ELeagueTierCategory.Descriptor instead. func (ELeagueTierCategory) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{35} } type ELeagueDivision int32 const ( ELeagueDivision_LEAGUE_DIVISION_UNSET ELeagueDivision = 0 ELeagueDivision_LEAGUE_DIVISION_I ELeagueDivision = 1 ELeagueDivision_LEAGUE_DIVISION_II ELeagueDivision = 2 ) // Enum value maps for ELeagueDivision. var ( ELeagueDivision_name = map[int32]string{ 0: "LEAGUE_DIVISION_UNSET", 1: "LEAGUE_DIVISION_I", 2: "LEAGUE_DIVISION_II", } ELeagueDivision_value = map[string]int32{ "LEAGUE_DIVISION_UNSET": 0, "LEAGUE_DIVISION_I": 1, "LEAGUE_DIVISION_II": 2, } ) func (x ELeagueDivision) Enum() *ELeagueDivision { p := new(ELeagueDivision) *p = x return p } func (x ELeagueDivision) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ELeagueDivision) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[36].Descriptor() } func (ELeagueDivision) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[36] } func (x ELeagueDivision) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *ELeagueDivision) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = ELeagueDivision(num) return nil } // Deprecated: Use ELeagueDivision.Descriptor instead. func (ELeagueDivision) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{36} } type ELeagueBroadcastProvider int32 const ( ELeagueBroadcastProvider_LEAGUE_BROADCAST_UNKNOWN ELeagueBroadcastProvider = 0 ELeagueBroadcastProvider_LEAGUE_BROADCAST_STEAM ELeagueBroadcastProvider = 1 ELeagueBroadcastProvider_LEAGUE_BROADCAST_TWITCH ELeagueBroadcastProvider = 2 ELeagueBroadcastProvider_LEAGUE_BROADCAST_YOUTUBE ELeagueBroadcastProvider = 3 ELeagueBroadcastProvider_LEAGUE_BROADCAST_OTHER ELeagueBroadcastProvider = 100 ) // Enum value maps for ELeagueBroadcastProvider. var ( ELeagueBroadcastProvider_name = map[int32]string{ 0: "LEAGUE_BROADCAST_UNKNOWN", 1: "LEAGUE_BROADCAST_STEAM", 2: "LEAGUE_BROADCAST_TWITCH", 3: "LEAGUE_BROADCAST_YOUTUBE", 100: "LEAGUE_BROADCAST_OTHER", } ELeagueBroadcastProvider_value = map[string]int32{ "LEAGUE_BROADCAST_UNKNOWN": 0, "LEAGUE_BROADCAST_STEAM": 1, "LEAGUE_BROADCAST_TWITCH": 2, "LEAGUE_BROADCAST_YOUTUBE": 3, "LEAGUE_BROADCAST_OTHER": 100, } ) func (x ELeagueBroadcastProvider) Enum() *ELeagueBroadcastProvider { p := new(ELeagueBroadcastProvider) *p = x return p } func (x ELeagueBroadcastProvider) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ELeagueBroadcastProvider) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[37].Descriptor() } func (ELeagueBroadcastProvider) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[37] } func (x ELeagueBroadcastProvider) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *ELeagueBroadcastProvider) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = ELeagueBroadcastProvider(num) return nil } // Deprecated: Use ELeagueBroadcastProvider.Descriptor instead. func (ELeagueBroadcastProvider) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{37} } type ELeaguePhase int32 const ( ELeaguePhase_LEAGUE_PHASE_UNSET ELeaguePhase = 0 ELeaguePhase_LEAGUE_PHASE_REGIONAL_QUALIFIER ELeaguePhase = 1 ELeaguePhase_LEAGUE_PHASE_GROUP_STAGE ELeaguePhase = 2 ELeaguePhase_LEAGUE_PHASE_MAIN_EVENT ELeaguePhase = 3 ) // Enum value maps for ELeaguePhase. var ( ELeaguePhase_name = map[int32]string{ 0: "LEAGUE_PHASE_UNSET", 1: "LEAGUE_PHASE_REGIONAL_QUALIFIER", 2: "LEAGUE_PHASE_GROUP_STAGE", 3: "LEAGUE_PHASE_MAIN_EVENT", } ELeaguePhase_value = map[string]int32{ "LEAGUE_PHASE_UNSET": 0, "LEAGUE_PHASE_REGIONAL_QUALIFIER": 1, "LEAGUE_PHASE_GROUP_STAGE": 2, "LEAGUE_PHASE_MAIN_EVENT": 3, } ) func (x ELeaguePhase) Enum() *ELeaguePhase { p := new(ELeaguePhase) *p = x return p } func (x ELeaguePhase) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ELeaguePhase) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[38].Descriptor() } func (ELeaguePhase) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[38] } func (x ELeaguePhase) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *ELeaguePhase) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = ELeaguePhase(num) return nil } // Deprecated: Use ELeaguePhase.Descriptor instead. func (ELeaguePhase) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{38} } type ELeagueAuditAction int32 const ( ELeagueAuditAction_LEAGUE_AUDIT_ACTION_INVALID ELeagueAuditAction = 0 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_LEAGUE_CREATE ELeagueAuditAction = 1 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_LEAGUE_EDIT ELeagueAuditAction = 2 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_LEAGUE_DELETE ELeagueAuditAction = 3 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_LEAGUE_ADMIN_ADD ELeagueAuditAction = 4 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_LEAGUE_ADMIN_REVOKE ELeagueAuditAction = 5 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_LEAGUE_ADMIN_PROMOTE ELeagueAuditAction = 6 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_LEAGUE_STREAM_ADD ELeagueAuditAction = 7 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_LEAGUE_STREAM_REMOVE ELeagueAuditAction = 8 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_LEAGUE_IMAGE_UPDATED ELeagueAuditAction = 9 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_LEAGUE_MESSAGE_ADDED ELeagueAuditAction = 10 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_LEAGUE_SUBMITTED ELeagueAuditAction = 11 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_LEAGUE_SET_PRIZE_POOL ELeagueAuditAction = 12 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_LEAGUE_ADD_PRIZE_POOL_ITEM ELeagueAuditAction = 13 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_LEAGUE_REMOVE_PRIZE_POOL_ITEM ELeagueAuditAction = 14 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_LEAGUE_MATCH_START ELeagueAuditAction = 15 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_LEAGUE_MATCH_END ELeagueAuditAction = 16 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_LEAGUE_ADD_INVITED_TEAM ELeagueAuditAction = 17 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_LEAGUE_REMOVE_INVITED_TEAM ELeagueAuditAction = 18 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_LEAGUE_STATUS_CHANGED ELeagueAuditAction = 19 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_LEAGUE_STREAM_EDIT ELeagueAuditAction = 20 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_LEAGUE_TEAM_SWAP ELeagueAuditAction = 21 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_NODEGROUP_CREATE ELeagueAuditAction = 100 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_NODEGROUP_DESTROY ELeagueAuditAction = 101 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_NODEGROUP_ADD_TEAM ELeagueAuditAction = 102 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_NODEGROUP_REMOVE_TEAM ELeagueAuditAction = 103 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_NODEGROUP_SET_ADVANCING ELeagueAuditAction = 104 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_NODEGROUP_EDIT ELeagueAuditAction = 105 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_NODEGROUP_POPULATE ELeagueAuditAction = 106 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_NODEGROUP_COMPLETED ELeagueAuditAction = 107 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_NODEGROUP_SET_SECONDARY_ADVANCING ELeagueAuditAction = 108 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_NODEGROUP_SET_TERTIARY_ADVANCING ELeagueAuditAction = 109 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_NODE_CREATE ELeagueAuditAction = 200 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_NODE_DESTROY ELeagueAuditAction = 201 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_NODE_AUTOCREATE ELeagueAuditAction = 202 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_NODE_SET_TEAM ELeagueAuditAction = 203 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_NODE_SET_SERIES_ID ELeagueAuditAction = 204 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_NODE_SET_ADVANCING ELeagueAuditAction = 205 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_NODE_SET_TIME ELeagueAuditAction = 206 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_NODE_MATCH_COMPLETED ELeagueAuditAction = 207 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_NODE_COMPLETED ELeagueAuditAction = 208 ELeagueAuditAction_LEAGUE_AUDIT_ACTION_NODE_EDIT ELeagueAuditAction = 209 ) // Enum value maps for ELeagueAuditAction. var ( ELeagueAuditAction_name = map[int32]string{ 0: "LEAGUE_AUDIT_ACTION_INVALID", 1: "LEAGUE_AUDIT_ACTION_LEAGUE_CREATE", 2: "LEAGUE_AUDIT_ACTION_LEAGUE_EDIT", 3: "LEAGUE_AUDIT_ACTION_LEAGUE_DELETE", 4: "LEAGUE_AUDIT_ACTION_LEAGUE_ADMIN_ADD", 5: "LEAGUE_AUDIT_ACTION_LEAGUE_ADMIN_REVOKE", 6: "LEAGUE_AUDIT_ACTION_LEAGUE_ADMIN_PROMOTE", 7: "LEAGUE_AUDIT_ACTION_LEAGUE_STREAM_ADD", 8: "LEAGUE_AUDIT_ACTION_LEAGUE_STREAM_REMOVE", 9: "LEAGUE_AUDIT_ACTION_LEAGUE_IMAGE_UPDATED", 10: "LEAGUE_AUDIT_ACTION_LEAGUE_MESSAGE_ADDED", 11: "LEAGUE_AUDIT_ACTION_LEAGUE_SUBMITTED", 12: "LEAGUE_AUDIT_ACTION_LEAGUE_SET_PRIZE_POOL", 13: "LEAGUE_AUDIT_ACTION_LEAGUE_ADD_PRIZE_POOL_ITEM", 14: "LEAGUE_AUDIT_ACTION_LEAGUE_REMOVE_PRIZE_POOL_ITEM", 15: "LEAGUE_AUDIT_ACTION_LEAGUE_MATCH_START", 16: "LEAGUE_AUDIT_ACTION_LEAGUE_MATCH_END", 17: "LEAGUE_AUDIT_ACTION_LEAGUE_ADD_INVITED_TEAM", 18: "LEAGUE_AUDIT_ACTION_LEAGUE_REMOVE_INVITED_TEAM", 19: "LEAGUE_AUDIT_ACTION_LEAGUE_STATUS_CHANGED", 20: "LEAGUE_AUDIT_ACTION_LEAGUE_STREAM_EDIT", 21: "LEAGUE_AUDIT_ACTION_LEAGUE_TEAM_SWAP", 100: "LEAGUE_AUDIT_ACTION_NODEGROUP_CREATE", 101: "LEAGUE_AUDIT_ACTION_NODEGROUP_DESTROY", 102: "LEAGUE_AUDIT_ACTION_NODEGROUP_ADD_TEAM", 103: "LEAGUE_AUDIT_ACTION_NODEGROUP_REMOVE_TEAM", 104: "LEAGUE_AUDIT_ACTION_NODEGROUP_SET_ADVANCING", 105: "LEAGUE_AUDIT_ACTION_NODEGROUP_EDIT", 106: "LEAGUE_AUDIT_ACTION_NODEGROUP_POPULATE", 107: "LEAGUE_AUDIT_ACTION_NODEGROUP_COMPLETED", 108: "LEAGUE_AUDIT_ACTION_NODEGROUP_SET_SECONDARY_ADVANCING", 109: "LEAGUE_AUDIT_ACTION_NODEGROUP_SET_TERTIARY_ADVANCING", 200: "LEAGUE_AUDIT_ACTION_NODE_CREATE", 201: "LEAGUE_AUDIT_ACTION_NODE_DESTROY", 202: "LEAGUE_AUDIT_ACTION_NODE_AUTOCREATE", 203: "LEAGUE_AUDIT_ACTION_NODE_SET_TEAM", 204: "LEAGUE_AUDIT_ACTION_NODE_SET_SERIES_ID", 205: "LEAGUE_AUDIT_ACTION_NODE_SET_ADVANCING", 206: "LEAGUE_AUDIT_ACTION_NODE_SET_TIME", 207: "LEAGUE_AUDIT_ACTION_NODE_MATCH_COMPLETED", 208: "LEAGUE_AUDIT_ACTION_NODE_COMPLETED", 209: "LEAGUE_AUDIT_ACTION_NODE_EDIT", } ELeagueAuditAction_value = map[string]int32{ "LEAGUE_AUDIT_ACTION_INVALID": 0, "LEAGUE_AUDIT_ACTION_LEAGUE_CREATE": 1, "LEAGUE_AUDIT_ACTION_LEAGUE_EDIT": 2, "LEAGUE_AUDIT_ACTION_LEAGUE_DELETE": 3, "LEAGUE_AUDIT_ACTION_LEAGUE_ADMIN_ADD": 4, "LEAGUE_AUDIT_ACTION_LEAGUE_ADMIN_REVOKE": 5, "LEAGUE_AUDIT_ACTION_LEAGUE_ADMIN_PROMOTE": 6, "LEAGUE_AUDIT_ACTION_LEAGUE_STREAM_ADD": 7, "LEAGUE_AUDIT_ACTION_LEAGUE_STREAM_REMOVE": 8, "LEAGUE_AUDIT_ACTION_LEAGUE_IMAGE_UPDATED": 9, "LEAGUE_AUDIT_ACTION_LEAGUE_MESSAGE_ADDED": 10, "LEAGUE_AUDIT_ACTION_LEAGUE_SUBMITTED": 11, "LEAGUE_AUDIT_ACTION_LEAGUE_SET_PRIZE_POOL": 12, "LEAGUE_AUDIT_ACTION_LEAGUE_ADD_PRIZE_POOL_ITEM": 13, "LEAGUE_AUDIT_ACTION_LEAGUE_REMOVE_PRIZE_POOL_ITEM": 14, "LEAGUE_AUDIT_ACTION_LEAGUE_MATCH_START": 15, "LEAGUE_AUDIT_ACTION_LEAGUE_MATCH_END": 16, "LEAGUE_AUDIT_ACTION_LEAGUE_ADD_INVITED_TEAM": 17, "LEAGUE_AUDIT_ACTION_LEAGUE_REMOVE_INVITED_TEAM": 18, "LEAGUE_AUDIT_ACTION_LEAGUE_STATUS_CHANGED": 19, "LEAGUE_AUDIT_ACTION_LEAGUE_STREAM_EDIT": 20, "LEAGUE_AUDIT_ACTION_LEAGUE_TEAM_SWAP": 21, "LEAGUE_AUDIT_ACTION_NODEGROUP_CREATE": 100, "LEAGUE_AUDIT_ACTION_NODEGROUP_DESTROY": 101, "LEAGUE_AUDIT_ACTION_NODEGROUP_ADD_TEAM": 102, "LEAGUE_AUDIT_ACTION_NODEGROUP_REMOVE_TEAM": 103, "LEAGUE_AUDIT_ACTION_NODEGROUP_SET_ADVANCING": 104, "LEAGUE_AUDIT_ACTION_NODEGROUP_EDIT": 105, "LEAGUE_AUDIT_ACTION_NODEGROUP_POPULATE": 106, "LEAGUE_AUDIT_ACTION_NODEGROUP_COMPLETED": 107, "LEAGUE_AUDIT_ACTION_NODEGROUP_SET_SECONDARY_ADVANCING": 108, "LEAGUE_AUDIT_ACTION_NODEGROUP_SET_TERTIARY_ADVANCING": 109, "LEAGUE_AUDIT_ACTION_NODE_CREATE": 200, "LEAGUE_AUDIT_ACTION_NODE_DESTROY": 201, "LEAGUE_AUDIT_ACTION_NODE_AUTOCREATE": 202, "LEAGUE_AUDIT_ACTION_NODE_SET_TEAM": 203, "LEAGUE_AUDIT_ACTION_NODE_SET_SERIES_ID": 204, "LEAGUE_AUDIT_ACTION_NODE_SET_ADVANCING": 205, "LEAGUE_AUDIT_ACTION_NODE_SET_TIME": 206, "LEAGUE_AUDIT_ACTION_NODE_MATCH_COMPLETED": 207, "LEAGUE_AUDIT_ACTION_NODE_COMPLETED": 208, "LEAGUE_AUDIT_ACTION_NODE_EDIT": 209, } ) func (x ELeagueAuditAction) Enum() *ELeagueAuditAction { p := new(ELeagueAuditAction) *p = x return p } func (x ELeagueAuditAction) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ELeagueAuditAction) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[39].Descriptor() } func (ELeagueAuditAction) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[39] } func (x ELeagueAuditAction) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *ELeagueAuditAction) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = ELeagueAuditAction(num) return nil } // Deprecated: Use ELeagueAuditAction.Descriptor instead. func (ELeagueAuditAction) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{39} } type DOTA_COMBATLOG_TYPES int32 const ( DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_INVALID DOTA_COMBATLOG_TYPES = -1 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_DAMAGE DOTA_COMBATLOG_TYPES = 0 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_HEAL DOTA_COMBATLOG_TYPES = 1 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_MODIFIER_ADD DOTA_COMBATLOG_TYPES = 2 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_MODIFIER_REMOVE DOTA_COMBATLOG_TYPES = 3 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_DEATH DOTA_COMBATLOG_TYPES = 4 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_ABILITY DOTA_COMBATLOG_TYPES = 5 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_ITEM DOTA_COMBATLOG_TYPES = 6 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_LOCATION DOTA_COMBATLOG_TYPES = 7 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_GOLD DOTA_COMBATLOG_TYPES = 8 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_GAME_STATE DOTA_COMBATLOG_TYPES = 9 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_XP DOTA_COMBATLOG_TYPES = 10 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_PURCHASE DOTA_COMBATLOG_TYPES = 11 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_BUYBACK DOTA_COMBATLOG_TYPES = 12 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_ABILITY_TRIGGER DOTA_COMBATLOG_TYPES = 13 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_PLAYERSTATS DOTA_COMBATLOG_TYPES = 14 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_MULTIKILL DOTA_COMBATLOG_TYPES = 15 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_KILLSTREAK DOTA_COMBATLOG_TYPES = 16 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_TEAM_BUILDING_KILL DOTA_COMBATLOG_TYPES = 17 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_FIRST_BLOOD DOTA_COMBATLOG_TYPES = 18 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_MODIFIER_STACK_EVENT DOTA_COMBATLOG_TYPES = 19 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_NEUTRAL_CAMP_STACK DOTA_COMBATLOG_TYPES = 20 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_PICKUP_RUNE DOTA_COMBATLOG_TYPES = 21 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_REVEALED_INVISIBLE DOTA_COMBATLOG_TYPES = 22 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_HERO_SAVED DOTA_COMBATLOG_TYPES = 23 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_MANA_RESTORED DOTA_COMBATLOG_TYPES = 24 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_HERO_LEVELUP DOTA_COMBATLOG_TYPES = 25 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_BOTTLE_HEAL_ALLY DOTA_COMBATLOG_TYPES = 26 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_ENDGAME_STATS DOTA_COMBATLOG_TYPES = 27 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_INTERRUPT_CHANNEL DOTA_COMBATLOG_TYPES = 28 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_ALLIED_GOLD DOTA_COMBATLOG_TYPES = 29 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_AEGIS_TAKEN DOTA_COMBATLOG_TYPES = 30 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_MANA_DAMAGE DOTA_COMBATLOG_TYPES = 31 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_PHYSICAL_DAMAGE_PREVENTED DOTA_COMBATLOG_TYPES = 32 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_UNIT_SUMMONED DOTA_COMBATLOG_TYPES = 33 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_ATTACK_EVADE DOTA_COMBATLOG_TYPES = 34 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_TREE_CUT DOTA_COMBATLOG_TYPES = 35 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_SUCCESSFUL_SCAN DOTA_COMBATLOG_TYPES = 36 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_END_KILLSTREAK DOTA_COMBATLOG_TYPES = 37 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_BLOODSTONE_CHARGE DOTA_COMBATLOG_TYPES = 38 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_CRITICAL_DAMAGE DOTA_COMBATLOG_TYPES = 39 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_SPELL_ABSORB DOTA_COMBATLOG_TYPES = 40 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_UNIT_TELEPORTED DOTA_COMBATLOG_TYPES = 41 DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_KILL_EATER_EVENT DOTA_COMBATLOG_TYPES = 42 ) // Enum value maps for DOTA_COMBATLOG_TYPES. var ( DOTA_COMBATLOG_TYPES_name = map[int32]string{ -1: "DOTA_COMBATLOG_INVALID", 0: "DOTA_COMBATLOG_DAMAGE", 1: "DOTA_COMBATLOG_HEAL", 2: "DOTA_COMBATLOG_MODIFIER_ADD", 3: "DOTA_COMBATLOG_MODIFIER_REMOVE", 4: "DOTA_COMBATLOG_DEATH", 5: "DOTA_COMBATLOG_ABILITY", 6: "DOTA_COMBATLOG_ITEM", 7: "DOTA_COMBATLOG_LOCATION", 8: "DOTA_COMBATLOG_GOLD", 9: "DOTA_COMBATLOG_GAME_STATE", 10: "DOTA_COMBATLOG_XP", 11: "DOTA_COMBATLOG_PURCHASE", 12: "DOTA_COMBATLOG_BUYBACK", 13: "DOTA_COMBATLOG_ABILITY_TRIGGER", 14: "DOTA_COMBATLOG_PLAYERSTATS", 15: "DOTA_COMBATLOG_MULTIKILL", 16: "DOTA_COMBATLOG_KILLSTREAK", 17: "DOTA_COMBATLOG_TEAM_BUILDING_KILL", 18: "DOTA_COMBATLOG_FIRST_BLOOD", 19: "DOTA_COMBATLOG_MODIFIER_STACK_EVENT", 20: "DOTA_COMBATLOG_NEUTRAL_CAMP_STACK", 21: "DOTA_COMBATLOG_PICKUP_RUNE", 22: "DOTA_COMBATLOG_REVEALED_INVISIBLE", 23: "DOTA_COMBATLOG_HERO_SAVED", 24: "DOTA_COMBATLOG_MANA_RESTORED", 25: "DOTA_COMBATLOG_HERO_LEVELUP", 26: "DOTA_COMBATLOG_BOTTLE_HEAL_ALLY", 27: "DOTA_COMBATLOG_ENDGAME_STATS", 28: "DOTA_COMBATLOG_INTERRUPT_CHANNEL", 29: "DOTA_COMBATLOG_ALLIED_GOLD", 30: "DOTA_COMBATLOG_AEGIS_TAKEN", 31: "DOTA_COMBATLOG_MANA_DAMAGE", 32: "DOTA_COMBATLOG_PHYSICAL_DAMAGE_PREVENTED", 33: "DOTA_COMBATLOG_UNIT_SUMMONED", 34: "DOTA_COMBATLOG_ATTACK_EVADE", 35: "DOTA_COMBATLOG_TREE_CUT", 36: "DOTA_COMBATLOG_SUCCESSFUL_SCAN", 37: "DOTA_COMBATLOG_END_KILLSTREAK", 38: "DOTA_COMBATLOG_BLOODSTONE_CHARGE", 39: "DOTA_COMBATLOG_CRITICAL_DAMAGE", 40: "DOTA_COMBATLOG_SPELL_ABSORB", 41: "DOTA_COMBATLOG_UNIT_TELEPORTED", 42: "DOTA_COMBATLOG_KILL_EATER_EVENT", } DOTA_COMBATLOG_TYPES_value = map[string]int32{ "DOTA_COMBATLOG_INVALID": -1, "DOTA_COMBATLOG_DAMAGE": 0, "DOTA_COMBATLOG_HEAL": 1, "DOTA_COMBATLOG_MODIFIER_ADD": 2, "DOTA_COMBATLOG_MODIFIER_REMOVE": 3, "DOTA_COMBATLOG_DEATH": 4, "DOTA_COMBATLOG_ABILITY": 5, "DOTA_COMBATLOG_ITEM": 6, "DOTA_COMBATLOG_LOCATION": 7, "DOTA_COMBATLOG_GOLD": 8, "DOTA_COMBATLOG_GAME_STATE": 9, "DOTA_COMBATLOG_XP": 10, "DOTA_COMBATLOG_PURCHASE": 11, "DOTA_COMBATLOG_BUYBACK": 12, "DOTA_COMBATLOG_ABILITY_TRIGGER": 13, "DOTA_COMBATLOG_PLAYERSTATS": 14, "DOTA_COMBATLOG_MULTIKILL": 15, "DOTA_COMBATLOG_KILLSTREAK": 16, "DOTA_COMBATLOG_TEAM_BUILDING_KILL": 17, "DOTA_COMBATLOG_FIRST_BLOOD": 18, "DOTA_COMBATLOG_MODIFIER_STACK_EVENT": 19, "DOTA_COMBATLOG_NEUTRAL_CAMP_STACK": 20, "DOTA_COMBATLOG_PICKUP_RUNE": 21, "DOTA_COMBATLOG_REVEALED_INVISIBLE": 22, "DOTA_COMBATLOG_HERO_SAVED": 23, "DOTA_COMBATLOG_MANA_RESTORED": 24, "DOTA_COMBATLOG_HERO_LEVELUP": 25, "DOTA_COMBATLOG_BOTTLE_HEAL_ALLY": 26, "DOTA_COMBATLOG_ENDGAME_STATS": 27, "DOTA_COMBATLOG_INTERRUPT_CHANNEL": 28, "DOTA_COMBATLOG_ALLIED_GOLD": 29, "DOTA_COMBATLOG_AEGIS_TAKEN": 30, "DOTA_COMBATLOG_MANA_DAMAGE": 31, "DOTA_COMBATLOG_PHYSICAL_DAMAGE_PREVENTED": 32, "DOTA_COMBATLOG_UNIT_SUMMONED": 33, "DOTA_COMBATLOG_ATTACK_EVADE": 34, "DOTA_COMBATLOG_TREE_CUT": 35, "DOTA_COMBATLOG_SUCCESSFUL_SCAN": 36, "DOTA_COMBATLOG_END_KILLSTREAK": 37, "DOTA_COMBATLOG_BLOODSTONE_CHARGE": 38, "DOTA_COMBATLOG_CRITICAL_DAMAGE": 39, "DOTA_COMBATLOG_SPELL_ABSORB": 40, "DOTA_COMBATLOG_UNIT_TELEPORTED": 41, "DOTA_COMBATLOG_KILL_EATER_EVENT": 42, } ) func (x DOTA_COMBATLOG_TYPES) Enum() *DOTA_COMBATLOG_TYPES { p := new(DOTA_COMBATLOG_TYPES) *p = x return p } func (x DOTA_COMBATLOG_TYPES) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (DOTA_COMBATLOG_TYPES) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[40].Descriptor() } func (DOTA_COMBATLOG_TYPES) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[40] } func (x DOTA_COMBATLOG_TYPES) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *DOTA_COMBATLOG_TYPES) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = DOTA_COMBATLOG_TYPES(num) return nil } // Deprecated: Use DOTA_COMBATLOG_TYPES.Descriptor instead. func (DOTA_COMBATLOG_TYPES) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{40} } type EDPCFavoriteType int32 const ( EDPCFavoriteType_FAVORITE_TYPE_ALL EDPCFavoriteType = 0 EDPCFavoriteType_FAVORITE_TYPE_PLAYER EDPCFavoriteType = 1 EDPCFavoriteType_FAVORITE_TYPE_TEAM EDPCFavoriteType = 2 EDPCFavoriteType_FAVORITE_TYPE_LEAGUE EDPCFavoriteType = 3 ) // Enum value maps for EDPCFavoriteType. var ( EDPCFavoriteType_name = map[int32]string{ 0: "FAVORITE_TYPE_ALL", 1: "FAVORITE_TYPE_PLAYER", 2: "FAVORITE_TYPE_TEAM", 3: "FAVORITE_TYPE_LEAGUE", } EDPCFavoriteType_value = map[string]int32{ "FAVORITE_TYPE_ALL": 0, "FAVORITE_TYPE_PLAYER": 1, "FAVORITE_TYPE_TEAM": 2, "FAVORITE_TYPE_LEAGUE": 3, } ) func (x EDPCFavoriteType) Enum() *EDPCFavoriteType { p := new(EDPCFavoriteType) *p = x return p } func (x EDPCFavoriteType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (EDPCFavoriteType) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[41].Descriptor() } func (EDPCFavoriteType) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[41] } func (x EDPCFavoriteType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *EDPCFavoriteType) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = EDPCFavoriteType(num) return nil } // Deprecated: Use EDPCFavoriteType.Descriptor instead. func (EDPCFavoriteType) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{41} } type EDPCPushNotification int32 const ( EDPCPushNotification_DPC_PUSH_NOTIFICATION_MATCH_STARTING EDPCPushNotification = 1 EDPCPushNotification_DPC_PUSH_NOTIFICATION_PLAYER_LEFT_TEAM EDPCPushNotification = 10 EDPCPushNotification_DPC_PUSH_NOTIFICATION_PLAYER_JOINED_TEAM EDPCPushNotification = 11 EDPCPushNotification_DPC_PUSH_NOTIFICATION_PLAYER_JOINED_TEAM_AS_COACH EDPCPushNotification = 12 EDPCPushNotification_DPC_PUSH_NOTIFICATION_PLAYER_LEFT_TEAM_AS_COACH EDPCPushNotification = 13 EDPCPushNotification_DPC_PUSH_NOTIFICATION_LEAGUE_RESULT EDPCPushNotification = 20 EDPCPushNotification_DPC_PUSH_NOTIFICATION_PREDICTION_MATCHES_AVAILABLE EDPCPushNotification = 30 EDPCPushNotification_DPC_PUSH_NOTIFICATION_PREDICTION_RESULT EDPCPushNotification = 31 EDPCPushNotification_DPC_PUSH_NOTIFICATION_FANTASY_PLAYER_CLEARED EDPCPushNotification = 40 EDPCPushNotification_DPC_PUSH_NOTIFICATION_FANTASY_DAILY_SUMMARY EDPCPushNotification = 41 EDPCPushNotification_DPC_PUSH_NOTIFICATION_FANTASY_FINAL_RESULTS EDPCPushNotification = 42 ) // Enum value maps for EDPCPushNotification. var ( EDPCPushNotification_name = map[int32]string{ 1: "DPC_PUSH_NOTIFICATION_MATCH_STARTING", 10: "DPC_PUSH_NOTIFICATION_PLAYER_LEFT_TEAM", 11: "DPC_PUSH_NOTIFICATION_PLAYER_JOINED_TEAM", 12: "DPC_PUSH_NOTIFICATION_PLAYER_JOINED_TEAM_AS_COACH", 13: "DPC_PUSH_NOTIFICATION_PLAYER_LEFT_TEAM_AS_COACH", 20: "DPC_PUSH_NOTIFICATION_LEAGUE_RESULT", 30: "DPC_PUSH_NOTIFICATION_PREDICTION_MATCHES_AVAILABLE", 31: "DPC_PUSH_NOTIFICATION_PREDICTION_RESULT", 40: "DPC_PUSH_NOTIFICATION_FANTASY_PLAYER_CLEARED", 41: "DPC_PUSH_NOTIFICATION_FANTASY_DAILY_SUMMARY", 42: "DPC_PUSH_NOTIFICATION_FANTASY_FINAL_RESULTS", } EDPCPushNotification_value = map[string]int32{ "DPC_PUSH_NOTIFICATION_MATCH_STARTING": 1, "DPC_PUSH_NOTIFICATION_PLAYER_LEFT_TEAM": 10, "DPC_PUSH_NOTIFICATION_PLAYER_JOINED_TEAM": 11, "DPC_PUSH_NOTIFICATION_PLAYER_JOINED_TEAM_AS_COACH": 12, "DPC_PUSH_NOTIFICATION_PLAYER_LEFT_TEAM_AS_COACH": 13, "DPC_PUSH_NOTIFICATION_LEAGUE_RESULT": 20, "DPC_PUSH_NOTIFICATION_PREDICTION_MATCHES_AVAILABLE": 30, "DPC_PUSH_NOTIFICATION_PREDICTION_RESULT": 31, "DPC_PUSH_NOTIFICATION_FANTASY_PLAYER_CLEARED": 40, "DPC_PUSH_NOTIFICATION_FANTASY_DAILY_SUMMARY": 41, "DPC_PUSH_NOTIFICATION_FANTASY_FINAL_RESULTS": 42, } ) func (x EDPCPushNotification) Enum() *EDPCPushNotification { p := new(EDPCPushNotification) *p = x return p } func (x EDPCPushNotification) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (EDPCPushNotification) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[42].Descriptor() } func (EDPCPushNotification) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[42] } func (x EDPCPushNotification) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *EDPCPushNotification) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = EDPCPushNotification(num) return nil } // Deprecated: Use EDPCPushNotification.Descriptor instead. func (EDPCPushNotification) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{42} } type EEventActionScoreMode int32 const ( EEventActionScoreMode_k_eEventActionScoreMode_Add EEventActionScoreMode = 0 EEventActionScoreMode_k_eEventActionScoreMode_Min EEventActionScoreMode = 1 ) // Enum value maps for EEventActionScoreMode. var ( EEventActionScoreMode_name = map[int32]string{ 0: "k_eEventActionScoreMode_Add", 1: "k_eEventActionScoreMode_Min", } EEventActionScoreMode_value = map[string]int32{ "k_eEventActionScoreMode_Add": 0, "k_eEventActionScoreMode_Min": 1, } ) func (x EEventActionScoreMode) Enum() *EEventActionScoreMode { p := new(EEventActionScoreMode) *p = x return p } func (x EEventActionScoreMode) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (EEventActionScoreMode) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[43].Descriptor() } func (EEventActionScoreMode) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[43] } func (x EEventActionScoreMode) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *EEventActionScoreMode) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = EEventActionScoreMode(num) return nil } // Deprecated: Use EEventActionScoreMode.Descriptor instead. func (EEventActionScoreMode) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{43} } type EPlayerChallengeHistoryType int32 const ( EPlayerChallengeHistoryType_k_EPlayerChallengeHistoryType_Invalid EPlayerChallengeHistoryType = 0 EPlayerChallengeHistoryType_k_EPlayerChallengeHistoryType_KillEater EPlayerChallengeHistoryType = 1 EPlayerChallengeHistoryType_k_EPlayerChallengeHistoryType_DotaPlusRelic EPlayerChallengeHistoryType = 2 EPlayerChallengeHistoryType_k_EPlayerChallengeHistoryType_DotaPlusHeroPlayerChallenge EPlayerChallengeHistoryType = 3 EPlayerChallengeHistoryType_k_EPlayerChallengeHistoryType_InGameEventChallenge EPlayerChallengeHistoryType = 4 EPlayerChallengeHistoryType_k_EPlayerChallengeHistoryType_GuildContract EPlayerChallengeHistoryType = 5 ) // Enum value maps for EPlayerChallengeHistoryType. var ( EPlayerChallengeHistoryType_name = map[int32]string{ 0: "k_EPlayerChallengeHistoryType_Invalid", 1: "k_EPlayerChallengeHistoryType_KillEater", 2: "k_EPlayerChallengeHistoryType_DotaPlusRelic", 3: "k_EPlayerChallengeHistoryType_DotaPlusHeroPlayerChallenge", 4: "k_EPlayerChallengeHistoryType_InGameEventChallenge", 5: "k_EPlayerChallengeHistoryType_GuildContract", } EPlayerChallengeHistoryType_value = map[string]int32{ "k_EPlayerChallengeHistoryType_Invalid": 0, "k_EPlayerChallengeHistoryType_KillEater": 1, "k_EPlayerChallengeHistoryType_DotaPlusRelic": 2, "k_EPlayerChallengeHistoryType_DotaPlusHeroPlayerChallenge": 3, "k_EPlayerChallengeHistoryType_InGameEventChallenge": 4, "k_EPlayerChallengeHistoryType_GuildContract": 5, } ) func (x EPlayerChallengeHistoryType) Enum() *EPlayerChallengeHistoryType { p := new(EPlayerChallengeHistoryType) *p = x return p } func (x EPlayerChallengeHistoryType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (EPlayerChallengeHistoryType) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[44].Descriptor() } func (EPlayerChallengeHistoryType) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[44] } func (x EPlayerChallengeHistoryType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *EPlayerChallengeHistoryType) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = EPlayerChallengeHistoryType(num) return nil } // Deprecated: Use EPlayerChallengeHistoryType.Descriptor instead. func (EPlayerChallengeHistoryType) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{44} } type EOverwatchReportReason int32 const ( EOverwatchReportReason_k_EOverwatchReportReason_Unknown EOverwatchReportReason = 0 EOverwatchReportReason_k_EOverwatchReportReason_Cheating EOverwatchReportReason = 1 EOverwatchReportReason_k_EOverwatchReportReason_Feeding EOverwatchReportReason = 2 EOverwatchReportReason_k_EOverwatchReportReason_Griefing EOverwatchReportReason = 3 EOverwatchReportReason_k_EOverwatchReportReason_Suspicious EOverwatchReportReason = 4 EOverwatchReportReason_k_EOverwatchReportReason_AbilityAbuse EOverwatchReportReason = 5 ) // Enum value maps for EOverwatchReportReason. var ( EOverwatchReportReason_name = map[int32]string{ 0: "k_EOverwatchReportReason_Unknown", 1: "k_EOverwatchReportReason_Cheating", 2: "k_EOverwatchReportReason_Feeding", 3: "k_EOverwatchReportReason_Griefing", 4: "k_EOverwatchReportReason_Suspicious", 5: "k_EOverwatchReportReason_AbilityAbuse", } EOverwatchReportReason_value = map[string]int32{ "k_EOverwatchReportReason_Unknown": 0, "k_EOverwatchReportReason_Cheating": 1, "k_EOverwatchReportReason_Feeding": 2, "k_EOverwatchReportReason_Griefing": 3, "k_EOverwatchReportReason_Suspicious": 4, "k_EOverwatchReportReason_AbilityAbuse": 5, } ) func (x EOverwatchReportReason) Enum() *EOverwatchReportReason { p := new(EOverwatchReportReason) *p = x return p } func (x EOverwatchReportReason) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (EOverwatchReportReason) Descriptor() protoreflect.EnumDescriptor { return file_dota_shared_enums_proto_enumTypes[45].Descriptor() } func (EOverwatchReportReason) Type() protoreflect.EnumType { return &file_dota_shared_enums_proto_enumTypes[45] } func (x EOverwatchReportReason) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *EOverwatchReportReason) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = EOverwatchReportReason(num) return nil } // Deprecated: Use EOverwatchReportReason.Descriptor instead. func (EOverwatchReportReason) EnumDescriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{45} } type CDOTAClientHardwareSpecs struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields LogicalProcessors *uint32 `protobuf:"varint,1,opt,name=logical_processors,json=logicalProcessors" json:"logical_processors,omitempty"` CpuCyclesPerSecond *uint64 `protobuf:"fixed64,2,opt,name=cpu_cycles_per_second,json=cpuCyclesPerSecond" json:"cpu_cycles_per_second,omitempty"` TotalPhysicalMemory *uint64 `protobuf:"fixed64,3,opt,name=total_physical_memory,json=totalPhysicalMemory" json:"total_physical_memory,omitempty"` Is_64BitOs *bool `protobuf:"varint,4,opt,name=is_64_bit_os,json=is64BitOs" json:"is_64_bit_os,omitempty"` UploadMeasurement *uint64 `protobuf:"varint,5,opt,name=upload_measurement,json=uploadMeasurement" json:"upload_measurement,omitempty"` PreferNotHost *bool `protobuf:"varint,6,opt,name=prefer_not_host,json=preferNotHost" json:"prefer_not_host,omitempty"` } func (x *CDOTAClientHardwareSpecs) Reset() { *x = CDOTAClientHardwareSpecs{} if protoimpl.UnsafeEnabled { mi := &file_dota_shared_enums_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CDOTAClientHardwareSpecs) String() string { return protoimpl.X.MessageStringOf(x) } func (*CDOTAClientHardwareSpecs) ProtoMessage() {} func (x *CDOTAClientHardwareSpecs) ProtoReflect() protoreflect.Message { mi := &file_dota_shared_enums_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 CDOTAClientHardwareSpecs.ProtoReflect.Descriptor instead. func (*CDOTAClientHardwareSpecs) Descriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{0} } func (x *CDOTAClientHardwareSpecs) GetLogicalProcessors() uint32 { if x != nil && x.LogicalProcessors != nil { return *x.LogicalProcessors } return 0 } func (x *CDOTAClientHardwareSpecs) GetCpuCyclesPerSecond() uint64 { if x != nil && x.CpuCyclesPerSecond != nil { return *x.CpuCyclesPerSecond } return 0 } func (x *CDOTAClientHardwareSpecs) GetTotalPhysicalMemory() uint64 { if x != nil && x.TotalPhysicalMemory != nil { return *x.TotalPhysicalMemory } return 0 } func (x *CDOTAClientHardwareSpecs) GetIs_64BitOs() bool { if x != nil && x.Is_64BitOs != nil { return *x.Is_64BitOs } return false } func (x *CDOTAClientHardwareSpecs) GetUploadMeasurement() uint64 { if x != nil && x.UploadMeasurement != nil { return *x.UploadMeasurement } return 0 } func (x *CDOTAClientHardwareSpecs) GetPreferNotHost() bool { if x != nil && x.PreferNotHost != nil { return *x.PreferNotHost } return false } type CDOTASaveGame struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MatchId *uint64 `protobuf:"varint,5,opt,name=match_id,json=matchId" json:"match_id,omitempty"` SaveTime *uint32 `protobuf:"varint,2,opt,name=save_time,json=saveTime" json:"save_time,omitempty"` Players []*CDOTASaveGame_Player `protobuf:"bytes,3,rep,name=players" json:"players,omitempty"` SaveInstances []*CDOTASaveGame_SaveInstance `protobuf:"bytes,4,rep,name=save_instances,json=saveInstances" json:"save_instances,omitempty"` } func (x *CDOTASaveGame) Reset() { *x = CDOTASaveGame{} if protoimpl.UnsafeEnabled { mi := &file_dota_shared_enums_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CDOTASaveGame) String() string { return protoimpl.X.MessageStringOf(x) } func (*CDOTASaveGame) ProtoMessage() {} func (x *CDOTASaveGame) ProtoReflect() protoreflect.Message { mi := &file_dota_shared_enums_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 CDOTASaveGame.ProtoReflect.Descriptor instead. func (*CDOTASaveGame) Descriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{1} } func (x *CDOTASaveGame) GetMatchId() uint64 { if x != nil && x.MatchId != nil { return *x.MatchId } return 0 } func (x *CDOTASaveGame) GetSaveTime() uint32 { if x != nil && x.SaveTime != nil { return *x.SaveTime } return 0 } func (x *CDOTASaveGame) GetPlayers() []*CDOTASaveGame_Player { if x != nil { return x.Players } return nil } func (x *CDOTASaveGame) GetSaveInstances() []*CDOTASaveGame_SaveInstance { if x != nil { return x.SaveInstances } return nil } type CMsgDOTACombatLogEntry struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type *DOTA_COMBATLOG_TYPES `protobuf:"varint,1,opt,name=type,enum=DOTA_COMBATLOG_TYPES,def=-1" json:"type,omitempty"` TargetName *uint32 `protobuf:"varint,2,opt,name=target_name,json=targetName" json:"target_name,omitempty"` TargetSourceName *uint32 `protobuf:"varint,3,opt,name=target_source_name,json=targetSourceName" json:"target_source_name,omitempty"` AttackerName *uint32 `protobuf:"varint,4,opt,name=attacker_name,json=attackerName" json:"attacker_name,omitempty"` DamageSourceName *uint32 `protobuf:"varint,5,opt,name=damage_source_name,json=damageSourceName" json:"damage_source_name,omitempty"` InflictorName *uint32 `protobuf:"varint,6,opt,name=inflictor_name,json=inflictorName" json:"inflictor_name,omitempty"` IsAttackerIllusion *bool `protobuf:"varint,7,opt,name=is_attacker_illusion,json=isAttackerIllusion" json:"is_attacker_illusion,omitempty"` IsAttackerHero *bool `protobuf:"varint,8,opt,name=is_attacker_hero,json=isAttackerHero" json:"is_attacker_hero,omitempty"` IsTargetIllusion *bool `protobuf:"varint,9,opt,name=is_target_illusion,json=isTargetIllusion" json:"is_target_illusion,omitempty"` IsTargetHero *bool `protobuf:"varint,10,opt,name=is_target_hero,json=isTargetHero" json:"is_target_hero,omitempty"` IsVisibleRadiant *bool `protobuf:"varint,11,opt,name=is_visible_radiant,json=isVisibleRadiant" json:"is_visible_radiant,omitempty"` IsVisibleDire *bool `protobuf:"varint,12,opt,name=is_visible_dire,json=isVisibleDire" json:"is_visible_dire,omitempty"` Value *uint32 `protobuf:"varint,13,opt,name=value" json:"value,omitempty"` Health *int32 `protobuf:"varint,14,opt,name=health" json:"health,omitempty"` Timestamp *float32 `protobuf:"fixed32,15,opt,name=timestamp" json:"timestamp,omitempty"` StunDuration *float32 `protobuf:"fixed32,16,opt,name=stun_duration,json=stunDuration" json:"stun_duration,omitempty"` SlowDuration *float32 `protobuf:"fixed32,17,opt,name=slow_duration,json=slowDuration" json:"slow_duration,omitempty"` IsAbilityToggleOn *bool `protobuf:"varint,18,opt,name=is_ability_toggle_on,json=isAbilityToggleOn" json:"is_ability_toggle_on,omitempty"` IsAbilityToggleOff *bool `protobuf:"varint,19,opt,name=is_ability_toggle_off,json=isAbilityToggleOff" json:"is_ability_toggle_off,omitempty"` AbilityLevel *uint32 `protobuf:"varint,20,opt,name=ability_level,json=abilityLevel" json:"ability_level,omitempty"` LocationX *float32 `protobuf:"fixed32,21,opt,name=location_x,json=locationX" json:"location_x,omitempty"` LocationY *float32 `protobuf:"fixed32,22,opt,name=location_y,json=locationY" json:"location_y,omitempty"` GoldReason *uint32 `protobuf:"varint,23,opt,name=gold_reason,json=goldReason" json:"gold_reason,omitempty"` TimestampRaw *float32 `protobuf:"fixed32,24,opt,name=timestamp_raw,json=timestampRaw" json:"timestamp_raw,omitempty"` ModifierDuration *float32 `protobuf:"fixed32,25,opt,name=modifier_duration,json=modifierDuration" json:"modifier_duration,omitempty"` XpReason *uint32 `protobuf:"varint,26,opt,name=xp_reason,json=xpReason" json:"xp_reason,omitempty"` LastHits *uint32 `protobuf:"varint,27,opt,name=last_hits,json=lastHits" json:"last_hits,omitempty"` AttackerTeam *uint32 `protobuf:"varint,28,opt,name=attacker_team,json=attackerTeam" json:"attacker_team,omitempty"` TargetTeam *uint32 `protobuf:"varint,29,opt,name=target_team,json=targetTeam" json:"target_team,omitempty"` ObsWardsPlaced *uint32 `protobuf:"varint,30,opt,name=obs_wards_placed,json=obsWardsPlaced" json:"obs_wards_placed,omitempty"` AssistPlayer0 *uint32 `protobuf:"varint,31,opt,name=assist_player0,json=assistPlayer0" json:"assist_player0,omitempty"` AssistPlayer1 *uint32 `protobuf:"varint,32,opt,name=assist_player1,json=assistPlayer1" json:"assist_player1,omitempty"` AssistPlayer2 *uint32 `protobuf:"varint,33,opt,name=assist_player2,json=assistPlayer2" json:"assist_player2,omitempty"` AssistPlayer3 *uint32 `protobuf:"varint,34,opt,name=assist_player3,json=assistPlayer3" json:"assist_player3,omitempty"` StackCount *uint32 `protobuf:"varint,35,opt,name=stack_count,json=stackCount" json:"stack_count,omitempty"` HiddenModifier *bool `protobuf:"varint,36,opt,name=hidden_modifier,json=hiddenModifier" json:"hidden_modifier,omitempty"` IsTargetBuilding *bool `protobuf:"varint,37,opt,name=is_target_building,json=isTargetBuilding" json:"is_target_building,omitempty"` NeutralCampType *uint32 `protobuf:"varint,38,opt,name=neutral_camp_type,json=neutralCampType" json:"neutral_camp_type,omitempty"` RuneType *uint32 `protobuf:"varint,39,opt,name=rune_type,json=runeType" json:"rune_type,omitempty"` AssistPlayers []int32 `protobuf:"varint,40,rep,name=assist_players,json=assistPlayers" json:"assist_players,omitempty"` IsHealSave *bool `protobuf:"varint,41,opt,name=is_heal_save,json=isHealSave" json:"is_heal_save,omitempty"` IsUltimateAbility *bool `protobuf:"varint,42,opt,name=is_ultimate_ability,json=isUltimateAbility" json:"is_ultimate_ability,omitempty"` AttackerHeroLevel *uint32 `protobuf:"varint,43,opt,name=attacker_hero_level,json=attackerHeroLevel" json:"attacker_hero_level,omitempty"` TargetHeroLevel *uint32 `protobuf:"varint,44,opt,name=target_hero_level,json=targetHeroLevel" json:"target_hero_level,omitempty"` Xpm *uint32 `protobuf:"varint,45,opt,name=xpm" json:"xpm,omitempty"` Gpm *uint32 `protobuf:"varint,46,opt,name=gpm" json:"gpm,omitempty"` EventLocation *uint32 `protobuf:"varint,47,opt,name=event_location,json=eventLocation" json:"event_location,omitempty"` TargetIsSelf *bool `protobuf:"varint,48,opt,name=target_is_self,json=targetIsSelf" json:"target_is_self,omitempty"` DamageType *uint32 `protobuf:"varint,49,opt,name=damage_type,json=damageType" json:"damage_type,omitempty"` InvisibilityModifier *bool `protobuf:"varint,50,opt,name=invisibility_modifier,json=invisibilityModifier" json:"invisibility_modifier,omitempty"` DamageCategory *uint32 `protobuf:"varint,51,opt,name=damage_category,json=damageCategory" json:"damage_category,omitempty"` Networth *uint32 `protobuf:"varint,52,opt,name=networth" json:"networth,omitempty"` BuildingType *uint32 `protobuf:"varint,53,opt,name=building_type,json=buildingType" json:"building_type,omitempty"` ModifierElapsedDuration *float32 `protobuf:"fixed32,54,opt,name=modifier_elapsed_duration,json=modifierElapsedDuration" json:"modifier_elapsed_duration,omitempty"` SilenceModifier *bool `protobuf:"varint,55,opt,name=silence_modifier,json=silenceModifier" json:"silence_modifier,omitempty"` HealFromLifesteal *bool `protobuf:"varint,56,opt,name=heal_from_lifesteal,json=healFromLifesteal" json:"heal_from_lifesteal,omitempty"` ModifierPurged *bool `protobuf:"varint,57,opt,name=modifier_purged,json=modifierPurged" json:"modifier_purged,omitempty"` SpellEvaded *bool `protobuf:"varint,58,opt,name=spell_evaded,json=spellEvaded" json:"spell_evaded,omitempty"` MotionControllerModifier *bool `protobuf:"varint,59,opt,name=motion_controller_modifier,json=motionControllerModifier" json:"motion_controller_modifier,omitempty"` LongRangeKill *bool `protobuf:"varint,60,opt,name=long_range_kill,json=longRangeKill" json:"long_range_kill,omitempty"` ModifierPurgeAbility *uint32 `protobuf:"varint,61,opt,name=modifier_purge_ability,json=modifierPurgeAbility" json:"modifier_purge_ability,omitempty"` ModifierPurgeNpc *uint32 `protobuf:"varint,62,opt,name=modifier_purge_npc,json=modifierPurgeNpc" json:"modifier_purge_npc,omitempty"` RootModifier *bool `protobuf:"varint,63,opt,name=root_modifier,json=rootModifier" json:"root_modifier,omitempty"` TotalUnitDeathCount *uint32 `protobuf:"varint,64,opt,name=total_unit_death_count,json=totalUnitDeathCount" json:"total_unit_death_count,omitempty"` AuraModifier *bool `protobuf:"varint,65,opt,name=aura_modifier,json=auraModifier" json:"aura_modifier,omitempty"` ArmorDebuffModifier *bool `protobuf:"varint,66,opt,name=armor_debuff_modifier,json=armorDebuffModifier" json:"armor_debuff_modifier,omitempty"` NoPhysicalDamageModifier *bool `protobuf:"varint,67,opt,name=no_physical_damage_modifier,json=noPhysicalDamageModifier" json:"no_physical_damage_modifier,omitempty"` ModifierAbility *uint32 `protobuf:"varint,68,opt,name=modifier_ability,json=modifierAbility" json:"modifier_ability,omitempty"` ModifierHidden *bool `protobuf:"varint,69,opt,name=modifier_hidden,json=modifierHidden" json:"modifier_hidden,omitempty"` InflictorIsStolenAbility *bool `protobuf:"varint,70,opt,name=inflictor_is_stolen_ability,json=inflictorIsStolenAbility" json:"inflictor_is_stolen_ability,omitempty"` KillEaterEvent *uint32 `protobuf:"varint,71,opt,name=kill_eater_event,json=killEaterEvent" json:"kill_eater_event,omitempty"` UnitStatusLabel *uint32 `protobuf:"varint,72,opt,name=unit_status_label,json=unitStatusLabel" json:"unit_status_label,omitempty"` SpellGeneratedAttack *bool `protobuf:"varint,73,opt,name=spell_generated_attack,json=spellGeneratedAttack" json:"spell_generated_attack,omitempty"` AtNightTime *bool `protobuf:"varint,74,opt,name=at_night_time,json=atNightTime" json:"at_night_time,omitempty"` AttackerHasScepter *bool `protobuf:"varint,75,opt,name=attacker_has_scepter,json=attackerHasScepter" json:"attacker_has_scepter,omitempty"` } // Default values for CMsgDOTACombatLogEntry fields. const ( Default_CMsgDOTACombatLogEntry_Type = DOTA_COMBATLOG_TYPES_DOTA_COMBATLOG_INVALID ) func (x *CMsgDOTACombatLogEntry) Reset() { *x = CMsgDOTACombatLogEntry{} if protoimpl.UnsafeEnabled { mi := &file_dota_shared_enums_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CMsgDOTACombatLogEntry) String() string { return protoimpl.X.MessageStringOf(x) } func (*CMsgDOTACombatLogEntry) ProtoMessage() {} func (x *CMsgDOTACombatLogEntry) ProtoReflect() protoreflect.Message { mi := &file_dota_shared_enums_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 CMsgDOTACombatLogEntry.ProtoReflect.Descriptor instead. func (*CMsgDOTACombatLogEntry) Descriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{2} } func (x *CMsgDOTACombatLogEntry) GetType() DOTA_COMBATLOG_TYPES { if x != nil && x.Type != nil { return *x.Type } return Default_CMsgDOTACombatLogEntry_Type } func (x *CMsgDOTACombatLogEntry) GetTargetName() uint32 { if x != nil && x.TargetName != nil { return *x.TargetName } return 0 } func (x *CMsgDOTACombatLogEntry) GetTargetSourceName() uint32 { if x != nil && x.TargetSourceName != nil { return *x.TargetSourceName } return 0 } func (x *CMsgDOTACombatLogEntry) GetAttackerName() uint32 { if x != nil && x.AttackerName != nil { return *x.AttackerName } return 0 } func (x *CMsgDOTACombatLogEntry) GetDamageSourceName() uint32 { if x != nil && x.DamageSourceName != nil { return *x.DamageSourceName } return 0 } func (x *CMsgDOTACombatLogEntry) GetInflictorName() uint32 { if x != nil && x.InflictorName != nil { return *x.InflictorName } return 0 } func (x *CMsgDOTACombatLogEntry) GetIsAttackerIllusion() bool { if x != nil && x.IsAttackerIllusion != nil { return *x.IsAttackerIllusion } return false } func (x *CMsgDOTACombatLogEntry) GetIsAttackerHero() bool { if x != nil && x.IsAttackerHero != nil { return *x.IsAttackerHero } return false } func (x *CMsgDOTACombatLogEntry) GetIsTargetIllusion() bool { if x != nil && x.IsTargetIllusion != nil { return *x.IsTargetIllusion } return false } func (x *CMsgDOTACombatLogEntry) GetIsTargetHero() bool { if x != nil && x.IsTargetHero != nil { return *x.IsTargetHero } return false } func (x *CMsgDOTACombatLogEntry) GetIsVisibleRadiant() bool { if x != nil && x.IsVisibleRadiant != nil { return *x.IsVisibleRadiant } return false } func (x *CMsgDOTACombatLogEntry) GetIsVisibleDire() bool { if x != nil && x.IsVisibleDire != nil { return *x.IsVisibleDire } return false } func (x *CMsgDOTACombatLogEntry) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } func (x *CMsgDOTACombatLogEntry) GetHealth() int32 { if x != nil && x.Health != nil { return *x.Health } return 0 } func (x *CMsgDOTACombatLogEntry) GetTimestamp() float32 { if x != nil && x.Timestamp != nil { return *x.Timestamp } return 0 } func (x *CMsgDOTACombatLogEntry) GetStunDuration() float32 { if x != nil && x.StunDuration != nil { return *x.StunDuration } return 0 } func (x *CMsgDOTACombatLogEntry) GetSlowDuration() float32 { if x != nil && x.SlowDuration != nil { return *x.SlowDuration } return 0 } func (x *CMsgDOTACombatLogEntry) GetIsAbilityToggleOn() bool { if x != nil && x.IsAbilityToggleOn != nil { return *x.IsAbilityToggleOn } return false } func (x *CMsgDOTACombatLogEntry) GetIsAbilityToggleOff() bool { if x != nil && x.IsAbilityToggleOff != nil { return *x.IsAbilityToggleOff } return false } func (x *CMsgDOTACombatLogEntry) GetAbilityLevel() uint32 { if x != nil && x.AbilityLevel != nil { return *x.AbilityLevel } return 0 } func (x *CMsgDOTACombatLogEntry) GetLocationX() float32 { if x != nil && x.LocationX != nil { return *x.LocationX } return 0 } func (x *CMsgDOTACombatLogEntry) GetLocationY() float32 { if x != nil && x.LocationY != nil { return *x.LocationY } return 0 } func (x *CMsgDOTACombatLogEntry) GetGoldReason() uint32 { if x != nil && x.GoldReason != nil { return *x.GoldReason } return 0 } func (x *CMsgDOTACombatLogEntry) GetTimestampRaw() float32 { if x != nil && x.TimestampRaw != nil { return *x.TimestampRaw } return 0 } func (x *CMsgDOTACombatLogEntry) GetModifierDuration() float32 { if x != nil && x.ModifierDuration != nil { return *x.ModifierDuration } return 0 } func (x *CMsgDOTACombatLogEntry) GetXpReason() uint32 { if x != nil && x.XpReason != nil { return *x.XpReason } return 0 } func (x *CMsgDOTACombatLogEntry) GetLastHits() uint32 { if x != nil && x.LastHits != nil { return *x.LastHits } return 0 } func (x *CMsgDOTACombatLogEntry) GetAttackerTeam() uint32 { if x != nil && x.AttackerTeam != nil { return *x.AttackerTeam } return 0 } func (x *CMsgDOTACombatLogEntry) GetTargetTeam() uint32 { if x != nil && x.TargetTeam != nil { return *x.TargetTeam } return 0 } func (x *CMsgDOTACombatLogEntry) GetObsWardsPlaced() uint32 { if x != nil && x.ObsWardsPlaced != nil { return *x.ObsWardsPlaced } return 0 } func (x *CMsgDOTACombatLogEntry) GetAssistPlayer0() uint32 { if x != nil && x.AssistPlayer0 != nil { return *x.AssistPlayer0 } return 0 } func (x *CMsgDOTACombatLogEntry) GetAssistPlayer1() uint32 { if x != nil && x.AssistPlayer1 != nil { return *x.AssistPlayer1 } return 0 } func (x *CMsgDOTACombatLogEntry) GetAssistPlayer2() uint32 { if x != nil && x.AssistPlayer2 != nil { return *x.AssistPlayer2 } return 0 } func (x *CMsgDOTACombatLogEntry) GetAssistPlayer3() uint32 { if x != nil && x.AssistPlayer3 != nil { return *x.AssistPlayer3 } return 0 } func (x *CMsgDOTACombatLogEntry) GetStackCount() uint32 { if x != nil && x.StackCount != nil { return *x.StackCount } return 0 } func (x *CMsgDOTACombatLogEntry) GetHiddenModifier() bool { if x != nil && x.HiddenModifier != nil { return *x.HiddenModifier } return false } func (x *CMsgDOTACombatLogEntry) GetIsTargetBuilding() bool { if x != nil && x.IsTargetBuilding != nil { return *x.IsTargetBuilding } return false } func (x *CMsgDOTACombatLogEntry) GetNeutralCampType() uint32 { if x != nil && x.NeutralCampType != nil { return *x.NeutralCampType } return 0 } func (x *CMsgDOTACombatLogEntry) GetRuneType() uint32 { if x != nil && x.RuneType != nil { return *x.RuneType } return 0 } func (x *CMsgDOTACombatLogEntry) GetAssistPlayers() []int32 { if x != nil { return x.AssistPlayers } return nil } func (x *CMsgDOTACombatLogEntry) GetIsHealSave() bool { if x != nil && x.IsHealSave != nil { return *x.IsHealSave } return false } func (x *CMsgDOTACombatLogEntry) GetIsUltimateAbility() bool { if x != nil && x.IsUltimateAbility != nil { return *x.IsUltimateAbility } return false } func (x *CMsgDOTACombatLogEntry) GetAttackerHeroLevel() uint32 { if x != nil && x.AttackerHeroLevel != nil { return *x.AttackerHeroLevel } return 0 } func (x *CMsgDOTACombatLogEntry) GetTargetHeroLevel() uint32 { if x != nil && x.TargetHeroLevel != nil { return *x.TargetHeroLevel } return 0 } func (x *CMsgDOTACombatLogEntry) GetXpm() uint32 { if x != nil && x.Xpm != nil { return *x.Xpm } return 0 } func (x *CMsgDOTACombatLogEntry) GetGpm() uint32 { if x != nil && x.Gpm != nil { return *x.Gpm } return 0 } func (x *CMsgDOTACombatLogEntry) GetEventLocation() uint32 { if x != nil && x.EventLocation != nil { return *x.EventLocation } return 0 } func (x *CMsgDOTACombatLogEntry) GetTargetIsSelf() bool { if x != nil && x.TargetIsSelf != nil { return *x.TargetIsSelf } return false } func (x *CMsgDOTACombatLogEntry) GetDamageType() uint32 { if x != nil && x.DamageType != nil { return *x.DamageType } return 0 } func (x *CMsgDOTACombatLogEntry) GetInvisibilityModifier() bool { if x != nil && x.InvisibilityModifier != nil { return *x.InvisibilityModifier } return false } func (x *CMsgDOTACombatLogEntry) GetDamageCategory() uint32 { if x != nil && x.DamageCategory != nil { return *x.DamageCategory } return 0 } func (x *CMsgDOTACombatLogEntry) GetNetworth() uint32 { if x != nil && x.Networth != nil { return *x.Networth } return 0 } func (x *CMsgDOTACombatLogEntry) GetBuildingType() uint32 { if x != nil && x.BuildingType != nil { return *x.BuildingType } return 0 } func (x *CMsgDOTACombatLogEntry) GetModifierElapsedDuration() float32 { if x != nil && x.ModifierElapsedDuration != nil { return *x.ModifierElapsedDuration } return 0 } func (x *CMsgDOTACombatLogEntry) GetSilenceModifier() bool { if x != nil && x.SilenceModifier != nil { return *x.SilenceModifier } return false } func (x *CMsgDOTACombatLogEntry) GetHealFromLifesteal() bool { if x != nil && x.HealFromLifesteal != nil { return *x.HealFromLifesteal } return false } func (x *CMsgDOTACombatLogEntry) GetModifierPurged() bool { if x != nil && x.ModifierPurged != nil { return *x.ModifierPurged } return false } func (x *CMsgDOTACombatLogEntry) GetSpellEvaded() bool { if x != nil && x.SpellEvaded != nil { return *x.SpellEvaded } return false } func (x *CMsgDOTACombatLogEntry) GetMotionControllerModifier() bool { if x != nil && x.MotionControllerModifier != nil { return *x.MotionControllerModifier } return false } func (x *CMsgDOTACombatLogEntry) GetLongRangeKill() bool { if x != nil && x.LongRangeKill != nil { return *x.LongRangeKill } return false } func (x *CMsgDOTACombatLogEntry) GetModifierPurgeAbility() uint32 { if x != nil && x.ModifierPurgeAbility != nil { return *x.ModifierPurgeAbility } return 0 } func (x *CMsgDOTACombatLogEntry) GetModifierPurgeNpc() uint32 { if x != nil && x.ModifierPurgeNpc != nil { return *x.ModifierPurgeNpc } return 0 } func (x *CMsgDOTACombatLogEntry) GetRootModifier() bool { if x != nil && x.RootModifier != nil { return *x.RootModifier } return false } func (x *CMsgDOTACombatLogEntry) GetTotalUnitDeathCount() uint32 { if x != nil && x.TotalUnitDeathCount != nil { return *x.TotalUnitDeathCount } return 0 } func (x *CMsgDOTACombatLogEntry) GetAuraModifier() bool { if x != nil && x.AuraModifier != nil { return *x.AuraModifier } return false } func (x *CMsgDOTACombatLogEntry) GetArmorDebuffModifier() bool { if x != nil && x.ArmorDebuffModifier != nil { return *x.ArmorDebuffModifier } return false } func (x *CMsgDOTACombatLogEntry) GetNoPhysicalDamageModifier() bool { if x != nil && x.NoPhysicalDamageModifier != nil { return *x.NoPhysicalDamageModifier } return false } func (x *CMsgDOTACombatLogEntry) GetModifierAbility() uint32 { if x != nil && x.ModifierAbility != nil { return *x.ModifierAbility } return 0 } func (x *CMsgDOTACombatLogEntry) GetModifierHidden() bool { if x != nil && x.ModifierHidden != nil { return *x.ModifierHidden } return false } func (x *CMsgDOTACombatLogEntry) GetInflictorIsStolenAbility() bool { if x != nil && x.InflictorIsStolenAbility != nil { return *x.InflictorIsStolenAbility } return false } func (x *CMsgDOTACombatLogEntry) GetKillEaterEvent() uint32 { if x != nil && x.KillEaterEvent != nil { return *x.KillEaterEvent } return 0 } func (x *CMsgDOTACombatLogEntry) GetUnitStatusLabel() uint32 { if x != nil && x.UnitStatusLabel != nil { return *x.UnitStatusLabel } return 0 } func (x *CMsgDOTACombatLogEntry) GetSpellGeneratedAttack() bool { if x != nil && x.SpellGeneratedAttack != nil { return *x.SpellGeneratedAttack } return false } func (x *CMsgDOTACombatLogEntry) GetAtNightTime() bool { if x != nil && x.AtNightTime != nil { return *x.AtNightTime } return false } func (x *CMsgDOTACombatLogEntry) GetAttackerHasScepter() bool { if x != nil && x.AttackerHasScepter != nil { return *x.AttackerHasScepter } return false } type CMsgPendingEventAward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields EventId *EEvent `protobuf:"varint,1,opt,name=event_id,json=eventId,enum=EEvent,def=0" json:"event_id,omitempty"` ActionId *uint32 `protobuf:"varint,2,opt,name=action_id,json=actionId" json:"action_id,omitempty"` NumToGrant *uint32 `protobuf:"varint,3,opt,name=num_to_grant,json=numToGrant" json:"num_to_grant,omitempty"` ScoreMode *EEventActionScoreMode `protobuf:"varint,4,opt,name=score_mode,json=scoreMode,enum=EEventActionScoreMode,def=0" json:"score_mode,omitempty"` AuditAction *uint32 `protobuf:"varint,5,opt,name=audit_action,json=auditAction" json:"audit_action,omitempty"` AuditData *uint32 `protobuf:"varint,6,opt,name=audit_data,json=auditData" json:"audit_data,omitempty"` } // Default values for CMsgPendingEventAward fields. const ( Default_CMsgPendingEventAward_EventId = EEvent_EVENT_ID_NONE Default_CMsgPendingEventAward_ScoreMode = EEventActionScoreMode_k_eEventActionScoreMode_Add ) func (x *CMsgPendingEventAward) Reset() { *x = CMsgPendingEventAward{} if protoimpl.UnsafeEnabled { mi := &file_dota_shared_enums_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CMsgPendingEventAward) String() string { return protoimpl.X.MessageStringOf(x) } func (*CMsgPendingEventAward) ProtoMessage() {} func (x *CMsgPendingEventAward) ProtoReflect() protoreflect.Message { mi := &file_dota_shared_enums_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 CMsgPendingEventAward.ProtoReflect.Descriptor instead. func (*CMsgPendingEventAward) Descriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{3} } func (x *CMsgPendingEventAward) GetEventId() EEvent { if x != nil && x.EventId != nil { return *x.EventId } return Default_CMsgPendingEventAward_EventId } func (x *CMsgPendingEventAward) GetActionId() uint32 { if x != nil && x.ActionId != nil { return *x.ActionId } return 0 } func (x *CMsgPendingEventAward) GetNumToGrant() uint32 { if x != nil && x.NumToGrant != nil { return *x.NumToGrant } return 0 } func (x *CMsgPendingEventAward) GetScoreMode() EEventActionScoreMode { if x != nil && x.ScoreMode != nil { return *x.ScoreMode } return Default_CMsgPendingEventAward_ScoreMode } func (x *CMsgPendingEventAward) GetAuditAction() uint32 { if x != nil && x.AuditAction != nil { return *x.AuditAction } return 0 } func (x *CMsgPendingEventAward) GetAuditData() uint32 { if x != nil && x.AuditData != nil { return *x.AuditData } return 0 } type CDOTASaveGame_Player struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Team *DOTA_GC_TEAM `protobuf:"varint,1,opt,name=team,enum=DOTA_GC_TEAM,def=0" json:"team,omitempty"` Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` Hero *string `protobuf:"bytes,3,opt,name=hero" json:"hero,omitempty"` } // Default values for CDOTASaveGame_Player fields. const ( Default_CDOTASaveGame_Player_Team = DOTA_GC_TEAM_DOTA_GC_TEAM_GOOD_GUYS ) func (x *CDOTASaveGame_Player) Reset() { *x = CDOTASaveGame_Player{} if protoimpl.UnsafeEnabled { mi := &file_dota_shared_enums_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CDOTASaveGame_Player) String() string { return protoimpl.X.MessageStringOf(x) } func (*CDOTASaveGame_Player) ProtoMessage() {} func (x *CDOTASaveGame_Player) ProtoReflect() protoreflect.Message { mi := &file_dota_shared_enums_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 CDOTASaveGame_Player.ProtoReflect.Descriptor instead. func (*CDOTASaveGame_Player) Descriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{1, 0} } func (x *CDOTASaveGame_Player) GetTeam() DOTA_GC_TEAM { if x != nil && x.Team != nil { return *x.Team } return Default_CDOTASaveGame_Player_Team } func (x *CDOTASaveGame_Player) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } func (x *CDOTASaveGame_Player) GetHero() string { if x != nil && x.Hero != nil { return *x.Hero } return "" } type CDOTASaveGame_SaveInstance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameTime *uint32 `protobuf:"varint,2,opt,name=game_time,json=gameTime" json:"game_time,omitempty"` Team1Score *uint32 `protobuf:"varint,3,opt,name=team1_score,json=team1Score" json:"team1_score,omitempty"` Team2Score *uint32 `protobuf:"varint,4,opt,name=team2_score,json=team2Score" json:"team2_score,omitempty"` PlayerPositions []*CDOTASaveGame_SaveInstance_PlayerPositions `protobuf:"bytes,5,rep,name=player_positions,json=playerPositions" json:"player_positions,omitempty"` SaveId *uint32 `protobuf:"varint,6,opt,name=save_id,json=saveId" json:"save_id,omitempty"` SaveTime *uint32 `protobuf:"varint,7,opt,name=save_time,json=saveTime" json:"save_time,omitempty"` } func (x *CDOTASaveGame_SaveInstance) Reset() { *x = CDOTASaveGame_SaveInstance{} if protoimpl.UnsafeEnabled { mi := &file_dota_shared_enums_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CDOTASaveGame_SaveInstance) String() string { return protoimpl.X.MessageStringOf(x) } func (*CDOTASaveGame_SaveInstance) ProtoMessage() {} func (x *CDOTASaveGame_SaveInstance) ProtoReflect() protoreflect.Message { mi := &file_dota_shared_enums_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 CDOTASaveGame_SaveInstance.ProtoReflect.Descriptor instead. func (*CDOTASaveGame_SaveInstance) Descriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{1, 1} } func (x *CDOTASaveGame_SaveInstance) GetGameTime() uint32 { if x != nil && x.GameTime != nil { return *x.GameTime } return 0 } func (x *CDOTASaveGame_SaveInstance) GetTeam1Score() uint32 { if x != nil && x.Team1Score != nil { return *x.Team1Score } return 0 } func (x *CDOTASaveGame_SaveInstance) GetTeam2Score() uint32 { if x != nil && x.Team2Score != nil { return *x.Team2Score } return 0 } func (x *CDOTASaveGame_SaveInstance) GetPlayerPositions() []*CDOTASaveGame_SaveInstance_PlayerPositions { if x != nil { return x.PlayerPositions } return nil } func (x *CDOTASaveGame_SaveInstance) GetSaveId() uint32 { if x != nil && x.SaveId != nil { return *x.SaveId } return 0 } func (x *CDOTASaveGame_SaveInstance) GetSaveTime() uint32 { if x != nil && x.SaveTime != nil { return *x.SaveTime } return 0 } type CDOTASaveGame_SaveInstance_PlayerPositions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields X *float32 `protobuf:"fixed32,1,opt,name=x" json:"x,omitempty"` Y *float32 `protobuf:"fixed32,2,opt,name=y" json:"y,omitempty"` } func (x *CDOTASaveGame_SaveInstance_PlayerPositions) Reset() { *x = CDOTASaveGame_SaveInstance_PlayerPositions{} if protoimpl.UnsafeEnabled { mi := &file_dota_shared_enums_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CDOTASaveGame_SaveInstance_PlayerPositions) String() string { return protoimpl.X.MessageStringOf(x) } func (*CDOTASaveGame_SaveInstance_PlayerPositions) ProtoMessage() {} func (x *CDOTASaveGame_SaveInstance_PlayerPositions) ProtoReflect() protoreflect.Message { mi := &file_dota_shared_enums_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 CDOTASaveGame_SaveInstance_PlayerPositions.ProtoReflect.Descriptor instead. func (*CDOTASaveGame_SaveInstance_PlayerPositions) Descriptor() ([]byte, []int) { return file_dota_shared_enums_proto_rawDescGZIP(), []int{1, 1, 0} } func (x *CDOTASaveGame_SaveInstance_PlayerPositions) GetX() float32 { if x != nil && x.X != nil { return *x.X } return 0 } func (x *CDOTASaveGame_SaveInstance_PlayerPositions) GetY() float32 { if x != nil && x.Y != nil { return *x.Y } return 0 } var File_dota_shared_enums_proto protoreflect.FileDescriptor var file_dota_shared_enums_proto_rawDesc = []byte{ 0x0a, 0x17, 0x64, 0x6f, 0x74, 0x61, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa8, 0x02, 0x0a, 0x18, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x53, 0x70, 0x65, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x12, 0x31, 0x0a, 0x15, 0x63, 0x70, 0x75, 0x5f, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x12, 0x63, 0x70, 0x75, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x73, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x06, 0x52, 0x13, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x36, 0x34, 0x5f, 0x62, 0x69, 0x74, 0x5f, 0x6f, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x36, 0x34, 0x42, 0x69, 0x74, 0x4f, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x22, 0xd6, 0x04, 0x0a, 0x0d, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x53, 0x61, 0x76, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x61, 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x61, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x53, 0x61, 0x76, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x61, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x53, 0x61, 0x76, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x0d, 0x73, 0x61, 0x76, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x1a, 0x6b, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x39, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x43, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x3a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x43, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x47, 0x4f, 0x4f, 0x44, 0x5f, 0x47, 0x55, 0x59, 0x53, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x1a, 0xaa, 0x02, 0x0a, 0x0c, 0x53, 0x61, 0x76, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 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, 0x1f, 0x0a, 0x0b, 0x74, 0x65, 0x61, 0x6d, 0x31, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x65, 0x61, 0x6d, 0x31, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x65, 0x61, 0x6d, 0x32, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x65, 0x61, 0x6d, 0x32, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x56, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x53, 0x61, 0x76, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x61, 0x76, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x61, 0x76, 0x65, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x61, 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x61, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x2d, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x79, 0x22, 0x9b, 0x18, 0x0a, 0x16, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, 0x41, 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x41, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x53, 0x3a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x41, 0x54, 0x4c, 0x4f, 0x47, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x69, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x6c, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x73, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x49, 0x6c, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x48, 0x65, 0x72, 0x6f, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x73, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x6c, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6c, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x73, 0x5f, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x52, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x73, 0x5f, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x44, 0x69, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x75, 0x6e, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x73, 0x74, 0x75, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x6c, 0x6f, 0x77, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x73, 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x14, 0x69, 0x73, 0x5f, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x5f, 0x6f, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x69, 0x73, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x4f, 0x6e, 0x12, 0x31, 0x0a, 0x15, 0x69, 0x73, 0x5f, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x73, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x4f, 0x66, 0x66, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x78, 0x18, 0x15, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x58, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x79, 0x18, 0x16, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x59, 0x12, 0x1f, 0x0a, 0x0b, 0x67, 0x6f, 0x6c, 0x64, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x67, 0x6f, 0x6c, 0x64, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x72, 0x61, 0x77, 0x18, 0x18, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x61, 0x77, 0x12, 0x2b, 0x0a, 0x11, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x78, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x78, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x73, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x69, 0x74, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x54, 0x65, 0x61, 0x6d, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x12, 0x28, 0x0a, 0x10, 0x6f, 0x62, 0x73, 0x5f, 0x77, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6f, 0x62, 0x73, 0x57, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x30, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x30, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x32, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x32, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x33, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x33, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x24, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x73, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x25, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x2a, 0x0a, 0x11, 0x6e, 0x65, 0x75, 0x74, 0x72, 0x61, 0x6c, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x6e, 0x65, 0x75, 0x74, 0x72, 0x61, 0x6c, 0x43, 0x61, 0x6d, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x75, 0x6e, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x75, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x28, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x5f, 0x73, 0x61, 0x76, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x53, 0x61, 0x76, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x69, 0x73, 0x5f, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x69, 0x73, 0x55, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x48, 0x65, 0x72, 0x6f, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x78, 0x70, 0x6d, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x78, 0x70, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x70, 0x6d, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x67, 0x70, 0x6d, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x66, 0x18, 0x30, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x73, 0x53, 0x65, 0x6c, 0x66, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x33, 0x0a, 0x15, 0x69, 0x6e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x32, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x69, 0x6e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x74, 0x68, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x74, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3a, 0x0a, 0x19, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x5f, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x36, 0x20, 0x01, 0x28, 0x02, 0x52, 0x17, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x45, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x69, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x37, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x73, 0x69, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x13, 0x68, 0x65, 0x61, 0x6c, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6c, 0x69, 0x66, 0x65, 0x73, 0x74, 0x65, 0x61, 0x6c, 0x18, 0x38, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x68, 0x65, 0x61, 0x6c, 0x46, 0x72, 0x6f, 0x6d, 0x4c, 0x69, 0x66, 0x65, 0x73, 0x74, 0x65, 0x61, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x5f, 0x70, 0x75, 0x72, 0x67, 0x65, 0x64, 0x18, 0x39, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x50, 0x75, 0x72, 0x67, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x70, 0x65, 0x6c, 0x6c, 0x5f, 0x65, 0x76, 0x61, 0x64, 0x65, 0x64, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, 0x70, 0x65, 0x6c, 0x6c, 0x45, 0x76, 0x61, 0x64, 0x65, 0x64, 0x12, 0x3c, 0x0a, 0x1a, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6c, 0x6f, 0x6e, 0x67, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4b, 0x69, 0x6c, 0x6c, 0x12, 0x34, 0x0a, 0x16, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x5f, 0x70, 0x75, 0x72, 0x67, 0x65, 0x5f, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x50, 0x75, 0x72, 0x67, 0x65, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x5f, 0x70, 0x75, 0x72, 0x67, 0x65, 0x5f, 0x6e, 0x70, 0x63, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x50, 0x75, 0x72, 0x67, 0x65, 0x4e, 0x70, 0x63, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x33, 0x0a, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x64, 0x65, 0x61, 0x74, 0x68, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x40, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x6e, 0x69, 0x74, 0x44, 0x65, 0x61, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x75, 0x72, 0x61, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x41, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x75, 0x72, 0x61, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x15, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x5f, 0x64, 0x65, 0x62, 0x75, 0x66, 0x66, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x42, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x44, 0x65, 0x62, 0x75, 0x66, 0x66, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x1b, 0x6e, 0x6f, 0x5f, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x43, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x6e, 0x6f, 0x50, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x5f, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x44, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x5f, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x18, 0x45, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x12, 0x3d, 0x0a, 0x1b, 0x69, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x73, 0x5f, 0x73, 0x74, 0x6f, 0x6c, 0x65, 0x6e, 0x5f, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x46, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x69, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x73, 0x53, 0x74, 0x6f, 0x6c, 0x65, 0x6e, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x6b, 0x69, 0x6c, 0x6c, 0x5f, 0x65, 0x61, 0x74, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x47, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6b, 0x69, 0x6c, 0x6c, 0x45, 0x61, 0x74, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x48, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x75, 0x6e, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x70, 0x65, 0x6c, 0x6c, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x49, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x70, 0x65, 0x6c, 0x6c, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x22, 0x0a, 0x0d, 0x61, 0x74, 0x5f, 0x6e, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x61, 0x74, 0x4e, 0x69, 0x67, 0x68, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x63, 0x65, 0x70, 0x74, 0x65, 0x72, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x48, 0x61, 0x73, 0x53, 0x63, 0x65, 0x70, 0x74, 0x65, 0x72, 0x22, 0x9f, 0x02, 0x0a, 0x15, 0x43, 0x4d, 0x73, 0x67, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x31, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x07, 0x2e, 0x45, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x3a, 0x0d, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 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, 0x20, 0x0a, 0x0c, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x6f, 0x5f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x54, 0x6f, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x52, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x45, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x3a, 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, 0x52, 0x09, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x75, 0x64, 0x69, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x2a, 0x9a, 0x05, 0x0a, 0x0d, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x41, 0x50, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x4d, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x44, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x44, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x41, 0x52, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x52, 0x4f, 0x10, 0x06, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x48, 0x57, 0x10, 0x07, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x56, 0x45, 0x52, 0x53, 0x45, 0x5f, 0x43, 0x4d, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x58, 0x4d, 0x41, 0x53, 0x10, 0x09, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x54, 0x55, 0x54, 0x4f, 0x52, 0x49, 0x41, 0x4c, 0x10, 0x0a, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4d, 0x4f, 0x10, 0x0b, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4c, 0x50, 0x10, 0x0c, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x31, 0x10, 0x0d, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x46, 0x48, 0x10, 0x0e, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x10, 0x0f, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x44, 0x10, 0x10, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x42, 0x44, 0x10, 0x11, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x44, 0x52, 0x41, 0x46, 0x54, 0x10, 0x12, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x10, 0x13, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x41, 0x52, 0x44, 0x4d, 0x10, 0x14, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x31, 0x56, 0x31, 0x4d, 0x49, 0x44, 0x10, 0x15, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x5f, 0x44, 0x52, 0x41, 0x46, 0x54, 0x10, 0x16, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x54, 0x55, 0x52, 0x42, 0x4f, 0x10, 0x17, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x18, 0x12, 0x23, 0x0a, 0x1f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x4f, 0x41, 0x43, 0x48, 0x45, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x4c, 0x4c, 0x45, 0x4e, 0x47, 0x45, 0x10, 0x19, 0x2a, 0x95, 0x04, 0x0a, 0x0e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x52, 0x55, 0x4c, 0x45, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x00, 0x12, 0x31, 0x0a, 0x2d, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x52, 0x55, 0x4c, 0x45, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x57, 0x41, 0x49, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x01, 0x12, 0x27, 0x0a, 0x23, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x52, 0x55, 0x4c, 0x45, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x52, 0x55, 0x4c, 0x45, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x41, 0x54, 0x45, 0x47, 0x59, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x52, 0x55, 0x4c, 0x45, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x52, 0x45, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x10, 0x04, 0x12, 0x29, 0x0a, 0x25, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x52, 0x55, 0x4c, 0x45, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x05, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x52, 0x55, 0x4c, 0x45, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x10, 0x06, 0x12, 0x23, 0x0a, 0x1f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x52, 0x55, 0x4c, 0x45, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x10, 0x07, 0x12, 0x26, 0x0a, 0x22, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x52, 0x55, 0x4c, 0x45, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x48, 0x4f, 0x57, 0x43, 0x41, 0x53, 0x45, 0x10, 0x08, 0x12, 0x2a, 0x0a, 0x26, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x52, 0x55, 0x4c, 0x45, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x55, 0x50, 0x10, 0x09, 0x12, 0x2d, 0x0a, 0x29, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x52, 0x55, 0x4c, 0x45, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x57, 0x41, 0x49, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x0a, 0x12, 0x27, 0x0a, 0x23, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x52, 0x55, 0x4c, 0x45, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x43, 0x45, 0x4e, 0x41, 0x52, 0x49, 0x4f, 0x5f, 0x53, 0x45, 0x54, 0x55, 0x50, 0x10, 0x0b, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x52, 0x55, 0x4c, 0x45, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4c, 0x41, 0x53, 0x54, 0x10, 0x0c, 0x2a, 0xa9, 0x03, 0x0a, 0x0c, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x43, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x43, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x47, 0x4f, 0x4f, 0x44, 0x5f, 0x47, 0x55, 0x59, 0x53, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x43, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x42, 0x41, 0x44, 0x5f, 0x47, 0x55, 0x59, 0x53, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x43, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x45, 0x52, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x43, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x50, 0x45, 0x43, 0x54, 0x41, 0x54, 0x4f, 0x52, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x43, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x43, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4e, 0x4f, 0x54, 0x45, 0x41, 0x4d, 0x10, 0x05, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x43, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x31, 0x10, 0x06, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x43, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x32, 0x10, 0x07, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x43, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x33, 0x10, 0x08, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x43, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x34, 0x10, 0x09, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x43, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x35, 0x10, 0x0a, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x43, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x36, 0x10, 0x0b, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x47, 0x43, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x55, 0x53, 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, 0xa2, 0x09, 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, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, 0x5f, 0x53, 0x50, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x45, 0x53, 0x54, 0x49, 0x56, 0x41, 0x4c, 0x10, 0x02, 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, 0x31, 0x33, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x55, 0x4d, 0x5f, 0x32, 0x30, 0x31, 0x34, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, 0x5f, 0x4e, 0x45, 0x58, 0x4f, 0x4e, 0x5f, 0x50, 0x43, 0x5f, 0x42, 0x41, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, 0x5f, 0x50, 0x57, 0x52, 0x44, 0x5f, 0x44, 0x41, 0x43, 0x5f, 0x32, 0x30, 0x31, 0x35, 0x10, 0x06, 0x12, 0x1b, 0x0a, 0x17, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x42, 0x4c, 0x4f, 0x4f, 0x4d, 0x5f, 0x32, 0x30, 0x31, 0x35, 0x10, 0x07, 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, 0x31, 0x35, 0x10, 0x08, 0x12, 0x1c, 0x0a, 0x18, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, 0x5f, 0x46, 0x41, 0x4c, 0x4c, 0x5f, 0x4d, 0x41, 0x4a, 0x4f, 0x52, 0x5f, 0x32, 0x30, 0x31, 0x35, 0x10, 0x09, 0x12, 0x16, 0x0a, 0x12, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, 0x5f, 0x4f, 0x52, 0x41, 0x43, 0x4c, 0x45, 0x5f, 0x50, 0x41, 0x10, 0x0a, 0x12, 0x24, 0x0a, 0x20, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x42, 0x4c, 0x4f, 0x4f, 0x4d, 0x5f, 0x32, 0x30, 0x31, 0x35, 0x5f, 0x50, 0x52, 0x45, 0x42, 0x45, 0x41, 0x53, 0x54, 0x10, 0x0b, 0x12, 0x16, 0x0a, 0x12, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, 0x5f, 0x46, 0x52, 0x4f, 0x53, 0x54, 0x49, 0x56, 0x55, 0x53, 0x10, 0x0c, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, 0x5f, 0x57, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x4d, 0x41, 0x4a, 0x4f, 0x52, 0x5f, 0x32, 0x30, 0x31, 0x36, 0x10, 0x0d, 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, 0x31, 0x36, 0x10, 0x0e, 0x12, 0x1c, 0x0a, 0x18, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, 0x5f, 0x46, 0x41, 0x4c, 0x4c, 0x5f, 0x4d, 0x41, 0x4a, 0x4f, 0x52, 0x5f, 0x32, 0x30, 0x31, 0x36, 0x10, 0x0f, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, 0x5f, 0x57, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x4d, 0x41, 0x4a, 0x4f, 0x52, 0x5f, 0x32, 0x30, 0x31, 0x37, 0x10, 0x10, 0x12, 0x1b, 0x0a, 0x17, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x42, 0x4c, 0x4f, 0x4f, 0x4d, 0x5f, 0x32, 0x30, 0x31, 0x37, 0x10, 0x11, 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, 0x31, 0x37, 0x10, 0x12, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, 0x5f, 0x50, 0x4c, 0x55, 0x53, 0x5f, 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x13, 0x12, 0x1d, 0x0a, 0x19, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, 0x5f, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x53, 0x5f, 0x44, 0x41, 0x59, 0x5f, 0x32, 0x30, 0x31, 0x37, 0x10, 0x14, 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, 0x31, 0x37, 0x10, 0x15, 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, 0x31, 0x38, 0x10, 0x16, 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, 0x31, 0x38, 0x10, 0x17, 0x12, 0x1b, 0x0a, 0x17, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x42, 0x4c, 0x4f, 0x4f, 0x4d, 0x5f, 0x32, 0x30, 0x31, 0x39, 0x10, 0x18, 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, 0x31, 0x39, 0x10, 0x19, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x45, 0x58, 0x50, 0x45, 0x52, 0x49, 0x45, 0x4e, 0x43, 0x45, 0x10, 0x1a, 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, 0x31, 0x39, 0x10, 0x1b, 0x12, 0x1b, 0x0a, 0x17, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x42, 0x4c, 0x4f, 0x4f, 0x4d, 0x5f, 0x32, 0x30, 0x32, 0x30, 0x10, 0x1c, 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, 0x30, 0x10, 0x1d, 0x12, 0x18, 0x0a, 0x14, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x10, 0x1e, 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x54, 0x49, 0x44, 0x45, 0x5f, 0x32, 0x30, 0x32, 0x30, 0x10, 0x1f, 0x12, 0x18, 0x0a, 0x14, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, 0x5f, 0x53, 0x50, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x32, 0x30, 0x32, 0x31, 0x10, 0x20, 0x12, 0x16, 0x0a, 0x12, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, 0x5f, 0x46, 0x41, 0x4c, 0x4c, 0x5f, 0x32, 0x30, 0x32, 0x31, 0x10, 0x21, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x5f, 0x46, 0x41, 0x4c, 0x4c, 0x5f, 0x32, 0x30, 0x32, 0x31, 0x10, 0x22, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x32, 0x30, 0x32, 0x31, 0x5f, 0x32, 0x30, 0x32, 0x32, 0x5f, 0x54, 0x4f, 0x55, 0x52, 0x32, 0x10, 0x23, 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, 0x32, 0x10, 0x24, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x32, 0x30, 0x32, 0x31, 0x5f, 0x32, 0x30, 0x32, 0x32, 0x5f, 0x54, 0x4f, 0x55, 0x52, 0x33, 0x10, 0x25, 0x12, 0x24, 0x0a, 0x20, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x5f, 0x32, 0x30, 0x32, 0x32, 0x10, 0x26, 0x2a, 0xa8, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 0x7d, 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, 0x2a, 0x44, 0x0a, 0x0f, 0x44, 0x4f, 0x54, 0x41, 0x47, 0x61, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x14, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x54, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x01, 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, 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, 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, 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, 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, 0xe9, 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, 0x12, 0x2c, 0x0a, 0x28, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x4d, 0x52, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x53, 0x6f, 0x6c, 0x6f, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x30, 0x31, 0x39, 0x10, 0x04, 0x12, 0x2e, 0x0a, 0x2a, 0x6b, 0x5f, 0x45, 0x44, 0x4f, 0x54, 0x41, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x4d, 0x52, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x31, 0x76, 0x31, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x55, 0x4e, 0x55, 0x53, 0x45, 0x44, 0x10, 0x05, 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, 0xc0, 0x03, 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, 0x21, 0x0a, 0x1d, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x45, 0x47, 0x41, 0x43, 0x59, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x45, 0x44, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x45, 0x47, 0x41, 0x43, 0x59, 0x5f, 0x53, 0x4f, 0x4c, 0x4f, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x10, 0x03, 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, 0x19, 0x0a, 0x15, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, 0x53, 0x55, 0x41, 0x4c, 0x5f, 0x31, 0x56, 0x31, 0x10, 0x06, 0x12, 0x14, 0x0a, 0x10, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x10, 0x07, 0x12, 0x1e, 0x0a, 0x1a, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x45, 0x44, 0x10, 0x08, 0x12, 0x20, 0x0a, 0x1c, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x4f, 0x57, 0x50, 0x52, 0x49, 0x5f, 0x44, 0x45, 0x50, 0x52, 0x45, 0x43, 0x41, 0x54, 0x45, 0x44, 0x10, 0x09, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x0a, 0x12, 0x17, 0x0a, 0x13, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x0b, 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, 0x17, 0x0a, 0x13, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x41, 0x55, 0x4e, 0x54, 0x4c, 0x45, 0x54, 0x10, 0x0d, 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, 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, 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, 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, 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, 0xd7, 0x01, 0x0a, 0x0a, 0x45, 0x42, 0x61, 0x64, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 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, 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, 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, 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, 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, 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, 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, 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, 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, 0xbf, 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, 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, 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, 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, 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, 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, 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, 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, 0x42, 0x0d, 0x48, 0x01, 0x5a, 0x06, 0x2e, 0x2f, 0x64, 0x65, 0x6d, 0x6f, 0x80, 0x01, 0x00, } var ( file_dota_shared_enums_proto_rawDescOnce sync.Once file_dota_shared_enums_proto_rawDescData = file_dota_shared_enums_proto_rawDesc ) func file_dota_shared_enums_proto_rawDescGZIP() []byte { file_dota_shared_enums_proto_rawDescOnce.Do(func() { file_dota_shared_enums_proto_rawDescData = protoimpl.X.CompressGZIP(file_dota_shared_enums_proto_rawDescData) }) return file_dota_shared_enums_proto_rawDescData } var file_dota_shared_enums_proto_enumTypes = make([]protoimpl.EnumInfo, 46) var file_dota_shared_enums_proto_msgTypes = make([]protoimpl.MessageInfo, 7) var file_dota_shared_enums_proto_goTypes = []interface{}{ (DOTA_GameMode)(0), // 0: DOTA_GameMode (DOTA_GameState)(0), // 1: DOTA_GameState (DOTA_GC_TEAM)(0), // 2: DOTA_GC_TEAM (EEvent)(0), // 3: EEvent (DOTALeaverStatusT)(0), // 4: DOTALeaverStatus_t (DOTAConnectionStateT)(0), // 5: DOTAConnectionState_t (Fantasy_Roles)(0), // 6: Fantasy_Roles (Fantasy_Team_Slots)(0), // 7: Fantasy_Team_Slots (Fantasy_Selection_Mode)(0), // 8: Fantasy_Selection_Mode (DOTAChatChannelTypeT)(0), // 9: DOTAChatChannelType_t (EChatSpecialPrivileges)(0), // 10: EChatSpecialPrivileges (EProfileCardSlotType)(0), // 11: EProfileCardSlotType (EMatchGroupServerStatus)(0), // 12: EMatchGroupServerStatus (DOTA_CM_PICK)(0), // 13: DOTA_CM_PICK (DOTALowPriorityBanType)(0), // 14: DOTALowPriorityBanType (DOTALobbyReadyState)(0), // 15: DOTALobbyReadyState (DOTAGameVersion)(0), // 16: DOTAGameVersion (DOTAJoinLobbyResult)(0), // 17: DOTAJoinLobbyResult (DOTASelectionPriorityRules)(0), // 18: DOTASelectionPriorityRules (DOTASelectionPriorityChoice)(0), // 19: DOTASelectionPriorityChoice (DOTAMatchVote)(0), // 20: DOTAMatchVote (DOTALobbyVisibility)(0), // 21: DOTALobbyVisibility (EDOTAPlayerMMRType)(0), // 22: EDOTAPlayerMMRType (EDOTAMMRBoostType)(0), // 23: EDOTAMMRBoostType (MatchType)(0), // 24: MatchType (DOTABotDifficulty)(0), // 25: DOTABotDifficulty (DOTA_BOT_MODE)(0), // 26: DOTA_BOT_MODE (MatchLanguages)(0), // 27: MatchLanguages (ETourneyQueueDeadlineState)(0), // 28: ETourneyQueueDeadlineState (EMatchOutcome)(0), // 29: EMatchOutcome (ELaneType)(0), // 30: ELaneType (EBadgeType)(0), // 31: EBadgeType (ELeagueStatus)(0), // 32: ELeagueStatus (ELeagueRegion)(0), // 33: ELeagueRegion (ELeagueTier)(0), // 34: ELeagueTier (ELeagueTierCategory)(0), // 35: ELeagueTierCategory (ELeagueDivision)(0), // 36: ELeagueDivision (ELeagueBroadcastProvider)(0), // 37: ELeagueBroadcastProvider (ELeaguePhase)(0), // 38: ELeaguePhase (ELeagueAuditAction)(0), // 39: ELeagueAuditAction (DOTA_COMBATLOG_TYPES)(0), // 40: DOTA_COMBATLOG_TYPES (EDPCFavoriteType)(0), // 41: EDPCFavoriteType (EDPCPushNotification)(0), // 42: EDPCPushNotification (EEventActionScoreMode)(0), // 43: EEventActionScoreMode (EPlayerChallengeHistoryType)(0), // 44: EPlayerChallengeHistoryType (EOverwatchReportReason)(0), // 45: EOverwatchReportReason (*CDOTAClientHardwareSpecs)(nil), // 46: CDOTAClientHardwareSpecs (*CDOTASaveGame)(nil), // 47: CDOTASaveGame (*CMsgDOTACombatLogEntry)(nil), // 48: CMsgDOTACombatLogEntry (*CMsgPendingEventAward)(nil), // 49: CMsgPendingEventAward (*CDOTASaveGame_Player)(nil), // 50: CDOTASaveGame.Player (*CDOTASaveGame_SaveInstance)(nil), // 51: CDOTASaveGame.SaveInstance (*CDOTASaveGame_SaveInstance_PlayerPositions)(nil), // 52: CDOTASaveGame.SaveInstance.PlayerPositions } var file_dota_shared_enums_proto_depIdxs = []int32{ 50, // 0: CDOTASaveGame.players:type_name -> CDOTASaveGame.Player 51, // 1: CDOTASaveGame.save_instances:type_name -> CDOTASaveGame.SaveInstance 40, // 2: CMsgDOTACombatLogEntry.type:type_name -> DOTA_COMBATLOG_TYPES 3, // 3: CMsgPendingEventAward.event_id:type_name -> EEvent 43, // 4: CMsgPendingEventAward.score_mode:type_name -> EEventActionScoreMode 2, // 5: CDOTASaveGame.Player.team:type_name -> DOTA_GC_TEAM 52, // 6: CDOTASaveGame.SaveInstance.player_positions:type_name -> CDOTASaveGame.SaveInstance.PlayerPositions 7, // [7:7] is the sub-list for method output_type 7, // [7:7] is the sub-list for method input_type 7, // [7:7] is the sub-list for extension type_name 7, // [7:7] is the sub-list for extension extendee 0, // [0:7] is the sub-list for field type_name } func init() { file_dota_shared_enums_proto_init() } func file_dota_shared_enums_proto_init() { if File_dota_shared_enums_proto != nil { return } if !protoimpl.UnsafeEnabled { file_dota_shared_enums_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTAClientHardwareSpecs); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_dota_shared_enums_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTASaveGame); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_dota_shared_enums_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgDOTACombatLogEntry); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_dota_shared_enums_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CMsgPendingEventAward); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_dota_shared_enums_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTASaveGame_Player); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_dota_shared_enums_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTASaveGame_SaveInstance); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_dota_shared_enums_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CDOTASaveGame_SaveInstance_PlayerPositions); 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_shared_enums_proto_rawDesc, NumEnums: 46, NumMessages: 7, NumExtensions: 0, NumServices: 0, }, GoTypes: file_dota_shared_enums_proto_goTypes, DependencyIndexes: file_dota_shared_enums_proto_depIdxs, EnumInfos: file_dota_shared_enums_proto_enumTypes, MessageInfos: file_dota_shared_enums_proto_msgTypes, }.Build() File_dota_shared_enums_proto = out.File file_dota_shared_enums_proto_rawDesc = nil file_dota_shared_enums_proto_goTypes = nil file_dota_shared_enums_proto_depIdxs = nil }