game_sync/protocol/login/login.pb.go

3656 lines
127 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 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"` //系统androidioswindows
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
}