// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.27.1-devel // protoc v3.19.4 // source: login.proto package login 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 OpResultCode int32 const ( OpResultCode_OPRC_Sucess OpResultCode = 0 //成功 OpResultCode_OPRC_Error OpResultCode = 1 //失败 OpResultCode_OPRC_LoginFailed OpResultCode = 1000 //登录失败 OpResultCode_OPRC_LoginSignErr OpResultCode = 1001 //签名错误 OpResultCode_OPRC_LoginOtherPlace OpResultCode = 1002 //在其他地方登录 OpResultCode_OPRC_LoginPassError OpResultCode = 1003 //密码错误 OpResultCode_OPRC_Login_CreateAccSuccess OpResultCode = 1004 OpResultCode_OPRC_Login_CreateAccError OpResultCode = 1005 OpResultCode_OPRC_Login_NameLang OpResultCode = 1006 //名字太长 OpResultCode_OPRC_Login_NameSame OpResultCode = 1007 //名字已被使用 OpResultCode_OPRC_Login_NameError OpResultCode = 1008 //名字中有非法字符 OpResultCode_OPRC_Login_CreateFailed OpResultCode = 1009 //创建角色失败 OpResultCode_OPRC_AccountBeFreeze OpResultCode = 1010 //账号被冻结 OpResultCode_OPRC_YourResVerIsLow OpResultCode = 1044 //资源版本过低 OpResultCode_OPRC_YourAppVerIsLow OpResultCode = 1045 //APK版本过低 OpResultCode_OPRC_SceneServerMaintain OpResultCode = 1054 //服务器维护中,请稍后创建 OpResultCode_OPRC_TelError OpResultCode = 1065 //手机号不正确 OpResultCode_OPRC_TelCodeExpire OpResultCode = 1066 //手机验证码登录过期 OpResultCode_OPRC_TelCodeError OpResultCode = 1067 //手机验证码错误 ) // Enum value maps for OpResultCode. var ( OpResultCode_name = map[int32]string{ 0: "OPRC_Sucess", 1: "OPRC_Error", 1000: "OPRC_LoginFailed", 1001: "OPRC_LoginSignErr", 1002: "OPRC_LoginOtherPlace", 1003: "OPRC_LoginPassError", 1004: "OPRC_Login_CreateAccSuccess", 1005: "OPRC_Login_CreateAccError", 1006: "OPRC_Login_NameLang", 1007: "OPRC_Login_NameSame", 1008: "OPRC_Login_NameError", 1009: "OPRC_Login_CreateFailed", 1010: "OPRC_AccountBeFreeze", 1044: "OPRC_YourResVerIsLow", 1045: "OPRC_YourAppVerIsLow", 1054: "OPRC_SceneServerMaintain", 1065: "OPRC_TelError", 1066: "OPRC_TelCodeExpire", 1067: "OPRC_TelCodeError", } OpResultCode_value = map[string]int32{ "OPRC_Sucess": 0, "OPRC_Error": 1, "OPRC_LoginFailed": 1000, "OPRC_LoginSignErr": 1001, "OPRC_LoginOtherPlace": 1002, "OPRC_LoginPassError": 1003, "OPRC_Login_CreateAccSuccess": 1004, "OPRC_Login_CreateAccError": 1005, "OPRC_Login_NameLang": 1006, "OPRC_Login_NameSame": 1007, "OPRC_Login_NameError": 1008, "OPRC_Login_CreateFailed": 1009, "OPRC_AccountBeFreeze": 1010, "OPRC_YourResVerIsLow": 1044, "OPRC_YourAppVerIsLow": 1045, "OPRC_SceneServerMaintain": 1054, "OPRC_TelError": 1065, "OPRC_TelCodeExpire": 1066, "OPRC_TelCodeError": 1067, } ) func (x OpResultCode) Enum() *OpResultCode { p := new(OpResultCode) *p = x return p } func (x OpResultCode) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (OpResultCode) Descriptor() protoreflect.EnumDescriptor { return file_login_proto_enumTypes[0].Descriptor() } func (OpResultCode) Type() protoreflect.EnumType { return &file_login_proto_enumTypes[0] } func (x OpResultCode) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use OpResultCode.Descriptor instead. func (OpResultCode) EnumDescriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{0} } //登陆模块消息id type LoginPacketID int32 const ( LoginPacketID_PACKET_Login_ZERO LoginPacketID = 0 // 弃用消息号 LoginPacketID_PACKET_CS_LOGIN LoginPacketID = 2051 LoginPacketID_PACKET_SC_LOGIN LoginPacketID = 2052 LoginPacketID_PACKET_CS_LOGOUT LoginPacketID = 2053 // 登出 LoginPacketID_PACKET_SC_LOGOUT LoginPacketID = 2054 // 通知登出 LoginPacketID_PACKET_SC_GAMECONFIG LoginPacketID = 2055 //向平台推送游戏配置 LoginPacketID_PACKET_SC_BULLETIONINFO LoginPacketID = 2056 LoginPacketID_PACKET_CS_BULLETIONINFO LoginPacketID = 2057 LoginPacketID_PACKET_CS_CUSTOMERINFOLIST LoginPacketID = 2058 LoginPacketID_PACKET_SC_CUSTOMERINFOLIST LoginPacketID = 2059 LoginPacketID_PACKET_CS_CUSTOMSERVICE LoginPacketID = 2060 //客服地址 LoginPacketID_PACKET_SC_CUSTOMSERVICE LoginPacketID = 2061 //客服地址 LoginPacketID_PACKET_CS_PLATFORMCFG LoginPacketID = 2062 //平台配置信息 LoginPacketID_PACKET_SC_PLATFORMCFG LoginPacketID = 2063 //平台配置信息 LoginPacketID_PACKET_SC_ACTIVITYCHECK LoginPacketID = 2064 LoginPacketID_PACKET_CS_VERIFYTYPE LoginPacketID = 2065 LoginPacketID_PACKET_SC_VERIFYTYPE LoginPacketID = 2066 LoginPacketID_PACKET_CS_REGISTERVERIFYTYPE LoginPacketID = 2067 LoginPacketID_PACKET_SC_REGISTERVERIFYTYPE LoginPacketID = 2068 LoginPacketID_PACKET_SC_SYNCGAMEFREE LoginPacketID = 2069 LoginPacketID_PACKET_SC_ACTSWITCHCFG LoginPacketID = 2070 //所有活动开关 LoginPacketID_PACKET_CS_GETTHRGAMECFG LoginPacketID = 2071 //请求三方游戏配置 LoginPacketID_PACKET_SC_GETTHRGAMECFG LoginPacketID = 2072 //请求三方游戏配置 LoginPacketID_PACKET_CS_ACCOUNTINVALID LoginPacketID = 2073 //机器人自毁账号 ) // Enum value maps for LoginPacketID. var ( LoginPacketID_name = map[int32]string{ 0: "PACKET_Login_ZERO", 2051: "PACKET_CS_LOGIN", 2052: "PACKET_SC_LOGIN", 2053: "PACKET_CS_LOGOUT", 2054: "PACKET_SC_LOGOUT", 2055: "PACKET_SC_GAMECONFIG", 2056: "PACKET_SC_BULLETIONINFO", 2057: "PACKET_CS_BULLETIONINFO", 2058: "PACKET_CS_CUSTOMERINFOLIST", 2059: "PACKET_SC_CUSTOMERINFOLIST", 2060: "PACKET_CS_CUSTOMSERVICE", 2061: "PACKET_SC_CUSTOMSERVICE", 2062: "PACKET_CS_PLATFORMCFG", 2063: "PACKET_SC_PLATFORMCFG", 2064: "PACKET_SC_ACTIVITYCHECK", 2065: "PACKET_CS_VERIFYTYPE", 2066: "PACKET_SC_VERIFYTYPE", 2067: "PACKET_CS_REGISTERVERIFYTYPE", 2068: "PACKET_SC_REGISTERVERIFYTYPE", 2069: "PACKET_SC_SYNCGAMEFREE", 2070: "PACKET_SC_ACTSWITCHCFG", 2071: "PACKET_CS_GETTHRGAMECFG", 2072: "PACKET_SC_GETTHRGAMECFG", 2073: "PACKET_CS_ACCOUNTINVALID", } LoginPacketID_value = map[string]int32{ "PACKET_Login_ZERO": 0, "PACKET_CS_LOGIN": 2051, "PACKET_SC_LOGIN": 2052, "PACKET_CS_LOGOUT": 2053, "PACKET_SC_LOGOUT": 2054, "PACKET_SC_GAMECONFIG": 2055, "PACKET_SC_BULLETIONINFO": 2056, "PACKET_CS_BULLETIONINFO": 2057, "PACKET_CS_CUSTOMERINFOLIST": 2058, "PACKET_SC_CUSTOMERINFOLIST": 2059, "PACKET_CS_CUSTOMSERVICE": 2060, "PACKET_SC_CUSTOMSERVICE": 2061, "PACKET_CS_PLATFORMCFG": 2062, "PACKET_SC_PLATFORMCFG": 2063, "PACKET_SC_ACTIVITYCHECK": 2064, "PACKET_CS_VERIFYTYPE": 2065, "PACKET_SC_VERIFYTYPE": 2066, "PACKET_CS_REGISTERVERIFYTYPE": 2067, "PACKET_SC_REGISTERVERIFYTYPE": 2068, "PACKET_SC_SYNCGAMEFREE": 2069, "PACKET_SC_ACTSWITCHCFG": 2070, "PACKET_CS_GETTHRGAMECFG": 2071, "PACKET_SC_GETTHRGAMECFG": 2072, "PACKET_CS_ACCOUNTINVALID": 2073, } ) func (x LoginPacketID) Enum() *LoginPacketID { p := new(LoginPacketID) *p = x return p } func (x LoginPacketID) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (LoginPacketID) Descriptor() protoreflect.EnumDescriptor { return file_login_proto_enumTypes[1].Descriptor() } func (LoginPacketID) Type() protoreflect.EnumType { return &file_login_proto_enumTypes[1] } func (x LoginPacketID) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use LoginPacketID.Descriptor instead. func (LoginPacketID) EnumDescriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{1} } type SSDisconnectTypeCode int32 const ( SSDisconnectTypeCode_SSDTC_ZERO SSDisconnectTypeCode = 0 //占位 SSDisconnectTypeCode_SSDTC_Repeate SSDisconnectTypeCode = 1 SSDisconnectTypeCode_SSDTC_Freeze SSDisconnectTypeCode = 2 SSDisconnectTypeCode_SSDTC_ServerError SSDisconnectTypeCode = 3 SSDisconnectTypeCode_SSDTC_ServerMaintenance SSDisconnectTypeCode = 4 SSDisconnectTypeCode_SSDTC_ResVerLow SSDisconnectTypeCode = 5 SSDisconnectTypeCode_SSDTC_GameVerLow SSDisconnectTypeCode = 6 SSDisconnectTypeCode_SSDTC_BlackList SSDisconnectTypeCode = 7 ) // Enum value maps for SSDisconnectTypeCode. var ( SSDisconnectTypeCode_name = map[int32]string{ 0: "SSDTC_ZERO", 1: "SSDTC_Repeate", 2: "SSDTC_Freeze", 3: "SSDTC_ServerError", 4: "SSDTC_ServerMaintenance", 5: "SSDTC_ResVerLow", 6: "SSDTC_GameVerLow", 7: "SSDTC_BlackList", } SSDisconnectTypeCode_value = map[string]int32{ "SSDTC_ZERO": 0, "SSDTC_Repeate": 1, "SSDTC_Freeze": 2, "SSDTC_ServerError": 3, "SSDTC_ServerMaintenance": 4, "SSDTC_ResVerLow": 5, "SSDTC_GameVerLow": 6, "SSDTC_BlackList": 7, } ) func (x SSDisconnectTypeCode) Enum() *SSDisconnectTypeCode { p := new(SSDisconnectTypeCode) *p = x return p } func (x SSDisconnectTypeCode) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (SSDisconnectTypeCode) Descriptor() protoreflect.EnumDescriptor { return file_login_proto_enumTypes[2].Descriptor() } func (SSDisconnectTypeCode) Type() protoreflect.EnumType { return &file_login_proto_enumTypes[2] } func (x SSDisconnectTypeCode) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use SSDisconnectTypeCode.Descriptor instead. func (SSDisconnectTypeCode) EnumDescriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{2} } //PACKET_CS_LOGIN type CSLogin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Username string `protobuf:"bytes,1,opt,name=Username,proto3" json:"Username,omitempty"` //账号名 Password string `protobuf:"bytes,2,opt,name=Password,proto3" json:"Password,omitempty"` //密码 游客模式:md5(md5(Username+AppId)+AppId+TimeStamp) 账号模式:md5(md5(密码+AppId)+AppId+TimeStamp) TimeStamp int64 `protobuf:"varint,3,opt,name=TimeStamp,proto3" json:"TimeStamp,omitempty"` //时间戳 Params string `protobuf:"bytes,4,opt,name=Params,proto3" json:"Params,omitempty"` //其他参数 Sign string `protobuf:"bytes,5,opt,name=Sign,proto3" json:"Sign,omitempty"` //签名:=md5(Username+Password+TimeStamp+Params+AppId) Platform string `protobuf:"bytes,6,opt,name=Platform,proto3" json:"Platform,omitempty"` //平台 Channel string `protobuf:"bytes,7,opt,name=Channel,proto3" json:"Channel,omitempty"` //渠道号 InviterId int32 `protobuf:"varint,8,opt,name=InviterId,proto3" json:"InviterId,omitempty"` //邀请人ID ApkVer int32 `protobuf:"varint,9,opt,name=ApkVer,proto3" json:"ApkVer,omitempty"` //apk版本号 ResVer int32 `protobuf:"varint,10,opt,name=ResVer,proto3" json:"ResVer,omitempty"` //资源版本号 LoginType int32 `protobuf:"varint,11,opt,name=LoginType,proto3" json:"LoginType,omitempty"` //登录类型 0:游客登录 1:帐号登录 2:手机号登录 6:谷歌,facebook PlatformTag string `protobuf:"bytes,12,opt,name=PlatformTag,proto3" json:"PlatformTag,omitempty"` //android包名或者ios标记 DeviceOs string `protobuf:"bytes,13,opt,name=DeviceOs,proto3" json:"DeviceOs,omitempty"` //系统android,ios,windows Promoter string `protobuf:"bytes,14,opt,name=Promoter,proto3" json:"Promoter,omitempty"` //推广员 Package string `protobuf:"bytes,15,opt,name=Package,proto3" json:"Package,omitempty"` //安卓包名或者苹果bundleid PromoterTree int32 `protobuf:"varint,16,opt,name=PromoterTree,proto3" json:"PromoterTree,omitempty"` //无限代推广人id DeviceInfo string `protobuf:"bytes,17,opt,name=DeviceInfo,proto3" json:"DeviceInfo,omitempty"` //设备信息 加密后的base64 DeviceId string `protobuf:"bytes,18,opt,name=DeviceId,proto3" json:"DeviceId,omitempty"` //设备号 Token string `protobuf:"bytes,19,opt,name=Token,proto3" json:"Token,omitempty"` //API用户登录 Name string `protobuf:"bytes,20,opt,name=Name,proto3" json:"Name,omitempty"` //三方账户名 HeadUrl string `protobuf:"bytes,21,opt,name=HeadUrl,proto3" json:"HeadUrl,omitempty"` //三方头像 AccountType int32 `protobuf:"varint,22,opt,name=AccountType,proto3" json:"AccountType,omitempty"` //账户类型 0.其他 1.google 2.facebook 3.手机号 Code string `protobuf:"bytes,23,opt,name=Code,proto3" json:"Code,omitempty"` // 验证码; 手机号验证码登录时使用 } func (x *CSLogin) Reset() { *x = CSLogin{} if protoimpl.UnsafeEnabled { mi := &file_login_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSLogin) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSLogin) ProtoMessage() {} func (x *CSLogin) ProtoReflect() protoreflect.Message { mi := &file_login_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 CSLogin.ProtoReflect.Descriptor instead. func (*CSLogin) Descriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{0} } func (x *CSLogin) GetUsername() string { if x != nil { return x.Username } return "" } func (x *CSLogin) GetPassword() string { if x != nil { return x.Password } return "" } func (x *CSLogin) GetTimeStamp() int64 { if x != nil { return x.TimeStamp } return 0 } func (x *CSLogin) GetParams() string { if x != nil { return x.Params } return "" } func (x *CSLogin) GetSign() string { if x != nil { return x.Sign } return "" } func (x *CSLogin) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *CSLogin) GetChannel() string { if x != nil { return x.Channel } return "" } func (x *CSLogin) GetInviterId() int32 { if x != nil { return x.InviterId } return 0 } func (x *CSLogin) GetApkVer() int32 { if x != nil { return x.ApkVer } return 0 } func (x *CSLogin) GetResVer() int32 { if x != nil { return x.ResVer } return 0 } func (x *CSLogin) GetLoginType() int32 { if x != nil { return x.LoginType } return 0 } func (x *CSLogin) GetPlatformTag() string { if x != nil { return x.PlatformTag } return "" } func (x *CSLogin) GetDeviceOs() string { if x != nil { return x.DeviceOs } return "" } func (x *CSLogin) GetPromoter() string { if x != nil { return x.Promoter } return "" } func (x *CSLogin) GetPackage() string { if x != nil { return x.Package } return "" } func (x *CSLogin) GetPromoterTree() int32 { if x != nil { return x.PromoterTree } return 0 } func (x *CSLogin) GetDeviceInfo() string { if x != nil { return x.DeviceInfo } return "" } func (x *CSLogin) GetDeviceId() string { if x != nil { return x.DeviceId } return "" } func (x *CSLogin) GetToken() string { if x != nil { return x.Token } return "" } func (x *CSLogin) GetName() string { if x != nil { return x.Name } return "" } func (x *CSLogin) GetHeadUrl() string { if x != nil { return x.HeadUrl } return "" } func (x *CSLogin) GetAccountType() int32 { if x != nil { return x.AccountType } return 0 } func (x *CSLogin) GetCode() string { if x != nil { return x.Code } return "" } //游戏版本号 type GameVer struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameId int32 `protobuf:"varint,1,opt,name=GameId,proto3" json:"GameId,omitempty"` //游戏ID MinApkVer int32 `protobuf:"varint,2,opt,name=MinApkVer,proto3" json:"MinApkVer,omitempty"` //最低apk版本号 LatestApkVer int32 `protobuf:"varint,3,opt,name=LatestApkVer,proto3" json:"LatestApkVer,omitempty"` //最新apk版本号 MinResVer int32 `protobuf:"varint,4,opt,name=MinResVer,proto3" json:"MinResVer,omitempty"` //最低资源版本号 LatestResVer int32 `protobuf:"varint,5,opt,name=LatestResVer,proto3" json:"LatestResVer,omitempty"` //最新资源版本号 } func (x *GameVer) Reset() { *x = GameVer{} if protoimpl.UnsafeEnabled { mi := &file_login_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GameVer) String() string { return protoimpl.X.MessageStringOf(x) } func (*GameVer) ProtoMessage() {} func (x *GameVer) ProtoReflect() protoreflect.Message { mi := &file_login_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 GameVer.ProtoReflect.Descriptor instead. func (*GameVer) Descriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{1} } func (x *GameVer) GetGameId() int32 { if x != nil { return x.GameId } return 0 } func (x *GameVer) GetMinApkVer() int32 { if x != nil { return x.MinApkVer } return 0 } func (x *GameVer) GetLatestApkVer() int32 { if x != nil { return x.LatestApkVer } return 0 } func (x *GameVer) GetMinResVer() int32 { if x != nil { return x.MinResVer } return 0 } func (x *GameVer) GetLatestResVer() int32 { if x != nil { return x.LatestResVer } return 0 } //游戏配置 type GameConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameId int32 `protobuf:"varint,1,opt,name=GameId,proto3" json:"GameId,omitempty"` //游戏ID LogicId int32 `protobuf:"varint,2,opt,name=LogicId,proto3" json:"LogicId,omitempty"` //对应DB_GameFree.xlsx中的id GameMode int32 `protobuf:"varint,3,opt,name=GameMode,proto3" json:"GameMode,omitempty"` //游戏模式 State bool `protobuf:"varint,4,opt,name=State,proto3" json:"State,omitempty"` //开关 false:不开启 true:开启 LimitCoin int64 `protobuf:"varint,5,opt,name=LimitCoin,proto3" json:"LimitCoin,omitempty"` //进房下限 MaxCoinLimit int64 `protobuf:"varint,6,opt,name=MaxCoinLimit,proto3" json:"MaxCoinLimit,omitempty"` //入场上限 BaseScore int32 `protobuf:"varint,7,opt,name=BaseScore,proto3" json:"BaseScore,omitempty"` //底分 OtherIntParams []int64 `protobuf:"varint,8,rep,packed,name=OtherIntParams,proto3" json:"OtherIntParams,omitempty"` //其他参数 BetScore int32 `protobuf:"varint,9,opt,name=BetScore,proto3" json:"BetScore,omitempty"` //押注限制 MaxBetCoin []int32 `protobuf:"varint,10,rep,packed,name=MaxBetCoin,proto3" json:"MaxBetCoin,omitempty"` //多门押注限制 MatchMode int32 `protobuf:"varint,11,opt,name=MatchMode,proto3" json:"MatchMode,omitempty"` //0:默认1:队列 LotteryCfg string `protobuf:"bytes,12,opt,name=LotteryCfg,proto3" json:"LotteryCfg,omitempty"` //彩金池配置 LotteryCoin int64 `protobuf:"varint,13,opt,name=LotteryCoin,proto3" json:"LotteryCoin,omitempty"` //彩金池 } func (x *GameConfig) Reset() { *x = GameConfig{} if protoimpl.UnsafeEnabled { mi := &file_login_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GameConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*GameConfig) ProtoMessage() {} func (x *GameConfig) ProtoReflect() protoreflect.Message { mi := &file_login_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 GameConfig.ProtoReflect.Descriptor instead. func (*GameConfig) Descriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{2} } func (x *GameConfig) GetGameId() int32 { if x != nil { return x.GameId } return 0 } func (x *GameConfig) GetLogicId() int32 { if x != nil { return x.LogicId } return 0 } func (x *GameConfig) GetGameMode() int32 { if x != nil { return x.GameMode } return 0 } func (x *GameConfig) GetState() bool { if x != nil { return x.State } return false } func (x *GameConfig) GetLimitCoin() int64 { if x != nil { return x.LimitCoin } return 0 } func (x *GameConfig) GetMaxCoinLimit() int64 { if x != nil { return x.MaxCoinLimit } return 0 } func (x *GameConfig) GetBaseScore() int32 { if x != nil { return x.BaseScore } return 0 } func (x *GameConfig) GetOtherIntParams() []int64 { if x != nil { return x.OtherIntParams } return nil } func (x *GameConfig) GetBetScore() int32 { if x != nil { return x.BetScore } return 0 } func (x *GameConfig) GetMaxBetCoin() []int32 { if x != nil { return x.MaxBetCoin } return nil } func (x *GameConfig) GetMatchMode() int32 { if x != nil { return x.MatchMode } return 0 } func (x *GameConfig) GetLotteryCfg() string { if x != nil { return x.LotteryCfg } return "" } func (x *GameConfig) GetLotteryCoin() int64 { if x != nil { return x.LotteryCoin } return 0 } type LoginGameConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields LogicId int32 `protobuf:"varint,1,opt,name=LogicId,proto3" json:"LogicId,omitempty"` //对应DB_GameFree.xlsx中的id LimitCoin int32 `protobuf:"varint,2,opt,name=LimitCoin,proto3" json:"LimitCoin,omitempty"` //进房下限 MaxCoinLimit int32 `protobuf:"varint,3,opt,name=MaxCoinLimit,proto3" json:"MaxCoinLimit,omitempty"` //入场上限 BaseScore int32 `protobuf:"varint,4,opt,name=BaseScore,proto3" json:"BaseScore,omitempty"` //底分 OtherIntParams []int32 `protobuf:"varint,5,rep,packed,name=OtherIntParams,proto3" json:"OtherIntParams,omitempty"` //其他参数 BetScore int32 `protobuf:"varint,6,opt,name=BetScore,proto3" json:"BetScore,omitempty"` //押注限制 MaxBetCoin []int32 `protobuf:"varint,7,rep,packed,name=MaxBetCoin,proto3" json:"MaxBetCoin,omitempty"` //多门押注限制 MatchMode int32 `protobuf:"varint,8,opt,name=MatchMode,proto3" json:"MatchMode,omitempty"` //0:默认1:队列 LotteryCoin int64 `protobuf:"varint,9,opt,name=LotteryCoin,proto3" json:"LotteryCoin,omitempty"` //彩金池 LotteryCfg string `protobuf:"bytes,10,opt,name=LotteryCfg,proto3" json:"LotteryCfg,omitempty"` //彩金池配置 } func (x *LoginGameConfig) Reset() { *x = LoginGameConfig{} if protoimpl.UnsafeEnabled { mi := &file_login_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LoginGameConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*LoginGameConfig) ProtoMessage() {} func (x *LoginGameConfig) ProtoReflect() protoreflect.Message { mi := &file_login_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 LoginGameConfig.ProtoReflect.Descriptor instead. func (*LoginGameConfig) Descriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{3} } func (x *LoginGameConfig) GetLogicId() int32 { if x != nil { return x.LogicId } return 0 } func (x *LoginGameConfig) GetLimitCoin() int32 { if x != nil { return x.LimitCoin } return 0 } func (x *LoginGameConfig) GetMaxCoinLimit() int32 { if x != nil { return x.MaxCoinLimit } return 0 } func (x *LoginGameConfig) GetBaseScore() int32 { if x != nil { return x.BaseScore } return 0 } func (x *LoginGameConfig) GetOtherIntParams() []int32 { if x != nil { return x.OtherIntParams } return nil } func (x *LoginGameConfig) GetBetScore() int32 { if x != nil { return x.BetScore } return 0 } func (x *LoginGameConfig) GetMaxBetCoin() []int32 { if x != nil { return x.MaxBetCoin } return nil } func (x *LoginGameConfig) GetMatchMode() int32 { if x != nil { return x.MatchMode } return 0 } func (x *LoginGameConfig) GetLotteryCoin() int64 { if x != nil { return x.LotteryCoin } return 0 } func (x *LoginGameConfig) GetLotteryCfg() string { if x != nil { return x.LotteryCfg } return "" } type LoginGameInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameId int32 `protobuf:"varint,1,opt,name=GameId,proto3" json:"GameId,omitempty"` //游戏ID LogicId int32 `protobuf:"varint,2,opt,name=LogicId,proto3" json:"LogicId,omitempty"` //对应DB_GameFree.xlsx中的id LotteryCoin int64 `protobuf:"varint,3,opt,name=LotteryCoin,proto3" json:"LotteryCoin,omitempty"` //彩金池 } func (x *LoginGameInfo) Reset() { *x = LoginGameInfo{} if protoimpl.UnsafeEnabled { mi := &file_login_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LoginGameInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*LoginGameInfo) ProtoMessage() {} func (x *LoginGameInfo) ProtoReflect() protoreflect.Message { mi := &file_login_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 LoginGameInfo.ProtoReflect.Descriptor instead. func (*LoginGameInfo) Descriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{4} } func (x *LoginGameInfo) GetGameId() int32 { if x != nil { return x.GameId } return 0 } func (x *LoginGameInfo) GetLogicId() int32 { if x != nil { return x.LogicId } return 0 } func (x *LoginGameInfo) GetLotteryCoin() int64 { if x != nil { return x.LotteryCoin } return 0 } type LoginThrGameConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields LogicId int32 `protobuf:"varint,1,opt,name=LogicId,proto3" json:"LogicId,omitempty"` //对应DB_GameFree.xlsx中的id LimitCoin int64 `protobuf:"varint,2,opt,name=LimitCoin,proto3" json:"LimitCoin,omitempty"` //进房下限 } func (x *LoginThrGameConfig) Reset() { *x = LoginThrGameConfig{} if protoimpl.UnsafeEnabled { mi := &file_login_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LoginThrGameConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*LoginThrGameConfig) ProtoMessage() {} func (x *LoginThrGameConfig) ProtoReflect() protoreflect.Message { mi := &file_login_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 LoginThrGameConfig.ProtoReflect.Descriptor instead. func (*LoginThrGameConfig) Descriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{5} } func (x *LoginThrGameConfig) GetLogicId() int32 { if x != nil { return x.LogicId } return 0 } func (x *LoginThrGameConfig) GetLimitCoin() int64 { if x != nil { return x.LimitCoin } return 0 } //PACKET_SC_GAMECONFIG type SCGameConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameCfg []*GameConfig `protobuf:"bytes,1,rep,name=GameCfg,proto3" json:"GameCfg,omitempty"` //游戏配置 } func (x *SCGameConfig) Reset() { *x = SCGameConfig{} if protoimpl.UnsafeEnabled { mi := &file_login_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCGameConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCGameConfig) ProtoMessage() {} func (x *SCGameConfig) ProtoReflect() protoreflect.Message { mi := &file_login_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 SCGameConfig.ProtoReflect.Descriptor instead. func (*SCGameConfig) Descriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{6} } func (x *SCGameConfig) GetGameCfg() []*GameConfig { if x != nil { return x.GameCfg } return nil } //PACKET_SC_LOGIN type SCLogin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=login.OpResultCode" json:"OpRetCode,omitempty"` //登录结果 AccId string `protobuf:"bytes,2,opt,name=AccId,proto3" json:"AccId,omitempty"` //账号ID SrvTs int64 `protobuf:"varint,3,opt,name=SrvTs,proto3" json:"SrvTs,omitempty"` //服务器时间戳 MinApkVer int32 `protobuf:"varint,4,opt,name=MinApkVer,proto3" json:"MinApkVer,omitempty"` //最低apk版本号 LatestApkVer int32 `protobuf:"varint,5,opt,name=LatestApkVer,proto3" json:"LatestApkVer,omitempty"` //最新apk版本号 MinResVer int32 `protobuf:"varint,6,opt,name=MinResVer,proto3" json:"MinResVer,omitempty"` //最低资源版本号 LatestResVer int32 `protobuf:"varint,7,opt,name=LatestResVer,proto3" json:"LatestResVer,omitempty"` //最新资源版本号 SubGameVer []*GameVer `protobuf:"bytes,8,rep,name=SubGameVer,proto3" json:"SubGameVer,omitempty"` //子游戏版本号 GameInfo []*LoginGameInfo `protobuf:"bytes,9,rep,name=GameInfo,proto3" json:"GameInfo,omitempty"` //游戏信息 ThrGameId []int32 `protobuf:"varint,10,rep,packed,name=ThrGameId,proto3" json:"ThrGameId,omitempty"` //三方游戏id EntrySwitch []int32 `protobuf:"varint,11,rep,packed,name=EntrySwitch,proto3" json:"EntrySwitch,omitempty"` //入口开关 CurrencyType string `protobuf:"bytes,12,opt,name=CurrencyType,proto3" json:"CurrencyType,omitempty"` // 货币类型 USD 美元 KHR 瑞尔 VND 越南盾 CurrencyRatio int32 `protobuf:"varint,13,opt,name=CurrencyRatio,proto3" json:"CurrencyRatio,omitempty"` // 货币比例 ApkUrl string `protobuf:"bytes,14,opt,name=ApkUrl,proto3" json:"ApkUrl,omitempty"` //apk 下载地址 IpaUrl string `protobuf:"bytes,15,opt,name=IpaUrl,proto3" json:"IpaUrl,omitempty"` //ipa 下载地址 Token string `protobuf:"bytes,16,opt,name=Token,proto3" json:"Token,omitempty"` // md5(密码+AppId) ClientParam string `protobuf:"bytes,17,opt,name=ClientParam,proto3" json:"ClientParam,omitempty"` // 客户端配置文件 } func (x *SCLogin) Reset() { *x = SCLogin{} if protoimpl.UnsafeEnabled { mi := &file_login_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCLogin) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCLogin) ProtoMessage() {} func (x *SCLogin) ProtoReflect() protoreflect.Message { mi := &file_login_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCLogin.ProtoReflect.Descriptor instead. func (*SCLogin) Descriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{7} } func (x *SCLogin) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } func (x *SCLogin) GetAccId() string { if x != nil { return x.AccId } return "" } func (x *SCLogin) GetSrvTs() int64 { if x != nil { return x.SrvTs } return 0 } func (x *SCLogin) GetMinApkVer() int32 { if x != nil { return x.MinApkVer } return 0 } func (x *SCLogin) GetLatestApkVer() int32 { if x != nil { return x.LatestApkVer } return 0 } func (x *SCLogin) GetMinResVer() int32 { if x != nil { return x.MinResVer } return 0 } func (x *SCLogin) GetLatestResVer() int32 { if x != nil { return x.LatestResVer } return 0 } func (x *SCLogin) GetSubGameVer() []*GameVer { if x != nil { return x.SubGameVer } return nil } func (x *SCLogin) GetGameInfo() []*LoginGameInfo { if x != nil { return x.GameInfo } return nil } func (x *SCLogin) GetThrGameId() []int32 { if x != nil { return x.ThrGameId } return nil } func (x *SCLogin) GetEntrySwitch() []int32 { if x != nil { return x.EntrySwitch } return nil } func (x *SCLogin) GetCurrencyType() string { if x != nil { return x.CurrencyType } return "" } func (x *SCLogin) GetCurrencyRatio() int32 { if x != nil { return x.CurrencyRatio } return 0 } func (x *SCLogin) GetApkUrl() string { if x != nil { return x.ApkUrl } return "" } func (x *SCLogin) GetIpaUrl() string { if x != nil { return x.IpaUrl } return "" } func (x *SCLogin) GetToken() string { if x != nil { return x.Token } return "" } func (x *SCLogin) GetClientParam() string { if x != nil { return x.ClientParam } return "" } //公告参数 type Bulletion struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //公告logid NoticeTitle string `protobuf:"bytes,3,opt,name=NoticeTitle,proto3" json:"NoticeTitle,omitempty"` //公告标题 NoticeContent string `protobuf:"bytes,4,opt,name=NoticeContent,proto3" json:"NoticeContent,omitempty"` //公告内容 UpdateTime string `protobuf:"bytes,5,opt,name=UpdateTime,proto3" json:"UpdateTime,omitempty"` //更新时间 Sort int32 `protobuf:"varint,6,opt,name=Sort,proto3" json:"Sort,omitempty"` //排序字段 } func (x *Bulletion) Reset() { *x = Bulletion{} if protoimpl.UnsafeEnabled { mi := &file_login_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Bulletion) String() string { return protoimpl.X.MessageStringOf(x) } func (*Bulletion) ProtoMessage() {} func (x *Bulletion) ProtoReflect() protoreflect.Message { mi := &file_login_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Bulletion.ProtoReflect.Descriptor instead. func (*Bulletion) Descriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{8} } func (x *Bulletion) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *Bulletion) GetNoticeTitle() string { if x != nil { return x.NoticeTitle } return "" } func (x *Bulletion) GetNoticeContent() string { if x != nil { return x.NoticeContent } return "" } func (x *Bulletion) GetUpdateTime() string { if x != nil { return x.UpdateTime } return "" } func (x *Bulletion) GetSort() int32 { if x != nil { return x.Sort } return 0 } //公告列表 //PACKET_SC_BULLETIONINFO type SCBulletionInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` BulletionList []*Bulletion `protobuf:"bytes,2,rep,name=bulletionList,proto3" json:"bulletionList,omitempty"` } func (x *SCBulletionInfo) Reset() { *x = SCBulletionInfo{} if protoimpl.UnsafeEnabled { mi := &file_login_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCBulletionInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCBulletionInfo) ProtoMessage() {} func (x *SCBulletionInfo) ProtoReflect() protoreflect.Message { mi := &file_login_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCBulletionInfo.ProtoReflect.Descriptor instead. func (*SCBulletionInfo) Descriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{9} } func (x *SCBulletionInfo) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *SCBulletionInfo) GetBulletionList() []*Bulletion { if x != nil { return x.BulletionList } return nil } //请求公告 //PACKET_CS_BULLETIONINFO type CSBulletionInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PlatformTag string `protobuf:"bytes,1,opt,name=PlatformTag,proto3" json:"PlatformTag,omitempty"` //android包名或者ios标记 } func (x *CSBulletionInfo) Reset() { *x = CSBulletionInfo{} if protoimpl.UnsafeEnabled { mi := &file_login_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSBulletionInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSBulletionInfo) ProtoMessage() {} func (x *CSBulletionInfo) ProtoReflect() protoreflect.Message { mi := &file_login_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSBulletionInfo.ProtoReflect.Descriptor instead. func (*CSBulletionInfo) Descriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{10} } func (x *CSBulletionInfo) GetPlatformTag() string { if x != nil { return x.PlatformTag } return "" } //招商信息 type Customer struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` //招商id WeixinAccount string `protobuf:"bytes,2,opt,name=weixin_account,json=weixinAccount,proto3" json:"weixin_account,omitempty"` //招商微信账号 Headurl string `protobuf:"bytes,3,opt,name=headurl,proto3" json:"headurl,omitempty"` //头像地址 Nickname string `protobuf:"bytes,4,opt,name=nickname,proto3" json:"nickname,omitempty"` //招商代理名字 Ext string `protobuf:"bytes,5,opt,name=ext,proto3" json:"ext,omitempty"` //额外数据 QqAccount string `protobuf:"bytes,6,opt,name=qq_account,json=qqAccount,proto3" json:"qq_account,omitempty"` //招商QQ账号 } func (x *Customer) Reset() { *x = Customer{} if protoimpl.UnsafeEnabled { mi := &file_login_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Customer) String() string { return protoimpl.X.MessageStringOf(x) } func (*Customer) ProtoMessage() {} func (x *Customer) ProtoReflect() protoreflect.Message { mi := &file_login_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Customer.ProtoReflect.Descriptor instead. func (*Customer) Descriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{11} } func (x *Customer) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *Customer) GetWeixinAccount() string { if x != nil { return x.WeixinAccount } return "" } func (x *Customer) GetHeadurl() string { if x != nil { return x.Headurl } return "" } func (x *Customer) GetNickname() string { if x != nil { return x.Nickname } return "" } func (x *Customer) GetExt() string { if x != nil { return x.Ext } return "" } func (x *Customer) GetQqAccount() string { if x != nil { return x.QqAccount } return "" } //招商列表 //PACKET_SC_CUSTOMERINFOLIST type SCCustomerInfoList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CustomerList []*Customer `protobuf:"bytes,1,rep,name=customerList,proto3" json:"customerList,omitempty"` } func (x *SCCustomerInfoList) Reset() { *x = SCCustomerInfoList{} if protoimpl.UnsafeEnabled { mi := &file_login_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCCustomerInfoList) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCCustomerInfoList) ProtoMessage() {} func (x *SCCustomerInfoList) ProtoReflect() protoreflect.Message { mi := &file_login_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCCustomerInfoList.ProtoReflect.Descriptor instead. func (*SCCustomerInfoList) Descriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{12} } func (x *SCCustomerInfoList) GetCustomerList() []*Customer { if x != nil { return x.CustomerList } return nil } //请求招商列表 //PACKET_CS_CUSTOMERINFOLIST type CSCustomerInfoList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *CSCustomerInfoList) Reset() { *x = CSCustomerInfoList{} if protoimpl.UnsafeEnabled { mi := &file_login_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSCustomerInfoList) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSCustomerInfoList) ProtoMessage() {} func (x *CSCustomerInfoList) ProtoReflect() protoreflect.Message { mi := &file_login_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSCustomerInfoList.ProtoReflect.Descriptor instead. func (*CSCustomerInfoList) Descriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{13} } //PACKET_CS_LOGOUT type CSLogout struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` Sid int64 `protobuf:"varint,2,opt,name=Sid,proto3" json:"Sid,omitempty"` } func (x *CSLogout) Reset() { *x = CSLogout{} if protoimpl.UnsafeEnabled { mi := &file_login_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSLogout) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSLogout) ProtoMessage() {} func (x *CSLogout) ProtoReflect() protoreflect.Message { mi := &file_login_proto_msgTypes[14] 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 CSLogout.ProtoReflect.Descriptor instead. func (*CSLogout) Descriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{14} } func (x *CSLogout) GetType() int32 { if x != nil { return x.Type } return 0 } func (x *CSLogout) GetSid() int64 { if x != nil { return x.Sid } return 0 } // PACKET_SC_LOGOUT type SCLogout struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=login.OpResultCode" json:"OpRetCode,omitempty"` //登出结果 Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` } func (x *SCLogout) Reset() { *x = SCLogout{} if protoimpl.UnsafeEnabled { mi := &file_login_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCLogout) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCLogout) ProtoMessage() {} func (x *SCLogout) ProtoReflect() protoreflect.Message { mi := &file_login_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCLogout.ProtoReflect.Descriptor instead. func (*SCLogout) Descriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{15} } func (x *SCLogout) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } func (x *SCLogout) GetType() int32 { if x != nil { return x.Type } return 0 } // PACKET_CS_CUSTOMSERVICE type CSCustomService struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *CSCustomService) Reset() { *x = CSCustomService{} if protoimpl.UnsafeEnabled { mi := &file_login_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSCustomService) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSCustomService) ProtoMessage() {} func (x *CSCustomService) ProtoReflect() protoreflect.Message { mi := &file_login_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSCustomService.ProtoReflect.Descriptor instead. func (*CSCustomService) Descriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{16} } type SCCustomService struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Url string `protobuf:"bytes,1,opt,name=Url,proto3" json:"Url,omitempty"` //客户服务地址 OpenFlag int32 `protobuf:"varint,2,opt,name=OpenFlag,proto3" json:"OpenFlag,omitempty"` //打开标记 CustomType int32 `protobuf:"varint,3,opt,name=CustomType,proto3" json:"CustomType,omitempty"` //客服类型 0:live800 1:美洽 2:cc } func (x *SCCustomService) Reset() { *x = SCCustomService{} if protoimpl.UnsafeEnabled { mi := &file_login_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCCustomService) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCCustomService) ProtoMessage() {} func (x *SCCustomService) ProtoReflect() protoreflect.Message { mi := &file_login_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCCustomService.ProtoReflect.Descriptor instead. func (*SCCustomService) Descriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{17} } func (x *SCCustomService) GetUrl() string { if x != nil { return x.Url } return "" } func (x *SCCustomService) GetOpenFlag() int32 { if x != nil { return x.OpenFlag } return 0 } func (x *SCCustomService) GetCustomType() int32 { if x != nil { return x.CustomType } return 0 } //PACKET_SS_DICONNECT type SSDisconnect struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SessionId int64 `protobuf:"varint,1,opt,name=SessionId,proto3" json:"SessionId,omitempty"` Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` //1:顶号 2:封号 3:服务器错误 4:服务器维护 5:资源版本过低 6:程序版本过低 7:黑名单 } func (x *SSDisconnect) Reset() { *x = SSDisconnect{} if protoimpl.UnsafeEnabled { mi := &file_login_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SSDisconnect) String() string { return protoimpl.X.MessageStringOf(x) } func (*SSDisconnect) ProtoMessage() {} func (x *SSDisconnect) ProtoReflect() protoreflect.Message { mi := &file_login_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SSDisconnect.ProtoReflect.Descriptor instead. func (*SSDisconnect) Descriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{18} } func (x *SSDisconnect) GetSessionId() int64 { if x != nil { return x.SessionId } return 0 } func (x *SSDisconnect) GetType() int32 { if x != nil { return x.Type } return 0 } //PACKET_CS_PLATFORMCFG type CSPlatFormConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PlatformTag string `protobuf:"bytes,1,opt,name=PlatformTag,proto3" json:"PlatformTag,omitempty"` //android包名或者ios标记 } func (x *CSPlatFormConfig) Reset() { *x = CSPlatFormConfig{} if protoimpl.UnsafeEnabled { mi := &file_login_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSPlatFormConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSPlatFormConfig) ProtoMessage() {} func (x *CSPlatFormConfig) ProtoReflect() protoreflect.Message { mi := &file_login_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSPlatFormConfig.ProtoReflect.Descriptor instead. func (*CSPlatFormConfig) Descriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{19} } func (x *CSPlatFormConfig) GetPlatformTag() string { if x != nil { return x.PlatformTag } return "" } type RebateCfg struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RebateSwitch bool `protobuf:"varint,1,opt,name=RebateSwitch,proto3" json:"RebateSwitch,omitempty"` //返利开关 ReceiveMode int32 `protobuf:"varint,2,opt,name=ReceiveMode,proto3" json:"ReceiveMode,omitempty"` //领取方式 0实时领取 1次日领取 NotGiveOverdue int32 `protobuf:"varint,3,opt,name=NotGiveOverdue,proto3" json:"NotGiveOverdue,omitempty"` //0不过期 1过期不给 2过期邮件给 } func (x *RebateCfg) Reset() { *x = RebateCfg{} if protoimpl.UnsafeEnabled { mi := &file_login_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RebateCfg) String() string { return protoimpl.X.MessageStringOf(x) } func (*RebateCfg) ProtoMessage() {} func (x *RebateCfg) ProtoReflect() protoreflect.Message { mi := &file_login_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RebateCfg.ProtoReflect.Descriptor instead. func (*RebateCfg) Descriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{20} } func (x *RebateCfg) GetRebateSwitch() bool { if x != nil { return x.RebateSwitch } return false } func (x *RebateCfg) GetReceiveMode() int32 { if x != nil { return x.ReceiveMode } return 0 } func (x *RebateCfg) GetNotGiveOverdue() int32 { if x != nil { return x.NotGiveOverdue } return 0 } type ClubCfg struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields IsOpenClub bool `protobuf:"varint,1,opt,name=IsOpenClub,proto3" json:"IsOpenClub,omitempty"` //是否开放俱乐部 CreationCoin int64 `protobuf:"varint,2,opt,name=CreationCoin,proto3" json:"CreationCoin,omitempty"` //创建俱乐部金额 IncreaseCoin int64 `protobuf:"varint,3,opt,name=IncreaseCoin,proto3" json:"IncreaseCoin,omitempty"` //升级俱乐部金额 ClubInitPlayerNum int32 `protobuf:"varint,4,opt,name=ClubInitPlayerNum,proto3" json:"ClubInitPlayerNum,omitempty"` //俱乐部初始人数 IncreasePlayerNum int32 `protobuf:"varint,5,opt,name=IncreasePlayerNum,proto3" json:"IncreasePlayerNum,omitempty"` //升级人数增加 CreateClubCheckByManual bool `protobuf:"varint,6,opt,name=CreateClubCheckByManual,proto3" json:"CreateClubCheckByManual,omitempty"` //创建俱乐部人工审核 EditClubNoticeByManual bool `protobuf:"varint,7,opt,name=EditClubNoticeByManual,proto3" json:"EditClubNoticeByManual,omitempty"` //修改公告人工审核 CreateRoomAmount int64 `protobuf:"varint,8,opt,name=CreateRoomAmount,proto3" json:"CreateRoomAmount,omitempty"` //创建房间金额(分/局) GiveCoinRate []int64 `protobuf:"varint,9,rep,packed,name=GiveCoinRate,proto3" json:"GiveCoinRate,omitempty"` //会长充值额外赠送比例 } func (x *ClubCfg) Reset() { *x = ClubCfg{} if protoimpl.UnsafeEnabled { mi := &file_login_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ClubCfg) String() string { return protoimpl.X.MessageStringOf(x) } func (*ClubCfg) ProtoMessage() {} func (x *ClubCfg) ProtoReflect() protoreflect.Message { mi := &file_login_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ClubCfg.ProtoReflect.Descriptor instead. func (*ClubCfg) Descriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{21} } func (x *ClubCfg) GetIsOpenClub() bool { if x != nil { return x.IsOpenClub } return false } func (x *ClubCfg) GetCreationCoin() int64 { if x != nil { return x.CreationCoin } return 0 } func (x *ClubCfg) GetIncreaseCoin() int64 { if x != nil { return x.IncreaseCoin } return 0 } func (x *ClubCfg) GetClubInitPlayerNum() int32 { if x != nil { return x.ClubInitPlayerNum } return 0 } func (x *ClubCfg) GetIncreasePlayerNum() int32 { if x != nil { return x.IncreasePlayerNum } return 0 } func (x *ClubCfg) GetCreateClubCheckByManual() bool { if x != nil { return x.CreateClubCheckByManual } return false } func (x *ClubCfg) GetEditClubNoticeByManual() bool { if x != nil { return x.EditClubNoticeByManual } return false } func (x *ClubCfg) GetCreateRoomAmount() int64 { if x != nil { return x.CreateRoomAmount } return 0 } func (x *ClubCfg) GetGiveCoinRate() []int64 { if x != nil { return x.GiveCoinRate } return nil } //PACKET_CS_PLATFORMCFG type SCPlatFormConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` //平台号 OpRetCode OpResultCode `protobuf:"varint,2,opt,name=OpRetCode,proto3,enum=login.OpResultCode" json:"OpRetCode,omitempty"` //返回错误码 UpgradeAccountGiveCoin int32 `protobuf:"varint,3,opt,name=UpgradeAccountGiveCoin,proto3" json:"UpgradeAccountGiveCoin,omitempty"` //升级账号奖励金币(单位分) ExchangeMin int32 `protobuf:"varint,4,opt,name=ExchangeMin,proto3" json:"ExchangeMin,omitempty"` //最小兑换金额(单位分) ExchangeLimit int32 `protobuf:"varint,5,opt,name=ExchangeLimit,proto3" json:"ExchangeLimit,omitempty"` //兑换后身上需要保留的最小余额(单位分) ExchangeTax int32 `protobuf:"varint,6,opt,name=ExchangeTax,proto3" json:"ExchangeTax,omitempty"` //兑换税收比例(万分比) VipRange []int32 `protobuf:"varint,7,rep,packed,name=VipRange,proto3" json:"VipRange,omitempty"` //VIP配置区间(单位分) OtherParams string `protobuf:"bytes,8,opt,name=OtherParams,proto3" json:"OtherParams,omitempty"` //其他透传参数json串 ExchangeFlow int32 `protobuf:"varint,9,opt,name=ExchangeFlow,proto3" json:"ExchangeFlow,omitempty"` //兑换流水比例 SpreadConfig int32 `protobuf:"varint,10,opt,name=SpreadConfig,proto3" json:"SpreadConfig,omitempty"` //0:等级返点 1:保底返佣 CustomService string `protobuf:"bytes,11,opt,name=CustomService,proto3" json:"CustomService,omitempty"` //客服url Rebate *RebateCfg `protobuf:"bytes,12,opt,name=Rebate,proto3" json:"Rebate,omitempty"` //返利开关 Club *ClubCfg `protobuf:"bytes,13,opt,name=Club,proto3" json:"Club,omitempty"` //俱乐部相关配置 ExchangeBankMax int32 `protobuf:"varint,14,opt,name=ExchangeBankMax,proto3" json:"ExchangeBankMax,omitempty"` //兑换银行卡最大限制 0 不限制 ExchangeAlipayMax int32 `protobuf:"varint,15,opt,name=ExchangeAlipayMax,proto3" json:"ExchangeAlipayMax,omitempty"` //兑换apay最大限制 0 不限制 ExchangeMultiple int32 `protobuf:"varint,16,opt,name=ExchangeMultiple,proto3" json:"ExchangeMultiple,omitempty"` //兑换基数(只能兑换此数的整数倍) } func (x *SCPlatFormConfig) Reset() { *x = SCPlatFormConfig{} if protoimpl.UnsafeEnabled { mi := &file_login_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCPlatFormConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCPlatFormConfig) ProtoMessage() {} func (x *SCPlatFormConfig) ProtoReflect() protoreflect.Message { mi := &file_login_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCPlatFormConfig.ProtoReflect.Descriptor instead. func (*SCPlatFormConfig) Descriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{22} } func (x *SCPlatFormConfig) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *SCPlatFormConfig) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } func (x *SCPlatFormConfig) GetUpgradeAccountGiveCoin() int32 { if x != nil { return x.UpgradeAccountGiveCoin } return 0 } func (x *SCPlatFormConfig) GetExchangeMin() int32 { if x != nil { return x.ExchangeMin } return 0 } func (x *SCPlatFormConfig) GetExchangeLimit() int32 { if x != nil { return x.ExchangeLimit } return 0 } func (x *SCPlatFormConfig) GetExchangeTax() int32 { if x != nil { return x.ExchangeTax } return 0 } func (x *SCPlatFormConfig) GetVipRange() []int32 { if x != nil { return x.VipRange } return nil } func (x *SCPlatFormConfig) GetOtherParams() string { if x != nil { return x.OtherParams } return "" } func (x *SCPlatFormConfig) GetExchangeFlow() int32 { if x != nil { return x.ExchangeFlow } return 0 } func (x *SCPlatFormConfig) GetSpreadConfig() int32 { if x != nil { return x.SpreadConfig } return 0 } func (x *SCPlatFormConfig) GetCustomService() string { if x != nil { return x.CustomService } return "" } func (x *SCPlatFormConfig) GetRebate() *RebateCfg { if x != nil { return x.Rebate } return nil } func (x *SCPlatFormConfig) GetClub() *ClubCfg { if x != nil { return x.Club } return nil } func (x *SCPlatFormConfig) GetExchangeBankMax() int32 { if x != nil { return x.ExchangeBankMax } return 0 } func (x *SCPlatFormConfig) GetExchangeAlipayMax() int32 { if x != nil { return x.ExchangeAlipayMax } return 0 } func (x *SCPlatFormConfig) GetExchangeMultiple() int32 { if x != nil { return x.ExchangeMultiple } return 0 } type SCActivityCheck struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=login.OpResultCode" json:"OpRetCode,omitempty"` } func (x *SCActivityCheck) Reset() { *x = SCActivityCheck{} if protoimpl.UnsafeEnabled { mi := &file_login_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCActivityCheck) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCActivityCheck) ProtoMessage() {} func (x *SCActivityCheck) ProtoReflect() protoreflect.Message { mi := &file_login_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCActivityCheck.ProtoReflect.Descriptor instead. func (*SCActivityCheck) Descriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{23} } func (x *SCActivityCheck) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } type CSVerifyType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PlatformTag string `protobuf:"bytes,1,opt,name=PlatformTag,proto3" json:"PlatformTag,omitempty"` //android包名或者ios标记 Tel string `protobuf:"bytes,2,opt,name=Tel,proto3" json:"Tel,omitempty"` } func (x *CSVerifyType) Reset() { *x = CSVerifyType{} if protoimpl.UnsafeEnabled { mi := &file_login_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSVerifyType) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSVerifyType) ProtoMessage() {} func (x *CSVerifyType) ProtoReflect() protoreflect.Message { mi := &file_login_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSVerifyType.ProtoReflect.Descriptor instead. func (*CSVerifyType) Descriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{24} } func (x *CSVerifyType) GetPlatformTag() string { if x != nil { return x.PlatformTag } return "" } func (x *CSVerifyType) GetTel() string { if x != nil { return x.Tel } return "" } type SCVerifyType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=login.OpResultCode" json:"OpRetCode,omitempty"` //返回错误码 VerifyType int32 `protobuf:"varint,2,opt,name=VerifyType,proto3" json:"VerifyType,omitempty"` } func (x *SCVerifyType) Reset() { *x = SCVerifyType{} if protoimpl.UnsafeEnabled { mi := &file_login_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCVerifyType) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCVerifyType) ProtoMessage() {} func (x *SCVerifyType) ProtoReflect() protoreflect.Message { mi := &file_login_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCVerifyType.ProtoReflect.Descriptor instead. func (*SCVerifyType) Descriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{25} } func (x *SCVerifyType) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } func (x *SCVerifyType) GetVerifyType() int32 { if x != nil { return x.VerifyType } return 0 } type CSRegisterVerifyType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PlatformTag string `protobuf:"bytes,1,opt,name=PlatformTag,proto3" json:"PlatformTag,omitempty"` //android包名或者ios标记 } func (x *CSRegisterVerifyType) Reset() { *x = CSRegisterVerifyType{} if protoimpl.UnsafeEnabled { mi := &file_login_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSRegisterVerifyType) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSRegisterVerifyType) ProtoMessage() {} func (x *CSRegisterVerifyType) ProtoReflect() protoreflect.Message { mi := &file_login_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSRegisterVerifyType.ProtoReflect.Descriptor instead. func (*CSRegisterVerifyType) Descriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{26} } func (x *CSRegisterVerifyType) GetPlatformTag() string { if x != nil { return x.PlatformTag } return "" } type SCRegisterVerifyType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=login.OpResultCode" json:"OpRetCode,omitempty"` //返回错误码 VerifyType int32 `protobuf:"varint,2,opt,name=VerifyType,proto3" json:"VerifyType,omitempty"` } func (x *SCRegisterVerifyType) Reset() { *x = SCRegisterVerifyType{} if protoimpl.UnsafeEnabled { mi := &file_login_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCRegisterVerifyType) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCRegisterVerifyType) ProtoMessage() {} func (x *SCRegisterVerifyType) ProtoReflect() protoreflect.Message { mi := &file_login_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCRegisterVerifyType.ProtoReflect.Descriptor instead. func (*SCRegisterVerifyType) Descriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{27} } func (x *SCRegisterVerifyType) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } func (x *SCRegisterVerifyType) GetVerifyType() int32 { if x != nil { return x.VerifyType } return 0 } //后台的参数变化同步到前端,为啥没用roominfo,因为添加了选场,选场的时候还没有进room type SCSyncGameFree struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Data []*GameConfig `protobuf:"bytes,1,rep,name=Data,proto3" json:"Data,omitempty"` } func (x *SCSyncGameFree) Reset() { *x = SCSyncGameFree{} if protoimpl.UnsafeEnabled { mi := &file_login_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCSyncGameFree) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCSyncGameFree) ProtoMessage() {} func (x *SCSyncGameFree) ProtoReflect() protoreflect.Message { mi := &file_login_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCSyncGameFree.ProtoReflect.Descriptor instead. func (*SCSyncGameFree) Descriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{28} } func (x *SCSyncGameFree) GetData() []*GameConfig { if x != nil { return x.Data } return nil } //PACKET_SC_ACTSWITCHCFG type SCActSwitchCfg struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ActSwitchCfg []int32 `protobuf:"varint,1,rep,packed,name=ActSwitchCfg,proto3" json:"ActSwitchCfg,omitempty"` } func (x *SCActSwitchCfg) Reset() { *x = SCActSwitchCfg{} if protoimpl.UnsafeEnabled { mi := &file_login_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCActSwitchCfg) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCActSwitchCfg) ProtoMessage() {} func (x *SCActSwitchCfg) ProtoReflect() protoreflect.Message { mi := &file_login_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCActSwitchCfg.ProtoReflect.Descriptor instead. func (*SCActSwitchCfg) Descriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{29} } func (x *SCActSwitchCfg) GetActSwitchCfg() []int32 { if x != nil { return x.ActSwitchCfg } return nil } //PACKET_CS_GETTHRGAMECFG 请求三方游戏配置 type CSGetThrGameCfg struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` //平台 Channel string `protobuf:"bytes,2,opt,name=Channel,proto3" json:"Channel,omitempty"` //渠道号 } func (x *CSGetThrGameCfg) Reset() { *x = CSGetThrGameCfg{} if protoimpl.UnsafeEnabled { mi := &file_login_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSGetThrGameCfg) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSGetThrGameCfg) ProtoMessage() {} func (x *CSGetThrGameCfg) ProtoReflect() protoreflect.Message { mi := &file_login_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSGetThrGameCfg.ProtoReflect.Descriptor instead. func (*CSGetThrGameCfg) Descriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{30} } func (x *CSGetThrGameCfg) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *CSGetThrGameCfg) GetChannel() string { if x != nil { return x.Channel } return "" } //PACKET_SC_GETTHRGAMECFG type SCGetThrGameCfg struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ThrGameCfg []*LoginThrGameConfig `protobuf:"bytes,1,rep,name=ThrGameCfg,proto3" json:"ThrGameCfg,omitempty"` //三方游戏配置 } func (x *SCGetThrGameCfg) Reset() { *x = SCGetThrGameCfg{} if protoimpl.UnsafeEnabled { mi := &file_login_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCGetThrGameCfg) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCGetThrGameCfg) ProtoMessage() {} func (x *SCGetThrGameCfg) ProtoReflect() protoreflect.Message { mi := &file_login_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCGetThrGameCfg.ProtoReflect.Descriptor instead. func (*SCGetThrGameCfg) Descriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{31} } func (x *SCGetThrGameCfg) GetThrGameCfg() []*LoginThrGameConfig { if x != nil { return x.ThrGameCfg } return nil } //失效的机器人账号 type CSAccountInvalid struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Acc string `protobuf:"bytes,1,opt,name=Acc,proto3" json:"Acc,omitempty"` } func (x *CSAccountInvalid) Reset() { *x = CSAccountInvalid{} if protoimpl.UnsafeEnabled { mi := &file_login_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSAccountInvalid) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSAccountInvalid) ProtoMessage() {} func (x *CSAccountInvalid) ProtoReflect() protoreflect.Message { mi := &file_login_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSAccountInvalid.ProtoReflect.Descriptor instead. func (*CSAccountInvalid) Descriptor() ([]byte, []int) { return file_login_proto_rawDescGZIP(), []int{32} } func (x *CSAccountInvalid) GetAcc() string { if x != nil { return x.Acc } return "" } var File_login_proto protoreflect.FileDescriptor var file_login_proto_rawDesc = []byte{ 0x0a, 0x0b, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x22, 0xfb, 0x04, 0x0a, 0x07, 0x43, 0x53, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x69, 0x67, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x70, 0x6b, 0x56, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x70, 0x6b, 0x56, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x56, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x65, 0x73, 0x56, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x61, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x54, 0x72, 0x65, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x54, 0x72, 0x65, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x48, 0x65, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x48, 0x65, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x22, 0xa5, 0x01, 0x0a, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x4d, 0x69, 0x6e, 0x41, 0x70, 0x6b, 0x56, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4d, 0x69, 0x6e, 0x41, 0x70, 0x6b, 0x56, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x41, 0x70, 0x6b, 0x56, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x41, 0x70, 0x6b, 0x56, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x4d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x56, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x56, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x56, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x56, 0x65, 0x72, 0x22, 0x94, 0x03, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x42, 0x61, 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x42, 0x65, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x42, 0x65, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x78, 0x42, 0x65, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x78, 0x42, 0x65, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x43, 0x66, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x43, 0x66, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0xcf, 0x02, 0x0a, 0x0f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x42, 0x61, 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x42, 0x65, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x42, 0x65, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x78, 0x42, 0x65, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x78, 0x42, 0x65, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x43, 0x66, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x43, 0x66, 0x67, 0x22, 0x63, 0x0a, 0x0d, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x4c, 0x0a, 0x12, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x68, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x3b, 0x0a, 0x0c, 0x53, 0x43, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2b, 0x0a, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x66, 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2e, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x66, 0x67, 0x22, 0xc0, 0x04, 0x0a, 0x07, 0x53, 0x43, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x31, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x41, 0x63, 0x63, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x41, 0x63, 0x63, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x72, 0x76, 0x54, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x53, 0x72, 0x76, 0x54, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x4d, 0x69, 0x6e, 0x41, 0x70, 0x6b, 0x56, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4d, 0x69, 0x6e, 0x41, 0x70, 0x6b, 0x56, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x41, 0x70, 0x6b, 0x56, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x41, 0x70, 0x6b, 0x56, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x4d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x56, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x56, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x56, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x56, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x0a, 0x53, 0x75, 0x62, 0x47, 0x61, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2e, 0x47, 0x61, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x52, 0x0a, 0x53, 0x75, 0x62, 0x47, 0x61, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x68, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x54, 0x68, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x70, 0x6b, 0x55, 0x72, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x41, 0x70, 0x6b, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x70, 0x61, 0x55, 0x72, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x49, 0x70, 0x61, 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x22, 0x97, 0x01, 0x0a, 0x09, 0x42, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6f, 0x72, 0x74, 0x22, 0x59, 0x0a, 0x0f, 0x53, 0x43, 0x42, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x36, 0x0a, 0x0d, 0x62, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2e, 0x42, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x62, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x33, 0x0a, 0x0f, 0x43, 0x53, 0x42, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x61, 0x67, 0x22, 0xa8, 0x01, 0x0a, 0x08, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x65, 0x69, 0x78, 0x69, 0x6e, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x77, 0x65, 0x69, 0x78, 0x69, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x75, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x65, 0x78, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x71, 0x71, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x71, 0x71, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x49, 0x0a, 0x12, 0x53, 0x43, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x43, 0x53, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x30, 0x0a, 0x08, 0x43, 0x53, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x53, 0x69, 0x64, 0x22, 0x51, 0x0a, 0x08, 0x53, 0x43, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x12, 0x31, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x11, 0x0a, 0x0f, 0x43, 0x53, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x22, 0x5f, 0x0a, 0x0f, 0x53, 0x43, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, 0x70, 0x65, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x22, 0x40, 0x0a, 0x0c, 0x53, 0x53, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x34, 0x0a, 0x10, 0x43, 0x53, 0x50, 0x6c, 0x61, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x61, 0x67, 0x22, 0x79, 0x0a, 0x09, 0x52, 0x65, 0x62, 0x61, 0x74, 0x65, 0x43, 0x66, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x62, 0x61, 0x74, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x52, 0x65, 0x62, 0x61, 0x74, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4e, 0x6f, 0x74, 0x47, 0x69, 0x76, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x64, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4e, 0x6f, 0x74, 0x47, 0x69, 0x76, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x64, 0x75, 0x65, 0x22, 0x8f, 0x03, 0x0a, 0x07, 0x43, 0x6c, 0x75, 0x62, 0x43, 0x66, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x6c, 0x75, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x49, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x6c, 0x75, 0x62, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x2c, 0x0a, 0x11, 0x43, 0x6c, 0x75, 0x62, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x43, 0x6c, 0x75, 0x62, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x2c, 0x0a, 0x11, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x38, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x62, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x42, 0x79, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x62, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x42, 0x79, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x12, 0x36, 0x0a, 0x16, 0x45, 0x64, 0x69, 0x74, 0x43, 0x6c, 0x75, 0x62, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x42, 0x79, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x45, 0x64, 0x69, 0x74, 0x43, 0x6c, 0x75, 0x62, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x42, 0x79, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x47, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0c, 0x47, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x22, 0x81, 0x05, 0x0a, 0x10, 0x53, 0x43, 0x50, 0x6c, 0x61, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x31, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x69, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x56, 0x69, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x56, 0x69, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x70, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x53, 0x70, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x06, 0x52, 0x65, 0x62, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2e, 0x52, 0x65, 0x62, 0x61, 0x74, 0x65, 0x43, 0x66, 0x67, 0x52, 0x06, 0x52, 0x65, 0x62, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x04, 0x43, 0x6c, 0x75, 0x62, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2e, 0x43, 0x6c, 0x75, 0x62, 0x43, 0x66, 0x67, 0x52, 0x04, 0x43, 0x6c, 0x75, 0x62, 0x12, 0x28, 0x0a, 0x0f, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x78, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x78, 0x12, 0x2c, 0x0a, 0x11, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x4d, 0x61, 0x78, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x4d, 0x61, 0x78, 0x12, 0x2a, 0x0a, 0x10, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x22, 0x44, 0x0a, 0x0f, 0x53, 0x43, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x31, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x42, 0x0a, 0x0c, 0x43, 0x53, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x61, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x54, 0x65, 0x6c, 0x22, 0x61, 0x0a, 0x0c, 0x53, 0x43, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x31, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x22, 0x38, 0x0a, 0x14, 0x43, 0x53, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x61, 0x67, 0x22, 0x69, 0x0a, 0x14, 0x53, 0x43, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x31, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x22, 0x37, 0x0a, 0x0e, 0x53, 0x43, 0x53, 0x79, 0x6e, 0x63, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x12, 0x25, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2e, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x34, 0x0a, 0x0e, 0x53, 0x43, 0x41, 0x63, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x43, 0x66, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x63, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x43, 0x66, 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x41, 0x63, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x43, 0x66, 0x67, 0x22, 0x47, 0x0a, 0x0f, 0x43, 0x53, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x66, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0x4c, 0x0a, 0x0f, 0x53, 0x43, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x66, 0x67, 0x12, 0x39, 0x0a, 0x0a, 0x54, 0x68, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x66, 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x68, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a, 0x54, 0x68, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x66, 0x67, 0x22, 0x24, 0x0a, 0x10, 0x43, 0x53, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x41, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x41, 0x63, 0x63, 0x2a, 0xf7, 0x03, 0x0a, 0x0c, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x75, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xe8, 0x07, 0x12, 0x16, 0x0a, 0x11, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x45, 0x72, 0x72, 0x10, 0xe9, 0x07, 0x12, 0x19, 0x0a, 0x14, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x10, 0xea, 0x07, 0x12, 0x18, 0x0a, 0x13, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x61, 0x73, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xeb, 0x07, 0x12, 0x20, 0x0a, 0x1b, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0xec, 0x07, 0x12, 0x1e, 0x0a, 0x19, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xed, 0x07, 0x12, 0x18, 0x0a, 0x13, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x10, 0xee, 0x07, 0x12, 0x18, 0x0a, 0x13, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x61, 0x6d, 0x65, 0x10, 0xef, 0x07, 0x12, 0x19, 0x0a, 0x14, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xf0, 0x07, 0x12, 0x1c, 0x0a, 0x17, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xf1, 0x07, 0x12, 0x19, 0x0a, 0x14, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x65, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x10, 0xf2, 0x07, 0x12, 0x19, 0x0a, 0x14, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x59, 0x6f, 0x75, 0x72, 0x52, 0x65, 0x73, 0x56, 0x65, 0x72, 0x49, 0x73, 0x4c, 0x6f, 0x77, 0x10, 0x94, 0x08, 0x12, 0x19, 0x0a, 0x14, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x59, 0x6f, 0x75, 0x72, 0x41, 0x70, 0x70, 0x56, 0x65, 0x72, 0x49, 0x73, 0x4c, 0x6f, 0x77, 0x10, 0x95, 0x08, 0x12, 0x1d, 0x0a, 0x18, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x10, 0x9e, 0x08, 0x12, 0x12, 0x0a, 0x0d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x54, 0x65, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xa9, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x54, 0x65, 0x6c, 0x43, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x10, 0xaa, 0x08, 0x12, 0x16, 0x0a, 0x11, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x54, 0x65, 0x6c, 0x43, 0x6f, 0x64, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xab, 0x08, 0x2a, 0xbc, 0x05, 0x0a, 0x0d, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x0f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4c, 0x4f, 0x47, 0x49, 0x4e, 0x10, 0x83, 0x10, 0x12, 0x14, 0x0a, 0x0f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x4f, 0x47, 0x49, 0x4e, 0x10, 0x84, 0x10, 0x12, 0x15, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4c, 0x4f, 0x47, 0x4f, 0x55, 0x54, 0x10, 0x85, 0x10, 0x12, 0x15, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x4f, 0x47, 0x4f, 0x55, 0x54, 0x10, 0x86, 0x10, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x87, 0x10, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x42, 0x55, 0x4c, 0x4c, 0x45, 0x54, 0x49, 0x4f, 0x4e, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x88, 0x10, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x42, 0x55, 0x4c, 0x4c, 0x45, 0x54, 0x49, 0x4f, 0x4e, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x89, 0x10, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x45, 0x52, 0x49, 0x4e, 0x46, 0x4f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x8a, 0x10, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x45, 0x52, 0x49, 0x4e, 0x46, 0x4f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x8b, 0x10, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x10, 0x8c, 0x10, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x10, 0x8d, 0x10, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x50, 0x4c, 0x41, 0x54, 0x46, 0x4f, 0x52, 0x4d, 0x43, 0x46, 0x47, 0x10, 0x8e, 0x10, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x4c, 0x41, 0x54, 0x46, 0x4f, 0x52, 0x4d, 0x43, 0x46, 0x47, 0x10, 0x8f, 0x10, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x49, 0x54, 0x59, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x10, 0x90, 0x10, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x54, 0x59, 0x50, 0x45, 0x10, 0x91, 0x10, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x54, 0x59, 0x50, 0x45, 0x10, 0x92, 0x10, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x45, 0x52, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x54, 0x59, 0x50, 0x45, 0x10, 0x93, 0x10, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x45, 0x52, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x54, 0x59, 0x50, 0x45, 0x10, 0x94, 0x10, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x47, 0x41, 0x4d, 0x45, 0x46, 0x52, 0x45, 0x45, 0x10, 0x95, 0x10, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x41, 0x43, 0x54, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x43, 0x46, 0x47, 0x10, 0x96, 0x10, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x54, 0x48, 0x52, 0x47, 0x41, 0x4d, 0x45, 0x43, 0x46, 0x47, 0x10, 0x97, 0x10, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x54, 0x48, 0x52, 0x47, 0x41, 0x4d, 0x45, 0x43, 0x46, 0x47, 0x10, 0x98, 0x10, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x99, 0x10, 0x2a, 0xbf, 0x01, 0x0a, 0x14, 0x53, 0x53, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x53, 0x44, 0x54, 0x43, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x53, 0x44, 0x54, 0x43, 0x5f, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x53, 0x44, 0x54, 0x43, 0x5f, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x53, 0x44, 0x54, 0x43, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x53, 0x44, 0x54, 0x43, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x53, 0x44, 0x54, 0x43, 0x5f, 0x52, 0x65, 0x73, 0x56, 0x65, 0x72, 0x4c, 0x6f, 0x77, 0x10, 0x05, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x53, 0x44, 0x54, 0x43, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x4c, 0x6f, 0x77, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x53, 0x44, 0x54, 0x43, 0x5f, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x10, 0x07, 0x42, 0x25, 0x5a, 0x23, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_login_proto_rawDescOnce sync.Once file_login_proto_rawDescData = file_login_proto_rawDesc ) func file_login_proto_rawDescGZIP() []byte { file_login_proto_rawDescOnce.Do(func() { file_login_proto_rawDescData = protoimpl.X.CompressGZIP(file_login_proto_rawDescData) }) return file_login_proto_rawDescData } var file_login_proto_enumTypes = make([]protoimpl.EnumInfo, 3) var file_login_proto_msgTypes = make([]protoimpl.MessageInfo, 33) var file_login_proto_goTypes = []interface{}{ (OpResultCode)(0), // 0: login.OpResultCode (LoginPacketID)(0), // 1: login.LoginPacketID (SSDisconnectTypeCode)(0), // 2: login.SSDisconnectTypeCode (*CSLogin)(nil), // 3: login.CSLogin (*GameVer)(nil), // 4: login.GameVer (*GameConfig)(nil), // 5: login.GameConfig (*LoginGameConfig)(nil), // 6: login.LoginGameConfig (*LoginGameInfo)(nil), // 7: login.LoginGameInfo (*LoginThrGameConfig)(nil), // 8: login.LoginThrGameConfig (*SCGameConfig)(nil), // 9: login.SCGameConfig (*SCLogin)(nil), // 10: login.SCLogin (*Bulletion)(nil), // 11: login.Bulletion (*SCBulletionInfo)(nil), // 12: login.SCBulletionInfo (*CSBulletionInfo)(nil), // 13: login.CSBulletionInfo (*Customer)(nil), // 14: login.Customer (*SCCustomerInfoList)(nil), // 15: login.SCCustomerInfoList (*CSCustomerInfoList)(nil), // 16: login.CSCustomerInfoList (*CSLogout)(nil), // 17: login.CSLogout (*SCLogout)(nil), // 18: login.SCLogout (*CSCustomService)(nil), // 19: login.CSCustomService (*SCCustomService)(nil), // 20: login.SCCustomService (*SSDisconnect)(nil), // 21: login.SSDisconnect (*CSPlatFormConfig)(nil), // 22: login.CSPlatFormConfig (*RebateCfg)(nil), // 23: login.RebateCfg (*ClubCfg)(nil), // 24: login.ClubCfg (*SCPlatFormConfig)(nil), // 25: login.SCPlatFormConfig (*SCActivityCheck)(nil), // 26: login.SCActivityCheck (*CSVerifyType)(nil), // 27: login.CSVerifyType (*SCVerifyType)(nil), // 28: login.SCVerifyType (*CSRegisterVerifyType)(nil), // 29: login.CSRegisterVerifyType (*SCRegisterVerifyType)(nil), // 30: login.SCRegisterVerifyType (*SCSyncGameFree)(nil), // 31: login.SCSyncGameFree (*SCActSwitchCfg)(nil), // 32: login.SCActSwitchCfg (*CSGetThrGameCfg)(nil), // 33: login.CSGetThrGameCfg (*SCGetThrGameCfg)(nil), // 34: login.SCGetThrGameCfg (*CSAccountInvalid)(nil), // 35: login.CSAccountInvalid } var file_login_proto_depIdxs = []int32{ 5, // 0: login.SCGameConfig.GameCfg:type_name -> login.GameConfig 0, // 1: login.SCLogin.OpRetCode:type_name -> login.OpResultCode 4, // 2: login.SCLogin.SubGameVer:type_name -> login.GameVer 7, // 3: login.SCLogin.GameInfo:type_name -> login.LoginGameInfo 11, // 4: login.SCBulletionInfo.bulletionList:type_name -> login.Bulletion 14, // 5: login.SCCustomerInfoList.customerList:type_name -> login.Customer 0, // 6: login.SCLogout.OpRetCode:type_name -> login.OpResultCode 0, // 7: login.SCPlatFormConfig.OpRetCode:type_name -> login.OpResultCode 23, // 8: login.SCPlatFormConfig.Rebate:type_name -> login.RebateCfg 24, // 9: login.SCPlatFormConfig.Club:type_name -> login.ClubCfg 0, // 10: login.SCActivityCheck.OpRetCode:type_name -> login.OpResultCode 0, // 11: login.SCVerifyType.OpRetCode:type_name -> login.OpResultCode 0, // 12: login.SCRegisterVerifyType.OpRetCode:type_name -> login.OpResultCode 5, // 13: login.SCSyncGameFree.Data:type_name -> login.GameConfig 8, // 14: login.SCGetThrGameCfg.ThrGameCfg:type_name -> login.LoginThrGameConfig 15, // [15:15] is the sub-list for method output_type 15, // [15:15] is the sub-list for method input_type 15, // [15:15] is the sub-list for extension type_name 15, // [15:15] is the sub-list for extension extendee 0, // [0:15] is the sub-list for field type_name } func init() { file_login_proto_init() } func file_login_proto_init() { if File_login_proto != nil { return } if !protoimpl.UnsafeEnabled { file_login_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSLogin); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_login_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GameVer); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_login_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GameConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_login_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LoginGameConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_login_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LoginGameInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_login_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LoginThrGameConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_login_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCGameConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_login_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCLogin); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_login_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bulletion); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_login_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCBulletionInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_login_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSBulletionInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_login_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Customer); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_login_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCCustomerInfoList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_login_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSCustomerInfoList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_login_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSLogout); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_login_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCLogout); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_login_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSCustomService); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_login_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCCustomService); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_login_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SSDisconnect); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_login_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSPlatFormConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_login_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RebateCfg); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_login_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClubCfg); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_login_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCPlatFormConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_login_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCActivityCheck); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_login_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSVerifyType); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_login_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCVerifyType); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_login_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSRegisterVerifyType); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_login_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCRegisterVerifyType); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_login_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCSyncGameFree); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_login_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCActSwitchCfg); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_login_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSGetThrGameCfg); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_login_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCGetThrGameCfg); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_login_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSAccountInvalid); 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_login_proto_rawDesc, NumEnums: 3, NumMessages: 33, NumExtensions: 0, NumServices: 0, }, GoTypes: file_login_proto_goTypes, DependencyIndexes: file_login_proto_depIdxs, EnumInfos: file_login_proto_enumTypes, MessageInfos: file_login_proto_msgTypes, }.Build() File_login_proto = out.File file_login_proto_rawDesc = nil file_login_proto_goTypes = nil file_login_proto_depIdxs = nil }