// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.27.1-devel // protoc v3.19.4 // source: player.proto package player import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" server "mongo.games.com/game/protocol/server" 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_Login_NameSame OpResultCode = 1007 //名字已被使用 OpResultCode_OPRC_Login_CreateFailed OpResultCode = 1009 //创建角色失败 OpResultCode_OPRC_NotLogin OpResultCode = 1013 //未登录 OpResultCode_OPRC_YourResVerIsLow OpResultCode = 1044 //资源版本过低 OpResultCode_OPRC_YourAppVerIsLow OpResultCode = 1045 //APK版本过低 OpResultCode_OPRC_CoinNotEnough OpResultCode = 1056 //金币不够 OpResultCode_OPRC_NickIsNull OpResultCode = 1060 //昵称为空 OpResultCode_OPRC_NickIsExist OpResultCode = 1061 //昵称已被占用 OpResultCode_OPRC_Frequently OpResultCode = 1062 //操作过于频繁 OpResultCode_OPRC_IconError OpResultCode = 1063 //非法头像 OpResultCode_OPRC_SexError OpResultCode = 1064 //非法性别 OpResultCode_OPRC_TelError OpResultCode = 1065 //手机号不正确 OpResultCode_OPRC_UserNameError OpResultCode = 1066 //用户名格式不正确 OpResultCode_OPRC_VerificationCodeError OpResultCode = 1067 //验证码错误 OpResultCode_OPRC_TelIsExist OpResultCode = 1068 //手机号已被绑定 OpResultCode_OPRC_SafeBoxPasswordError OpResultCode = 1070 //保险箱密码错误 OpResultCode_OPRC_TelIsRegister OpResultCode = 1071 //手机号已被绑定 OpResultCode_OPRC_InBlackList OpResultCode = 1072 //黑名单过滤 OpResultCode_OPRC_NickIsTooLen OpResultCode = 1073 //昵称超出长度限制 OpResultCode_OPRC_PasswordEqual OpResultCode = 1074 //新密码与老密码相同 OpResultCode_OPRC_NickIsIllegal OpResultCode = 1083 //昵称含有非法字符 OpResultCode_OPRC_SMSCodeLimit OpResultCode = 1084 //短信验证码已达上限 OpResultCode_OPRC_HadSpreadInviterId OpResultCode = 1090 //已有邀请人 OpResultCode_OPRC_InviterIdNotExist OpResultCode = 1091 //邀请人不存在 OpResultCode_OPRC_SpreadBindFailed OpResultCode = 1092 //绑定上级失败 OpResultCode_OPRC_InviterNoBind OpResultCode = 1093 //上级账号不是正式账号,请通知他绑定手机 OpResultCode_OPRC_SpreadBindClosedLoop OpResultCode = 1094 //闭环绑定关系 OpResultCode_OPRC_ImageVerifyCodeFailed OpResultCode = 1095 //图片验证码失败 OpResultCode_OPRC_NickIsCantRename OpResultCode = 1104 //无法修改昵称 OpResultCode_OPRC_NoPromotor OpResultCode = 1108 //推广员不存在 OpResultCode_OPRC_NoPlatform OpResultCode = 1109 //平台信息不存在 OpResultCode_OPRC_CantUserBind OpResultCode = 1110 //不允许手动绑定推广员 OpResultCode_OPRC_PromoterHasBind OpResultCode = 1111 //已经绑定推广员 OpResultCode_OPRC_PlatformNoPromoter OpResultCode = 1112 //推广员信息错误不存在 OpResultCode_OPRC_UpgradeAccount_PasswordIllegal OpResultCode = 2003 //密码格式不正 OpResultCode_OPRC_BindAlipay_AccountEmpty OpResultCode = 2005 //支付宝账号不能为空 OpResultCode_OPRC_BindAlipay_AccNameEmpty OpResultCode = 2006 //支付宝账户名不能为空 OpResultCode_OPRC_Safebox_PasswordIllegal OpResultCode = 2007 //保险箱密码不正确 OpResultCode_OPRC_BindBank_NameEmpty OpResultCode = 2008 //银行名称不能为空 OpResultCode_OPRC_BindBank_AccountEmpty OpResultCode = 2009 //银行账号不能为空 OpResultCode_OPRC_BindBank_AccNameEmpty OpResultCode = 2010 //银行账户名不能为空 OpResultCode_OPRC_BindBank_NameIllegal OpResultCode = 2011 //银行名称不合法 OpResultCode_OPRC_BindBank_AccountIllegal OpResultCode = 2012 //银行账号不合法 OpResultCode_OPRC_BindBank_AccNameIllegal OpResultCode = 2013 //银行账户名不合法 OpResultCode_OPRC_BindAlipay_AccountIllegal OpResultCode = 2014 //支付宝账号不合法 OpResultCode_OPRC_BindAlipay_AccNameIllegal OpResultCode = 2015 //支付宝账户名不合法 OpResultCode_OPRC_BindAlipay_PlatformError OpResultCode = 2016 OpResultCode_OPRC_BindBank_PlatformError OpResultCode = 2017 //本平台不能绑定银行卡 OpResultCode_OPRC_Account_IP_TooManyReg OpResultCode = 2018 OpResultCode_OPRC_BindBank_CountLimit OpResultCode = 2019 //该银行账号已被绑定 OpResultCode_OPRC_BindAlipay_CountLimit OpResultCode = 2020 //该支付宝账号已被绑定 OpResultCode_OPRC_BankAndAli_NotSame OpResultCode = 2021 //银行卡和ali名字需要相同 OpResultCode_OPRC_BindBankAlipay_NameCountLimit OpResultCode = 2022 //该名字已经绑定了太多支付宝银行卡 OpResultCode_OPRC_Jyb_Receive OpResultCode = 2100 //该兑换码已被使用 OpResultCode_OPRC_Jyb_CodeExist OpResultCode = 2101 //已经兑换过该礼包 OpResultCode_OPRC_Jyb_TimeErr OpResultCode = 2102 //该兑换码已过期 OpResultCode_OPRC_Jyb_CodeErr OpResultCode = 2103 //请输入正确的兑换码 OpResultCode_OPRC_Hundred_YouHadBetCannotLeave OpResultCode = 7001 //赢下注不能离开 OpResultCode_OPRC_Hundred_YouHadBankerCannotLeave OpResultCode = 7002 //已上庄不能离开 OpResultCode_OPRC_GuideStep_Finish OpResultCode = 8001 //该引导步骤已完成 OpResultCode_OPRC_GuideStep_Front OpResultCode = 8002 //前一个引导步骤未完成 OpResultCode_OPRC_GuideStep_End OpResultCode = 8003 //新手引导已结束 OpResultCode_OPRC_Guide_Close OpResultCode = 8004 //新手引导已关闭 OpResultCode_OPRC_Guide_Skip OpResultCode = 8005 //新手引导已跳过 OpResultCode_OPRC_Guide_SkipClose OpResultCode = 8006 //新手引导不能跳过 ) // Enum value maps for OpResultCode. var ( OpResultCode_name = map[int32]string{ 0: "OPRC_Sucess", 1: "OPRC_Error", 1000: "OPRC_LoginFailed", 1007: "OPRC_Login_NameSame", 1009: "OPRC_Login_CreateFailed", 1013: "OPRC_NotLogin", 1044: "OPRC_YourResVerIsLow", 1045: "OPRC_YourAppVerIsLow", 1056: "OPRC_CoinNotEnough", 1060: "OPRC_NickIsNull", 1061: "OPRC_NickIsExist", 1062: "OPRC_Frequently", 1063: "OPRC_IconError", 1064: "OPRC_SexError", 1065: "OPRC_TelError", 1066: "OPRC_UserNameError", 1067: "OPRC_VerificationCodeError", 1068: "OPRC_TelIsExist", 1070: "OPRC_SafeBoxPasswordError", 1071: "OPRC_TelIsRegister", 1072: "OPRC_InBlackList", 1073: "OPRC_NickIsTooLen", 1074: "OPRC_PasswordEqual", 1083: "OPRC_NickIsIllegal", 1084: "OPRC_SMSCodeLimit", 1090: "OPRC_HadSpreadInviterId", 1091: "OPRC_InviterIdNotExist", 1092: "OPRC_SpreadBindFailed", 1093: "OPRC_InviterNoBind", 1094: "OPRC_SpreadBindClosedLoop", 1095: "OPRC_ImageVerifyCodeFailed", 1104: "OPRC_NickIsCantRename", 1108: "OPRC_NoPromotor", 1109: "OPRC_NoPlatform", 1110: "OPRC_CantUserBind", 1111: "OPRC_PromoterHasBind", 1112: "OPRC_PlatformNoPromoter", 2003: "OPRC_UpgradeAccount_PasswordIllegal", 2005: "OPRC_BindAlipay_AccountEmpty", 2006: "OPRC_BindAlipay_AccNameEmpty", 2007: "OPRC_Safebox_PasswordIllegal", 2008: "OPRC_BindBank_NameEmpty", 2009: "OPRC_BindBank_AccountEmpty", 2010: "OPRC_BindBank_AccNameEmpty", 2011: "OPRC_BindBank_NameIllegal", 2012: "OPRC_BindBank_AccountIllegal", 2013: "OPRC_BindBank_AccNameIllegal", 2014: "OPRC_BindAlipay_AccountIllegal", 2015: "OPRC_BindAlipay_AccNameIllegal", 2016: "OPRC_BindAlipay_PlatformError", 2017: "OPRC_BindBank_PlatformError", 2018: "OPRC_Account_IP_TooManyReg", 2019: "OPRC_BindBank_CountLimit", 2020: "OPRC_BindAlipay_CountLimit", 2021: "OPRC_BankAndAli_NotSame", 2022: "OPRC_BindBankAlipay_NameCountLimit", 2100: "OPRC_Jyb_Receive", 2101: "OPRC_Jyb_CodeExist", 2102: "OPRC_Jyb_TimeErr", 2103: "OPRC_Jyb_CodeErr", 7001: "OPRC_Hundred_YouHadBetCannotLeave", 7002: "OPRC_Hundred_YouHadBankerCannotLeave", 8001: "OPRC_GuideStep_Finish", 8002: "OPRC_GuideStep_Front", 8003: "OPRC_GuideStep_End", 8004: "OPRC_Guide_Close", 8005: "OPRC_Guide_Skip", 8006: "OPRC_Guide_SkipClose", } OpResultCode_value = map[string]int32{ "OPRC_Sucess": 0, "OPRC_Error": 1, "OPRC_LoginFailed": 1000, "OPRC_Login_NameSame": 1007, "OPRC_Login_CreateFailed": 1009, "OPRC_NotLogin": 1013, "OPRC_YourResVerIsLow": 1044, "OPRC_YourAppVerIsLow": 1045, "OPRC_CoinNotEnough": 1056, "OPRC_NickIsNull": 1060, "OPRC_NickIsExist": 1061, "OPRC_Frequently": 1062, "OPRC_IconError": 1063, "OPRC_SexError": 1064, "OPRC_TelError": 1065, "OPRC_UserNameError": 1066, "OPRC_VerificationCodeError": 1067, "OPRC_TelIsExist": 1068, "OPRC_SafeBoxPasswordError": 1070, "OPRC_TelIsRegister": 1071, "OPRC_InBlackList": 1072, "OPRC_NickIsTooLen": 1073, "OPRC_PasswordEqual": 1074, "OPRC_NickIsIllegal": 1083, "OPRC_SMSCodeLimit": 1084, "OPRC_HadSpreadInviterId": 1090, "OPRC_InviterIdNotExist": 1091, "OPRC_SpreadBindFailed": 1092, "OPRC_InviterNoBind": 1093, "OPRC_SpreadBindClosedLoop": 1094, "OPRC_ImageVerifyCodeFailed": 1095, "OPRC_NickIsCantRename": 1104, "OPRC_NoPromotor": 1108, "OPRC_NoPlatform": 1109, "OPRC_CantUserBind": 1110, "OPRC_PromoterHasBind": 1111, "OPRC_PlatformNoPromoter": 1112, "OPRC_UpgradeAccount_PasswordIllegal": 2003, "OPRC_BindAlipay_AccountEmpty": 2005, "OPRC_BindAlipay_AccNameEmpty": 2006, "OPRC_Safebox_PasswordIllegal": 2007, "OPRC_BindBank_NameEmpty": 2008, "OPRC_BindBank_AccountEmpty": 2009, "OPRC_BindBank_AccNameEmpty": 2010, "OPRC_BindBank_NameIllegal": 2011, "OPRC_BindBank_AccountIllegal": 2012, "OPRC_BindBank_AccNameIllegal": 2013, "OPRC_BindAlipay_AccountIllegal": 2014, "OPRC_BindAlipay_AccNameIllegal": 2015, "OPRC_BindAlipay_PlatformError": 2016, "OPRC_BindBank_PlatformError": 2017, "OPRC_Account_IP_TooManyReg": 2018, "OPRC_BindBank_CountLimit": 2019, "OPRC_BindAlipay_CountLimit": 2020, "OPRC_BankAndAli_NotSame": 2021, "OPRC_BindBankAlipay_NameCountLimit": 2022, "OPRC_Jyb_Receive": 2100, "OPRC_Jyb_CodeExist": 2101, "OPRC_Jyb_TimeErr": 2102, "OPRC_Jyb_CodeErr": 2103, "OPRC_Hundred_YouHadBetCannotLeave": 7001, "OPRC_Hundred_YouHadBankerCannotLeave": 7002, "OPRC_GuideStep_Finish": 8001, "OPRC_GuideStep_Front": 8002, "OPRC_GuideStep_End": 8003, "OPRC_Guide_Close": 8004, "OPRC_Guide_Skip": 8005, "OPRC_Guide_SkipClose": 8006, } ) 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_player_proto_enumTypes[0].Descriptor() } func (OpResultCode) Type() protoreflect.EnumType { return &file_player_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_player_proto_rawDescGZIP(), []int{0} } //获取玩家数据消息id type PlayerPacketID int32 const ( PlayerPacketID_PACKET_PLAYERPACKET_ZERO PlayerPacketID = 0 // 弃用消息号 PlayerPacketID_PACKET_CS_PLAYERDATA PlayerPacketID = 2100 // 获取玩家数据 PlayerPacketID_PACKET_SC_PLAYERDATA PlayerPacketID = 2101 // 获取玩家数据 PlayerPacketID_PACKET_SC_DAYCHANGE PlayerPacketID = 2102 PlayerPacketID_PACKET_CS_THIRDPLAYERDATA PlayerPacketID = 2103 PlayerPacketID_PACKET_SC_THIRDPLAYERDATA PlayerPacketID = 2104 PlayerPacketID_PACKET_SC_PLAYERDATAUPDATE PlayerPacketID = 2105 PlayerPacketID_PACKET_SC_PLAYERDATAEX PlayerPacketID = 2106 PlayerPacketID_PACKET_CS_PMCMD PlayerPacketID = 2107 PlayerPacketID_PACKET_CS_ROBOTCHGDATA PlayerPacketID = 2108 PlayerPacketID_PACKET_SC_CHANGEWECHATNUMBER PlayerPacketID = 2109 PlayerPacketID_PACKET_CS_CHANGEWECHATNUMBER PlayerPacketID = 2110 PlayerPacketID_PACKET_CS_AUTHENID PlayerPacketID = 2111 PlayerPacketID_PACKET_SC_AUTHENID PlayerPacketID = 2112 PlayerPacketID_PACKET_CS_JOINGAME PlayerPacketID = 2113 PlayerPacketID_PACKET_SC_JOINGAME PlayerPacketID = 2114 PlayerPacketID_PACKET_CS_SPREADBIND PlayerPacketID = 2115 //绑定推广关系 PlayerPacketID_PACKET_SC_SPREADBIND PlayerPacketID = 2116 //绑定推广关系 PlayerPacketID_PACKET_CS_GENCUSTOMTOKEN PlayerPacketID = 2119 //生成客服会话token PlayerPacketID_PACKET_SC_GENCUSTOMTOKEN PlayerPacketID = 2120 //生成客服会话token PlayerPacketID_PACKET_SC_CUSTOMNEWMSG PlayerPacketID = 2121 //客服新消息提醒 PlayerPacketID_PACKET_CS_CUSTOMNEWMSGACK PlayerPacketID = 2122 //客服新消息接受回应 PlayerPacketID_PACKET_SC_SRVMSG PlayerPacketID = 2123 //服务端消息提示toast PlayerPacketID_PACKET_CS_FISHJACKPOTCOIN PlayerPacketID = 2124 // Fishjackpot爆奖 PlayerPacketID_PACKET_SC_FISHJACKPOTCOIN PlayerPacketID = 2125 // jackpot爆奖 PlayerPacketID_PACKET_CS_FISHJACKPOTDATA PlayerPacketID = 2126 // Fishjackpot爆奖奖池 PlayerPacketID_PACKET_SC_FISHJACKPOTDATA PlayerPacketID = 2127 // jackpot爆奖奖池 PlayerPacketID_PACKET_SC_NICEIDREBIND PlayerPacketID = 2128 PlayerPacketID_PACKET_CS_BINDPROMOTER PlayerPacketID = 2129 //绑定推广员 PlayerPacketID_PACKET_SC_BINDPROMOTER PlayerPacketID = 2130 //绑定推广员 PlayerPacketID_PACKET_SC_BINDPROMOTERSTATE PlayerPacketID = 2131 //推送推广员状态 PlayerPacketID_PACKET_CS_GetSpreadLWIsOpen PlayerPacketID = 2132 //请求客损是否打开 PlayerPacketID_PACKET_SC_GetSpreadLWIsOpen PlayerPacketID = 2133 //客损是否打开 PlayerPacketID_PACKET_SC_PayAct_State PlayerPacketID = 2134 //推送支付活动信息 PlayerPacketID_PACKET_CS_CHANGENICK PlayerPacketID = 2140 PlayerPacketID_PACKET_SC_CHANGENICK PlayerPacketID = 2141 PlayerPacketID_PACKET_CS_CHANGEICON PlayerPacketID = 2142 PlayerPacketID_PACKET_SC_CHANGEICON PlayerPacketID = 2143 PlayerPacketID_PACKET_CS_CHANGESEX PlayerPacketID = 2144 PlayerPacketID_PACKET_SC_CHANGESEX PlayerPacketID = 2145 PlayerPacketID_PACKET_CS_UPGRADEACCOUNT PlayerPacketID = 2146 PlayerPacketID_PACKET_SC_UPGRADEACCOUNT PlayerPacketID = 2147 PlayerPacketID_PACKET_CS_BINDALIPAY PlayerPacketID = 2148 PlayerPacketID_PACKET_SC_BINDALIPAY PlayerPacketID = 2149 PlayerPacketID_PACKET_CS_BINDBANK PlayerPacketID = 2150 PlayerPacketID_PACKET_SC_BINDBANK PlayerPacketID = 2151 PlayerPacketID_PACKET_CS_PLAYEROPCOIN PlayerPacketID = 2152 //保险箱存取款 PlayerPacketID_PACKET_SC_PLAYEROPCOIN PlayerPacketID = 2153 //保险箱存取款 PlayerPacketID_PACKET_CS_CHANGEPASSWORD PlayerPacketID = 2154 //改密码 PlayerPacketID_PACKET_SC_CHANGEPASSWORD PlayerPacketID = 2155 //改密码 PlayerPacketID_PACKET_CS_VERIFICATIONCODE PlayerPacketID = 2156 //获取验证码 PlayerPacketID_PACKET_SC_VERIFICATIONCODE PlayerPacketID = 2157 //获取验证码 PlayerPacketID_PACKET_CS_GETGAMECOINLOG PlayerPacketID = 2158 //游戏记录 PlayerPacketID_PACKET_SC_GETGAMECOINLOG PlayerPacketID = 2159 //游戏记录 PlayerPacketID_PACKET_CS_GETSAFEBOXCOINLOG PlayerPacketID = 2160 //保险箱操作记录 PlayerPacketID_PACKET_SC_GETSAFEBOXCOINLOG PlayerPacketID = 2161 //保险箱操作记录 PlayerPacketID_PACKET_CS_REGISTER PlayerPacketID = 2162 //用户注册 PlayerPacketID_PACKET_SC_REGISTER PlayerPacketID = 2163 //用户注册 PlayerPacketID_PACKET_CS_HEADOUTLINE PlayerPacketID = 2164 //头像框 PlayerPacketID_PACKET_SC_HEADOUTLINE PlayerPacketID = 2165 //头像框 PlayerPacketID_PACKET_CS_INVITECODE PlayerPacketID = 2166 //领取邀请码奖励 PlayerPacketID_PACKET_SC_INVITECODE PlayerPacketID = 2167 //领取邀请码奖励 PlayerPacketID_PACKET_CS_WEBAPI_PLAYERPASS PlayerPacketID = 2168 //玩家API透传 PlayerPacketID_PACKET_SC_WEBAPI_PLAYERPASS PlayerPacketID = 2169 //玩家API透传 PlayerPacketID_PACKET_CS_WEBAPI_SYSTEMPASS PlayerPacketID = 2170 //系统API透传 PlayerPacketID_PACKET_SC_WEBAPI_SYSTEMPASS PlayerPacketID = 2171 //系统API透传 PlayerPacketID_PACKET_CS_GETIMAGEVERIFYCODE PlayerPacketID = 2172 //获取图片验证码 PlayerPacketID_PACKET_SC_GETIMAGEVERIFYCODE PlayerPacketID = 2173 //获取图片验证码 PlayerPacketID_PACKET_CS_GETSLIDERVERIFYCODE PlayerPacketID = 2174 //获取滑块验证码 PlayerPacketID_PACKET_SC_GETSLIDERVERIFYCODE PlayerPacketID = 2175 //获取滑块验证码 PlayerPacketID_PACKET_CS_IOSINSTALLSTABLE PlayerPacketID = 2176 //苹果包安装稳定版 PlayerPacketID_PACKET_SC_IOSINSTALLSTABLE PlayerPacketID = 2177 //苹果包安装稳定版 PlayerPacketID_PACKET_CS_QUERYPLAYER PlayerPacketID = 2178 // 查询玩家信息 PlayerPacketID_PACKET_SC_QUERYPLAYER PlayerPacketID = 2179 // 查询玩家信息 PlayerPacketID_PACKET_CS_GETDATALOG PlayerPacketID = 2180 PlayerPacketID_PACKET_SC_GETDATALOG PlayerPacketID = 2181 PlayerPacketID_PACKET_SC_PLAYERRECHARGEANSWER PlayerPacketID = 2182 //充值弹框协议 PlayerPacketID_PACKET_SC_PLAYERFLAG PlayerPacketID = 2183 PlayerPacketID_PACKET_SC_PLAYERCOINCHANGE PlayerPacketID = 2184 PlayerPacketID_PACKET_SC_TRUSTEESHIPTIPS PlayerPacketID = 2185 PlayerPacketID_PACKET_ALL_SETTING PlayerPacketID = 2186 // 设置界面的相关操作 PlayerPacketID_PACKET_SCGAMEEXDROPITEMS PlayerPacketID = 2187 // 游戏额外掉落道具 PlayerPacketID_PACKET_CS_VIPBUY PlayerPacketID = 2188 //VIP充值 假充值 后续走三方回调 PlayerPacketID_PACKET_SC_VIPBUY PlayerPacketID = 2189 //VIP充值 PlayerPacketID_PACKET_CS_DRAWVIPGIFT PlayerPacketID = 2190 //VIP领取 PlayerPacketID_PACKET_SC_DRAWVIPGIFT PlayerPacketID = 2191 //VIP领取 PlayerPacketID_PACKET_CS_VIPINFO PlayerPacketID = 2192 //VIP信息 礼包 经验~ PlayerPacketID_PACKET_SC_VIPINFO PlayerPacketID = 2193 //VIP信息 PlayerPacketID_PACKET_SC_SWELFAREINFO PlayerPacketID = 2194 //福利礼包简易信息 PlayerPacketID_PACKET_CS_VIPPrivilegeInfo PlayerPacketID = 2195 //VIP特权 PlayerPacketID_PACKET_SC_VIPPrivilegeInfo PlayerPacketID = 2196 //VIP特权 PlayerPacketID_PACKET_SC_PAYGOODSINFO PlayerPacketID = 2197 //支付掉落 PlayerPacketID_PACKET_SC_RESOURCE PlayerPacketID = 2198 //资源更新 PlayerPacketID_PACKET_CS_CLIENT_LOG PlayerPacketID = 2199 // 客户端日志 PlayerPacketID_PACKET_SC_CLIENT_LOG PlayerPacketID = 2200 // 客户端日志 PlayerPacketID_PACKET_CS_HTTP_PASS PlayerPacketID = 2201 // api透传 PlayerPacketID_PACKET_SC_HTTP_PASS PlayerPacketID = 2202 // api透传 PlayerPacketID_PACKET_CS_ImageVerifyCode PlayerPacketID = 2203 // 验证验证码 PlayerPacketID_PACKET_SC_ImageVerifyCode PlayerPacketID = 2204 // 验证验证码 // 2800 ~ 2899 保留 PlayerPacketID_PACKET_CS_HeadUrl PlayerPacketID = 2801 // 修改头像url PlayerPacketID_PACKET_SC_HeadUrl PlayerPacketID = 2802 // 修改头像url PlayerPacketID_PACKET_SC_PlayerUnPower PlayerPacketID = 2803 //解锁最大炮倍 PlayerPacketID_PACKET_SC_PlayerUnPowerList PlayerPacketID = 2804 //解锁玩家炮台 PlayerPacketID_PACKET_SC_PlayerUpLevel PlayerPacketID = 2805 //玩家升级 PlayerPacketID_PACKET_CSPlayerSMSCode PlayerPacketID = 2806 //玩家发送短信验证码 PlayerPacketID_PACKET_SCPlayerSMSCode PlayerPacketID = 2807 //玩家发送短信验证码 PlayerPacketID_PACKET_CSBindTel PlayerPacketID = 2808 //玩家绑定手机号 PlayerPacketID_PACKET_SCBindTel PlayerPacketID = 2809 //玩家绑定手机号 PlayerPacketID_PACKET_CSBindTelInfo PlayerPacketID = 2810 //玩家绑定手机号信息 PlayerPacketID_PACKET_SCBindTelInfo PlayerPacketID = 2811 //玩家绑定手机号信息 PlayerPacketID_PACKET_CSBillList PlayerPacketID = 2812 // 账变记录 PlayerPacketID_PACKET_SCBillList PlayerPacketID = 2813 // 账变记录 PlayerPacketID_PACKET_CSSavePlayerInfo PlayerPacketID = 2814 // 保存个人资料 PlayerPacketID_PACKET_SCSavePlayerInfo PlayerPacketID = 2815 // 保存个人资料 PlayerPacketID_PACKET_CS_PhoneLotteryInfo PlayerPacketID = 2816 //请求抽奖信息 PlayerPacketID_PACKET_SC_PhoneLotteryInfo PlayerPacketID = 2817 //返回抽奖信息 PlayerPacketID_PACKET_CS_PhoneLottery PlayerPacketID = 2818 //请求抽奖 PlayerPacketID_PACKET_SC_PhoneLottery PlayerPacketID = 2819 //抽奖返回信息 PlayerPacketID_PACKET_SC_PhoneLotteryCount PlayerPacketID = 2820 //抽奖次数 PlayerPacketID_PACKET_CSADV PlayerPacketID = 2821 // 看广告 PlayerPacketID_PACKET_SCADV PlayerPacketID = 2822 // 看广告 PlayerPacketID_PACKET_SCGetWeekCardAwary PlayerPacketID = 2823 //领取周卡每日奖励返回 PlayerPacketID_PACKET_SCPigBankCoin PlayerPacketID = 2824 //存钱罐金币数量 PlayerPacketID_PACKET_CSExchangeChannel PlayerPacketID = 2825 // 开启兑换的渠道 PlayerPacketID_PACKET_SCExchangeChannel PlayerPacketID = 2826 // 开启兑换的渠道 PlayerPacketID_PACKET_CSSMSConfig PlayerPacketID = 2827 //获取运营商配置 PlayerPacketID_PACKET_SCSMSConfig PlayerPacketID = 2828 //返回运营商配置 PlayerPacketID_PACKET_CS_DiamondLotteryInfo PlayerPacketID = 2829 //请求钻石抽奖信息 PlayerPacketID_PACKET_SC_DiamondLotteryInfo PlayerPacketID = 2830 //返回钻石抽奖信息 PlayerPacketID_PACKET_CS_DiamondLottery PlayerPacketID = 2831 //请求钻石抽奖 PlayerPacketID_PACKET_SC_DiamondLottery PlayerPacketID = 2832 //钻石抽奖返回 PlayerPacketID_PACKET_CSDiamondLotteryLuckyAward PlayerPacketID = 2833 //请求领取钻石抽奖幸运奖励 PlayerPacketID_PACKET_SCDiamondLotteryLuckyAward PlayerPacketID = 2834 //返回领取钻石抽奖幸运奖励 PlayerPacketID_PACKET_SCItem PlayerPacketID = 2835 // 返回道具列表 PlayerPacketID_PACKET_CSAwardLog PlayerPacketID = 2836 //请求获奖记录 PlayerPacketID_PACKET_SCAwardLog PlayerPacketID = 2837 //返回获奖记录 PlayerPacketID_PACKET_CSPopUpWindowsConfig PlayerPacketID = 2838 //请求弹窗配置 PlayerPacketID_PACKET_SCPopUpWindowsConfig PlayerPacketID = 2839 //返回弹窗配置 PlayerPacketID_PACKET_CSUpdateAttribute PlayerPacketID = 2840 //请求更新属性 PlayerPacketID_PACKET_SCUpdateAttribute PlayerPacketID = 2841 //返回更新属性 PlayerPacketID_PACKET_SCGuideConfig PlayerPacketID = 2842 //返回引导配置 PlayerPacketID_PACKET_SCDataConfig PlayerPacketID = 2843 //通知配置更新 ) // Enum value maps for PlayerPacketID. var ( PlayerPacketID_name = map[int32]string{ 0: "PACKET_PLAYERPACKET_ZERO", 2100: "PACKET_CS_PLAYERDATA", 2101: "PACKET_SC_PLAYERDATA", 2102: "PACKET_SC_DAYCHANGE", 2103: "PACKET_CS_THIRDPLAYERDATA", 2104: "PACKET_SC_THIRDPLAYERDATA", 2105: "PACKET_SC_PLAYERDATAUPDATE", 2106: "PACKET_SC_PLAYERDATAEX", 2107: "PACKET_CS_PMCMD", 2108: "PACKET_CS_ROBOTCHGDATA", 2109: "PACKET_SC_CHANGEWECHATNUMBER", 2110: "PACKET_CS_CHANGEWECHATNUMBER", 2111: "PACKET_CS_AUTHENID", 2112: "PACKET_SC_AUTHENID", 2113: "PACKET_CS_JOINGAME", 2114: "PACKET_SC_JOINGAME", 2115: "PACKET_CS_SPREADBIND", 2116: "PACKET_SC_SPREADBIND", 2119: "PACKET_CS_GENCUSTOMTOKEN", 2120: "PACKET_SC_GENCUSTOMTOKEN", 2121: "PACKET_SC_CUSTOMNEWMSG", 2122: "PACKET_CS_CUSTOMNEWMSGACK", 2123: "PACKET_SC_SRVMSG", 2124: "PACKET_CS_FISHJACKPOTCOIN", 2125: "PACKET_SC_FISHJACKPOTCOIN", 2126: "PACKET_CS_FISHJACKPOTDATA", 2127: "PACKET_SC_FISHJACKPOTDATA", 2128: "PACKET_SC_NICEIDREBIND", 2129: "PACKET_CS_BINDPROMOTER", 2130: "PACKET_SC_BINDPROMOTER", 2131: "PACKET_SC_BINDPROMOTERSTATE", 2132: "PACKET_CS_GetSpreadLWIsOpen", 2133: "PACKET_SC_GetSpreadLWIsOpen", 2134: "PACKET_SC_PayAct_State", 2140: "PACKET_CS_CHANGENICK", 2141: "PACKET_SC_CHANGENICK", 2142: "PACKET_CS_CHANGEICON", 2143: "PACKET_SC_CHANGEICON", 2144: "PACKET_CS_CHANGESEX", 2145: "PACKET_SC_CHANGESEX", 2146: "PACKET_CS_UPGRADEACCOUNT", 2147: "PACKET_SC_UPGRADEACCOUNT", 2148: "PACKET_CS_BINDALIPAY", 2149: "PACKET_SC_BINDALIPAY", 2150: "PACKET_CS_BINDBANK", 2151: "PACKET_SC_BINDBANK", 2152: "PACKET_CS_PLAYEROPCOIN", 2153: "PACKET_SC_PLAYEROPCOIN", 2154: "PACKET_CS_CHANGEPASSWORD", 2155: "PACKET_SC_CHANGEPASSWORD", 2156: "PACKET_CS_VERIFICATIONCODE", 2157: "PACKET_SC_VERIFICATIONCODE", 2158: "PACKET_CS_GETGAMECOINLOG", 2159: "PACKET_SC_GETGAMECOINLOG", 2160: "PACKET_CS_GETSAFEBOXCOINLOG", 2161: "PACKET_SC_GETSAFEBOXCOINLOG", 2162: "PACKET_CS_REGISTER", 2163: "PACKET_SC_REGISTER", 2164: "PACKET_CS_HEADOUTLINE", 2165: "PACKET_SC_HEADOUTLINE", 2166: "PACKET_CS_INVITECODE", 2167: "PACKET_SC_INVITECODE", 2168: "PACKET_CS_WEBAPI_PLAYERPASS", 2169: "PACKET_SC_WEBAPI_PLAYERPASS", 2170: "PACKET_CS_WEBAPI_SYSTEMPASS", 2171: "PACKET_SC_WEBAPI_SYSTEMPASS", 2172: "PACKET_CS_GETIMAGEVERIFYCODE", 2173: "PACKET_SC_GETIMAGEVERIFYCODE", 2174: "PACKET_CS_GETSLIDERVERIFYCODE", 2175: "PACKET_SC_GETSLIDERVERIFYCODE", 2176: "PACKET_CS_IOSINSTALLSTABLE", 2177: "PACKET_SC_IOSINSTALLSTABLE", 2178: "PACKET_CS_QUERYPLAYER", 2179: "PACKET_SC_QUERYPLAYER", 2180: "PACKET_CS_GETDATALOG", 2181: "PACKET_SC_GETDATALOG", 2182: "PACKET_SC_PLAYERRECHARGEANSWER", 2183: "PACKET_SC_PLAYERFLAG", 2184: "PACKET_SC_PLAYERCOINCHANGE", 2185: "PACKET_SC_TRUSTEESHIPTIPS", 2186: "PACKET_ALL_SETTING", 2187: "PACKET_SCGAMEEXDROPITEMS", 2188: "PACKET_CS_VIPBUY", 2189: "PACKET_SC_VIPBUY", 2190: "PACKET_CS_DRAWVIPGIFT", 2191: "PACKET_SC_DRAWVIPGIFT", 2192: "PACKET_CS_VIPINFO", 2193: "PACKET_SC_VIPINFO", 2194: "PACKET_SC_SWELFAREINFO", 2195: "PACKET_CS_VIPPrivilegeInfo", 2196: "PACKET_SC_VIPPrivilegeInfo", 2197: "PACKET_SC_PAYGOODSINFO", 2198: "PACKET_SC_RESOURCE", 2199: "PACKET_CS_CLIENT_LOG", 2200: "PACKET_SC_CLIENT_LOG", 2201: "PACKET_CS_HTTP_PASS", 2202: "PACKET_SC_HTTP_PASS", 2203: "PACKET_CS_ImageVerifyCode", 2204: "PACKET_SC_ImageVerifyCode", 2801: "PACKET_CS_HeadUrl", 2802: "PACKET_SC_HeadUrl", 2803: "PACKET_SC_PlayerUnPower", 2804: "PACKET_SC_PlayerUnPowerList", 2805: "PACKET_SC_PlayerUpLevel", 2806: "PACKET_CSPlayerSMSCode", 2807: "PACKET_SCPlayerSMSCode", 2808: "PACKET_CSBindTel", 2809: "PACKET_SCBindTel", 2810: "PACKET_CSBindTelInfo", 2811: "PACKET_SCBindTelInfo", 2812: "PACKET_CSBillList", 2813: "PACKET_SCBillList", 2814: "PACKET_CSSavePlayerInfo", 2815: "PACKET_SCSavePlayerInfo", 2816: "PACKET_CS_PhoneLotteryInfo", 2817: "PACKET_SC_PhoneLotteryInfo", 2818: "PACKET_CS_PhoneLottery", 2819: "PACKET_SC_PhoneLottery", 2820: "PACKET_SC_PhoneLotteryCount", 2821: "PACKET_CSADV", 2822: "PACKET_SCADV", 2823: "PACKET_SCGetWeekCardAwary", 2824: "PACKET_SCPigBankCoin", 2825: "PACKET_CSExchangeChannel", 2826: "PACKET_SCExchangeChannel", 2827: "PACKET_CSSMSConfig", 2828: "PACKET_SCSMSConfig", 2829: "PACKET_CS_DiamondLotteryInfo", 2830: "PACKET_SC_DiamondLotteryInfo", 2831: "PACKET_CS_DiamondLottery", 2832: "PACKET_SC_DiamondLottery", 2833: "PACKET_CSDiamondLotteryLuckyAward", 2834: "PACKET_SCDiamondLotteryLuckyAward", 2835: "PACKET_SCItem", 2836: "PACKET_CSAwardLog", 2837: "PACKET_SCAwardLog", 2838: "PACKET_CSPopUpWindowsConfig", 2839: "PACKET_SCPopUpWindowsConfig", 2840: "PACKET_CSUpdateAttribute", 2841: "PACKET_SCUpdateAttribute", 2842: "PACKET_SCGuideConfig", 2843: "PACKET_SCDataConfig", } PlayerPacketID_value = map[string]int32{ "PACKET_PLAYERPACKET_ZERO": 0, "PACKET_CS_PLAYERDATA": 2100, "PACKET_SC_PLAYERDATA": 2101, "PACKET_SC_DAYCHANGE": 2102, "PACKET_CS_THIRDPLAYERDATA": 2103, "PACKET_SC_THIRDPLAYERDATA": 2104, "PACKET_SC_PLAYERDATAUPDATE": 2105, "PACKET_SC_PLAYERDATAEX": 2106, "PACKET_CS_PMCMD": 2107, "PACKET_CS_ROBOTCHGDATA": 2108, "PACKET_SC_CHANGEWECHATNUMBER": 2109, "PACKET_CS_CHANGEWECHATNUMBER": 2110, "PACKET_CS_AUTHENID": 2111, "PACKET_SC_AUTHENID": 2112, "PACKET_CS_JOINGAME": 2113, "PACKET_SC_JOINGAME": 2114, "PACKET_CS_SPREADBIND": 2115, "PACKET_SC_SPREADBIND": 2116, "PACKET_CS_GENCUSTOMTOKEN": 2119, "PACKET_SC_GENCUSTOMTOKEN": 2120, "PACKET_SC_CUSTOMNEWMSG": 2121, "PACKET_CS_CUSTOMNEWMSGACK": 2122, "PACKET_SC_SRVMSG": 2123, "PACKET_CS_FISHJACKPOTCOIN": 2124, "PACKET_SC_FISHJACKPOTCOIN": 2125, "PACKET_CS_FISHJACKPOTDATA": 2126, "PACKET_SC_FISHJACKPOTDATA": 2127, "PACKET_SC_NICEIDREBIND": 2128, "PACKET_CS_BINDPROMOTER": 2129, "PACKET_SC_BINDPROMOTER": 2130, "PACKET_SC_BINDPROMOTERSTATE": 2131, "PACKET_CS_GetSpreadLWIsOpen": 2132, "PACKET_SC_GetSpreadLWIsOpen": 2133, "PACKET_SC_PayAct_State": 2134, "PACKET_CS_CHANGENICK": 2140, "PACKET_SC_CHANGENICK": 2141, "PACKET_CS_CHANGEICON": 2142, "PACKET_SC_CHANGEICON": 2143, "PACKET_CS_CHANGESEX": 2144, "PACKET_SC_CHANGESEX": 2145, "PACKET_CS_UPGRADEACCOUNT": 2146, "PACKET_SC_UPGRADEACCOUNT": 2147, "PACKET_CS_BINDALIPAY": 2148, "PACKET_SC_BINDALIPAY": 2149, "PACKET_CS_BINDBANK": 2150, "PACKET_SC_BINDBANK": 2151, "PACKET_CS_PLAYEROPCOIN": 2152, "PACKET_SC_PLAYEROPCOIN": 2153, "PACKET_CS_CHANGEPASSWORD": 2154, "PACKET_SC_CHANGEPASSWORD": 2155, "PACKET_CS_VERIFICATIONCODE": 2156, "PACKET_SC_VERIFICATIONCODE": 2157, "PACKET_CS_GETGAMECOINLOG": 2158, "PACKET_SC_GETGAMECOINLOG": 2159, "PACKET_CS_GETSAFEBOXCOINLOG": 2160, "PACKET_SC_GETSAFEBOXCOINLOG": 2161, "PACKET_CS_REGISTER": 2162, "PACKET_SC_REGISTER": 2163, "PACKET_CS_HEADOUTLINE": 2164, "PACKET_SC_HEADOUTLINE": 2165, "PACKET_CS_INVITECODE": 2166, "PACKET_SC_INVITECODE": 2167, "PACKET_CS_WEBAPI_PLAYERPASS": 2168, "PACKET_SC_WEBAPI_PLAYERPASS": 2169, "PACKET_CS_WEBAPI_SYSTEMPASS": 2170, "PACKET_SC_WEBAPI_SYSTEMPASS": 2171, "PACKET_CS_GETIMAGEVERIFYCODE": 2172, "PACKET_SC_GETIMAGEVERIFYCODE": 2173, "PACKET_CS_GETSLIDERVERIFYCODE": 2174, "PACKET_SC_GETSLIDERVERIFYCODE": 2175, "PACKET_CS_IOSINSTALLSTABLE": 2176, "PACKET_SC_IOSINSTALLSTABLE": 2177, "PACKET_CS_QUERYPLAYER": 2178, "PACKET_SC_QUERYPLAYER": 2179, "PACKET_CS_GETDATALOG": 2180, "PACKET_SC_GETDATALOG": 2181, "PACKET_SC_PLAYERRECHARGEANSWER": 2182, "PACKET_SC_PLAYERFLAG": 2183, "PACKET_SC_PLAYERCOINCHANGE": 2184, "PACKET_SC_TRUSTEESHIPTIPS": 2185, "PACKET_ALL_SETTING": 2186, "PACKET_SCGAMEEXDROPITEMS": 2187, "PACKET_CS_VIPBUY": 2188, "PACKET_SC_VIPBUY": 2189, "PACKET_CS_DRAWVIPGIFT": 2190, "PACKET_SC_DRAWVIPGIFT": 2191, "PACKET_CS_VIPINFO": 2192, "PACKET_SC_VIPINFO": 2193, "PACKET_SC_SWELFAREINFO": 2194, "PACKET_CS_VIPPrivilegeInfo": 2195, "PACKET_SC_VIPPrivilegeInfo": 2196, "PACKET_SC_PAYGOODSINFO": 2197, "PACKET_SC_RESOURCE": 2198, "PACKET_CS_CLIENT_LOG": 2199, "PACKET_SC_CLIENT_LOG": 2200, "PACKET_CS_HTTP_PASS": 2201, "PACKET_SC_HTTP_PASS": 2202, "PACKET_CS_ImageVerifyCode": 2203, "PACKET_SC_ImageVerifyCode": 2204, "PACKET_CS_HeadUrl": 2801, "PACKET_SC_HeadUrl": 2802, "PACKET_SC_PlayerUnPower": 2803, "PACKET_SC_PlayerUnPowerList": 2804, "PACKET_SC_PlayerUpLevel": 2805, "PACKET_CSPlayerSMSCode": 2806, "PACKET_SCPlayerSMSCode": 2807, "PACKET_CSBindTel": 2808, "PACKET_SCBindTel": 2809, "PACKET_CSBindTelInfo": 2810, "PACKET_SCBindTelInfo": 2811, "PACKET_CSBillList": 2812, "PACKET_SCBillList": 2813, "PACKET_CSSavePlayerInfo": 2814, "PACKET_SCSavePlayerInfo": 2815, "PACKET_CS_PhoneLotteryInfo": 2816, "PACKET_SC_PhoneLotteryInfo": 2817, "PACKET_CS_PhoneLottery": 2818, "PACKET_SC_PhoneLottery": 2819, "PACKET_SC_PhoneLotteryCount": 2820, "PACKET_CSADV": 2821, "PACKET_SCADV": 2822, "PACKET_SCGetWeekCardAwary": 2823, "PACKET_SCPigBankCoin": 2824, "PACKET_CSExchangeChannel": 2825, "PACKET_SCExchangeChannel": 2826, "PACKET_CSSMSConfig": 2827, "PACKET_SCSMSConfig": 2828, "PACKET_CS_DiamondLotteryInfo": 2829, "PACKET_SC_DiamondLotteryInfo": 2830, "PACKET_CS_DiamondLottery": 2831, "PACKET_SC_DiamondLottery": 2832, "PACKET_CSDiamondLotteryLuckyAward": 2833, "PACKET_SCDiamondLotteryLuckyAward": 2834, "PACKET_SCItem": 2835, "PACKET_CSAwardLog": 2836, "PACKET_SCAwardLog": 2837, "PACKET_CSPopUpWindowsConfig": 2838, "PACKET_SCPopUpWindowsConfig": 2839, "PACKET_CSUpdateAttribute": 2840, "PACKET_SCUpdateAttribute": 2841, "PACKET_SCGuideConfig": 2842, "PACKET_SCDataConfig": 2843, } ) func (x PlayerPacketID) Enum() *PlayerPacketID { p := new(PlayerPacketID) *p = x return p } func (x PlayerPacketID) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (PlayerPacketID) Descriptor() protoreflect.EnumDescriptor { return file_player_proto_enumTypes[1].Descriptor() } func (PlayerPacketID) Type() protoreflect.EnumType { return &file_player_proto_enumTypes[1] } func (x PlayerPacketID) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use PlayerPacketID.Descriptor instead. func (PlayerPacketID) EnumDescriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{1} } // 账变记录 // PACKET_CSBillList type CSBillList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ts int64 `protobuf:"varint,1,opt,name=Ts,proto3" json:"Ts,omitempty"` //时间戳,这个时间结束 PageNo int32 `protobuf:"varint,2,opt,name=PageNo,proto3" json:"PageNo,omitempty"` // 页码 PageSize int32 `protobuf:"varint,3,opt,name=PageSize,proto3" json:"PageSize,omitempty"` // 每页数量 } func (x *CSBillList) Reset() { *x = CSBillList{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSBillList) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSBillList) ProtoMessage() {} func (x *CSBillList) ProtoReflect() protoreflect.Message { mi := &file_player_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 CSBillList.ProtoReflect.Descriptor instead. func (*CSBillList) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{0} } func (x *CSBillList) GetTs() int64 { if x != nil { return x.Ts } return 0 } func (x *CSBillList) GetPageNo() int32 { if x != nil { return x.PageNo } return 0 } func (x *CSBillList) GetPageSize() int32 { if x != nil { return x.PageSize } return 0 } // PACKET_SCBillList type SCBillList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Items []*BillItem `protobuf:"bytes,4,rep,name=Items,proto3" json:"Items,omitempty"` // 账变记录 } func (x *SCBillList) Reset() { *x = SCBillList{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCBillList) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCBillList) ProtoMessage() {} func (x *SCBillList) ProtoReflect() protoreflect.Message { mi := &file_player_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 SCBillList.ProtoReflect.Descriptor instead. func (*SCBillList) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{1} } func (x *SCBillList) GetItems() []*BillItem { if x != nil { return x.Items } return nil } // 账变记录项 type BillItem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ts int64 `protobuf:"varint,1,opt,name=Ts,proto3" json:"Ts,omitempty"` // 时间 Id string `protobuf:"bytes,2,opt,name=Id,proto3" json:"Id,omitempty"` // 账变id BillType int64 `protobuf:"varint,3,opt,name=BillType,proto3" json:"BillType,omitempty"` // 账变类型 Amount int64 `protobuf:"varint,4,opt,name=Amount,proto3" json:"Amount,omitempty"` // 账变金额 Balance int64 `protobuf:"varint,5,opt,name=Balance,proto3" json:"Balance,omitempty"` // 账变后余额 GameID int64 `protobuf:"varint,6,opt,name=GameID,proto3" json:"GameID,omitempty"` // 游戏id GameFreeID int64 `protobuf:"varint,7,opt,name=GameFreeID,proto3" json:"GameFreeID,omitempty"` // 游戏场次id BaseCoin int64 `protobuf:"varint,8,opt,name=BaseCoin,proto3" json:"BaseCoin,omitempty"` // 游戏底分 } func (x *BillItem) Reset() { *x = BillItem{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BillItem) String() string { return protoimpl.X.MessageStringOf(x) } func (*BillItem) ProtoMessage() {} func (x *BillItem) ProtoReflect() protoreflect.Message { mi := &file_player_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 BillItem.ProtoReflect.Descriptor instead. func (*BillItem) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{2} } func (x *BillItem) GetTs() int64 { if x != nil { return x.Ts } return 0 } func (x *BillItem) GetId() string { if x != nil { return x.Id } return "" } func (x *BillItem) GetBillType() int64 { if x != nil { return x.BillType } return 0 } func (x *BillItem) GetAmount() int64 { if x != nil { return x.Amount } return 0 } func (x *BillItem) GetBalance() int64 { if x != nil { return x.Balance } return 0 } func (x *BillItem) GetGameID() int64 { if x != nil { return x.GameID } return 0 } func (x *BillItem) GetGameFreeID() int64 { if x != nil { return x.GameFreeID } return 0 } func (x *BillItem) GetBaseCoin() int64 { if x != nil { return x.BaseCoin } return 0 } // 保存个人资料 // PACKET_CSSavePlayerInfo type CSSavePlayerInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"` //昵称 HeadUrl string `protobuf:"bytes,2,opt,name=HeadUrl,proto3" json:"HeadUrl,omitempty"` //头像url Sex int32 `protobuf:"varint,3,opt,name=Sex,proto3" json:"Sex,omitempty"` //性别 1男 2女 Age int32 `protobuf:"varint,4,opt,name=Age,proto3" json:"Age,omitempty"` //年龄 Signature string `protobuf:"bytes,5,opt,name=Signature,proto3" json:"Signature,omitempty"` //签名 RoleID int32 `protobuf:"varint,6,opt,name=RoleID,proto3" json:"RoleID,omitempty"` //角色id PetID int32 `protobuf:"varint,7,opt,name=PetID,proto3" json:"PetID,omitempty"` //宠物id Head int32 `protobuf:"varint,8,opt,name=Head,proto3" json:"Head,omitempty"` // 头像id } func (x *CSSavePlayerInfo) Reset() { *x = CSSavePlayerInfo{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSSavePlayerInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSSavePlayerInfo) ProtoMessage() {} func (x *CSSavePlayerInfo) ProtoReflect() protoreflect.Message { mi := &file_player_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 CSSavePlayerInfo.ProtoReflect.Descriptor instead. func (*CSSavePlayerInfo) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{3} } func (x *CSSavePlayerInfo) GetName() string { if x != nil { return x.Name } return "" } func (x *CSSavePlayerInfo) GetHeadUrl() string { if x != nil { return x.HeadUrl } return "" } func (x *CSSavePlayerInfo) GetSex() int32 { if x != nil { return x.Sex } return 0 } func (x *CSSavePlayerInfo) GetAge() int32 { if x != nil { return x.Age } return 0 } func (x *CSSavePlayerInfo) GetSignature() string { if x != nil { return x.Signature } return "" } func (x *CSSavePlayerInfo) GetRoleID() int32 { if x != nil { return x.RoleID } return 0 } func (x *CSSavePlayerInfo) GetPetID() int32 { if x != nil { return x.PetID } return 0 } func (x *CSSavePlayerInfo) GetHead() int32 { if x != nil { return x.Head } return 0 } // PACKET_SCSavePlayerInfo type SCSavePlayerInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=player.OpResultCode" json:"OpRetCode,omitempty"` } func (x *SCSavePlayerInfo) Reset() { *x = SCSavePlayerInfo{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCSavePlayerInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCSavePlayerInfo) ProtoMessage() {} func (x *SCSavePlayerInfo) ProtoReflect() protoreflect.Message { mi := &file_player_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 SCSavePlayerInfo.ProtoReflect.Descriptor instead. func (*SCSavePlayerInfo) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{4} } func (x *SCSavePlayerInfo) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } //获取玩家基本信息 //PACKET_CS_PLAYERDATA type CSPlayerData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields AccId string `protobuf:"bytes,1,opt,name=AccId,proto3" json:"AccId,omitempty"` //账号ID Params string `protobuf:"bytes,2,opt,name=Params,proto3" json:"Params,omitempty"` TimeStamp int32 `protobuf:"varint,3,opt,name=TimeStamp,proto3" json:"TimeStamp,omitempty"` DeviceInfo string `protobuf:"bytes,4,opt,name=DeviceInfo,proto3" json:"DeviceInfo,omitempty"` PlatformTag string `protobuf:"bytes,5,opt,name=PlatformTag,proto3" json:"PlatformTag,omitempty"` DeviceId string `protobuf:"bytes,6,opt,name=DeviceId,proto3" json:"DeviceId,omitempty"` //设备id DeviceName string `protobuf:"bytes,7,opt,name=DeviceName,proto3" json:"DeviceName,omitempty"` // 设备型号 PackageName string `protobuf:"bytes,8,opt,name=PackageName,proto3" json:"PackageName,omitempty"` // 包名 AppVersion string `protobuf:"bytes,9,opt,name=AppVersion,proto3" json:"AppVersion,omitempty"` // 游戏版本号 BuildVersion string `protobuf:"bytes,10,opt,name=BuildVersion,proto3" json:"BuildVersion,omitempty"` // 构建版本号 AppChannel string `protobuf:"bytes,11,opt,name=AppChannel,proto3" json:"AppChannel,omitempty"` // 渠道 } func (x *CSPlayerData) Reset() { *x = CSPlayerData{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSPlayerData) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSPlayerData) ProtoMessage() {} func (x *CSPlayerData) ProtoReflect() protoreflect.Message { mi := &file_player_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 CSPlayerData.ProtoReflect.Descriptor instead. func (*CSPlayerData) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{5} } func (x *CSPlayerData) GetAccId() string { if x != nil { return x.AccId } return "" } func (x *CSPlayerData) GetParams() string { if x != nil { return x.Params } return "" } func (x *CSPlayerData) GetTimeStamp() int32 { if x != nil { return x.TimeStamp } return 0 } func (x *CSPlayerData) GetDeviceInfo() string { if x != nil { return x.DeviceInfo } return "" } func (x *CSPlayerData) GetPlatformTag() string { if x != nil { return x.PlatformTag } return "" } func (x *CSPlayerData) GetDeviceId() string { if x != nil { return x.DeviceId } return "" } func (x *CSPlayerData) GetDeviceName() string { if x != nil { return x.DeviceName } return "" } func (x *CSPlayerData) GetPackageName() string { if x != nil { return x.PackageName } return "" } func (x *CSPlayerData) GetAppVersion() string { if x != nil { return x.AppVersion } return "" } func (x *CSPlayerData) GetBuildVersion() string { if x != nil { return x.BuildVersion } return "" } func (x *CSPlayerData) GetAppChannel() string { if x != nil { return x.AppChannel } return "" } type PlayerData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields AccId string `protobuf:"bytes,1,opt,name=AccId,proto3" json:"AccId,omitempty"` //账号ID Platform string `protobuf:"bytes,2,opt,name=Platform,proto3" json:"Platform,omitempty"` //平台名称 Channel string `protobuf:"bytes,3,opt,name=Channel,proto3" json:"Channel,omitempty"` //渠道 Name string `protobuf:"bytes,4,opt,name=Name,proto3" json:"Name,omitempty"` //名字 SnId int32 `protobuf:"varint,5,opt,name=SnId,proto3" json:"SnId,omitempty"` //数字账号 Head int32 `protobuf:"varint,6,opt,name=Head,proto3" json:"Head,omitempty"` //头像 Sex int32 `protobuf:"varint,7,opt,name=Sex,proto3" json:"Sex,omitempty"` //性别 Coin int64 `protobuf:"varint,8,opt,name=Coin,proto3" json:"Coin,omitempty"` //金币 SafeBoxCoin int64 `protobuf:"varint,9,opt,name=SafeBoxCoin,proto3" json:"SafeBoxCoin,omitempty"` //保险箱金币 Tel string `protobuf:"bytes,10,opt,name=Tel,proto3" json:"Tel,omitempty"` //电话号码 InviterId int32 `protobuf:"varint,11,opt,name=InviterId,proto3" json:"InviterId,omitempty"` //邀请人id AlipayAccount string `protobuf:"bytes,12,opt,name=AlipayAccount,proto3" json:"AlipayAccount,omitempty"` //支付宝账号 AlipayAccName string `protobuf:"bytes,13,opt,name=AlipayAccName,proto3" json:"AlipayAccName,omitempty"` //支付宝实名 Bank string `protobuf:"bytes,14,opt,name=Bank,proto3" json:"Bank,omitempty"` //银行名称 BankAccount string `protobuf:"bytes,15,opt,name=BankAccount,proto3" json:"BankAccount,omitempty"` //银行卡号 BankAccName string `protobuf:"bytes,16,opt,name=BankAccName,proto3" json:"BankAccName,omitempty"` //银行账户名称 GMLevel int32 `protobuf:"varint,17,opt,name=GMLevel,proto3" json:"GMLevel,omitempty"` //GM等级 SpecailFlag int32 `protobuf:"varint,18,opt,name=SpecailFlag,proto3" json:"SpecailFlag,omitempty"` //特殊标记 VIP int32 `protobuf:"varint,19,opt,name=VIP,proto3" json:"VIP,omitempty"` //VIP 0:不是 1:是 SafeBoxIsExist int32 `protobuf:"varint,20,opt,name=SafeBoxIsExist,proto3" json:"SafeBoxIsExist,omitempty"` //是否保险箱密码进行过首次设置 0:没有 1:有 HeadOutLine int32 `protobuf:"varint,21,opt,name=HeadOutLine,proto3" json:"HeadOutLine,omitempty"` //头像框 CoinPayTotal int64 `protobuf:"varint,22,opt,name=CoinPayTotal,proto3" json:"CoinPayTotal,omitempty"` //总充值金额 CreateTs int64 `protobuf:"varint,23,opt,name=CreateTs,proto3" json:"CreateTs,omitempty"` //账号创建时间 Promoter string `protobuf:"bytes,24,opt,name=Promoter,proto3" json:"Promoter,omitempty"` //推广员 TotalConvertibleFlow int64 `protobuf:"varint,25,opt,name=TotalConvertibleFlow,proto3" json:"TotalConvertibleFlow,omitempty"` //流水值 CanExchangeCoin int64 `protobuf:"varint,26,opt,name=CanExchangeCoin,proto3" json:"CanExchangeCoin,omitempty"` //可兑换金额 LackExchangeCoin int64 `protobuf:"varint,27,opt,name=LackExchangeCoin,proto3" json:"LackExchangeCoin,omitempty"` //还差多少可兑换金额 ExchangeType int64 `protobuf:"varint,28,opt,name=ExchangeType,proto3" json:"ExchangeType,omitempty"` //1.显示最低兑换携带金额 2.显示还需多少 ClubCoin int64 `protobuf:"varint,29,opt,name=ClubCoin,proto3" json:"ClubCoin,omitempty"` //俱乐部金币 Ticket int64 `protobuf:"varint,30,opt,name=Ticket,proto3" json:"Ticket,omitempty"` //比赛报名券 Grade int64 `protobuf:"varint,31,opt,name=Grade,proto3" json:"Grade,omitempty"` //积分 Diamond int64 `protobuf:"varint,32,opt,name=Diamond,proto3" json:"Diamond,omitempty"` //钻石 UseRoleId int32 `protobuf:"varint,33,opt,name=UseRoleId,proto3" json:"UseRoleId,omitempty"` //使用的人物模型id UsePetId int32 `protobuf:"varint,34,opt,name=UsePetId,proto3" json:"UsePetId,omitempty"` //使用的宠物模型id 0.为没有宠物跟随 VCoin int64 `protobuf:"varint,35,opt,name=VCoin,proto3" json:"VCoin,omitempty"` //V卡 ReliefFundTimes int32 `protobuf:"varint,36,opt,name=ReliefFundTimes,proto3" json:"ReliefFundTimes,omitempty"` //破产补助剩余领取次数 HeadUrl string `protobuf:"bytes,37,opt,name=HeadUrl,proto3" json:"HeadUrl,omitempty"` //头像地址 VipExp int64 `protobuf:"varint,38,opt,name=VipExp,proto3" json:"VipExp,omitempty"` //VIP经验 ChessGrade int64 `protobuf:"varint,39,opt,name=ChessGrade,proto3" json:"ChessGrade,omitempty"` //象棋积分 RankScore map[int32]int64 `protobuf:"bytes,40,rep,name=RankScore,proto3" json:"RankScore,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //排位积分 UnMaxPower int64 `protobuf:"varint,41,opt,name=UnMaxPower,proto3" json:"UnMaxPower,omitempty"` //捕鱼解锁最大炮倍数 PowerList []int32 `protobuf:"varint,42,rep,packed,name=PowerList,proto3" json:"PowerList,omitempty"` //解锁的炮台列表 Level int64 `protobuf:"varint,43,opt,name=Level,proto3" json:"Level,omitempty"` //玩家等级 Exp int64 `protobuf:"varint,44,opt,name=Exp,proto3" json:"Exp,omitempty"` //经验值 VipShopRefreshCount int32 `protobuf:"varint,45,opt,name=VipShopRefreshCount,proto3" json:"VipShopRefreshCount,omitempty"` //vip当前已使用免费刷新次数 Signature string `protobuf:"bytes,46,opt,name=Signature,proto3" json:"Signature,omitempty"` //签名 Age int32 `protobuf:"varint,47,opt,name=Age,proto3" json:"Age,omitempty"` // 年龄 WeekCard []*WeekInfo `protobuf:"bytes,48,rep,name=WeekCard,proto3" json:"WeekCard,omitempty"` //周卡 RequestAddFriend []int32 `protobuf:"varint,49,rep,packed,name=RequestAddFriend,proto3" json:"RequestAddFriend,omitempty"` //请求添加好友信息 UseSkinId int32 `protobuf:"varint,50,opt,name=UseSkinId,proto3" json:"UseSkinId,omitempty"` // 皮肤id ChannelID string `protobuf:"bytes,51,opt,name=ChannelID,proto3" json:"ChannelID,omitempty"` // 渠道ID GuideStep int32 `protobuf:"varint,52,opt,name=GuideStep,proto3" json:"GuideStep,omitempty"` // 引导步骤; 最小为0,-1表示跳过引导了 } func (x *PlayerData) Reset() { *x = PlayerData{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PlayerData) String() string { return protoimpl.X.MessageStringOf(x) } func (*PlayerData) ProtoMessage() {} func (x *PlayerData) ProtoReflect() protoreflect.Message { mi := &file_player_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 PlayerData.ProtoReflect.Descriptor instead. func (*PlayerData) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{6} } func (x *PlayerData) GetAccId() string { if x != nil { return x.AccId } return "" } func (x *PlayerData) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *PlayerData) GetChannel() string { if x != nil { return x.Channel } return "" } func (x *PlayerData) GetName() string { if x != nil { return x.Name } return "" } func (x *PlayerData) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *PlayerData) GetHead() int32 { if x != nil { return x.Head } return 0 } func (x *PlayerData) GetSex() int32 { if x != nil { return x.Sex } return 0 } func (x *PlayerData) GetCoin() int64 { if x != nil { return x.Coin } return 0 } func (x *PlayerData) GetSafeBoxCoin() int64 { if x != nil { return x.SafeBoxCoin } return 0 } func (x *PlayerData) GetTel() string { if x != nil { return x.Tel } return "" } func (x *PlayerData) GetInviterId() int32 { if x != nil { return x.InviterId } return 0 } func (x *PlayerData) GetAlipayAccount() string { if x != nil { return x.AlipayAccount } return "" } func (x *PlayerData) GetAlipayAccName() string { if x != nil { return x.AlipayAccName } return "" } func (x *PlayerData) GetBank() string { if x != nil { return x.Bank } return "" } func (x *PlayerData) GetBankAccount() string { if x != nil { return x.BankAccount } return "" } func (x *PlayerData) GetBankAccName() string { if x != nil { return x.BankAccName } return "" } func (x *PlayerData) GetGMLevel() int32 { if x != nil { return x.GMLevel } return 0 } func (x *PlayerData) GetSpecailFlag() int32 { if x != nil { return x.SpecailFlag } return 0 } func (x *PlayerData) GetVIP() int32 { if x != nil { return x.VIP } return 0 } func (x *PlayerData) GetSafeBoxIsExist() int32 { if x != nil { return x.SafeBoxIsExist } return 0 } func (x *PlayerData) GetHeadOutLine() int32 { if x != nil { return x.HeadOutLine } return 0 } func (x *PlayerData) GetCoinPayTotal() int64 { if x != nil { return x.CoinPayTotal } return 0 } func (x *PlayerData) GetCreateTs() int64 { if x != nil { return x.CreateTs } return 0 } func (x *PlayerData) GetPromoter() string { if x != nil { return x.Promoter } return "" } func (x *PlayerData) GetTotalConvertibleFlow() int64 { if x != nil { return x.TotalConvertibleFlow } return 0 } func (x *PlayerData) GetCanExchangeCoin() int64 { if x != nil { return x.CanExchangeCoin } return 0 } func (x *PlayerData) GetLackExchangeCoin() int64 { if x != nil { return x.LackExchangeCoin } return 0 } func (x *PlayerData) GetExchangeType() int64 { if x != nil { return x.ExchangeType } return 0 } func (x *PlayerData) GetClubCoin() int64 { if x != nil { return x.ClubCoin } return 0 } func (x *PlayerData) GetTicket() int64 { if x != nil { return x.Ticket } return 0 } func (x *PlayerData) GetGrade() int64 { if x != nil { return x.Grade } return 0 } func (x *PlayerData) GetDiamond() int64 { if x != nil { return x.Diamond } return 0 } func (x *PlayerData) GetUseRoleId() int32 { if x != nil { return x.UseRoleId } return 0 } func (x *PlayerData) GetUsePetId() int32 { if x != nil { return x.UsePetId } return 0 } func (x *PlayerData) GetVCoin() int64 { if x != nil { return x.VCoin } return 0 } func (x *PlayerData) GetReliefFundTimes() int32 { if x != nil { return x.ReliefFundTimes } return 0 } func (x *PlayerData) GetHeadUrl() string { if x != nil { return x.HeadUrl } return "" } func (x *PlayerData) GetVipExp() int64 { if x != nil { return x.VipExp } return 0 } func (x *PlayerData) GetChessGrade() int64 { if x != nil { return x.ChessGrade } return 0 } func (x *PlayerData) GetRankScore() map[int32]int64 { if x != nil { return x.RankScore } return nil } func (x *PlayerData) GetUnMaxPower() int64 { if x != nil { return x.UnMaxPower } return 0 } func (x *PlayerData) GetPowerList() []int32 { if x != nil { return x.PowerList } return nil } func (x *PlayerData) GetLevel() int64 { if x != nil { return x.Level } return 0 } func (x *PlayerData) GetExp() int64 { if x != nil { return x.Exp } return 0 } func (x *PlayerData) GetVipShopRefreshCount() int32 { if x != nil { return x.VipShopRefreshCount } return 0 } func (x *PlayerData) GetSignature() string { if x != nil { return x.Signature } return "" } func (x *PlayerData) GetAge() int32 { if x != nil { return x.Age } return 0 } func (x *PlayerData) GetWeekCard() []*WeekInfo { if x != nil { return x.WeekCard } return nil } func (x *PlayerData) GetRequestAddFriend() []int32 { if x != nil { return x.RequestAddFriend } return nil } func (x *PlayerData) GetUseSkinId() int32 { if x != nil { return x.UseSkinId } return 0 } func (x *PlayerData) GetChannelID() string { if x != nil { return x.ChannelID } return "" } func (x *PlayerData) GetGuideStep() int32 { if x != nil { return x.GuideStep } return 0 } //周卡数据 type WeekInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` WeekCardTime int64 `protobuf:"varint,2,opt,name=WeekCardTime,proto3" json:"WeekCardTime,omitempty"` //结束时间 WeekCardAward bool `protobuf:"varint,3,opt,name=weekCardAward,proto3" json:"weekCardAward,omitempty"` //领取奖励状态 } func (x *WeekInfo) Reset() { *x = WeekInfo{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WeekInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*WeekInfo) ProtoMessage() {} func (x *WeekInfo) ProtoReflect() protoreflect.Message { mi := &file_player_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 WeekInfo.ProtoReflect.Descriptor instead. func (*WeekInfo) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{7} } func (x *WeekInfo) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *WeekInfo) GetWeekCardTime() int64 { if x != nil { return x.WeekCardTime } return 0 } func (x *WeekInfo) GetWeekCardAward() bool { if x != nil { return x.WeekCardAward } return false } //断线重连小游戏中的数据 当前玩家在哪个房间 哪个游戏 对应的LogicId type MiniGameInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RoomId int32 `protobuf:"varint,1,opt,name=RoomId,proto3" json:"RoomId,omitempty"` GameId int32 `protobuf:"varint,2,opt,name=GameId,proto3" json:"GameId,omitempty"` LogicId int32 `protobuf:"varint,3,opt,name=LogicId,proto3" json:"LogicId,omitempty"` } func (x *MiniGameInfo) Reset() { *x = MiniGameInfo{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MiniGameInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*MiniGameInfo) ProtoMessage() {} func (x *MiniGameInfo) ProtoReflect() protoreflect.Message { mi := &file_player_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 MiniGameInfo.ProtoReflect.Descriptor instead. func (*MiniGameInfo) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{8} } func (x *MiniGameInfo) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *MiniGameInfo) GetGameId() int32 { if x != nil { return x.GameId } return 0 } func (x *MiniGameInfo) GetLogicId() int32 { if x != nil { return x.LogicId } return 0 } //PACKET_SC_PLAYERDATA type SCPlayerData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=player.OpResultCode" json:"OpRetCode,omitempty"` //获取结果 Data *PlayerData `protobuf:"bytes,2,opt,name=Data,proto3" json:"Data,omitempty"` //玩家数据 RoomId int32 `protobuf:"varint,3,opt,name=RoomId,proto3" json:"RoomId,omitempty"` //所处房间id(用于短线重连) GameId int32 `protobuf:"varint,4,opt,name=GameId,proto3" json:"GameId,omitempty"` //当前游戏id (用于短线重连) LogicId int32 `protobuf:"varint,5,opt,name=LogicId,proto3" json:"LogicId,omitempty"` //当前玩家所在的房间信息 BindOption int32 `protobuf:"varint,6,opt,name=BindOption,proto3" json:"BindOption,omitempty"` //绑定选项 MiniGameArr []*MiniGameInfo `protobuf:"bytes,7,rep,name=MiniGameArr,proto3" json:"MiniGameArr,omitempty"` //断线重连 当前在哪里些游戏 } func (x *SCPlayerData) Reset() { *x = SCPlayerData{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCPlayerData) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCPlayerData) ProtoMessage() {} func (x *SCPlayerData) ProtoReflect() protoreflect.Message { mi := &file_player_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 SCPlayerData.ProtoReflect.Descriptor instead. func (*SCPlayerData) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{9} } func (x *SCPlayerData) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } func (x *SCPlayerData) GetData() *PlayerData { if x != nil { return x.Data } return nil } func (x *SCPlayerData) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *SCPlayerData) GetGameId() int32 { if x != nil { return x.GameId } return 0 } func (x *SCPlayerData) GetLogicId() int32 { if x != nil { return x.LogicId } return 0 } func (x *SCPlayerData) GetBindOption() int32 { if x != nil { return x.BindOption } return 0 } func (x *SCPlayerData) GetMiniGameArr() []*MiniGameInfo { if x != nil { return x.MiniGameArr } return nil } //PACKET_SC_PLAYERDATAUPDATE type SCPlayerDataUpdate struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UpdateField int64 `protobuf:"varint,1,opt,name=UpdateField,proto3" json:"UpdateField,omitempty"` //更新哪个字段 Coin int64 `protobuf:"varint,2,opt,name=Coin,proto3" json:"Coin,omitempty"` //金币 SafeBoxCoin int64 `protobuf:"varint,3,opt,name=SafeBoxCoin,proto3" json:"SafeBoxCoin,omitempty"` //保险箱金币 Vip int32 `protobuf:"varint,4,opt,name=Vip,proto3" json:"Vip,omitempty"` //VIP等级 CoinPayTotal int64 `protobuf:"varint,5,opt,name=CoinPayTotal,proto3" json:"CoinPayTotal,omitempty"` //总充值金额 TotalConvertibleFlow int64 `protobuf:"varint,6,opt,name=TotalConvertibleFlow,proto3" json:"TotalConvertibleFlow,omitempty"` //流水值 Ticket int64 `protobuf:"varint,7,opt,name=Ticket,proto3" json:"Ticket,omitempty"` //比赛报名券 Grade int64 `protobuf:"varint,8,opt,name=Grade,proto3" json:"Grade,omitempty"` //积分 Diamond int64 `protobuf:"varint,9,opt,name=Diamond,proto3" json:"Diamond,omitempty"` //钻石 VCoin int64 `protobuf:"varint,10,opt,name=VCoin,proto3" json:"VCoin,omitempty"` //V卡 ChessGrade int64 `protobuf:"varint,11,opt,name=ChessGrade,proto3" json:"ChessGrade,omitempty"` //象棋积分 RankScore map[int32]int64 `protobuf:"bytes,12,rep,name=RankScore,proto3" json:"RankScore,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 排位积分 PhoneScore int64 `protobuf:"varint,13,opt,name=PhoneScore,proto3" json:"PhoneScore,omitempty"` //手机积分 InviteScore int64 `protobuf:"varint,14,opt,name=InviteScore,proto3" json:"InviteScore,omitempty"` // 邀请积分 } func (x *SCPlayerDataUpdate) Reset() { *x = SCPlayerDataUpdate{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCPlayerDataUpdate) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCPlayerDataUpdate) ProtoMessage() {} func (x *SCPlayerDataUpdate) ProtoReflect() protoreflect.Message { mi := &file_player_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 SCPlayerDataUpdate.ProtoReflect.Descriptor instead. func (*SCPlayerDataUpdate) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{10} } func (x *SCPlayerDataUpdate) GetUpdateField() int64 { if x != nil { return x.UpdateField } return 0 } func (x *SCPlayerDataUpdate) GetCoin() int64 { if x != nil { return x.Coin } return 0 } func (x *SCPlayerDataUpdate) GetSafeBoxCoin() int64 { if x != nil { return x.SafeBoxCoin } return 0 } func (x *SCPlayerDataUpdate) GetVip() int32 { if x != nil { return x.Vip } return 0 } func (x *SCPlayerDataUpdate) GetCoinPayTotal() int64 { if x != nil { return x.CoinPayTotal } return 0 } func (x *SCPlayerDataUpdate) GetTotalConvertibleFlow() int64 { if x != nil { return x.TotalConvertibleFlow } return 0 } func (x *SCPlayerDataUpdate) GetTicket() int64 { if x != nil { return x.Ticket } return 0 } func (x *SCPlayerDataUpdate) GetGrade() int64 { if x != nil { return x.Grade } return 0 } func (x *SCPlayerDataUpdate) GetDiamond() int64 { if x != nil { return x.Diamond } return 0 } func (x *SCPlayerDataUpdate) GetVCoin() int64 { if x != nil { return x.VCoin } return 0 } func (x *SCPlayerDataUpdate) GetChessGrade() int64 { if x != nil { return x.ChessGrade } return 0 } func (x *SCPlayerDataUpdate) GetRankScore() map[int32]int64 { if x != nil { return x.RankScore } return nil } func (x *SCPlayerDataUpdate) GetPhoneScore() int64 { if x != nil { return x.PhoneScore } return 0 } func (x *SCPlayerDataUpdate) GetInviteScore() int64 { if x != nil { return x.InviteScore } return 0 } //获取第三方玩家信息 //PACKET_CS_THIRDPLAYERDATA type CSThirdPlayerData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //账号ID } func (x *CSThirdPlayerData) Reset() { *x = CSThirdPlayerData{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSThirdPlayerData) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSThirdPlayerData) ProtoMessage() {} func (x *CSThirdPlayerData) ProtoReflect() protoreflect.Message { mi := &file_player_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 CSThirdPlayerData.ProtoReflect.Descriptor instead. func (*CSThirdPlayerData) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{11} } func (x *CSThirdPlayerData) GetId() int32 { if x != nil { return x.Id } return 0 } //PACKET_SC_THIRDPLAYERDATA type SCThirdPlayerData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Data *PlayerData `protobuf:"bytes,1,opt,name=Data,proto3" json:"Data,omitempty"` } func (x *SCThirdPlayerData) Reset() { *x = SCThirdPlayerData{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCThirdPlayerData) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCThirdPlayerData) ProtoMessage() {} func (x *SCThirdPlayerData) ProtoReflect() protoreflect.Message { mi := &file_player_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 SCThirdPlayerData.ProtoReflect.Descriptor instead. func (*SCThirdPlayerData) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{12} } func (x *SCThirdPlayerData) GetData() *PlayerData { if x != nil { return x.Data } return nil } //改昵称 //PACKET_CS_CHANGENICK type CSChangeNick struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Nick string `protobuf:"bytes,1,opt,name=Nick,proto3" json:"Nick,omitempty"` } func (x *CSChangeNick) Reset() { *x = CSChangeNick{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSChangeNick) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSChangeNick) ProtoMessage() {} func (x *CSChangeNick) ProtoReflect() protoreflect.Message { mi := &file_player_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 CSChangeNick.ProtoReflect.Descriptor instead. func (*CSChangeNick) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{13} } func (x *CSChangeNick) GetNick() string { if x != nil { return x.Nick } return "" } //PACKET_SC_CHANGENICK type SCChangeNick struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=player.OpResultCode" json:"OpRetCode,omitempty"` //改昵称结果 Nick string `protobuf:"bytes,2,opt,name=Nick,proto3" json:"Nick,omitempty"` } func (x *SCChangeNick) Reset() { *x = SCChangeNick{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCChangeNick) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCChangeNick) ProtoMessage() {} func (x *SCChangeNick) ProtoReflect() protoreflect.Message { mi := &file_player_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 SCChangeNick.ProtoReflect.Descriptor instead. func (*SCChangeNick) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{14} } func (x *SCChangeNick) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } func (x *SCChangeNick) GetNick() string { if x != nil { return x.Nick } return "" } //改密码 //PACKET_CS_CHANGEPASSWORD type CSChangePassword struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ChangeType int32 `protobuf:"varint,1,opt,name=ChangeType,proto3" json:"ChangeType,omitempty"` //0:修改帐号密码 1:修改保险箱密码 2:首次设置保险箱密码 OldPassword string `protobuf:"bytes,2,opt,name=OldPassword,proto3" json:"OldPassword,omitempty"` //密码 md5(原始密码+AppId) NewPassword string `protobuf:"bytes,3,opt,name=NewPassword,proto3" json:"NewPassword,omitempty"` //密码 md5(原始密码+AppId) TimeStamp int64 `protobuf:"varint,4,opt,name=TimeStamp,proto3" json:"TimeStamp,omitempty"` //时间戳 } func (x *CSChangePassword) Reset() { *x = CSChangePassword{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSChangePassword) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSChangePassword) ProtoMessage() {} func (x *CSChangePassword) ProtoReflect() protoreflect.Message { mi := &file_player_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 CSChangePassword.ProtoReflect.Descriptor instead. func (*CSChangePassword) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{15} } func (x *CSChangePassword) GetChangeType() int32 { if x != nil { return x.ChangeType } return 0 } func (x *CSChangePassword) GetOldPassword() string { if x != nil { return x.OldPassword } return "" } func (x *CSChangePassword) GetNewPassword() string { if x != nil { return x.NewPassword } return "" } func (x *CSChangePassword) GetTimeStamp() int64 { if x != nil { return x.TimeStamp } return 0 } //PACKET_SC_CHANGEPASSWORD type SCChangePassword struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=player.OpResultCode" json:"OpRetCode,omitempty"` //结果 ChangeType int32 `protobuf:"varint,2,opt,name=ChangeType,proto3" json:"ChangeType,omitempty"` //0:帐号密码 1:保险箱密码 2:设置保险箱密码 } func (x *SCChangePassword) Reset() { *x = SCChangePassword{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCChangePassword) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCChangePassword) ProtoMessage() {} func (x *SCChangePassword) ProtoReflect() protoreflect.Message { mi := &file_player_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 SCChangePassword.ProtoReflect.Descriptor instead. func (*SCChangePassword) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{16} } func (x *SCChangePassword) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } func (x *SCChangePassword) GetChangeType() int32 { if x != nil { return x.ChangeType } return 0 } //更换头像 //PACKET_CS_CHANGEICON type CSPlayerChangeIcon struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Icon int32 `protobuf:"varint,1,opt,name=Icon,proto3" json:"Icon,omitempty"` } func (x *CSPlayerChangeIcon) Reset() { *x = CSPlayerChangeIcon{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSPlayerChangeIcon) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSPlayerChangeIcon) ProtoMessage() {} func (x *CSPlayerChangeIcon) ProtoReflect() protoreflect.Message { mi := &file_player_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 CSPlayerChangeIcon.ProtoReflect.Descriptor instead. func (*CSPlayerChangeIcon) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{17} } func (x *CSPlayerChangeIcon) GetIcon() int32 { if x != nil { return x.Icon } return 0 } //PACKET_SC_CHANGEICON type SCPlayerChangeIcon struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=player.OpResultCode" json:"OpRetCode,omitempty"` //操作结果 Icon int32 `protobuf:"varint,2,opt,name=Icon,proto3" json:"Icon,omitempty"` } func (x *SCPlayerChangeIcon) Reset() { *x = SCPlayerChangeIcon{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCPlayerChangeIcon) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCPlayerChangeIcon) ProtoMessage() {} func (x *SCPlayerChangeIcon) ProtoReflect() protoreflect.Message { mi := &file_player_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 SCPlayerChangeIcon.ProtoReflect.Descriptor instead. func (*SCPlayerChangeIcon) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{18} } func (x *SCPlayerChangeIcon) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } func (x *SCPlayerChangeIcon) GetIcon() int32 { if x != nil { return x.Icon } return 0 } //更换头像框 //PACKET_CS_HEADOUTLINE type CSPlayerChangeHeadOutLine struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields HeadOutLine int32 `protobuf:"varint,1,opt,name=HeadOutLine,proto3" json:"HeadOutLine,omitempty"` } func (x *CSPlayerChangeHeadOutLine) Reset() { *x = CSPlayerChangeHeadOutLine{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSPlayerChangeHeadOutLine) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSPlayerChangeHeadOutLine) ProtoMessage() {} func (x *CSPlayerChangeHeadOutLine) ProtoReflect() protoreflect.Message { mi := &file_player_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 CSPlayerChangeHeadOutLine.ProtoReflect.Descriptor instead. func (*CSPlayerChangeHeadOutLine) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{19} } func (x *CSPlayerChangeHeadOutLine) GetHeadOutLine() int32 { if x != nil { return x.HeadOutLine } return 0 } //PACKET_SC_HEADOUTLINE type SCPlayerChangeHeadOutLine struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=player.OpResultCode" json:"OpRetCode,omitempty"` //操作结果 HeadOutLine int32 `protobuf:"varint,2,opt,name=HeadOutLine,proto3" json:"HeadOutLine,omitempty"` } func (x *SCPlayerChangeHeadOutLine) Reset() { *x = SCPlayerChangeHeadOutLine{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCPlayerChangeHeadOutLine) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCPlayerChangeHeadOutLine) ProtoMessage() {} func (x *SCPlayerChangeHeadOutLine) ProtoReflect() protoreflect.Message { mi := &file_player_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 SCPlayerChangeHeadOutLine.ProtoReflect.Descriptor instead. func (*SCPlayerChangeHeadOutLine) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{20} } func (x *SCPlayerChangeHeadOutLine) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } func (x *SCPlayerChangeHeadOutLine) GetHeadOutLine() int32 { if x != nil { return x.HeadOutLine } return 0 } //更换性别 //PACKET_CS_CHANGESEX type CSPlayerChangeSex struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Sex int32 `protobuf:"varint,1,opt,name=Sex,proto3" json:"Sex,omitempty"` } func (x *CSPlayerChangeSex) Reset() { *x = CSPlayerChangeSex{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSPlayerChangeSex) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSPlayerChangeSex) ProtoMessage() {} func (x *CSPlayerChangeSex) ProtoReflect() protoreflect.Message { mi := &file_player_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 CSPlayerChangeSex.ProtoReflect.Descriptor instead. func (*CSPlayerChangeSex) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{21} } func (x *CSPlayerChangeSex) GetSex() int32 { if x != nil { return x.Sex } return 0 } //PACKET_SC_CHANGESEX type SCPlayerChangeSex struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=player.OpResultCode" json:"OpRetCode,omitempty"` //操作结果 Sex int32 `protobuf:"varint,2,opt,name=Sex,proto3" json:"Sex,omitempty"` } func (x *SCPlayerChangeSex) Reset() { *x = SCPlayerChangeSex{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCPlayerChangeSex) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCPlayerChangeSex) ProtoMessage() {} func (x *SCPlayerChangeSex) ProtoReflect() protoreflect.Message { mi := &file_player_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 SCPlayerChangeSex.ProtoReflect.Descriptor instead. func (*SCPlayerChangeSex) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{22} } func (x *SCPlayerChangeSex) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } func (x *SCPlayerChangeSex) GetSex() int32 { if x != nil { return x.Sex } return 0 } // PACKET_CS_HeadUrl type CSHeadUrl struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Url string `protobuf:"bytes,1,opt,name=Url,proto3" json:"Url,omitempty"` } func (x *CSHeadUrl) Reset() { *x = CSHeadUrl{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSHeadUrl) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSHeadUrl) ProtoMessage() {} func (x *CSHeadUrl) ProtoReflect() protoreflect.Message { mi := &file_player_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 CSHeadUrl.ProtoReflect.Descriptor instead. func (*CSHeadUrl) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{23} } func (x *CSHeadUrl) GetUrl() string { if x != nil { return x.Url } return "" } // PACKET_SC_HeadUrl type SCHeadUrl struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=player.OpResultCode" json:"OpRetCode,omitempty"` //操作结果 Url string `protobuf:"bytes,2,opt,name=Url,proto3" json:"Url,omitempty"` } func (x *SCHeadUrl) Reset() { *x = SCHeadUrl{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCHeadUrl) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCHeadUrl) ProtoMessage() {} func (x *SCHeadUrl) ProtoReflect() protoreflect.Message { mi := &file_player_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 SCHeadUrl.ProtoReflect.Descriptor instead. func (*SCHeadUrl) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{24} } func (x *SCHeadUrl) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } func (x *SCHeadUrl) GetUrl() string { if x != nil { return x.Url } return "" } //获取验证码 //PACKET_CS_VERIFICATIONCODE type CSPlayerVerificationCode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Tel string `protobuf:"bytes,1,opt,name=Tel,proto3" json:"Tel,omitempty"` OpCode int32 `protobuf:"varint,2,opt,name=OpCode,proto3" json:"OpCode,omitempty"` PlatformTag string `protobuf:"bytes,3,opt,name=PlatformTag,proto3" json:"PlatformTag,omitempty"` //android包名或者ios标记 Env int32 `protobuf:"varint,4,opt,name=Env,proto3" json:"Env,omitempty"` //获取验证码的用途 1:注册 ImgCode string `protobuf:"bytes,5,opt,name=ImgCode,proto3" json:"ImgCode,omitempty"` //图片验证码 Ts int32 `protobuf:"varint,6,opt,name=Ts,proto3" json:"Ts,omitempty"` //时间戳 DeviceInfo string `protobuf:"bytes,7,opt,name=DeviceInfo,proto3" json:"DeviceInfo,omitempty"` //设备信息 加密后的base64 } func (x *CSPlayerVerificationCode) Reset() { *x = CSPlayerVerificationCode{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSPlayerVerificationCode) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSPlayerVerificationCode) ProtoMessage() {} func (x *CSPlayerVerificationCode) ProtoReflect() protoreflect.Message { mi := &file_player_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 CSPlayerVerificationCode.ProtoReflect.Descriptor instead. func (*CSPlayerVerificationCode) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{25} } func (x *CSPlayerVerificationCode) GetTel() string { if x != nil { return x.Tel } return "" } func (x *CSPlayerVerificationCode) GetOpCode() int32 { if x != nil { return x.OpCode } return 0 } func (x *CSPlayerVerificationCode) GetPlatformTag() string { if x != nil { return x.PlatformTag } return "" } func (x *CSPlayerVerificationCode) GetEnv() int32 { if x != nil { return x.Env } return 0 } func (x *CSPlayerVerificationCode) GetImgCode() string { if x != nil { return x.ImgCode } return "" } func (x *CSPlayerVerificationCode) GetTs() int32 { if x != nil { return x.Ts } return 0 } func (x *CSPlayerVerificationCode) GetDeviceInfo() string { if x != nil { return x.DeviceInfo } return "" } //PACKET_SC_VERIFICATIONCODE type SCPlayerVerificationCode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=player.OpResultCode" json:"OpRetCode,omitempty"` //操作结果 VerificationCode int32 `protobuf:"varint,2,opt,name=VerificationCode,proto3" json:"VerificationCode,omitempty"` } func (x *SCPlayerVerificationCode) Reset() { *x = SCPlayerVerificationCode{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCPlayerVerificationCode) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCPlayerVerificationCode) ProtoMessage() {} func (x *SCPlayerVerificationCode) ProtoReflect() protoreflect.Message { mi := &file_player_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 SCPlayerVerificationCode.ProtoReflect.Descriptor instead. func (*SCPlayerVerificationCode) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{26} } func (x *SCPlayerVerificationCode) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } func (x *SCPlayerVerificationCode) GetVerificationCode() int32 { if x != nil { return x.VerificationCode } return 0 } //注册帐号 //PACKET_CS_REGISTER type CSRegister 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(Username+AppId) 账号模式:md5(密码+AppId) 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"` //资源版本号 Tel string `protobuf:"bytes,11,opt,name=Tel,proto3" json:"Tel,omitempty"` //手机号 TelPassword string `protobuf:"bytes,12,opt,name=TelPassword,proto3" json:"TelPassword,omitempty"` //帐号密码(RegistType=1时使用了) VerificationCode string `protobuf:"bytes,13,opt,name=VerificationCode,proto3" json:"VerificationCode,omitempty"` //手机验证码 PlatformTag string `protobuf:"bytes,14,opt,name=PlatformTag,proto3" json:"PlatformTag,omitempty"` //包标记 Promoter string `protobuf:"bytes,15,opt,name=Promoter,proto3" json:"Promoter,omitempty"` //推广员 Package string `protobuf:"bytes,16,opt,name=Package,proto3" json:"Package,omitempty"` //安卓包名或者苹果bundleid PromoterTree int32 `protobuf:"varint,17,opt,name=PromoterTree,proto3" json:"PromoterTree,omitempty"` //无限代推广人id DeviceInfo string `protobuf:"bytes,18,opt,name=DeviceInfo,proto3" json:"DeviceInfo,omitempty"` //设备信息 加密后的base64 RegistType int32 `protobuf:"varint,19,opt,name=RegistType,proto3" json:"RegistType,omitempty"` //0 手机号注册 1账号密码注册 ChannelID string `protobuf:"bytes,20,opt,name=ChannelID,proto3" json:"ChannelID,omitempty"` // 渠道ID } func (x *CSRegister) Reset() { *x = CSRegister{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSRegister) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSRegister) ProtoMessage() {} func (x *CSRegister) ProtoReflect() protoreflect.Message { mi := &file_player_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 CSRegister.ProtoReflect.Descriptor instead. func (*CSRegister) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{27} } func (x *CSRegister) GetUsername() string { if x != nil { return x.Username } return "" } func (x *CSRegister) GetPassword() string { if x != nil { return x.Password } return "" } func (x *CSRegister) GetTimeStamp() int64 { if x != nil { return x.TimeStamp } return 0 } func (x *CSRegister) GetParams() string { if x != nil { return x.Params } return "" } func (x *CSRegister) GetSign() string { if x != nil { return x.Sign } return "" } func (x *CSRegister) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *CSRegister) GetChannel() string { if x != nil { return x.Channel } return "" } func (x *CSRegister) GetInviterId() int32 { if x != nil { return x.InviterId } return 0 } func (x *CSRegister) GetApkVer() int32 { if x != nil { return x.ApkVer } return 0 } func (x *CSRegister) GetResVer() int32 { if x != nil { return x.ResVer } return 0 } func (x *CSRegister) GetTel() string { if x != nil { return x.Tel } return "" } func (x *CSRegister) GetTelPassword() string { if x != nil { return x.TelPassword } return "" } func (x *CSRegister) GetVerificationCode() string { if x != nil { return x.VerificationCode } return "" } func (x *CSRegister) GetPlatformTag() string { if x != nil { return x.PlatformTag } return "" } func (x *CSRegister) GetPromoter() string { if x != nil { return x.Promoter } return "" } func (x *CSRegister) GetPackage() string { if x != nil { return x.Package } return "" } func (x *CSRegister) GetPromoterTree() int32 { if x != nil { return x.PromoterTree } return 0 } func (x *CSRegister) GetDeviceInfo() string { if x != nil { return x.DeviceInfo } return "" } func (x *CSRegister) GetRegistType() int32 { if x != nil { return x.RegistType } return 0 } func (x *CSRegister) GetChannelID() string { if x != nil { return x.ChannelID } return "" } //PACKET_SC_REGISTER type SCRegister struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=player.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"` //服务器时间戳 } func (x *SCRegister) Reset() { *x = SCRegister{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCRegister) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCRegister) ProtoMessage() {} func (x *SCRegister) ProtoReflect() protoreflect.Message { mi := &file_player_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 SCRegister.ProtoReflect.Descriptor instead. func (*SCRegister) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{28} } func (x *SCRegister) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } func (x *SCRegister) GetAccId() string { if x != nil { return x.AccId } return "" } func (x *SCRegister) GetSrvTs() int64 { if x != nil { return x.SrvTs } return 0 } //账号升级,绑定手机,找回密码 //PACKET_CS_UPGRADEACCOUNT type CSUpgradeAccount struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ChangeType int32 `protobuf:"varint,1,opt,name=ChangeType,proto3" json:"ChangeType,omitempty"` //0:绑定帐号密码 1:设置保险箱密码(不用) 2:帐号密码找回 3:保险箱密码找回 Tel string `protobuf:"bytes,2,opt,name=Tel,proto3" json:"Tel,omitempty"` //手机号 VerificationCode string `protobuf:"bytes,3,opt,name=VerificationCode,proto3" json:"VerificationCode,omitempty"` //验证码 Password string `protobuf:"bytes,4,opt,name=Password,proto3" json:"Password,omitempty"` //密码 md5(原始密码+AppId) TimeStamp int64 `protobuf:"varint,5,opt,name=TimeStamp,proto3" json:"TimeStamp,omitempty"` //时间戳 PlatformTag string `protobuf:"bytes,6,opt,name=PlatformTag,proto3" json:"PlatformTag,omitempty"` //android包名或者ios标记 } func (x *CSUpgradeAccount) Reset() { *x = CSUpgradeAccount{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSUpgradeAccount) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSUpgradeAccount) ProtoMessage() {} func (x *CSUpgradeAccount) ProtoReflect() protoreflect.Message { mi := &file_player_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 CSUpgradeAccount.ProtoReflect.Descriptor instead. func (*CSUpgradeAccount) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{29} } func (x *CSUpgradeAccount) GetChangeType() int32 { if x != nil { return x.ChangeType } return 0 } func (x *CSUpgradeAccount) GetTel() string { if x != nil { return x.Tel } return "" } func (x *CSUpgradeAccount) GetVerificationCode() string { if x != nil { return x.VerificationCode } return "" } func (x *CSUpgradeAccount) GetPassword() string { if x != nil { return x.Password } return "" } func (x *CSUpgradeAccount) GetTimeStamp() int64 { if x != nil { return x.TimeStamp } return 0 } func (x *CSUpgradeAccount) GetPlatformTag() string { if x != nil { return x.PlatformTag } return "" } //PACKET_SC_UPGRADEACCOUNT type SCUpgradeAccount struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=player.OpResultCode" json:"OpRetCode,omitempty"` //操作结果 Tel string `protobuf:"bytes,2,opt,name=Tel,proto3" json:"Tel,omitempty"` //手机号 ChangeType int32 `protobuf:"varint,3,opt,name=ChangeType,proto3" json:"ChangeType,omitempty"` //0:绑定帐号密码 1:设置保险箱密码(不用) 2:帐号密码找回 3:保险箱密码找回 } func (x *SCUpgradeAccount) Reset() { *x = SCUpgradeAccount{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCUpgradeAccount) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCUpgradeAccount) ProtoMessage() {} func (x *SCUpgradeAccount) ProtoReflect() protoreflect.Message { mi := &file_player_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 SCUpgradeAccount.ProtoReflect.Descriptor instead. func (*SCUpgradeAccount) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{30} } func (x *SCUpgradeAccount) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } func (x *SCUpgradeAccount) GetTel() string { if x != nil { return x.Tel } return "" } func (x *SCUpgradeAccount) GetChangeType() int32 { if x != nil { return x.ChangeType } return 0 } //绑定支付宝账号 //PACKET_CS_BINDALIPAY type CSBindAlipay struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields AlipayAccount string `protobuf:"bytes,1,opt,name=AlipayAccount,proto3" json:"AlipayAccount,omitempty"` //支付宝账号 AlipayAccName string `protobuf:"bytes,2,opt,name=AlipayAccName,proto3" json:"AlipayAccName,omitempty"` //支付宝账号实名 TimeStamp int64 `protobuf:"varint,3,opt,name=TimeStamp,proto3" json:"TimeStamp,omitempty"` //时间戳 Password string `protobuf:"bytes,4,opt,name=Password,proto3" json:"Password,omitempty"` //保险箱密码 md5(md5(原始密码+AppId)+AppId+TimeStamp) } func (x *CSBindAlipay) Reset() { *x = CSBindAlipay{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSBindAlipay) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSBindAlipay) ProtoMessage() {} func (x *CSBindAlipay) ProtoReflect() protoreflect.Message { mi := &file_player_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 CSBindAlipay.ProtoReflect.Descriptor instead. func (*CSBindAlipay) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{31} } func (x *CSBindAlipay) GetAlipayAccount() string { if x != nil { return x.AlipayAccount } return "" } func (x *CSBindAlipay) GetAlipayAccName() string { if x != nil { return x.AlipayAccName } return "" } func (x *CSBindAlipay) GetTimeStamp() int64 { if x != nil { return x.TimeStamp } return 0 } func (x *CSBindAlipay) GetPassword() string { if x != nil { return x.Password } return "" } //PACKET_SC_BINDALIPAY type SCBindAlipay struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=player.OpResultCode" json:"OpRetCode,omitempty"` //操作结果 AlipayAccount string `protobuf:"bytes,2,opt,name=AlipayAccount,proto3" json:"AlipayAccount,omitempty"` //支付宝账号 AlipayAccName string `protobuf:"bytes,3,opt,name=AlipayAccName,proto3" json:"AlipayAccName,omitempty"` //支付宝账号实名 } func (x *SCBindAlipay) Reset() { *x = SCBindAlipay{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCBindAlipay) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCBindAlipay) ProtoMessage() {} func (x *SCBindAlipay) ProtoReflect() protoreflect.Message { mi := &file_player_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 SCBindAlipay.ProtoReflect.Descriptor instead. func (*SCBindAlipay) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{32} } func (x *SCBindAlipay) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } func (x *SCBindAlipay) GetAlipayAccount() string { if x != nil { return x.AlipayAccount } return "" } func (x *SCBindAlipay) GetAlipayAccName() string { if x != nil { return x.AlipayAccName } return "" } //绑定银行卡账号 //PACKET_CS_BINDBANK type CSBindBank struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Bank string `protobuf:"bytes,1,opt,name=Bank,proto3" json:"Bank,omitempty"` //银行名称 BankAccount string `protobuf:"bytes,2,opt,name=BankAccount,proto3" json:"BankAccount,omitempty"` //银行帐号 BankAccName string `protobuf:"bytes,3,opt,name=BankAccName,proto3" json:"BankAccName,omitempty"` //银行开户行账户 TimeStamp int64 `protobuf:"varint,4,opt,name=TimeStamp,proto3" json:"TimeStamp,omitempty"` //时间戳 Password string `protobuf:"bytes,5,opt,name=Password,proto3" json:"Password,omitempty"` //保险箱密码 md5(md5(原始密码+AppId)+AppId+TimeStamp) } func (x *CSBindBank) Reset() { *x = CSBindBank{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSBindBank) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSBindBank) ProtoMessage() {} func (x *CSBindBank) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSBindBank.ProtoReflect.Descriptor instead. func (*CSBindBank) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{33} } func (x *CSBindBank) GetBank() string { if x != nil { return x.Bank } return "" } func (x *CSBindBank) GetBankAccount() string { if x != nil { return x.BankAccount } return "" } func (x *CSBindBank) GetBankAccName() string { if x != nil { return x.BankAccName } return "" } func (x *CSBindBank) GetTimeStamp() int64 { if x != nil { return x.TimeStamp } return 0 } func (x *CSBindBank) GetPassword() string { if x != nil { return x.Password } return "" } //PACKET_SC_BINDBANK type SCBindBank struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=player.OpResultCode" json:"OpRetCode,omitempty"` //操作结果 Bank string `protobuf:"bytes,2,opt,name=Bank,proto3" json:"Bank,omitempty"` //银行名称 BankAccount string `protobuf:"bytes,3,opt,name=BankAccount,proto3" json:"BankAccount,omitempty"` //银行帐号 BankAccName string `protobuf:"bytes,4,opt,name=BankAccName,proto3" json:"BankAccName,omitempty"` //银行开户行账户 } func (x *SCBindBank) Reset() { *x = SCBindBank{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCBindBank) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCBindBank) ProtoMessage() {} func (x *SCBindBank) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCBindBank.ProtoReflect.Descriptor instead. func (*SCBindBank) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{34} } func (x *SCBindBank) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } func (x *SCBindBank) GetBank() string { if x != nil { return x.Bank } return "" } func (x *SCBindBank) GetBankAccount() string { if x != nil { return x.BankAccount } return "" } func (x *SCBindBank) GetBankAccName() string { if x != nil { return x.BankAccName } return "" } //PACKET_SC_PLAYERFLAG //玩家状态标记同步 type SCPlayerFlag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PlayerId int32 `protobuf:"varint,1,opt,name=PlayerId,proto3" json:"PlayerId,omitempty"` Flag int32 `protobuf:"varint,2,opt,name=Flag,proto3" json:"Flag,omitempty"` } func (x *SCPlayerFlag) Reset() { *x = SCPlayerFlag{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCPlayerFlag) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCPlayerFlag) ProtoMessage() {} func (x *SCPlayerFlag) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCPlayerFlag.ProtoReflect.Descriptor instead. func (*SCPlayerFlag) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{35} } func (x *SCPlayerFlag) GetPlayerId() int32 { if x != nil { return x.PlayerId } return 0 } func (x *SCPlayerFlag) GetFlag() int32 { if x != nil { return x.Flag } return 0 } //PACKET_SC_PLAYERCOINCHANGE type SCPlayerCoinChange struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SnId int32 `protobuf:"varint,1,opt,name=SnId,proto3" json:"SnId,omitempty"` AddCoin int64 `protobuf:"varint,2,opt,name=AddCoin,proto3" json:"AddCoin,omitempty"` RestCoin int64 `protobuf:"varint,3,opt,name=RestCoin,proto3" json:"RestCoin,omitempty"` } func (x *SCPlayerCoinChange) Reset() { *x = SCPlayerCoinChange{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCPlayerCoinChange) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCPlayerCoinChange) ProtoMessage() {} func (x *SCPlayerCoinChange) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCPlayerCoinChange.ProtoReflect.Descriptor instead. func (*SCPlayerCoinChange) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{36} } func (x *SCPlayerCoinChange) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *SCPlayerCoinChange) GetAddCoin() int64 { if x != nil { return x.AddCoin } return 0 } func (x *SCPlayerCoinChange) GetRestCoin() int64 { if x != nil { return x.RestCoin } return 0 } //PACKET_SC_PLAYERRECHARGEANSWER type SCPlayerRechargeAnswer struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpParam int64 `protobuf:"varint,1,opt,name=OpParam,proto3" json:"OpParam,omitempty"` // 1 加钱 AddCoin int64 `protobuf:"varint,2,opt,name=AddCoin,proto3" json:"AddCoin,omitempty"` //加多少 Coin int64 `protobuf:"varint,3,opt,name=Coin,proto3" json:"Coin,omitempty"` //加之后身上钱 SafeBoxCoin int64 `protobuf:"varint,4,opt,name=SafeBoxCoin,proto3" json:"SafeBoxCoin,omitempty"` //保险箱 } func (x *SCPlayerRechargeAnswer) Reset() { *x = SCPlayerRechargeAnswer{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCPlayerRechargeAnswer) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCPlayerRechargeAnswer) ProtoMessage() {} func (x *SCPlayerRechargeAnswer) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCPlayerRechargeAnswer.ProtoReflect.Descriptor instead. func (*SCPlayerRechargeAnswer) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{37} } func (x *SCPlayerRechargeAnswer) GetOpParam() int64 { if x != nil { return x.OpParam } return 0 } func (x *SCPlayerRechargeAnswer) GetAddCoin() int64 { if x != nil { return x.AddCoin } return 0 } func (x *SCPlayerRechargeAnswer) GetCoin() int64 { if x != nil { return x.Coin } return 0 } func (x *SCPlayerRechargeAnswer) GetSafeBoxCoin() int64 { if x != nil { return x.SafeBoxCoin } return 0 } //数据日志 type DataLog struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields LogType int32 `protobuf:"varint,1,opt,name=LogType,proto3" json:"LogType,omitempty"` //log记录的事件类型 ChangeCount int64 `protobuf:"varint,2,opt,name=ChangeCount,proto3" json:"ChangeCount,omitempty"` //变化数量 RestCount int64 `protobuf:"varint,3,opt,name=RestCount,proto3" json:"RestCount,omitempty"` //剩余数量 Ts int32 `protobuf:"varint,4,opt,name=Ts,proto3" json:"Ts,omitempty"` //发生时的时间戳 Remark string `protobuf:"bytes,5,opt,name=Remark,proto3" json:"Remark,omitempty"` //其他备注信息 } func (x *DataLog) Reset() { *x = DataLog{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DataLog) String() string { return protoimpl.X.MessageStringOf(x) } func (*DataLog) ProtoMessage() {} func (x *DataLog) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DataLog.ProtoReflect.Descriptor instead. func (*DataLog) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{38} } func (x *DataLog) GetLogType() int32 { if x != nil { return x.LogType } return 0 } func (x *DataLog) GetChangeCount() int64 { if x != nil { return x.ChangeCount } return 0 } func (x *DataLog) GetRestCount() int64 { if x != nil { return x.RestCount } return 0 } func (x *DataLog) GetTs() int32 { if x != nil { return x.Ts } return 0 } func (x *DataLog) GetRemark() string { if x != nil { return x.Remark } return "" } //PACKET_CS_GETDATALOG type CSGetDataLog struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DataType int32 `protobuf:"varint,1,opt,name=DataType,proto3" json:"DataType,omitempty"` //数据类型 0:金币log Ver int32 `protobuf:"varint,2,opt,name=Ver,proto3" json:"Ver,omitempty"` //版本号 } func (x *CSGetDataLog) Reset() { *x = CSGetDataLog{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSGetDataLog) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSGetDataLog) ProtoMessage() {} func (x *CSGetDataLog) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSGetDataLog.ProtoReflect.Descriptor instead. func (*CSGetDataLog) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{39} } func (x *CSGetDataLog) GetDataType() int32 { if x != nil { return x.DataType } return 0 } func (x *CSGetDataLog) GetVer() int32 { if x != nil { return x.Ver } return 0 } //PACKET_SC_GETDATALOG type SCGetDataLog struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DataType int32 `protobuf:"varint,1,opt,name=DataType,proto3" json:"DataType,omitempty"` Ver int32 `protobuf:"varint,2,opt,name=Ver,proto3" json:"Ver,omitempty"` Datas []*DataLog `protobuf:"bytes,3,rep,name=Datas,proto3" json:"Datas,omitempty"` } func (x *SCGetDataLog) Reset() { *x = SCGetDataLog{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCGetDataLog) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCGetDataLog) ProtoMessage() {} func (x *SCGetDataLog) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCGetDataLog.ProtoReflect.Descriptor instead. func (*SCGetDataLog) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{40} } func (x *SCGetDataLog) GetDataType() int32 { if x != nil { return x.DataType } return 0 } func (x *SCGetDataLog) GetVer() int32 { if x != nil { return x.Ver } return 0 } func (x *SCGetDataLog) GetDatas() []*DataLog { if x != nil { return x.Datas } return nil } //游戏金币日志 type GameCoinLog struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameId int32 `protobuf:"varint,1,opt,name=GameId,proto3" json:"GameId,omitempty"` //游戏id EnterCount int64 `protobuf:"varint,2,opt,name=EnterCount,proto3" json:"EnterCount,omitempty"` //进入时数量 LeaveCount int64 `protobuf:"varint,3,opt,name=LeaveCount,proto3" json:"LeaveCount,omitempty"` //离开时数量 EnterTs int64 `protobuf:"varint,4,opt,name=EnterTs,proto3" json:"EnterTs,omitempty"` //进入时的时间戳 LeaveTs int64 `protobuf:"varint,5,opt,name=LeaveTs,proto3" json:"LeaveTs,omitempty"` //离开时的时间戳 } func (x *GameCoinLog) Reset() { *x = GameCoinLog{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GameCoinLog) String() string { return protoimpl.X.MessageStringOf(x) } func (*GameCoinLog) ProtoMessage() {} func (x *GameCoinLog) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GameCoinLog.ProtoReflect.Descriptor instead. func (*GameCoinLog) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{41} } func (x *GameCoinLog) GetGameId() int32 { if x != nil { return x.GameId } return 0 } func (x *GameCoinLog) GetEnterCount() int64 { if x != nil { return x.EnterCount } return 0 } func (x *GameCoinLog) GetLeaveCount() int64 { if x != nil { return x.LeaveCount } return 0 } func (x *GameCoinLog) GetEnterTs() int64 { if x != nil { return x.EnterTs } return 0 } func (x *GameCoinLog) GetLeaveTs() int64 { if x != nil { return x.LeaveTs } return 0 } //PACKET_CS_GETGAMECOINLOG type CSGetGameCoinLog struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ts int64 `protobuf:"varint,1,opt,name=Ts,proto3" json:"Ts,omitempty"` //最后时间戳 } func (x *CSGetGameCoinLog) Reset() { *x = CSGetGameCoinLog{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSGetGameCoinLog) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSGetGameCoinLog) ProtoMessage() {} func (x *CSGetGameCoinLog) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSGetGameCoinLog.ProtoReflect.Descriptor instead. func (*CSGetGameCoinLog) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{42} } func (x *CSGetGameCoinLog) GetTs() int64 { if x != nil { return x.Ts } return 0 } //PACKET_SC_GETGAMECOINLOG type SCGetGameCoinLog struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=player.OpResultCode" json:"OpRetCode,omitempty"` //操作结果 Logs []*GameCoinLog `protobuf:"bytes,2,rep,name=Logs,proto3" json:"Logs,omitempty"` //日志信息 } func (x *SCGetGameCoinLog) Reset() { *x = SCGetGameCoinLog{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCGetGameCoinLog) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCGetGameCoinLog) ProtoMessage() {} func (x *SCGetGameCoinLog) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCGetGameCoinLog.ProtoReflect.Descriptor instead. func (*SCGetGameCoinLog) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{43} } func (x *SCGetGameCoinLog) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } func (x *SCGetGameCoinLog) GetLogs() []*GameCoinLog { if x != nil { return x.Logs } return nil } //保险箱存取款 //PACKET_CS_PLAYEROPCOIN type CSPlayerOpCoin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Op int32 `protobuf:"varint,1,opt,name=Op,proto3" json:"Op,omitempty"` //0:存钱 1:取钱 Coin int64 `protobuf:"varint,2,opt,name=Coin,proto3" json:"Coin,omitempty"` Password string `protobuf:"bytes,3,opt,name=Password,proto3" json:"Password,omitempty"` //保险箱密码md5(md5(原始密码+AppId)+AppId+TimeStamp) TimeStamp int64 `protobuf:"varint,4,opt,name=TimeStamp,proto3" json:"TimeStamp,omitempty"` //时间戳 } func (x *CSPlayerOpCoin) Reset() { *x = CSPlayerOpCoin{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSPlayerOpCoin) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSPlayerOpCoin) ProtoMessage() {} func (x *CSPlayerOpCoin) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSPlayerOpCoin.ProtoReflect.Descriptor instead. func (*CSPlayerOpCoin) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{44} } func (x *CSPlayerOpCoin) GetOp() int32 { if x != nil { return x.Op } return 0 } func (x *CSPlayerOpCoin) GetCoin() int64 { if x != nil { return x.Coin } return 0 } func (x *CSPlayerOpCoin) GetPassword() string { if x != nil { return x.Password } return "" } func (x *CSPlayerOpCoin) GetTimeStamp() int64 { if x != nil { return x.TimeStamp } return 0 } //PACKET_SC_PLAYEROPCOIN type SCPlayerOpCoin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=player.OpResultCode" json:"OpRetCode,omitempty"` //操作结果 Op int32 `protobuf:"varint,2,opt,name=Op,proto3" json:"Op,omitempty"` //0:存钱 1:取钱 Coin int64 `protobuf:"varint,3,opt,name=Coin,proto3" json:"Coin,omitempty"` //身上金币数量 SafeBoxCoin int64 `protobuf:"varint,4,opt,name=SafeBoxCoin,proto3" json:"SafeBoxCoin,omitempty"` //保险箱金币数量 } func (x *SCPlayerOpCoin) Reset() { *x = SCPlayerOpCoin{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCPlayerOpCoin) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCPlayerOpCoin) ProtoMessage() {} func (x *SCPlayerOpCoin) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCPlayerOpCoin.ProtoReflect.Descriptor instead. func (*SCPlayerOpCoin) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{45} } func (x *SCPlayerOpCoin) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } func (x *SCPlayerOpCoin) GetOp() int32 { if x != nil { return x.Op } return 0 } func (x *SCPlayerOpCoin) GetCoin() int64 { if x != nil { return x.Coin } return 0 } func (x *SCPlayerOpCoin) GetSafeBoxCoin() int64 { if x != nil { return x.SafeBoxCoin } return 0 } //保险箱金币日志 type SafeBoxCoinLog struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields LogType int32 `protobuf:"varint,1,opt,name=LogType,proto3" json:"LogType,omitempty"` //操作类型 0:存钱 1:取钱 OPCoin int64 `protobuf:"varint,2,opt,name=OPCoin,proto3" json:"OPCoin,omitempty"` //操作金额 OPCoinFront int64 `protobuf:"varint,3,opt,name=OPCoinFront,proto3" json:"OPCoinFront,omitempty"` //操作前金额 OPCoinLast int64 `protobuf:"varint,4,opt,name=OPCoinLast,proto3" json:"OPCoinLast,omitempty"` //操作后金额 Ts int64 `protobuf:"varint,5,opt,name=Ts,proto3" json:"Ts,omitempty"` //操作时间戳 } func (x *SafeBoxCoinLog) Reset() { *x = SafeBoxCoinLog{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SafeBoxCoinLog) String() string { return protoimpl.X.MessageStringOf(x) } func (*SafeBoxCoinLog) ProtoMessage() {} func (x *SafeBoxCoinLog) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SafeBoxCoinLog.ProtoReflect.Descriptor instead. func (*SafeBoxCoinLog) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{46} } func (x *SafeBoxCoinLog) GetLogType() int32 { if x != nil { return x.LogType } return 0 } func (x *SafeBoxCoinLog) GetOPCoin() int64 { if x != nil { return x.OPCoin } return 0 } func (x *SafeBoxCoinLog) GetOPCoinFront() int64 { if x != nil { return x.OPCoinFront } return 0 } func (x *SafeBoxCoinLog) GetOPCoinLast() int64 { if x != nil { return x.OPCoinLast } return 0 } func (x *SafeBoxCoinLog) GetTs() int64 { if x != nil { return x.Ts } return 0 } //PACKET_CS_GETSAFEBOXCOINLOG type CSGetSafeBoxCoinLog struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ts int64 `protobuf:"varint,1,opt,name=Ts,proto3" json:"Ts,omitempty"` //最后时间戳 } func (x *CSGetSafeBoxCoinLog) Reset() { *x = CSGetSafeBoxCoinLog{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSGetSafeBoxCoinLog) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSGetSafeBoxCoinLog) ProtoMessage() {} func (x *CSGetSafeBoxCoinLog) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSGetSafeBoxCoinLog.ProtoReflect.Descriptor instead. func (*CSGetSafeBoxCoinLog) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{47} } func (x *CSGetSafeBoxCoinLog) GetTs() int64 { if x != nil { return x.Ts } return 0 } //PACKET_SC_GETSAFEBOXCOINLOG type SCGetSafeBoxCoinLog struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=player.OpResultCode" json:"OpRetCode,omitempty"` //操作结果 Logs []*SafeBoxCoinLog `protobuf:"bytes,2,rep,name=Logs,proto3" json:"Logs,omitempty"` //日志信息 } func (x *SCGetSafeBoxCoinLog) Reset() { *x = SCGetSafeBoxCoinLog{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCGetSafeBoxCoinLog) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCGetSafeBoxCoinLog) ProtoMessage() {} func (x *SCGetSafeBoxCoinLog) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCGetSafeBoxCoinLog.ProtoReflect.Descriptor instead. func (*SCGetSafeBoxCoinLog) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{48} } func (x *SCGetSafeBoxCoinLog) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } func (x *SCGetSafeBoxCoinLog) GetLogs() []*SafeBoxCoinLog { if x != nil { return x.Logs } return nil } //领取邀请码奖励 //PACKET_CS_INVITECODE type CSPlayerInviteCode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Code string `protobuf:"bytes,1,opt,name=Code,proto3" json:"Code,omitempty"` } func (x *CSPlayerInviteCode) Reset() { *x = CSPlayerInviteCode{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSPlayerInviteCode) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSPlayerInviteCode) ProtoMessage() {} func (x *CSPlayerInviteCode) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSPlayerInviteCode.ProtoReflect.Descriptor instead. func (*CSPlayerInviteCode) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{49} } func (x *CSPlayerInviteCode) GetCode() string { if x != nil { return x.Code } return "" } //PACKET_SC_INVITECODE type SCPlayerInviteCode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=player.OpResultCode" json:"OpRetCode,omitempty"` //操作结果 } func (x *SCPlayerInviteCode) Reset() { *x = SCPlayerInviteCode{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCPlayerInviteCode) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCPlayerInviteCode) ProtoMessage() {} func (x *SCPlayerInviteCode) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCPlayerInviteCode.ProtoReflect.Descriptor instead. func (*SCPlayerInviteCode) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{50} } func (x *SCPlayerInviteCode) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } //玩家API透传 //PACKET_CS_WEBAPI_PLAYERPASS type CSWebAPIPlayerPass struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ApiName string `protobuf:"bytes,1,opt,name=ApiName,proto3" json:"ApiName,omitempty"` Params string `protobuf:"bytes,2,opt,name=Params,proto3" json:"Params,omitempty"` CBData string `protobuf:"bytes,3,opt,name=CBData,proto3" json:"CBData,omitempty"` } func (x *CSWebAPIPlayerPass) Reset() { *x = CSWebAPIPlayerPass{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSWebAPIPlayerPass) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSWebAPIPlayerPass) ProtoMessage() {} func (x *CSWebAPIPlayerPass) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSWebAPIPlayerPass.ProtoReflect.Descriptor instead. func (*CSWebAPIPlayerPass) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{51} } func (x *CSWebAPIPlayerPass) GetApiName() string { if x != nil { return x.ApiName } return "" } func (x *CSWebAPIPlayerPass) GetParams() string { if x != nil { return x.Params } return "" } func (x *CSWebAPIPlayerPass) GetCBData() string { if x != nil { return x.CBData } return "" } //PACKET_SC_WEBAPI_PLAYERPASS type SCWebAPIPlayerPass struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=player.OpResultCode" json:"OpRetCode,omitempty"` //操作结果 ApiName string `protobuf:"bytes,2,opt,name=ApiName,proto3" json:"ApiName,omitempty"` CBData string `protobuf:"bytes,3,opt,name=CBData,proto3" json:"CBData,omitempty"` Response string `protobuf:"bytes,4,opt,name=Response,proto3" json:"Response,omitempty"` } func (x *SCWebAPIPlayerPass) Reset() { *x = SCWebAPIPlayerPass{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCWebAPIPlayerPass) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCWebAPIPlayerPass) ProtoMessage() {} func (x *SCWebAPIPlayerPass) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCWebAPIPlayerPass.ProtoReflect.Descriptor instead. func (*SCWebAPIPlayerPass) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{52} } func (x *SCWebAPIPlayerPass) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } func (x *SCWebAPIPlayerPass) GetApiName() string { if x != nil { return x.ApiName } return "" } func (x *SCWebAPIPlayerPass) GetCBData() string { if x != nil { return x.CBData } return "" } func (x *SCWebAPIPlayerPass) GetResponse() string { if x != nil { return x.Response } return "" } //系统API透传 //PACKET_CS_WEBAPI_SYSTEMPASS type CSWebAPISystemPass struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ApiName string `protobuf:"bytes,1,opt,name=ApiName,proto3" json:"ApiName,omitempty"` Params string `protobuf:"bytes,2,opt,name=Params,proto3" json:"Params,omitempty"` CBData string `protobuf:"bytes,3,opt,name=CBData,proto3" json:"CBData,omitempty"` } func (x *CSWebAPISystemPass) Reset() { *x = CSWebAPISystemPass{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSWebAPISystemPass) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSWebAPISystemPass) ProtoMessage() {} func (x *CSWebAPISystemPass) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSWebAPISystemPass.ProtoReflect.Descriptor instead. func (*CSWebAPISystemPass) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{53} } func (x *CSWebAPISystemPass) GetApiName() string { if x != nil { return x.ApiName } return "" } func (x *CSWebAPISystemPass) GetParams() string { if x != nil { return x.Params } return "" } func (x *CSWebAPISystemPass) GetCBData() string { if x != nil { return x.CBData } return "" } //PACKET_SC_WEBAPI_SYSTEMPASS type SCWebAPISystemPass struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=player.OpResultCode" json:"OpRetCode,omitempty"` //操作结果 ApiName string `protobuf:"bytes,2,opt,name=ApiName,proto3" json:"ApiName,omitempty"` CBData string `protobuf:"bytes,3,opt,name=CBData,proto3" json:"CBData,omitempty"` Response string `protobuf:"bytes,4,opt,name=Response,proto3" json:"Response,omitempty"` } func (x *SCWebAPISystemPass) Reset() { *x = SCWebAPISystemPass{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCWebAPISystemPass) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCWebAPISystemPass) ProtoMessage() {} func (x *SCWebAPISystemPass) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCWebAPISystemPass.ProtoReflect.Descriptor instead. func (*SCWebAPISystemPass) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{54} } func (x *SCWebAPISystemPass) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } func (x *SCWebAPISystemPass) GetApiName() string { if x != nil { return x.ApiName } return "" } func (x *SCWebAPISystemPass) GetCBData() string { if x != nil { return x.CBData } return "" } func (x *SCWebAPISystemPass) GetResponse() string { if x != nil { return x.Response } return "" } //绑定推广关系 //PACKET_CS_SPREADBIND type CSSpreadBind struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ParentId int32 `protobuf:"varint,1,opt,name=ParentId,proto3" json:"ParentId,omitempty"` //上级id } func (x *CSSpreadBind) Reset() { *x = CSSpreadBind{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSSpreadBind) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSSpreadBind) ProtoMessage() {} func (x *CSSpreadBind) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSSpreadBind.ProtoReflect.Descriptor instead. func (*CSSpreadBind) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{55} } func (x *CSSpreadBind) GetParentId() int32 { if x != nil { return x.ParentId } return 0 } //绑定推广关系 //PACKET_SC_SPREADBIND type SCSpreadBind struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=player.OpResultCode" json:"OpRetCode,omitempty"` //操作结果 ParentId int32 `protobuf:"varint,2,opt,name=ParentId,proto3" json:"ParentId,omitempty"` //上级id } func (x *SCSpreadBind) Reset() { *x = SCSpreadBind{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCSpreadBind) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCSpreadBind) ProtoMessage() {} func (x *SCSpreadBind) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCSpreadBind.ProtoReflect.Descriptor instead. func (*SCSpreadBind) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{56} } func (x *SCSpreadBind) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } func (x *SCSpreadBind) GetParentId() int32 { if x != nil { return x.ParentId } return 0 } //绑定推广员 //PACKET_CS_BINDPROMOTER type CSBindPromoter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Promoter string `protobuf:"bytes,1,opt,name=Promoter,proto3" json:"Promoter,omitempty"` //推广员 } func (x *CSBindPromoter) Reset() { *x = CSBindPromoter{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSBindPromoter) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSBindPromoter) ProtoMessage() {} func (x *CSBindPromoter) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSBindPromoter.ProtoReflect.Descriptor instead. func (*CSBindPromoter) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{57} } func (x *CSBindPromoter) GetPromoter() string { if x != nil { return x.Promoter } return "" } //绑定推广员 //PACKET_SC_BINDPROMOTER type SCBindPromoter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=player.OpResultCode" json:"OpRetCode,omitempty"` //操作结果 Promoter string `protobuf:"bytes,2,opt,name=Promoter,proto3" json:"Promoter,omitempty"` //推广员 } func (x *SCBindPromoter) Reset() { *x = SCBindPromoter{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCBindPromoter) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCBindPromoter) ProtoMessage() {} func (x *SCBindPromoter) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCBindPromoter.ProtoReflect.Descriptor instead. func (*SCBindPromoter) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{58} } func (x *SCBindPromoter) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } func (x *SCBindPromoter) GetPromoter() string { if x != nil { return x.Promoter } return "" } //通知是否显示推广员绑定信息 //PACKET_SC_BINDPROMOTERSTATE type SCBindPromoterState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields BindState int32 `protobuf:"varint,1,opt,name=BindState,proto3" json:"BindState,omitempty"` //是否显示绑定0 没有绑定功能 1 绑定功能开启 2 用户已经绑定 } func (x *SCBindPromoterState) Reset() { *x = SCBindPromoterState{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCBindPromoterState) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCBindPromoterState) ProtoMessage() {} func (x *SCBindPromoterState) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCBindPromoterState.ProtoReflect.Descriptor instead. func (*SCBindPromoterState) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{59} } func (x *SCBindPromoterState) GetBindState() int32 { if x != nil { return x.BindState } return 0 } //生成客服会话token //PACKET_CS_GENCUSTOMTOKEN type CSGenCustomerToken struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *CSGenCustomerToken) Reset() { *x = CSGenCustomerToken{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSGenCustomerToken) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSGenCustomerToken) ProtoMessage() {} func (x *CSGenCustomerToken) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSGenCustomerToken.ProtoReflect.Descriptor instead. func (*CSGenCustomerToken) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{60} } //生成客服会话token //PACKET_SC_GENCUSTOMTOKEN type SCGenCustomerToken struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Token string `protobuf:"bytes,1,opt,name=Token,proto3" json:"Token,omitempty"` //token值 } func (x *SCGenCustomerToken) Reset() { *x = SCGenCustomerToken{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCGenCustomerToken) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCGenCustomerToken) ProtoMessage() {} func (x *SCGenCustomerToken) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCGenCustomerToken.ProtoReflect.Descriptor instead. func (*SCGenCustomerToken) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{61} } func (x *SCGenCustomerToken) GetToken() string { if x != nil { return x.Token } return "" } type CustomerMsg struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MsgId string `protobuf:"bytes,1,opt,name=MsgId,proto3" json:"MsgId,omitempty"` Data string `protobuf:"bytes,2,opt,name=Data,proto3" json:"Data,omitempty"` } func (x *CustomerMsg) Reset() { *x = CustomerMsg{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CustomerMsg) String() string { return protoimpl.X.MessageStringOf(x) } func (*CustomerMsg) ProtoMessage() {} func (x *CustomerMsg) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CustomerMsg.ProtoReflect.Descriptor instead. func (*CustomerMsg) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{62} } func (x *CustomerMsg) GetMsgId() string { if x != nil { return x.MsgId } return "" } func (x *CustomerMsg) GetData() string { if x != nil { return x.Data } return "" } //客服新消息提醒 //PACKET_SC_CUSTOMNEWMSG type SCCustomerNewMsg struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Data []*CustomerMsg `protobuf:"bytes,1,rep,name=Data,proto3" json:"Data,omitempty"` //透传新消息通知 } func (x *SCCustomerNewMsg) Reset() { *x = SCCustomerNewMsg{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCCustomerNewMsg) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCCustomerNewMsg) ProtoMessage() {} func (x *SCCustomerNewMsg) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCCustomerNewMsg.ProtoReflect.Descriptor instead. func (*SCCustomerNewMsg) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{63} } func (x *SCCustomerNewMsg) GetData() []*CustomerMsg { if x != nil { return x.Data } return nil } //PACKET_CS_CUSTOMNEWMSGACK type CSCustomerNewMsgAck struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MsgIds []string `protobuf:"bytes,1,rep,name=MsgIds,proto3" json:"MsgIds,omitempty"` //接受成功的msgid } func (x *CSCustomerNewMsgAck) Reset() { *x = CSCustomerNewMsgAck{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSCustomerNewMsgAck) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSCustomerNewMsgAck) ProtoMessage() {} func (x *CSCustomerNewMsgAck) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSCustomerNewMsgAck.ProtoReflect.Descriptor instead. func (*CSCustomerNewMsgAck) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{64} } func (x *CSCustomerNewMsgAck) GetMsgIds() []string { if x != nil { return x.MsgIds } return nil } //获取图片验证码 //PACKET_CS_GETIMAGEVERIFYCODE type CSGetImageVerifyCode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *CSGetImageVerifyCode) Reset() { *x = CSGetImageVerifyCode{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSGetImageVerifyCode) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSGetImageVerifyCode) ProtoMessage() {} func (x *CSGetImageVerifyCode) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSGetImageVerifyCode.ProtoReflect.Descriptor instead. func (*CSGetImageVerifyCode) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{65} } //PACKET_SC_GETIMAGEVERIFYCODE type SCGetImageVerifyCode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=player.OpResultCode" json:"OpRetCode,omitempty"` //操作结果 ImageData string `protobuf:"bytes,2,opt,name=ImageData,proto3" json:"ImageData,omitempty"` } func (x *SCGetImageVerifyCode) Reset() { *x = SCGetImageVerifyCode{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCGetImageVerifyCode) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCGetImageVerifyCode) ProtoMessage() {} func (x *SCGetImageVerifyCode) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCGetImageVerifyCode.ProtoReflect.Descriptor instead. func (*SCGetImageVerifyCode) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{66} } func (x *SCGetImageVerifyCode) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } func (x *SCGetImageVerifyCode) GetImageData() string { if x != nil { return x.ImageData } return "" } // 验证图片验证码 //PACKET_CS_ImageVerifyCode type CSImageVerifyCode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Code string `protobuf:"bytes,1,opt,name=Code,proto3" json:"Code,omitempty"` // 验证码 } func (x *CSImageVerifyCode) Reset() { *x = CSImageVerifyCode{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSImageVerifyCode) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSImageVerifyCode) ProtoMessage() {} func (x *CSImageVerifyCode) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSImageVerifyCode.ProtoReflect.Descriptor instead. func (*CSImageVerifyCode) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{67} } func (x *CSImageVerifyCode) GetCode() string { if x != nil { return x.Code } return "" } //PACKET_SC_ImageVerifyCode type SCImageVerifyCode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=player.OpResultCode" json:"OpRetCode,omitempty"` //操作结果 } func (x *SCImageVerifyCode) Reset() { *x = SCImageVerifyCode{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCImageVerifyCode) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCImageVerifyCode) ProtoMessage() {} func (x *SCImageVerifyCode) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCImageVerifyCode.ProtoReflect.Descriptor instead. func (*SCImageVerifyCode) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{68} } func (x *SCImageVerifyCode) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } //玩家托管 //PACKET_SC_TRUSTEESHIPTIPS type SCTrusteeshipTips struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Trusteeship int32 `protobuf:"varint,1,opt,name=Trusteeship,proto3" json:"Trusteeship,omitempty"` //目前为止托管的局数 TotalNum int32 `protobuf:"varint,2,opt,name=TotalNum,proto3" json:"TotalNum,omitempty"` //可以托管的总局数 GameFreeId int32 `protobuf:"varint,3,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` //游戏类型 OpParams []int32 `protobuf:"varint,4,rep,packed,name=OpParams,proto3" json:"OpParams,omitempty"` //扩展参数 } func (x *SCTrusteeshipTips) Reset() { *x = SCTrusteeshipTips{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCTrusteeshipTips) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCTrusteeshipTips) ProtoMessage() {} func (x *SCTrusteeshipTips) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCTrusteeshipTips.ProtoReflect.Descriptor instead. func (*SCTrusteeshipTips) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{69} } func (x *SCTrusteeshipTips) GetTrusteeship() int32 { if x != nil { return x.Trusteeship } return 0 } func (x *SCTrusteeshipTips) GetTotalNum() int32 { if x != nil { return x.TotalNum } return 0 } func (x *SCTrusteeshipTips) GetGameFreeId() int32 { if x != nil { return x.GameFreeId } return 0 } func (x *SCTrusteeshipTips) GetOpParams() []int32 { if x != nil { return x.OpParams } return nil } //获取滑块验证码 //PACKET_CS_GETSLIDERVERIFYCODE type CSGetSliderVerifyCode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Tel string `protobuf:"bytes,1,opt,name=Tel,proto3" json:"Tel,omitempty"` } func (x *CSGetSliderVerifyCode) Reset() { *x = CSGetSliderVerifyCode{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSGetSliderVerifyCode) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSGetSliderVerifyCode) ProtoMessage() {} func (x *CSGetSliderVerifyCode) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSGetSliderVerifyCode.ProtoReflect.Descriptor instead. func (*CSGetSliderVerifyCode) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{70} } func (x *CSGetSliderVerifyCode) GetTel() string { if x != nil { return x.Tel } return "" } //获取滑块验证码 //PACKET_SC_GETSLIDERVERIFYCODE type SCGetSliderVerifyCode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=player.OpResultCode" json:"OpRetCode,omitempty"` //操作结果 Pos int32 `protobuf:"varint,2,opt,name=Pos,proto3" json:"Pos,omitempty"` } func (x *SCGetSliderVerifyCode) Reset() { *x = SCGetSliderVerifyCode{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCGetSliderVerifyCode) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCGetSliderVerifyCode) ProtoMessage() {} func (x *SCGetSliderVerifyCode) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCGetSliderVerifyCode.ProtoReflect.Descriptor instead. func (*SCGetSliderVerifyCode) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{71} } func (x *SCGetSliderVerifyCode) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } func (x *SCGetSliderVerifyCode) GetPos() int32 { if x != nil { return x.Pos } return 0 } //标注ios用户准备升级稳定版本 //PACKET_CS_IOSINSTALLSTABLE type CSIosInstallStable struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SnId int32 `protobuf:"varint,1,opt,name=SnId,proto3" json:"SnId,omitempty"` Tel string `protobuf:"bytes,2,opt,name=Tel,proto3" json:"Tel,omitempty"` } func (x *CSIosInstallStable) Reset() { *x = CSIosInstallStable{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSIosInstallStable) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSIosInstallStable) ProtoMessage() {} func (x *CSIosInstallStable) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSIosInstallStable.ProtoReflect.Descriptor instead. func (*CSIosInstallStable) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{72} } func (x *CSIosInstallStable) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *CSIosInstallStable) GetTel() string { if x != nil { return x.Tel } return "" } //标注ios用户准备升级稳定版本 //PACKET_SC_IOSINSTALLSTABLE type SCIosInstallStable struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=player.OpResultCode" json:"OpRetCode,omitempty"` //操作结果 } func (x *SCIosInstallStable) Reset() { *x = SCIosInstallStable{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCIosInstallStable) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCIosInstallStable) ProtoMessage() {} func (x *SCIosInstallStable) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCIosInstallStable.ProtoReflect.Descriptor instead. func (*SCIosInstallStable) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{73} } func (x *SCIosInstallStable) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } type SrvMsgParam struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields IntParam int32 `protobuf:"varint,1,opt,name=IntParam,proto3" json:"IntParam,omitempty"` StrParam string `protobuf:"bytes,2,opt,name=StrParam,proto3" json:"StrParam,omitempty"` } func (x *SrvMsgParam) Reset() { *x = SrvMsgParam{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SrvMsgParam) String() string { return protoimpl.X.MessageStringOf(x) } func (*SrvMsgParam) ProtoMessage() {} func (x *SrvMsgParam) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SrvMsgParam.ProtoReflect.Descriptor instead. func (*SrvMsgParam) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{74} } func (x *SrvMsgParam) GetIntParam() int32 { if x != nil { return x.IntParam } return 0 } func (x *SrvMsgParam) GetStrParam() string { if x != nil { return x.StrParam } return "" } //服务端消息提示 type SCSrvMsg struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MsgId int32 `protobuf:"varint,1,opt,name=MsgId,proto3" json:"MsgId,omitempty"` //消息编号 Params []*SrvMsgParam `protobuf:"bytes,2,rep,name=Params,proto3" json:"Params,omitempty"` //消息参数 } func (x *SCSrvMsg) Reset() { *x = SCSrvMsg{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCSrvMsg) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCSrvMsg) ProtoMessage() {} func (x *SCSrvMsg) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCSrvMsg.ProtoReflect.Descriptor instead. func (*SCSrvMsg) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{75} } func (x *SCSrvMsg) GetMsgId() int32 { if x != nil { return x.MsgId } return 0 } func (x *SCSrvMsg) GetParams() []*SrvMsgParam { if x != nil { return x.Params } return nil } // PACKET_CS_FISHJACKPOTCOIN // jackpot爆奖查询 type CSJackpotList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SnId int32 `protobuf:"varint,1,opt,name=SnId,proto3" json:"SnId,omitempty"` } func (x *CSJackpotList) Reset() { *x = CSJackpotList{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSJackpotList) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSJackpotList) ProtoMessage() {} func (x *CSJackpotList) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[76] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSJackpotList.ProtoReflect.Descriptor instead. func (*CSJackpotList) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{76} } func (x *CSJackpotList) GetSnId() int32 { if x != nil { return x.SnId } return 0 } type FishJackpotInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"` Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` Coin int64 `protobuf:"varint,3,opt,name=Coin,proto3" json:"Coin,omitempty"` Ts int64 `protobuf:"varint,4,opt,name=Ts,proto3" json:"Ts,omitempty"` } func (x *FishJackpotInfo) Reset() { *x = FishJackpotInfo{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FishJackpotInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*FishJackpotInfo) ProtoMessage() {} func (x *FishJackpotInfo) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[77] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FishJackpotInfo.ProtoReflect.Descriptor instead. func (*FishJackpotInfo) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{77} } func (x *FishJackpotInfo) GetName() string { if x != nil { return x.Name } return "" } func (x *FishJackpotInfo) GetType() int32 { if x != nil { return x.Type } return 0 } func (x *FishJackpotInfo) GetCoin() int64 { if x != nil { return x.Coin } return 0 } func (x *FishJackpotInfo) GetTs() int64 { if x != nil { return x.Ts } return 0 } // PACKET_SC_FISHJACKPOTCOIN // jackpot爆奖 type SCJackpotList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields JackpotList []*FishJackpotInfo `protobuf:"bytes,1,rep,name=JackpotList,proto3" json:"JackpotList,omitempty"` } func (x *SCJackpotList) Reset() { *x = SCJackpotList{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCJackpotList) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCJackpotList) ProtoMessage() {} func (x *SCJackpotList) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[78] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCJackpotList.ProtoReflect.Descriptor instead. func (*SCJackpotList) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{78} } func (x *SCJackpotList) GetJackpotList() []*FishJackpotInfo { if x != nil { return x.JackpotList } return nil } // PACKET_CS_FISHJACKPOTDATA jackpot爆奖金额 type CSFishJackpotCoin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *CSFishJackpotCoin) Reset() { *x = CSFishJackpotCoin{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSFishJackpotCoin) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSFishJackpotCoin) ProtoMessage() {} func (x *CSFishJackpotCoin) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[79] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSFishJackpotCoin.ProtoReflect.Descriptor instead. func (*CSFishJackpotCoin) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{79} } // PACKET_SC_FISHJACKPOTDATA jackpot爆奖奖池金额 type SCFishJackpotCoin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Coin int64 `protobuf:"varint,1,opt,name=Coin,proto3" json:"Coin,omitempty"` } func (x *SCFishJackpotCoin) Reset() { *x = SCFishJackpotCoin{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCFishJackpotCoin) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCFishJackpotCoin) ProtoMessage() {} func (x *SCFishJackpotCoin) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[80] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCFishJackpotCoin.ProtoReflect.Descriptor instead. func (*SCFishJackpotCoin) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{80} } func (x *SCFishJackpotCoin) GetCoin() int64 { if x != nil { return x.Coin } return 0 } //PACKET_SC_NICEIDREBIND type SCNiceIdRebind struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SnidId int32 `protobuf:"varint,1,opt,name=SnidId,proto3" json:"SnidId,omitempty"` NiceId int32 `protobuf:"varint,2,opt,name=NiceId,proto3" json:"NiceId,omitempty"` } func (x *SCNiceIdRebind) Reset() { *x = SCNiceIdRebind{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCNiceIdRebind) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCNiceIdRebind) ProtoMessage() {} func (x *SCNiceIdRebind) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[81] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCNiceIdRebind.ProtoReflect.Descriptor instead. func (*SCNiceIdRebind) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{81} } func (x *SCNiceIdRebind) GetSnidId() int32 { if x != nil { return x.SnidId } return 0 } func (x *SCNiceIdRebind) GetNiceId() int32 { if x != nil { return x.NiceId } return 0 } //请求客损功能是否打开 //PACKET_CS_GetSpreadLWIsOpen type CSGetSpreadLWIsOpen struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *CSGetSpreadLWIsOpen) Reset() { *x = CSGetSpreadLWIsOpen{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSGetSpreadLWIsOpen) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSGetSpreadLWIsOpen) ProtoMessage() {} func (x *CSGetSpreadLWIsOpen) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[82] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSGetSpreadLWIsOpen.ProtoReflect.Descriptor instead. func (*CSGetSpreadLWIsOpen) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{82} } //获取滑块验证码 //PACKET_SC_GETSLIDERVERIFYCODE type SCGetSpreadLWIsOpen struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields IsOpen int32 `protobuf:"varint,1,opt,name=IsOpen,proto3" json:"IsOpen,omitempty"` } func (x *SCGetSpreadLWIsOpen) Reset() { *x = SCGetSpreadLWIsOpen{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCGetSpreadLWIsOpen) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCGetSpreadLWIsOpen) ProtoMessage() {} func (x *SCGetSpreadLWIsOpen) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[83] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCGetSpreadLWIsOpen.ProtoReflect.Descriptor instead. func (*SCGetSpreadLWIsOpen) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{83} } func (x *SCGetSpreadLWIsOpen) GetIsOpen() int32 { if x != nil { return x.IsOpen } return 0 } type PayActInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` GiveNum int32 `protobuf:"varint,2,opt,name=GiveNum,proto3" json:"GiveNum,omitempty"` //奖励数量 GiveType int32 `protobuf:"varint,3,opt,name=GiveType,proto3" json:"GiveType,omitempty"` //奖励类型 0数量 1百分比 StartTime int32 `protobuf:"varint,4,opt,name=StartTime,proto3" json:"StartTime,omitempty"` EndTime int32 `protobuf:"varint,5,opt,name=EndTime,proto3" json:"EndTime,omitempty"` State int32 `protobuf:"varint,6,opt,name=State,proto3" json:"State,omitempty"` //状态 0关闭 1开启 2已经领取 } func (x *PayActInfo) Reset() { *x = PayActInfo{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PayActInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*PayActInfo) ProtoMessage() {} func (x *PayActInfo) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[84] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PayActInfo.ProtoReflect.Descriptor instead. func (*PayActInfo) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{84} } func (x *PayActInfo) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *PayActInfo) GetGiveNum() int32 { if x != nil { return x.GiveNum } return 0 } func (x *PayActInfo) GetGiveType() int32 { if x != nil { return x.GiveType } return 0 } func (x *PayActInfo) GetStartTime() int32 { if x != nil { return x.StartTime } return 0 } func (x *PayActInfo) GetEndTime() int32 { if x != nil { return x.EndTime } return 0 } func (x *PayActInfo) GetState() int32 { if x != nil { return x.State } return 0 } //PACKET_SC_PayAct_State type SCPayActState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PayState []*PayActInfo `protobuf:"bytes,1,rep,name=PayState,proto3" json:"PayState,omitempty"` } func (x *SCPayActState) Reset() { *x = SCPayActState{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCPayActState) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCPayActState) ProtoMessage() {} func (x *SCPayActState) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[85] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCPayActState.ProtoReflect.Descriptor instead. func (*SCPayActState) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{85} } func (x *SCPayActState) GetPayState() []*PayActInfo { if x != nil { return x.PayState } return nil } //PACKET_CS_QUERYPLAYER type CSQueryPlayer struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SnId int32 `protobuf:"varint,1,opt,name=SnId,proto3" json:"SnId,omitempty"` } func (x *CSQueryPlayer) Reset() { *x = CSQueryPlayer{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSQueryPlayer) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSQueryPlayer) ProtoMessage() {} func (x *CSQueryPlayer) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[86] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSQueryPlayer.ProtoReflect.Descriptor instead. func (*CSQueryPlayer) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{86} } func (x *CSQueryPlayer) GetSnId() int32 { if x != nil { return x.SnId } return 0 } type RoleOrPet struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` Level int32 `protobuf:"varint,2,opt,name=Level,proto3" json:"Level,omitempty"` Name string `protobuf:"bytes,3,opt,name=Name,proto3" json:"Name,omitempty"` } func (x *RoleOrPet) Reset() { *x = RoleOrPet{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RoleOrPet) String() string { return protoimpl.X.MessageStringOf(x) } func (*RoleOrPet) ProtoMessage() {} func (x *RoleOrPet) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[87] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RoleOrPet.ProtoReflect.Descriptor instead. func (*RoleOrPet) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{87} } func (x *RoleOrPet) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *RoleOrPet) GetLevel() int32 { if x != nil { return x.Level } return 0 } func (x *RoleOrPet) GetName() string { if x != nil { return x.Name } return "" } //PACKET_SC_QUERYPLAYER type SCQueryPlayer struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SnId int32 `protobuf:"varint,1,opt,name=SnId,proto3" json:"SnId,omitempty"` //数字账号 Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` //名字 Head int32 `protobuf:"varint,3,opt,name=Head,proto3" json:"Head,omitempty"` //头像 Sex int32 `protobuf:"varint,4,opt,name=Sex,proto3" json:"Sex,omitempty"` //性别 Coin int64 `protobuf:"varint,5,opt,name=Coin,proto3" json:"Coin,omitempty"` //金币 Diamond int64 `protobuf:"varint,6,opt,name=Diamond,proto3" json:"Diamond,omitempty"` //钻石 VCard int64 `protobuf:"varint,7,opt,name=VCard,proto3" json:"VCard,omitempty"` //VCard IsFriend bool `protobuf:"varint,8,opt,name=IsFriend,proto3" json:"IsFriend,omitempty"` //好友关系 CurRoleId int32 `protobuf:"varint,9,opt,name=CurRoleId,proto3" json:"CurRoleId,omitempty"` //当前角色 CurPetId int32 `protobuf:"varint,10,opt,name=CurPetId,proto3" json:"CurPetId,omitempty"` //当前宠物 Roles []*RoleOrPet `protobuf:"bytes,11,rep,name=Roles,proto3" json:"Roles,omitempty"` Pets []*RoleOrPet `protobuf:"bytes,12,rep,name=Pets,proto3" json:"Pets,omitempty"` IsShield bool `protobuf:"varint,13,opt,name=IsShield,proto3" json:"IsShield,omitempty"` //屏蔽关系 HeadUrl string `protobuf:"bytes,14,opt,name=HeadUrl,proto3" json:"HeadUrl,omitempty"` // 头像url Signature string `protobuf:"bytes,15,opt,name=Signature,proto3" json:"Signature,omitempty"` //签名 Age int32 `protobuf:"varint,16,opt,name=Age,proto3" json:"Age,omitempty"` // 年龄 GameID []int32 `protobuf:"varint,17,rep,packed,name=GameID,proto3" json:"GameID,omitempty"` // 最近游戏 } func (x *SCQueryPlayer) Reset() { *x = SCQueryPlayer{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCQueryPlayer) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCQueryPlayer) ProtoMessage() {} func (x *SCQueryPlayer) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[88] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCQueryPlayer.ProtoReflect.Descriptor instead. func (*SCQueryPlayer) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{88} } func (x *SCQueryPlayer) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *SCQueryPlayer) GetName() string { if x != nil { return x.Name } return "" } func (x *SCQueryPlayer) GetHead() int32 { if x != nil { return x.Head } return 0 } func (x *SCQueryPlayer) GetSex() int32 { if x != nil { return x.Sex } return 0 } func (x *SCQueryPlayer) GetCoin() int64 { if x != nil { return x.Coin } return 0 } func (x *SCQueryPlayer) GetDiamond() int64 { if x != nil { return x.Diamond } return 0 } func (x *SCQueryPlayer) GetVCard() int64 { if x != nil { return x.VCard } return 0 } func (x *SCQueryPlayer) GetIsFriend() bool { if x != nil { return x.IsFriend } return false } func (x *SCQueryPlayer) GetCurRoleId() int32 { if x != nil { return x.CurRoleId } return 0 } func (x *SCQueryPlayer) GetCurPetId() int32 { if x != nil { return x.CurPetId } return 0 } func (x *SCQueryPlayer) GetRoles() []*RoleOrPet { if x != nil { return x.Roles } return nil } func (x *SCQueryPlayer) GetPets() []*RoleOrPet { if x != nil { return x.Pets } return nil } func (x *SCQueryPlayer) GetIsShield() bool { if x != nil { return x.IsShield } return false } func (x *SCQueryPlayer) GetHeadUrl() string { if x != nil { return x.HeadUrl } return "" } func (x *SCQueryPlayer) GetSignature() string { if x != nil { return x.Signature } return "" } func (x *SCQueryPlayer) GetAge() int32 { if x != nil { return x.Age } return 0 } func (x *SCQueryPlayer) GetGameID() []int32 { if x != nil { return x.GameID } return nil } //PACKET_CS_PMCMD type CSPMCmd struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Cmd string `protobuf:"bytes,1,opt,name=Cmd,proto3" json:"Cmd,omitempty"` } func (x *CSPMCmd) Reset() { *x = CSPMCmd{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSPMCmd) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSPMCmd) ProtoMessage() {} func (x *CSPMCmd) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[89] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSPMCmd.ProtoReflect.Descriptor instead. func (*CSPMCmd) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{89} } func (x *CSPMCmd) GetCmd() string { if x != nil { return x.Cmd } return "" } //PACKET_CS_ROBOTCHGDATA //获取玩家基本信息 type CSRobotChgData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Params []string `protobuf:"bytes,1,rep,name=Params,proto3" json:"Params,omitempty"` //其他参数 } func (x *CSRobotChgData) Reset() { *x = CSRobotChgData{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSRobotChgData) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSRobotChgData) ProtoMessage() {} func (x *CSRobotChgData) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[90] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSRobotChgData.ProtoReflect.Descriptor instead. func (*CSRobotChgData) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{90} } func (x *CSRobotChgData) GetParams() []string { if x != nil { return x.Params } return nil } //物品信息 后续精简 type ItemInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields //数据表数据 ItemId int32 `protobuf:"varint,1,opt,name=ItemId,proto3" json:"ItemId,omitempty"` // 物品ID ItemNum int64 `protobuf:"varint,2,opt,name=ItemNum,proto3" json:"ItemNum,omitempty"` // 物品数量 Name string `protobuf:"bytes,3,opt,name=Name,proto3" json:"Name,omitempty"` // 名称 Classify int32 `protobuf:"varint,4,opt,name=Classify,proto3" json:"Classify,omitempty"` // 分页类型 1,道具类 2,资源类 3,兑换类 Type int32 `protobuf:"varint,5,opt,name=Type,proto3" json:"Type,omitempty"` // 道具种类 1,宠物碎片 2,角色碎片 Function []int32 `protobuf:"varint,6,rep,packed,name=Function,proto3" json:"Function,omitempty"` // 道具功能 1,使用 2,赠送 3,出售 SaleGold int32 `protobuf:"varint,7,opt,name=SaleGold,proto3" json:"SaleGold,omitempty"` // 出售金额 Composition int32 `protobuf:"varint,8,opt,name=Composition,proto3" json:"Composition,omitempty"` // 能否叠加 1,能 2,不能 CompositionMax int32 `protobuf:"varint,9,opt,name=CompositionMax,proto3" json:"CompositionMax,omitempty"` // 叠加上限 Time int32 `protobuf:"varint,10,opt,name=Time,proto3" json:"Time,omitempty"` // 道具时效 0为永久 Location string `protobuf:"bytes,11,opt,name=Location,proto3" json:"Location,omitempty"` // 跳转页面 Describe string `protobuf:"bytes,12,opt,name=Describe,proto3" json:"Describe,omitempty"` // 道具描述 CType int32 `protobuf:"varint,13,opt,name=CType,proto3" json:"CType,omitempty"` // 类型1.金币 2.钻石 3.道具 } func (x *ItemInfo) Reset() { *x = ItemInfo{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ItemInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ItemInfo) ProtoMessage() {} func (x *ItemInfo) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[91] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ItemInfo.ProtoReflect.Descriptor instead. func (*ItemInfo) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{91} } func (x *ItemInfo) GetItemId() int32 { if x != nil { return x.ItemId } return 0 } func (x *ItemInfo) GetItemNum() int64 { if x != nil { return x.ItemNum } return 0 } func (x *ItemInfo) GetName() string { if x != nil { return x.Name } return "" } func (x *ItemInfo) GetClassify() int32 { if x != nil { return x.Classify } return 0 } func (x *ItemInfo) GetType() int32 { if x != nil { return x.Type } return 0 } func (x *ItemInfo) GetFunction() []int32 { if x != nil { return x.Function } return nil } func (x *ItemInfo) GetSaleGold() int32 { if x != nil { return x.SaleGold } return 0 } func (x *ItemInfo) GetComposition() int32 { if x != nil { return x.Composition } return 0 } func (x *ItemInfo) GetCompositionMax() int32 { if x != nil { return x.CompositionMax } return 0 } func (x *ItemInfo) GetTime() int32 { if x != nil { return x.Time } return 0 } func (x *ItemInfo) GetLocation() string { if x != nil { return x.Location } return "" } func (x *ItemInfo) GetDescribe() string { if x != nil { return x.Describe } return "" } func (x *ItemInfo) GetCType() int32 { if x != nil { return x.CType } return 0 } type JybInfoAward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ItemId []*ItemInfo `protobuf:"bytes,1,rep,name=ItemId,proto3" json:"ItemId,omitempty"` // 道具 Coin int64 `protobuf:"varint,2,opt,name=Coin,proto3" json:"Coin,omitempty"` // 金币 Diamond int64 `protobuf:"varint,3,opt,name=Diamond,proto3" json:"Diamond,omitempty"` // 钻石 } func (x *JybInfoAward) Reset() { *x = JybInfoAward{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *JybInfoAward) String() string { return protoimpl.X.MessageStringOf(x) } func (*JybInfoAward) ProtoMessage() {} func (x *JybInfoAward) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[92] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use JybInfoAward.ProtoReflect.Descriptor instead. func (*JybInfoAward) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{92} } func (x *JybInfoAward) GetItemId() []*ItemInfo { if x != nil { return x.ItemId } return nil } func (x *JybInfoAward) GetCoin() int64 { if x != nil { return x.Coin } return 0 } func (x *JybInfoAward) GetDiamond() int64 { if x != nil { return x.Diamond } return 0 } // PACKET_ALL_SETTING // 设置界面的相关操作 type CSPlayerSetting struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Optype int32 `protobuf:"varint,1,opt,name=Optype,proto3" json:"Optype,omitempty"` //操作 1 礼包码 PackageCode string `protobuf:"bytes,2,opt,name=PackageCode,proto3" json:"PackageCode,omitempty"` //礼包码 } func (x *CSPlayerSetting) Reset() { *x = CSPlayerSetting{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSPlayerSetting) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSPlayerSetting) ProtoMessage() {} func (x *CSPlayerSetting) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[93] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSPlayerSetting.ProtoReflect.Descriptor instead. func (*CSPlayerSetting) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{93} } func (x *CSPlayerSetting) GetOptype() int32 { if x != nil { return x.Optype } return 0 } func (x *CSPlayerSetting) GetPackageCode() string { if x != nil { return x.PackageCode } return "" } type SCPlayerSetting struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=player.OpResultCode" json:"OpRetCode,omitempty"` //操作结果 GainItem *JybInfoAward `protobuf:"bytes,2,opt,name=GainItem,proto3" json:"GainItem,omitempty"` // 获得道具 } func (x *SCPlayerSetting) Reset() { *x = SCPlayerSetting{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCPlayerSetting) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCPlayerSetting) ProtoMessage() {} func (x *SCPlayerSetting) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[94] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCPlayerSetting.ProtoReflect.Descriptor instead. func (*SCPlayerSetting) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{94} } func (x *SCPlayerSetting) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } func (x *SCPlayerSetting) GetGainItem() *JybInfoAward { if x != nil { return x.GainItem } return nil } //PACKET_SCGAMEEXDROPITEMS type SCGameExDropItems struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Items map[int32]int32 `protobuf:"bytes,1,rep,name=Items,proto3" json:"Items,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *SCGameExDropItems) Reset() { *x = SCGameExDropItems{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCGameExDropItems) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCGameExDropItems) ProtoMessage() {} func (x *SCGameExDropItems) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[95] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCGameExDropItems.ProtoReflect.Descriptor instead. func (*SCGameExDropItems) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{95} } func (x *SCGameExDropItems) GetItems() map[int32]int32 { if x != nil { return x.Items } return nil } //VIP充值 假充值 后续走三方回调 //PACKET_CS_VIPBUY type CSVIPBuy struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Money int32 `protobuf:"varint,1,opt,name=Money,proto3" json:"Money,omitempty"` } func (x *CSVIPBuy) Reset() { *x = CSVIPBuy{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSVIPBuy) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSVIPBuy) ProtoMessage() {} func (x *CSVIPBuy) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[96] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSVIPBuy.ProtoReflect.Descriptor instead. func (*CSVIPBuy) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{96} } func (x *CSVIPBuy) GetMoney() int32 { if x != nil { return x.Money } return 0 } //VIP充值 //PACKET_SC_VIPBUY type SCVIPBuy struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=player.OpResultCode" json:"OpRetCode,omitempty"` //操作结果 Money int64 `protobuf:"varint,2,opt,name=Money,proto3" json:"Money,omitempty"` //剩余升级经验 Vip int32 `protobuf:"varint,3,opt,name=Vip,proto3" json:"Vip,omitempty"` //当前vip等级 TolVipExp int64 `protobuf:"varint,4,opt,name=TolVipExp,proto3" json:"TolVipExp,omitempty"` //当前经验 } func (x *SCVIPBuy) Reset() { *x = SCVIPBuy{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCVIPBuy) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCVIPBuy) ProtoMessage() {} func (x *SCVIPBuy) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[97] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCVIPBuy.ProtoReflect.Descriptor instead. func (*SCVIPBuy) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{97} } func (x *SCVIPBuy) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } func (x *SCVIPBuy) GetMoney() int64 { if x != nil { return x.Money } return 0 } func (x *SCVIPBuy) GetVip() int32 { if x != nil { return x.Vip } return 0 } func (x *SCVIPBuy) GetTolVipExp() int64 { if x != nil { return x.TolVipExp } return 0 } //VIP领取 //PACKET_CS_DRAWVIPGIFT type CSVIPDraw struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 领取编号 0.每日礼包 1.等级礼包(Privilege9) Vip int32 `protobuf:"varint,2,opt,name=Vip,proto3" json:"Vip,omitempty"` //领取的礼包vip等级 } func (x *CSVIPDraw) Reset() { *x = CSVIPDraw{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSVIPDraw) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSVIPDraw) ProtoMessage() {} func (x *CSVIPDraw) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[98] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSVIPDraw.ProtoReflect.Descriptor instead. func (*CSVIPDraw) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{98} } func (x *CSVIPDraw) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *CSVIPDraw) GetVip() int32 { if x != nil { return x.Vip } return 0 } //VIP领取 //PACKET_SC_DRAWVIPGIFT type SCVIPDraw struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 领取编号 Vip int32 `protobuf:"varint,2,opt,name=Vip,proto3" json:"Vip,omitempty"` //领取的礼包vip等级 OpRetCode OpResultCode `protobuf:"varint,3,opt,name=OpRetCode,proto3,enum=player.OpResultCode" json:"OpRetCode,omitempty"` //操作结果 Award map[int64]int64 `protobuf:"bytes,4,rep,name=Award,proto3" json:"Award,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //获得奖励 } func (x *SCVIPDraw) Reset() { *x = SCVIPDraw{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCVIPDraw) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCVIPDraw) ProtoMessage() {} func (x *SCVIPDraw) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[99] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCVIPDraw.ProtoReflect.Descriptor instead. func (*SCVIPDraw) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{99} } func (x *SCVIPDraw) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *SCVIPDraw) GetVip() int32 { if x != nil { return x.Vip } return 0 } func (x *SCVIPDraw) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } func (x *SCVIPDraw) GetAward() map[int64]int64 { if x != nil { return x.Award } return nil } //VIP信息 //PACKET_CS_VIPINFO type CSVIPInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *CSVIPInfo) Reset() { *x = CSVIPInfo{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSVIPInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSVIPInfo) ProtoMessage() {} func (x *CSVIPInfo) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[100] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSVIPInfo.ProtoReflect.Descriptor instead. func (*CSVIPInfo) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{100} } type VIPcfg struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields VipId int32 `protobuf:"varint,1,opt,name=VipId,proto3" json:"VipId,omitempty"` // 序号 Item []*ItemInfo `protobuf:"bytes,2,rep,name=Item,proto3" json:"Item,omitempty"` // 道具 VipEx int32 `protobuf:"varint,3,opt,name=VipEx,proto3" json:"VipEx,omitempty"` // VIP经验 Price int64 `protobuf:"varint,4,opt,name=Price,proto3" json:"Price,omitempty"` // 金额 Privilege1 map[int64]int64 `protobuf:"bytes,5,rep,name=Privilege1,proto3" json:"Privilege1,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //每日礼包 LineId []int32 `protobuf:"varint,6,rep,packed,name=LineId,proto3" json:"LineId,omitempty"` //头像框Id Privilege2 []int32 `protobuf:"varint,7,rep,packed,name=Privilege2,proto3" json:"Privilege2,omitempty"` //每日金币礼包1金币值2代表充值的金额 Privilege3 []int32 `protobuf:"varint,8,rep,packed,name=Privilege3,proto3" json:"Privilege3,omitempty"` //VIP商城刷新次数和商品数量 Privilege4 int32 `protobuf:"varint,9,opt,name=Privilege4,proto3" json:"Privilege4,omitempty"` //赛季积分的加成比例 Privilege5 int32 `protobuf:"varint,10,opt,name=Privilege5,proto3" json:"Privilege5,omitempty"` //月卡到哦句领取金币的比例 Privilege6 int32 `protobuf:"varint,11,opt,name=Privilege6,proto3" json:"Privilege6,omitempty"` //充值额外获取的钻石比例 Privilege7 []*ItemInfo `protobuf:"bytes,12,rep,name=Privilege7,proto3" json:"Privilege7,omitempty"` //固定VIP礼包 Privilege7Price int32 `protobuf:"varint,13,opt,name=Privilege7Price,proto3" json:"Privilege7Price,omitempty"` Privilege8 int32 `protobuf:"varint,14,opt,name=Privilege8,proto3" json:"Privilege8,omitempty"` //VIP客服标识 ShopId2 int32 `protobuf:"varint,15,opt,name=ShopId2,proto3" json:"ShopId2,omitempty"` ShopId7 int32 `protobuf:"varint,16,opt,name=ShopId7,proto3" json:"ShopId7,omitempty"` BagStatus []int32 `protobuf:"varint,17,rep,packed,name=BagStatus,proto3" json:"BagStatus,omitempty"` //每日礼包|每日金币礼包|固定VIP礼包|等级礼包 0可领取 1不可领取 MatchFreeTimes int32 `protobuf:"varint,18,opt,name=MatchFreeTimes,proto3" json:"MatchFreeTimes,omitempty"` // 比赛免费次数 Privilege9 map[int64]int64 `protobuf:"bytes,19,rep,name=Privilege9,proto3" json:"Privilege9,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // vip免费礼包,每个vip等级领取一次 PrivilegeShow int32 `protobuf:"varint,20,opt,name=PrivilegeShow,proto3" json:"PrivilegeShow,omitempty"` // Privilege9 原价 } func (x *VIPcfg) Reset() { *x = VIPcfg{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VIPcfg) String() string { return protoimpl.X.MessageStringOf(x) } func (*VIPcfg) ProtoMessage() {} func (x *VIPcfg) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[101] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use VIPcfg.ProtoReflect.Descriptor instead. func (*VIPcfg) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{101} } func (x *VIPcfg) GetVipId() int32 { if x != nil { return x.VipId } return 0 } func (x *VIPcfg) GetItem() []*ItemInfo { if x != nil { return x.Item } return nil } func (x *VIPcfg) GetVipEx() int32 { if x != nil { return x.VipEx } return 0 } func (x *VIPcfg) GetPrice() int64 { if x != nil { return x.Price } return 0 } func (x *VIPcfg) GetPrivilege1() map[int64]int64 { if x != nil { return x.Privilege1 } return nil } func (x *VIPcfg) GetLineId() []int32 { if x != nil { return x.LineId } return nil } func (x *VIPcfg) GetPrivilege2() []int32 { if x != nil { return x.Privilege2 } return nil } func (x *VIPcfg) GetPrivilege3() []int32 { if x != nil { return x.Privilege3 } return nil } func (x *VIPcfg) GetPrivilege4() int32 { if x != nil { return x.Privilege4 } return 0 } func (x *VIPcfg) GetPrivilege5() int32 { if x != nil { return x.Privilege5 } return 0 } func (x *VIPcfg) GetPrivilege6() int32 { if x != nil { return x.Privilege6 } return 0 } func (x *VIPcfg) GetPrivilege7() []*ItemInfo { if x != nil { return x.Privilege7 } return nil } func (x *VIPcfg) GetPrivilege7Price() int32 { if x != nil { return x.Privilege7Price } return 0 } func (x *VIPcfg) GetPrivilege8() int32 { if x != nil { return x.Privilege8 } return 0 } func (x *VIPcfg) GetShopId2() int32 { if x != nil { return x.ShopId2 } return 0 } func (x *VIPcfg) GetShopId7() int32 { if x != nil { return x.ShopId7 } return 0 } func (x *VIPcfg) GetBagStatus() []int32 { if x != nil { return x.BagStatus } return nil } func (x *VIPcfg) GetMatchFreeTimes() int32 { if x != nil { return x.MatchFreeTimes } return 0 } func (x *VIPcfg) GetPrivilege9() map[int64]int64 { if x != nil { return x.Privilege9 } return nil } func (x *VIPcfg) GetPrivilegeShow() int32 { if x != nil { return x.PrivilegeShow } return 0 } //VIP信息 //PACKET_SC_VIPINFO type SCVIPInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=player.OpResultCode" json:"OpRetCode,omitempty"` //操作结果 List []*VIPcfg `protobuf:"bytes,2,rep,name=List,proto3" json:"List,omitempty"` // VIP配置 TolVipExp int64 `protobuf:"varint,3,opt,name=TolVipExp,proto3" json:"TolVipExp,omitempty"` //当前经验 Vip int32 `protobuf:"varint,4,opt,name=Vip,proto3" json:"Vip,omitempty"` //当前vip等级 VipId []int32 `protobuf:"varint,5,rep,packed,name=VipId,proto3" json:"VipId,omitempty"` //已经领取是vip礼包 Money int64 `protobuf:"varint,6,opt,name=Money,proto3" json:"Money,omitempty"` //剩余实币升级 MoneyRatio int32 `protobuf:"varint,7,opt,name=MoneyRatio,proto3" json:"MoneyRatio,omitempty"` //充值比例 } func (x *SCVIPInfo) Reset() { *x = SCVIPInfo{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCVIPInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCVIPInfo) ProtoMessage() {} func (x *SCVIPInfo) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[102] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCVIPInfo.ProtoReflect.Descriptor instead. func (*SCVIPInfo) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{102} } func (x *SCVIPInfo) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } func (x *SCVIPInfo) GetList() []*VIPcfg { if x != nil { return x.List } return nil } func (x *SCVIPInfo) GetTolVipExp() int64 { if x != nil { return x.TolVipExp } return 0 } func (x *SCVIPInfo) GetVip() int32 { if x != nil { return x.Vip } return 0 } func (x *SCVIPInfo) GetVipId() []int32 { if x != nil { return x.VipId } return nil } func (x *SCVIPInfo) GetMoney() int64 { if x != nil { return x.Money } return 0 } func (x *SCVIPInfo) GetMoneyRatio() int32 { if x != nil { return x.MoneyRatio } return 0 } // //PACKET_SC_SWELFAREINFO type SCEasyWelfaredInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields WelfareSwitch []int32 `protobuf:"varint,1,rep,packed,name=WelfareSwitch,proto3" json:"WelfareSwitch,omitempty"` // 下标 0转盘1盲盒2首冲3连续充值4抽手机活动5集卡活动 1显示 2不显示 } func (x *SCEasyWelfaredInfo) Reset() { *x = SCEasyWelfaredInfo{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCEasyWelfaredInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCEasyWelfaredInfo) ProtoMessage() {} func (x *SCEasyWelfaredInfo) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[103] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCEasyWelfaredInfo.ProtoReflect.Descriptor instead. func (*SCEasyWelfaredInfo) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{103} } func (x *SCEasyWelfaredInfo) GetWelfareSwitch() []int32 { if x != nil { return x.WelfareSwitch } return nil } type CSVIPPrivilegeInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Code int32 `protobuf:"varint,1,opt,name=Code,proto3" json:"Code,omitempty"` //1.VIP比赛场免费次数 } func (x *CSVIPPrivilegeInfo) Reset() { *x = CSVIPPrivilegeInfo{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSVIPPrivilegeInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSVIPPrivilegeInfo) ProtoMessage() {} func (x *CSVIPPrivilegeInfo) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[104] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSVIPPrivilegeInfo.ProtoReflect.Descriptor instead. func (*CSVIPPrivilegeInfo) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{104} } func (x *CSVIPPrivilegeInfo) GetCode() int32 { if x != nil { return x.Code } return 0 } //PACKET_SC_VIPPrivilegeInfo type SCVIPPrivilegeInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Code int32 `protobuf:"varint,1,opt,name=Code,proto3" json:"Code,omitempty"` //1.VIP比赛场免费次数 Vip int32 `protobuf:"varint,2,opt,name=Vip,proto3" json:"Vip,omitempty"` //当前vip Value int32 `protobuf:"varint,3,opt,name=Value,proto3" json:"Value,omitempty"` //特权值 NowValue int32 `protobuf:"varint,4,opt,name=NowValue,proto3" json:"NowValue,omitempty"` //特权当前值 } func (x *SCVIPPrivilegeInfo) Reset() { *x = SCVIPPrivilegeInfo{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCVIPPrivilegeInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCVIPPrivilegeInfo) ProtoMessage() {} func (x *SCVIPPrivilegeInfo) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[105] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCVIPPrivilegeInfo.ProtoReflect.Descriptor instead. func (*SCVIPPrivilegeInfo) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{105} } func (x *SCVIPPrivilegeInfo) GetCode() int32 { if x != nil { return x.Code } return 0 } func (x *SCVIPPrivilegeInfo) GetVip() int32 { if x != nil { return x.Vip } return 0 } func (x *SCVIPPrivilegeInfo) GetValue() int32 { if x != nil { return x.Value } return 0 } func (x *SCVIPPrivilegeInfo) GetNowValue() int32 { if x != nil { return x.NowValue } return 0 } type PayItem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ItemId int32 `protobuf:"varint,1,opt,name=ItemId,proto3" json:"ItemId,omitempty"` ItemNum int64 `protobuf:"varint,2,opt,name=ItemNum,proto3" json:"ItemNum,omitempty"` } func (x *PayItem) Reset() { *x = PayItem{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PayItem) String() string { return protoimpl.X.MessageStringOf(x) } func (*PayItem) ProtoMessage() {} func (x *PayItem) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[106] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PayItem.ProtoReflect.Descriptor instead. func (*PayItem) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{106} } func (x *PayItem) GetItemId() int32 { if x != nil { return x.ItemId } return 0 } func (x *PayItem) GetItemNum() int64 { if x != nil { return x.ItemNum } return 0 } //支付掉落 //PACKET_SC_PAYGOODSINFO type SCPayGoodsInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Gold []int32 `protobuf:"varint,1,rep,packed,name=Gold,proto3" json:"Gold,omitempty"` // 0.金币 1.钻石 3.经验 Item []*PayItem `protobuf:"bytes,2,rep,name=Item,proto3" json:"Item,omitempty"` // 道具 ShopId int32 `protobuf:"varint,3,opt,name=ShopId,proto3" json:"ShopId,omitempty"` // 商品id Money int64 `protobuf:"varint,4,opt,name=Money,proto3" json:"Money,omitempty"` // 现金 Name string `protobuf:"bytes,5,opt,name=Name,proto3" json:"Name,omitempty"` // 名称 } func (x *SCPayGoodsInfo) Reset() { *x = SCPayGoodsInfo{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCPayGoodsInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCPayGoodsInfo) ProtoMessage() {} func (x *SCPayGoodsInfo) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[107] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCPayGoodsInfo.ProtoReflect.Descriptor instead. func (*SCPayGoodsInfo) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{107} } func (x *SCPayGoodsInfo) GetGold() []int32 { if x != nil { return x.Gold } return nil } func (x *SCPayGoodsInfo) GetItem() []*PayItem { if x != nil { return x.Item } return nil } func (x *SCPayGoodsInfo) GetShopId() int32 { if x != nil { return x.ShopId } return 0 } func (x *SCPayGoodsInfo) GetMoney() int64 { if x != nil { return x.Money } return 0 } func (x *SCPayGoodsInfo) GetName() string { if x != nil { return x.Name } return "" } // 资源更新 //PACKET_SC_RESOURCE type SCResource struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Msg string `protobuf:"bytes,1,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *SCResource) Reset() { *x = SCResource{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCResource) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCResource) ProtoMessage() {} func (x *SCResource) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[108] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCResource.ProtoReflect.Descriptor instead. func (*SCResource) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{108} } func (x *SCResource) GetMsg() string { if x != nil { return x.Msg } return "" } //PACKET_CS_CLIENT_LOG type CSClientLog struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Data string `protobuf:"bytes,1,opt,name=Data,proto3" json:"Data,omitempty"` // 客户端日志; json格式,字段名使用下划线命名法;必须包含平台id 例如: "platform":"1" } func (x *CSClientLog) Reset() { *x = CSClientLog{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSClientLog) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSClientLog) ProtoMessage() {} func (x *CSClientLog) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[109] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSClientLog.ProtoReflect.Descriptor instead. func (*CSClientLog) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{109} } func (x *CSClientLog) GetData() string { if x != nil { return x.Data } return "" } //PACKET_SC_CLIENT_LOG type SCClientLog struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=player.OpResultCode" json:"OpRetCode,omitempty"` //操作结果 } func (x *SCClientLog) Reset() { *x = SCClientLog{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCClientLog) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCClientLog) ProtoMessage() {} func (x *SCClientLog) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[110] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCClientLog.ProtoReflect.Descriptor instead. func (*SCClientLog) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{110} } func (x *SCClientLog) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } //捕鱼解锁炮倍 //PACKET_SC_PlayerUnPower type SCPlayerUnPower struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UnMaxpower int64 `protobuf:"varint,1,opt,name=UnMaxpower,proto3" json:"UnMaxpower,omitempty"` //当前解锁最大炮倍 } func (x *SCPlayerUnPower) Reset() { *x = SCPlayerUnPower{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCPlayerUnPower) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCPlayerUnPower) ProtoMessage() {} func (x *SCPlayerUnPower) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[111] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCPlayerUnPower.ProtoReflect.Descriptor instead. func (*SCPlayerUnPower) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{111} } func (x *SCPlayerUnPower) GetUnMaxpower() int64 { if x != nil { return x.UnMaxpower } return 0 } //捕鱼解锁炮台 //PACKET_SC_PlayerUnPowerList type SCPlayerUnPowerList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UnPowerList int32 `protobuf:"varint,1,opt,name=UnPowerList,proto3" json:"UnPowerList,omitempty"` } func (x *SCPlayerUnPowerList) Reset() { *x = SCPlayerUnPowerList{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCPlayerUnPowerList) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCPlayerUnPowerList) ProtoMessage() {} func (x *SCPlayerUnPowerList) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[112] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCPlayerUnPowerList.ProtoReflect.Descriptor instead. func (*SCPlayerUnPowerList) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{112} } func (x *SCPlayerUnPowerList) GetUnPowerList() int32 { if x != nil { return x.UnPowerList } return 0 } //玩家升级 //PACKET_SC_PlayerUpLevel type SCPlayerUpLevel struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Level int64 `protobuf:"varint,1,opt,name=Level,proto3" json:"Level,omitempty"` //玩家当前等级 Exp int64 `protobuf:"varint,2,opt,name=Exp,proto3" json:"Exp,omitempty"` //玩家当前经验 } func (x *SCPlayerUpLevel) Reset() { *x = SCPlayerUpLevel{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCPlayerUpLevel) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCPlayerUpLevel) ProtoMessage() {} func (x *SCPlayerUpLevel) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[113] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCPlayerUpLevel.ProtoReflect.Descriptor instead. func (*SCPlayerUpLevel) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{113} } func (x *SCPlayerUpLevel) GetLevel() int64 { if x != nil { return x.Level } return 0 } func (x *SCPlayerUpLevel) GetExp() int64 { if x != nil { return x.Exp } return 0 } // 绑定手机号奖励 // PACKET_CSBindTelInfo type CSBindTelInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *CSBindTelInfo) Reset() { *x = CSBindTelInfo{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSBindTelInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSBindTelInfo) ProtoMessage() {} func (x *CSBindTelInfo) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[114] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSBindTelInfo.ProtoReflect.Descriptor instead. func (*CSBindTelInfo) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{114} } // PACKET_SCBindTelInfo type SCBindTelInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields BindTelReward map[int32]int64 `protobuf:"bytes,1,rep,name=BindTelReward,proto3" json:"BindTelReward,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *SCBindTelInfo) Reset() { *x = SCBindTelInfo{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCBindTelInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCBindTelInfo) ProtoMessage() {} func (x *SCBindTelInfo) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[115] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCBindTelInfo.ProtoReflect.Descriptor instead. func (*SCBindTelInfo) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{115} } func (x *SCBindTelInfo) GetBindTelReward() map[int32]int64 { if x != nil { return x.BindTelReward } return nil } // 获取验证码 // PACKET_CSPlayerSMSCode type CSPlayerSMSCode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields AreaCode string `protobuf:"bytes,1,opt,name=AreaCode,proto3" json:"AreaCode,omitempty"` // 区号 Tel string `protobuf:"bytes,2,opt,name=Tel,proto3" json:"Tel,omitempty"` // 手机号 TypeID int32 `protobuf:"varint,3,opt,name=TypeID,proto3" json:"TypeID,omitempty"` // 验证码类型 1.绑定手机号 2.手机验证码登录 Platform string `protobuf:"bytes,4,opt,name=Platform,proto3" json:"Platform,omitempty"` // 平台id ImageCode string `protobuf:"bytes,5,opt,name=ImageCode,proto3" json:"ImageCode,omitempty"` // 图片验证码 } func (x *CSPlayerSMSCode) Reset() { *x = CSPlayerSMSCode{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSPlayerSMSCode) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSPlayerSMSCode) ProtoMessage() {} func (x *CSPlayerSMSCode) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[116] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSPlayerSMSCode.ProtoReflect.Descriptor instead. func (*CSPlayerSMSCode) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{116} } func (x *CSPlayerSMSCode) GetAreaCode() string { if x != nil { return x.AreaCode } return "" } func (x *CSPlayerSMSCode) GetTel() string { if x != nil { return x.Tel } return "" } func (x *CSPlayerSMSCode) GetTypeID() int32 { if x != nil { return x.TypeID } return 0 } func (x *CSPlayerSMSCode) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *CSPlayerSMSCode) GetImageCode() string { if x != nil { return x.ImageCode } return "" } // PACKET_SCPlayerSMSCode type SCPlayerSMSCode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Code OpResultCode `protobuf:"varint,1,opt,name=Code,proto3,enum=player.OpResultCode" json:"Code,omitempty"` //操作结果 } func (x *SCPlayerSMSCode) Reset() { *x = SCPlayerSMSCode{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCPlayerSMSCode) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCPlayerSMSCode) ProtoMessage() {} func (x *SCPlayerSMSCode) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[117] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCPlayerSMSCode.ProtoReflect.Descriptor instead. func (*SCPlayerSMSCode) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{117} } func (x *SCPlayerSMSCode) GetCode() OpResultCode { if x != nil { return x.Code } return OpResultCode_OPRC_Sucess } // 绑定手机号 // PACKET_CSBindTel type CSBindTel struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields AreaCode string `protobuf:"bytes,1,opt,name=AreaCode,proto3" json:"AreaCode,omitempty"` // 区号 Tel string `protobuf:"bytes,2,opt,name=Tel,proto3" json:"Tel,omitempty"` //手机号 Code string `protobuf:"bytes,3,opt,name=Code,proto3" json:"Code,omitempty"` //验证码 } func (x *CSBindTel) Reset() { *x = CSBindTel{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSBindTel) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSBindTel) ProtoMessage() {} func (x *CSBindTel) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[118] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSBindTel.ProtoReflect.Descriptor instead. func (*CSBindTel) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{118} } func (x *CSBindTel) GetAreaCode() string { if x != nil { return x.AreaCode } return "" } func (x *CSBindTel) GetTel() string { if x != nil { return x.Tel } return "" } func (x *CSBindTel) GetCode() string { if x != nil { return x.Code } return "" } // PACKET_SCBindTel type SCBindTel struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Code OpResultCode `protobuf:"varint,1,opt,name=Code,proto3,enum=player.OpResultCode" json:"Code,omitempty"` //操作结果 } func (x *SCBindTel) Reset() { *x = SCBindTel{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCBindTel) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCBindTel) ProtoMessage() {} func (x *SCBindTel) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[119] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCBindTel.ProtoReflect.Descriptor instead. func (*SCBindTel) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{119} } func (x *SCBindTel) GetCode() OpResultCode { if x != nil { return x.Code } return OpResultCode_OPRC_Sucess } // PACKET_CS_HTTP_PASS type CSHttpPass struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerType int32 `protobuf:"varint,1,opt,name=ServerType,proto3" json:"ServerType,omitempty"` //服务类型 1语音 ApiName string `protobuf:"bytes,2,opt,name=ApiName,proto3" json:"ApiName,omitempty"` Params string `protobuf:"bytes,3,opt,name=Params,proto3" json:"Params,omitempty"` CBData string `protobuf:"bytes,4,opt,name=CBData,proto3" json:"CBData,omitempty"` Method string `protobuf:"bytes,5,opt,name=Method,proto3" json:"Method,omitempty"` } func (x *CSHttpPass) Reset() { *x = CSHttpPass{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSHttpPass) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSHttpPass) ProtoMessage() {} func (x *CSHttpPass) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[120] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSHttpPass.ProtoReflect.Descriptor instead. func (*CSHttpPass) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{120} } func (x *CSHttpPass) GetServerType() int32 { if x != nil { return x.ServerType } return 0 } func (x *CSHttpPass) GetApiName() string { if x != nil { return x.ApiName } return "" } func (x *CSHttpPass) GetParams() string { if x != nil { return x.Params } return "" } func (x *CSHttpPass) GetCBData() string { if x != nil { return x.CBData } return "" } func (x *CSHttpPass) GetMethod() string { if x != nil { return x.Method } return "" } // PACKET_SC_HTTP_PASS type SCHttpPass struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=player.OpResultCode" json:"OpRetCode,omitempty"` //操作结果 ApiName string `protobuf:"bytes,2,opt,name=ApiName,proto3" json:"ApiName,omitempty"` CBData string `protobuf:"bytes,3,opt,name=CBData,proto3" json:"CBData,omitempty"` Response string `protobuf:"bytes,4,opt,name=Response,proto3" json:"Response,omitempty"` } func (x *SCHttpPass) Reset() { *x = SCHttpPass{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCHttpPass) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCHttpPass) ProtoMessage() {} func (x *SCHttpPass) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[121] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCHttpPass.ProtoReflect.Descriptor instead. func (*SCHttpPass) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{121} } func (x *SCHttpPass) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } func (x *SCHttpPass) GetApiName() string { if x != nil { return x.ApiName } return "" } func (x *SCHttpPass) GetCBData() string { if x != nil { return x.CBData } return "" } func (x *SCHttpPass) GetResponse() string { if x != nil { return x.Response } return "" } //抽手机 请求抽奖数据 //PACKET_CS_PhoneLotteryInfo type CSPhoneLotteryInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *CSPhoneLotteryInfo) Reset() { *x = CSPhoneLotteryInfo{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSPhoneLotteryInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSPhoneLotteryInfo) ProtoMessage() {} func (x *CSPhoneLotteryInfo) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[122] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSPhoneLotteryInfo.ProtoReflect.Descriptor instead. func (*CSPhoneLotteryInfo) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{122} } //抽手机 返回抽奖数据 //PACKET_SC_PhoneLotteryInfo type SCPhoneLotteryInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Count int32 `protobuf:"varint,1,opt,name=Count,proto3" json:"Count,omitempty"` //剩余次数 PhoneScore int64 `protobuf:"varint,2,opt,name=PhoneScore,proto3" json:"PhoneScore,omitempty"` //手机积分 Item []*LotteryItem `protobuf:"bytes,3,rep,name=Item,proto3" json:"Item,omitempty"` //抽奖物品信息 } func (x *SCPhoneLotteryInfo) Reset() { *x = SCPhoneLotteryInfo{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCPhoneLotteryInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCPhoneLotteryInfo) ProtoMessage() {} func (x *SCPhoneLotteryInfo) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[123] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCPhoneLotteryInfo.ProtoReflect.Descriptor instead. func (*SCPhoneLotteryInfo) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{123} } func (x *SCPhoneLotteryInfo) GetCount() int32 { if x != nil { return x.Count } return 0 } func (x *SCPhoneLotteryInfo) GetPhoneScore() int64 { if x != nil { return x.PhoneScore } return 0 } func (x *SCPhoneLotteryInfo) GetItem() []*LotteryItem { if x != nil { return x.Item } return nil } //请求抽奖 //PACKET_CS_PhoneLottery type CSPhoneLottery struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields LotteryType int32 `protobuf:"varint,1,opt,name=LotteryType,proto3" json:"LotteryType,omitempty"` //1-单抽 2-十连抽 } func (x *CSPhoneLottery) Reset() { *x = CSPhoneLottery{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSPhoneLottery) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSPhoneLottery) ProtoMessage() {} func (x *CSPhoneLottery) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[124] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSPhoneLottery.ProtoReflect.Descriptor instead. func (*CSPhoneLottery) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{124} } func (x *CSPhoneLottery) GetLotteryType() int32 { if x != nil { return x.LotteryType } return 0 } //请求抽奖返回 //PACKET_SC_PhoneLottery type SCPhoneLottery struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Count int32 `protobuf:"varint,1,opt,name=Count,proto3" json:"Count,omitempty"` //返回剩余次数 PhoneScore int64 `protobuf:"varint,2,opt,name=PhoneScore,proto3" json:"PhoneScore,omitempty"` //手机积分 Item []*LotteryItem `protobuf:"bytes,3,rep,name=Item,proto3" json:"Item,omitempty"` //获得的物品 } func (x *SCPhoneLottery) Reset() { *x = SCPhoneLottery{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCPhoneLottery) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCPhoneLottery) ProtoMessage() {} func (x *SCPhoneLottery) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[125] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCPhoneLottery.ProtoReflect.Descriptor instead. func (*SCPhoneLottery) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{125} } func (x *SCPhoneLottery) GetCount() int32 { if x != nil { return x.Count } return 0 } func (x *SCPhoneLottery) GetPhoneScore() int64 { if x != nil { return x.PhoneScore } return 0 } func (x *SCPhoneLottery) GetItem() []*LotteryItem { if x != nil { return x.Item } return nil } type LotteryItem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` ItemId int32 `protobuf:"varint,2,opt,name=ItemId,proto3" json:"ItemId,omitempty"` ItemNum int64 `protobuf:"varint,3,opt,name=ItemNum,proto3" json:"ItemNum,omitempty"` TypeId int32 `protobuf:"varint,4,opt,name=TypeId,proto3" json:"TypeId,omitempty"` } func (x *LotteryItem) Reset() { *x = LotteryItem{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LotteryItem) String() string { return protoimpl.X.MessageStringOf(x) } func (*LotteryItem) ProtoMessage() {} func (x *LotteryItem) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[126] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use LotteryItem.ProtoReflect.Descriptor instead. func (*LotteryItem) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{126} } func (x *LotteryItem) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *LotteryItem) GetItemId() int32 { if x != nil { return x.ItemId } return 0 } func (x *LotteryItem) GetItemNum() int64 { if x != nil { return x.ItemNum } return 0 } func (x *LotteryItem) GetTypeId() int32 { if x != nil { return x.TypeId } return 0 } //通知抽奖剩余次数 //PACKET_SC_PhoneLotteryCount type SCPhoneLotteryCount struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Count int32 `protobuf:"varint,1,opt,name=Count,proto3" json:"Count,omitempty"` } func (x *SCPhoneLotteryCount) Reset() { *x = SCPhoneLotteryCount{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCPhoneLotteryCount) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCPhoneLotteryCount) ProtoMessage() {} func (x *SCPhoneLotteryCount) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[127] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCPhoneLotteryCount.ProtoReflect.Descriptor instead. func (*SCPhoneLotteryCount) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{127} } func (x *SCPhoneLotteryCount) GetCount() int32 { if x != nil { return x.Count } return 0 } // 看广告 // PACKET_CSADV type CSADV struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Param []int32 `protobuf:"varint,1,rep,packed,name=Param,proto3" json:"Param,omitempty"` //参数列表 位置0广告类型 } func (x *CSADV) Reset() { *x = CSADV{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSADV) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSADV) ProtoMessage() {} func (x *CSADV) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[128] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSADV.ProtoReflect.Descriptor instead. func (*CSADV) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{128} } func (x *CSADV) GetParam() []int32 { if x != nil { return x.Param } return nil } // PACKET_SCADV type SCADV struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Param []int32 `protobuf:"varint,1,rep,packed,name=Param,proto3" json:"Param,omitempty"` //参数列表 位置0广告类型 } func (x *SCADV) Reset() { *x = SCADV{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCADV) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCADV) ProtoMessage() {} func (x *SCADV) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[129] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCADV.ProtoReflect.Descriptor instead. func (*SCADV) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{129} } func (x *SCADV) GetParam() []int32 { if x != nil { return x.Param } return nil } //周卡每日奖励返回 //PACKET_SCGetWeekCardAwary type SCGetWeekCardAwary struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` Items []*PayItem `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` WeekCardAward bool `protobuf:"varint,3,opt,name=weekCardAward,proto3" json:"weekCardAward,omitempty"` WeekCard *WeekInfo `protobuf:"bytes,4,opt,name=WeekCard,proto3" json:"WeekCard,omitempty"` //周卡 } func (x *SCGetWeekCardAwary) Reset() { *x = SCGetWeekCardAwary{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCGetWeekCardAwary) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCGetWeekCardAwary) ProtoMessage() {} func (x *SCGetWeekCardAwary) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[130] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCGetWeekCardAwary.ProtoReflect.Descriptor instead. func (*SCGetWeekCardAwary) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{130} } func (x *SCGetWeekCardAwary) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *SCGetWeekCardAwary) GetItems() []*PayItem { if x != nil { return x.Items } return nil } func (x *SCGetWeekCardAwary) GetWeekCardAward() bool { if x != nil { return x.WeekCardAward } return false } func (x *SCGetWeekCardAwary) GetWeekCard() *WeekInfo { if x != nil { return x.WeekCard } return nil } //存钱罐金币数量 // PACKET_SCPigBankCoin type SCPigBankCoin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields BankCoin int64 `protobuf:"varint,1,opt,name=BankCoin,proto3" json:"BankCoin,omitempty"` BankCoinMax int64 `protobuf:"varint,2,opt,name=BankCoinMax,proto3" json:"BankCoinMax,omitempty"` AddBankCoin int64 `protobuf:"varint,3,opt,name=AddBankCoin,proto3" json:"AddBankCoin,omitempty"` } func (x *SCPigBankCoin) Reset() { *x = SCPigBankCoin{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCPigBankCoin) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCPigBankCoin) ProtoMessage() {} func (x *SCPigBankCoin) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[131] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCPigBankCoin.ProtoReflect.Descriptor instead. func (*SCPigBankCoin) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{131} } func (x *SCPigBankCoin) GetBankCoin() int64 { if x != nil { return x.BankCoin } return 0 } func (x *SCPigBankCoin) GetBankCoinMax() int64 { if x != nil { return x.BankCoinMax } return 0 } func (x *SCPigBankCoin) GetAddBankCoin() int64 { if x != nil { return x.AddBankCoin } return 0 } // PACKET_CSExchangeChannel type CSExchangeChannel struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Tp int32 `protobuf:"varint,1,opt,name=Tp,proto3" json:"Tp,omitempty"` // 开关类型 0所有 1:兑换 2:v卡掉落 ... 跟后台确认 } func (x *CSExchangeChannel) Reset() { *x = CSExchangeChannel{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSExchangeChannel) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSExchangeChannel) ProtoMessage() {} func (x *CSExchangeChannel) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[132] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSExchangeChannel.ProtoReflect.Descriptor instead. func (*CSExchangeChannel) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{132} } func (x *CSExchangeChannel) GetTp() int32 { if x != nil { return x.Tp } return 0 } type ChannelSwitch struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OnChannelName []string `protobuf:"bytes,1,rep,name=OnChannelName,proto3" json:"OnChannelName,omitempty"` // 开启渠道 Tp int32 `protobuf:"varint,2,opt,name=Tp,proto3" json:"Tp,omitempty"` // 开关类型 1:兑换 2:v卡掉落 ... 跟后台确认 } func (x *ChannelSwitch) Reset() { *x = ChannelSwitch{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ChannelSwitch) String() string { return protoimpl.X.MessageStringOf(x) } func (*ChannelSwitch) ProtoMessage() {} func (x *ChannelSwitch) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[133] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ChannelSwitch.ProtoReflect.Descriptor instead. func (*ChannelSwitch) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{133} } func (x *ChannelSwitch) GetOnChannelName() []string { if x != nil { return x.OnChannelName } return nil } func (x *ChannelSwitch) GetTp() int32 { if x != nil { return x.Tp } return 0 } // PACKET_SCExchangeChannel type SCExchangeChannel struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Datas []*ChannelSwitch `protobuf:"bytes,1,rep,name=Datas,proto3" json:"Datas,omitempty"` } func (x *SCExchangeChannel) Reset() { *x = SCExchangeChannel{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[134] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCExchangeChannel) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCExchangeChannel) ProtoMessage() {} func (x *SCExchangeChannel) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[134] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCExchangeChannel.ProtoReflect.Descriptor instead. func (*SCExchangeChannel) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{134} } func (x *SCExchangeChannel) GetDatas() []*ChannelSwitch { if x != nil { return x.Datas } return nil } //请求运营商配置 //PACKET_CSSMSConfig type CSSMSConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *CSSMSConfig) Reset() { *x = CSSMSConfig{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[135] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSSMSConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSSMSConfig) ProtoMessage() {} func (x *CSSMSConfig) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[135] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSSMSConfig.ProtoReflect.Descriptor instead. func (*CSSMSConfig) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{135} } //PACKET_SCSMSConfig type SCSMSConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Info []*SMSInfo `protobuf:"bytes,1,rep,name=Info,proto3" json:"Info,omitempty"` } func (x *SCSMSConfig) Reset() { *x = SCSMSConfig{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[136] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCSMSConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCSMSConfig) ProtoMessage() {} func (x *SCSMSConfig) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[136] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCSMSConfig.ProtoReflect.Descriptor instead. func (*SCSMSConfig) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{136} } func (x *SCSMSConfig) GetInfo() []*SMSInfo { if x != nil { return x.Info } return nil } type SMSInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` SmsName string `protobuf:"bytes,2,opt,name=SmsName,proto3" json:"SmsName,omitempty"` } func (x *SMSInfo) Reset() { *x = SMSInfo{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SMSInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*SMSInfo) ProtoMessage() {} func (x *SMSInfo) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[137] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SMSInfo.ProtoReflect.Descriptor instead. func (*SMSInfo) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{137} } func (x *SMSInfo) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *SMSInfo) GetSmsName() string { if x != nil { return x.SmsName } return "" } //钻石抽奖 请求抽奖数据 //PACKET_CS_DiamondLotteryInfo type CSDiamondLotteryInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *CSDiamondLotteryInfo) Reset() { *x = CSDiamondLotteryInfo{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[138] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSDiamondLotteryInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSDiamondLotteryInfo) ProtoMessage() {} func (x *CSDiamondLotteryInfo) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[138] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSDiamondLotteryInfo.ProtoReflect.Descriptor instead. func (*CSDiamondLotteryInfo) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{138} } //钻石抽奖 返回抽奖数据 //PACKET_SC_DiamondLotteryInfo type SCDiamondLotteryInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields LuckyScore int64 `protobuf:"varint,1,opt,name=LuckyScore,proto3" json:"LuckyScore,omitempty"` //幸运积分 Item []*LotteryItem `protobuf:"bytes,2,rep,name=Item,proto3" json:"Item,omitempty"` //抽奖物品信息 MaxScore int32 `protobuf:"varint,3,opt,name=MaxScore,proto3" json:"MaxScore,omitempty"` //保底奖励最大值 DiamondNum int32 `protobuf:"varint,4,opt,name=DiamondNum,proto3" json:"DiamondNum,omitempty"` //单次抽奖消耗钻石数量 } func (x *SCDiamondLotteryInfo) Reset() { *x = SCDiamondLotteryInfo{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[139] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCDiamondLotteryInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCDiamondLotteryInfo) ProtoMessage() {} func (x *SCDiamondLotteryInfo) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[139] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCDiamondLotteryInfo.ProtoReflect.Descriptor instead. func (*SCDiamondLotteryInfo) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{139} } func (x *SCDiamondLotteryInfo) GetLuckyScore() int64 { if x != nil { return x.LuckyScore } return 0 } func (x *SCDiamondLotteryInfo) GetItem() []*LotteryItem { if x != nil { return x.Item } return nil } func (x *SCDiamondLotteryInfo) GetMaxScore() int32 { if x != nil { return x.MaxScore } return 0 } func (x *SCDiamondLotteryInfo) GetDiamondNum() int32 { if x != nil { return x.DiamondNum } return 0 } //请求钻石抽奖 //PACKET_CS_DiamondLottery type CSDiamondLottery struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields LotteryType int32 `protobuf:"varint,1,opt,name=LotteryType,proto3" json:"LotteryType,omitempty"` //1-单抽 2-十连抽 } func (x *CSDiamondLottery) Reset() { *x = CSDiamondLottery{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[140] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSDiamondLottery) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSDiamondLottery) ProtoMessage() {} func (x *CSDiamondLottery) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[140] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSDiamondLottery.ProtoReflect.Descriptor instead. func (*CSDiamondLottery) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{140} } func (x *CSDiamondLottery) GetLotteryType() int32 { if x != nil { return x.LotteryType } return 0 } //请求钻石抽奖返回 //PACKET_SC_DiamondLottery type SCDiamondLottery struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields LuckyScore int64 `protobuf:"varint,1,opt,name=LuckyScore,proto3" json:"LuckyScore,omitempty"` //幸运积分 Item []*LotteryItem `protobuf:"bytes,2,rep,name=Item,proto3" json:"Item,omitempty"` //获得的物品 } func (x *SCDiamondLottery) Reset() { *x = SCDiamondLottery{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[141] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCDiamondLottery) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCDiamondLottery) ProtoMessage() {} func (x *SCDiamondLottery) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[141] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCDiamondLottery.ProtoReflect.Descriptor instead. func (*SCDiamondLottery) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{141} } func (x *SCDiamondLottery) GetLuckyScore() int64 { if x != nil { return x.LuckyScore } return 0 } func (x *SCDiamondLottery) GetItem() []*LotteryItem { if x != nil { return x.Item } return nil } //请求领取保底奖励 //PACKET_CSDiamondLotteryLuckyAward type CSDiamondLotteryLuckyAward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *CSDiamondLotteryLuckyAward) Reset() { *x = CSDiamondLotteryLuckyAward{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[142] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSDiamondLotteryLuckyAward) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSDiamondLotteryLuckyAward) ProtoMessage() {} func (x *CSDiamondLotteryLuckyAward) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[142] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSDiamondLotteryLuckyAward.ProtoReflect.Descriptor instead. func (*CSDiamondLotteryLuckyAward) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{142} } ////PACKET_SCDiamondLotteryLuckyAward type SCDiamondLotteryLuckyAward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields LuckyScore int64 `protobuf:"varint,1,opt,name=LuckyScore,proto3" json:"LuckyScore,omitempty"` //幸运积分 Item []*LotteryItem `protobuf:"bytes,2,rep,name=Item,proto3" json:"Item,omitempty"` //获得的物品 } func (x *SCDiamondLotteryLuckyAward) Reset() { *x = SCDiamondLotteryLuckyAward{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[143] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCDiamondLotteryLuckyAward) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCDiamondLotteryLuckyAward) ProtoMessage() {} func (x *SCDiamondLotteryLuckyAward) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[143] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCDiamondLotteryLuckyAward.ProtoReflect.Descriptor instead. func (*SCDiamondLotteryLuckyAward) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{143} } func (x *SCDiamondLotteryLuckyAward) GetLuckyScore() int64 { if x != nil { return x.LuckyScore } return 0 } func (x *SCDiamondLotteryLuckyAward) GetItem() []*LotteryItem { if x != nil { return x.Item } return nil } // PACKET_SCItem type SCItem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Items []*server.DB_GameItem `protobuf:"bytes,1,rep,name=Items,proto3" json:"Items,omitempty"` // 道具列表 } func (x *SCItem) Reset() { *x = SCItem{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[144] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCItem) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCItem) ProtoMessage() {} func (x *SCItem) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[144] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCItem.ProtoReflect.Descriptor instead. func (*SCItem) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{144} } func (x *SCItem) GetItems() []*server.DB_GameItem { if x != nil { return x.Items } return nil } //获奖记录 //PACKET_CSAwardLog type CS_AwardLog struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TypeId int32 `protobuf:"varint,1,opt,name=typeId,proto3" json:"typeId,omitempty"` //1-话费 2-实物 } func (x *CS_AwardLog) Reset() { *x = CS_AwardLog{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[145] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CS_AwardLog) String() string { return protoimpl.X.MessageStringOf(x) } func (*CS_AwardLog) ProtoMessage() {} func (x *CS_AwardLog) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[145] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CS_AwardLog.ProtoReflect.Descriptor instead. func (*CS_AwardLog) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{145} } func (x *CS_AwardLog) GetTypeId() int32 { if x != nil { return x.TypeId } return 0 } //PACKET_SCAwardLog type SCAwardLog struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TypeId int32 `protobuf:"varint,1,opt,name=typeId,proto3" json:"typeId,omitempty"` //1-话费 2-实物 AwardLog *AwardLogData `protobuf:"bytes,2,opt,name=AwardLog,proto3" json:"AwardLog,omitempty"` AnnouncerLog []*AnnouncerLogInfo `protobuf:"bytes,3,rep,name=AnnouncerLog,proto3" json:"AnnouncerLog,omitempty"` } func (x *SCAwardLog) Reset() { *x = SCAwardLog{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[146] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCAwardLog) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCAwardLog) ProtoMessage() {} func (x *SCAwardLog) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[146] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCAwardLog.ProtoReflect.Descriptor instead. func (*SCAwardLog) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{146} } func (x *SCAwardLog) GetTypeId() int32 { if x != nil { return x.TypeId } return 0 } func (x *SCAwardLog) GetAwardLog() *AwardLogData { if x != nil { return x.AwardLog } return nil } func (x *SCAwardLog) GetAnnouncerLog() []*AnnouncerLogInfo { if x != nil { return x.AnnouncerLog } return nil } type AwardLogData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SortId int32 `protobuf:"varint,1,opt,name=SortId,proto3" json:"SortId,omitempty"` //排序類型 1-数量 2-序号 AwardLog []*AwardLogInfo `protobuf:"bytes,2,rep,name=AwardLog,proto3" json:"AwardLog,omitempty"` } func (x *AwardLogData) Reset() { *x = AwardLogData{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[147] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AwardLogData) String() string { return protoimpl.X.MessageStringOf(x) } func (*AwardLogData) ProtoMessage() {} func (x *AwardLogData) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[147] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use AwardLogData.ProtoReflect.Descriptor instead. func (*AwardLogData) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{147} } func (x *AwardLogData) GetSortId() int32 { if x != nil { return x.SortId } return 0 } func (x *AwardLogData) GetAwardLog() []*AwardLogInfo { if x != nil { return x.AwardLog } return nil } type AwardLogInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ItemId int32 `protobuf:"varint,1,opt,name=ItemId,proto3" json:"ItemId,omitempty"` //道具ID Num int64 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` //数量 Order int32 `protobuf:"varint,3,opt,name=Order,proto3" json:"Order,omitempty"` //序号 Url string `protobuf:"bytes,4,opt,name=Url,proto3" json:"Url,omitempty"` } func (x *AwardLogInfo) Reset() { *x = AwardLogInfo{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[148] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AwardLogInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*AwardLogInfo) ProtoMessage() {} func (x *AwardLogInfo) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[148] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use AwardLogInfo.ProtoReflect.Descriptor instead. func (*AwardLogInfo) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{148} } func (x *AwardLogInfo) GetItemId() int32 { if x != nil { return x.ItemId } return 0 } func (x *AwardLogInfo) GetNum() int64 { if x != nil { return x.Num } return 0 } func (x *AwardLogInfo) GetOrder() int32 { if x != nil { return x.Order } return 0 } func (x *AwardLogInfo) GetUrl() string { if x != nil { return x.Url } return "" } //实时播报 type AnnouncerLogInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Snid int32 `protobuf:"varint,1,opt,name=Snid,proto3" json:"Snid,omitempty"` //玩家ID Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` //玩家名字 Phone string `protobuf:"bytes,3,opt,name=Phone,proto3" json:"Phone,omitempty"` //电话 ItemId int32 `protobuf:"varint,4,opt,name=ItemId,proto3" json:"ItemId,omitempty"` //获得物品ID TypeId int32 `protobuf:"varint,5,opt,name=TypeId,proto3" json:"TypeId,omitempty"` //1-话费 2-实物 } func (x *AnnouncerLogInfo) Reset() { *x = AnnouncerLogInfo{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[149] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AnnouncerLogInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*AnnouncerLogInfo) ProtoMessage() {} func (x *AnnouncerLogInfo) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[149] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use AnnouncerLogInfo.ProtoReflect.Descriptor instead. func (*AnnouncerLogInfo) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{149} } func (x *AnnouncerLogInfo) GetSnid() int32 { if x != nil { return x.Snid } return 0 } func (x *AnnouncerLogInfo) GetName() string { if x != nil { return x.Name } return "" } func (x *AnnouncerLogInfo) GetPhone() string { if x != nil { return x.Phone } return "" } func (x *AnnouncerLogInfo) GetItemId() int32 { if x != nil { return x.ItemId } return 0 } func (x *AnnouncerLogInfo) GetTypeId() int32 { if x != nil { return x.TypeId } return 0 } //弹窗配置 //PACKET_CSPopUpWindowsConfig type CSPopUpWindowsConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *CSPopUpWindowsConfig) Reset() { *x = CSPopUpWindowsConfig{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[150] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSPopUpWindowsConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSPopUpWindowsConfig) ProtoMessage() {} func (x *CSPopUpWindowsConfig) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[150] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSPopUpWindowsConfig.ProtoReflect.Descriptor instead. func (*CSPopUpWindowsConfig) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{150} } //PACKET_SCPopUpWindowsConfig type SCPopUpWindowsConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Info []*WindowsInfo `protobuf:"bytes,1,rep,name=Info,proto3" json:"Info,omitempty"` } func (x *SCPopUpWindowsConfig) Reset() { *x = SCPopUpWindowsConfig{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[151] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCPopUpWindowsConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCPopUpWindowsConfig) ProtoMessage() {} func (x *SCPopUpWindowsConfig) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[151] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCPopUpWindowsConfig.ProtoReflect.Descriptor instead. func (*SCPopUpWindowsConfig) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{151} } func (x *SCPopUpWindowsConfig) GetInfo() []*WindowsInfo { if x != nil { return x.Info } return nil } type WindowsInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ItemName string `protobuf:"bytes,1,opt,name=ItemName,proto3" json:"ItemName,omitempty"` //名字 Url string `protobuf:"bytes,2,opt,name=Url,proto3" json:"Url,omitempty"` //图片地址 Sort int32 `protobuf:"varint,3,opt,name=Sort,proto3" json:"Sort,omitempty"` //排序 PartNum int32 `protobuf:"varint,4,opt,name=PartNum,proto3" json:"PartNum,omitempty"` //参与人数 GainNum int32 `protobuf:"varint,5,opt,name=GainNum,proto3" json:"GainNum,omitempty"` //领取人数 } func (x *WindowsInfo) Reset() { *x = WindowsInfo{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[152] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WindowsInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*WindowsInfo) ProtoMessage() {} func (x *WindowsInfo) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[152] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WindowsInfo.ProtoReflect.Descriptor instead. func (*WindowsInfo) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{152} } func (x *WindowsInfo) GetItemName() string { if x != nil { return x.ItemName } return "" } func (x *WindowsInfo) GetUrl() string { if x != nil { return x.Url } return "" } func (x *WindowsInfo) GetSort() int32 { if x != nil { return x.Sort } return 0 } func (x *WindowsInfo) GetPartNum() int32 { if x != nil { return x.PartNum } return 0 } func (x *WindowsInfo) GetGainNum() int32 { if x != nil { return x.GainNum } return 0 } //PACKET_CSUpdateAttribute type CSUpdateAttribute struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Tp int32 `protobuf:"varint,1,opt,name=Tp,proto3" json:"Tp,omitempty"` // 1.更新新手引导阶段 2.跳过新手引导 3.更新新手引导状态(测试用) Param []int64 `protobuf:"varint,2,rep,packed,name=Param,proto3" json:"Param,omitempty"` } func (x *CSUpdateAttribute) Reset() { *x = CSUpdateAttribute{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[153] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSUpdateAttribute) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSUpdateAttribute) ProtoMessage() {} func (x *CSUpdateAttribute) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[153] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CSUpdateAttribute.ProtoReflect.Descriptor instead. func (*CSUpdateAttribute) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{153} } func (x *CSUpdateAttribute) GetTp() int32 { if x != nil { return x.Tp } return 0 } func (x *CSUpdateAttribute) GetParam() []int64 { if x != nil { return x.Param } return nil } //PACKET_SCUpdateAttribute type SCUpdateAttribute struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=player.OpResultCode" json:"OpRetCode,omitempty"` //操作结果 Tp int32 `protobuf:"varint,2,opt,name=Tp,proto3" json:"Tp,omitempty"` Param []int64 `protobuf:"varint,3,rep,packed,name=Param,proto3" json:"Param,omitempty"` } func (x *SCUpdateAttribute) Reset() { *x = SCUpdateAttribute{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[154] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCUpdateAttribute) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCUpdateAttribute) ProtoMessage() {} func (x *SCUpdateAttribute) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[154] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCUpdateAttribute.ProtoReflect.Descriptor instead. func (*SCUpdateAttribute) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{154} } func (x *SCUpdateAttribute) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } func (x *SCUpdateAttribute) GetTp() int32 { if x != nil { return x.Tp } return 0 } func (x *SCUpdateAttribute) GetParam() []int64 { if x != nil { return x.Param } return nil } //PACKET_SCGuideConfig type SCGuideConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields On int32 `protobuf:"varint,2,opt,name=On,proto3" json:"On,omitempty"` // 引导开关 1开启 2关闭 Skip int32 `protobuf:"varint,3,opt,name=Skip,proto3" json:"Skip,omitempty"` // 引导跳过开关 1开启 2关闭 } func (x *SCGuideConfig) Reset() { *x = SCGuideConfig{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[155] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCGuideConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCGuideConfig) ProtoMessage() {} func (x *SCGuideConfig) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[155] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCGuideConfig.ProtoReflect.Descriptor instead. func (*SCGuideConfig) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{155} } func (x *SCGuideConfig) GetOn() int32 { if x != nil { return x.On } return 0 } func (x *SCGuideConfig) GetSkip() int32 { if x != nil { return x.Skip } return 0 } type Config struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Tp 类型: // 1:小精灵快捷入口 On开关 Value地址 // 2:比赛观战开关 On开关 // ... Tp int32 `protobuf:"varint,1,opt,name=Tp,proto3" json:"Tp,omitempty"` On bool `protobuf:"varint,2,opt,name=On,proto3" json:"On,omitempty"` Value string `protobuf:"bytes,3,opt,name=Value,proto3" json:"Value,omitempty"` Num int64 `protobuf:"varint,4,opt,name=Num,proto3" json:"Num,omitempty"` Values []string `protobuf:"bytes,5,rep,name=Values,proto3" json:"Values,omitempty"` Nums []int64 `protobuf:"varint,6,rep,packed,name=Nums,proto3" json:"Nums,omitempty"` Ons []bool `protobuf:"varint,7,rep,packed,name=Ons,proto3" json:"Ons,omitempty"` Map map[int64]int64 `protobuf:"bytes,8,rep,name=Map,proto3" json:"Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MapStr map[string]string `protobuf:"bytes,9,rep,name=MapStr,proto3" json:"MapStr,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *Config) Reset() { *x = Config{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[156] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Config) String() string { return protoimpl.X.MessageStringOf(x) } func (*Config) ProtoMessage() {} func (x *Config) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[156] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Config.ProtoReflect.Descriptor instead. func (*Config) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{156} } func (x *Config) GetTp() int32 { if x != nil { return x.Tp } return 0 } func (x *Config) GetOn() bool { if x != nil { return x.On } return false } func (x *Config) GetValue() string { if x != nil { return x.Value } return "" } func (x *Config) GetNum() int64 { if x != nil { return x.Num } return 0 } func (x *Config) GetValues() []string { if x != nil { return x.Values } return nil } func (x *Config) GetNums() []int64 { if x != nil { return x.Nums } return nil } func (x *Config) GetOns() []bool { if x != nil { return x.Ons } return nil } func (x *Config) GetMap() map[int64]int64 { if x != nil { return x.Map } return nil } func (x *Config) GetMapStr() map[string]string { if x != nil { return x.MapStr } return nil } //PACKET_SCDataConfig type SCDataConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Cfg []*Config `protobuf:"bytes,1,rep,name=Cfg,proto3" json:"Cfg,omitempty"` } func (x *SCDataConfig) Reset() { *x = SCDataConfig{} if protoimpl.UnsafeEnabled { mi := &file_player_proto_msgTypes[157] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCDataConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCDataConfig) ProtoMessage() {} func (x *SCDataConfig) ProtoReflect() protoreflect.Message { mi := &file_player_proto_msgTypes[157] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SCDataConfig.ProtoReflect.Descriptor instead. func (*SCDataConfig) Descriptor() ([]byte, []int) { return file_player_proto_rawDescGZIP(), []int{157} } func (x *SCDataConfig) GetCfg() []*Config { if x != nil { return x.Cfg } return nil } var File_player_proto protoreflect.FileDescriptor var file_player_proto_rawDesc = []byte{ 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x1a, 0x1c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x62, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x50, 0x0a, 0x0a, 0x43, 0x53, 0x42, 0x69, 0x6c, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x54, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x67, 0x65, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x50, 0x61, 0x67, 0x65, 0x4e, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x34, 0x0a, 0x0a, 0x53, 0x43, 0x42, 0x69, 0x6c, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0xcc, 0x01, 0x0a, 0x08, 0x42, 0x69, 0x6c, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x54, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x42, 0x69, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x42, 0x69, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x42, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x42, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0xc4, 0x01, 0x0a, 0x10, 0x43, 0x53, 0x53, 0x61, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x48, 0x65, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x48, 0x65, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x53, 0x65, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x41, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x41, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x65, 0x74, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x50, 0x65, 0x74, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x65, 0x61, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x48, 0x65, 0x61, 0x64, 0x22, 0x46, 0x0a, 0x10, 0x53, 0x43, 0x53, 0x61, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x32, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0xde, 0x02, 0x0a, 0x0c, 0x43, 0x53, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x41, 0x63, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x41, 0x63, 0x63, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x61, 0x67, 0x18, 0x05, 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, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x41, 0x70, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x41, 0x70, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0xfd, 0x0c, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x41, 0x63, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x41, 0x63, 0x63, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 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, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x65, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x48, 0x65, 0x61, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x53, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x61, 0x66, 0x65, 0x42, 0x6f, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x53, 0x61, 0x66, 0x65, 0x42, 0x6f, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x54, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x41, 0x63, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x41, 0x63, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x42, 0x61, 0x6e, 0x6b, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x4d, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x47, 0x4d, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x70, 0x65, 0x63, 0x61, 0x69, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x70, 0x65, 0x63, 0x61, 0x69, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x56, 0x49, 0x50, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x56, 0x49, 0x50, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x61, 0x66, 0x65, 0x42, 0x6f, 0x78, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x53, 0x61, 0x66, 0x65, 0x42, 0x6f, 0x78, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x48, 0x65, 0x61, 0x64, 0x4f, 0x75, 0x74, 0x4c, 0x69, 0x6e, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x48, 0x65, 0x61, 0x64, 0x4f, 0x75, 0x74, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x61, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x61, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x14, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x18, 0x19, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x61, 0x6e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x43, 0x61, 0x6e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x2a, 0x0a, 0x10, 0x4c, 0x61, 0x63, 0x6b, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x4c, 0x61, 0x63, 0x6b, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6c, 0x75, 0x62, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x43, 0x6c, 0x75, 0x62, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x20, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x55, 0x73, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x50, 0x65, 0x74, 0x49, 0x64, 0x18, 0x22, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x55, 0x73, 0x65, 0x50, 0x65, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x23, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x56, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x6c, 0x69, 0x65, 0x66, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x24, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x52, 0x65, 0x6c, 0x69, 0x65, 0x66, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x48, 0x65, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x48, 0x65, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x56, 0x69, 0x70, 0x45, 0x78, 0x70, 0x18, 0x26, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x56, 0x69, 0x70, 0x45, 0x78, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x73, 0x73, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x27, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x43, 0x68, 0x65, 0x73, 0x73, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x3f, 0x0a, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x28, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x55, 0x6e, 0x4d, 0x61, 0x78, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x29, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x55, 0x6e, 0x4d, 0x61, 0x78, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x2a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x78, 0x70, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x45, 0x78, 0x70, 0x12, 0x30, 0x0a, 0x13, 0x56, 0x69, 0x70, 0x53, 0x68, 0x6f, 0x70, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x56, 0x69, 0x70, 0x53, 0x68, 0x6f, 0x70, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x41, 0x67, 0x65, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x41, 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x08, 0x57, 0x65, 0x65, 0x6b, 0x43, 0x61, 0x72, 0x64, 0x18, 0x30, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x57, 0x65, 0x65, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x57, 0x65, 0x65, 0x6b, 0x43, 0x61, 0x72, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x31, 0x20, 0x03, 0x28, 0x05, 0x52, 0x10, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x32, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x55, 0x73, 0x65, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x18, 0x33, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x75, 0x69, 0x64, 0x65, 0x53, 0x74, 0x65, 0x70, 0x18, 0x34, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x47, 0x75, 0x69, 0x64, 0x65, 0x53, 0x74, 0x65, 0x70, 0x1a, 0x3c, 0x0a, 0x0e, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x64, 0x0a, 0x08, 0x57, 0x65, 0x65, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x57, 0x65, 0x65, 0x6b, 0x43, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x57, 0x65, 0x65, 0x6b, 0x43, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x77, 0x65, 0x65, 0x6b, 0x43, 0x61, 0x72, 0x64, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x77, 0x65, 0x65, 0x6b, 0x43, 0x61, 0x72, 0x64, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, 0x58, 0x0a, 0x0c, 0x4d, 0x69, 0x6e, 0x69, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x49, 0x64, 0x22, 0x8c, 0x02, 0x0a, 0x0c, 0x53, 0x43, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x26, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x42, 0x69, 0x6e, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x42, 0x69, 0x6e, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x0b, 0x4d, 0x69, 0x6e, 0x69, 0x47, 0x61, 0x6d, 0x65, 0x41, 0x72, 0x72, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x4d, 0x69, 0x6e, 0x69, 0x47, 0x61, 0x6d, 0x65, 0x41, 0x72, 0x72, 0x22, 0x9d, 0x04, 0x0a, 0x12, 0x53, 0x43, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x61, 0x66, 0x65, 0x42, 0x6f, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x53, 0x61, 0x66, 0x65, 0x42, 0x6f, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x56, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x56, 0x69, 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x61, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x61, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x32, 0x0a, 0x14, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x56, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x73, 0x73, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x43, 0x68, 0x65, 0x73, 0x73, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x47, 0x0a, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x53, 0x43, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x1a, 0x3c, 0x0a, 0x0e, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x23, 0x0a, 0x11, 0x43, 0x53, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x3b, 0x0a, 0x11, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x22, 0x0a, 0x0c, 0x43, 0x53, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x69, 0x63, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x69, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x69, 0x63, 0x6b, 0x22, 0x56, 0x0a, 0x0c, 0x53, 0x43, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x69, 0x63, 0x6b, 0x12, 0x32, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x4e, 0x69, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x69, 0x63, 0x6b, 0x22, 0x94, 0x01, 0x0a, 0x10, 0x43, 0x53, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x6c, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x6c, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4e, 0x65, 0x77, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4e, 0x65, 0x77, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x66, 0x0a, 0x10, 0x53, 0x43, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x32, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x28, 0x0a, 0x12, 0x43, 0x53, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x49, 0x63, 0x6f, 0x6e, 0x22, 0x5c, 0x0a, 0x12, 0x53, 0x43, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x49, 0x63, 0x6f, 0x6e, 0x22, 0x3d, 0x0a, 0x19, 0x43, 0x53, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x4f, 0x75, 0x74, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x48, 0x65, 0x61, 0x64, 0x4f, 0x75, 0x74, 0x4c, 0x69, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x48, 0x65, 0x61, 0x64, 0x4f, 0x75, 0x74, 0x4c, 0x69, 0x6e, 0x65, 0x22, 0x71, 0x0a, 0x19, 0x53, 0x43, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x4f, 0x75, 0x74, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x32, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x20, 0x0a, 0x0b, 0x48, 0x65, 0x61, 0x64, 0x4f, 0x75, 0x74, 0x4c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x48, 0x65, 0x61, 0x64, 0x4f, 0x75, 0x74, 0x4c, 0x69, 0x6e, 0x65, 0x22, 0x25, 0x0a, 0x11, 0x43, 0x53, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x53, 0x65, 0x78, 0x22, 0x59, 0x0a, 0x11, 0x53, 0x43, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x78, 0x12, 0x32, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x10, 0x0a, 0x03, 0x53, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x53, 0x65, 0x78, 0x22, 0x1d, 0x0a, 0x09, 0x43, 0x53, 0x48, 0x65, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x72, 0x6c, 0x22, 0x51, 0x0a, 0x09, 0x53, 0x43, 0x48, 0x65, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x32, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x10, 0x0a, 0x03, 0x55, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x72, 0x6c, 0x22, 0xc2, 0x01, 0x0a, 0x18, 0x43, 0x53, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x54, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x61, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x6e, 0x76, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x45, 0x6e, 0x76, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x6d, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x49, 0x6d, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x54, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x7a, 0x0a, 0x18, 0x53, 0x43, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x32, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x2a, 0x0a, 0x10, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x22, 0xcc, 0x04, 0x0a, 0x0a, 0x43, 0x53, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 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, 0x10, 0x0a, 0x03, 0x54, 0x65, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x54, 0x65, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x65, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x54, 0x65, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x61, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x18, 0x0f, 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, 0x10, 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, 0x11, 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, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x22, 0x6c, 0x0a, 0x0a, 0x53, 0x43, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x22, 0xcc, 0x01, 0x0a, 0x10, 0x43, 0x53, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x54, 0x65, 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x04, 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, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x61, 0x67, 0x22, 0x78, 0x0a, 0x10, 0x53, 0x43, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x10, 0x0a, 0x03, 0x54, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x54, 0x65, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x94, 0x01, 0x0a, 0x0c, 0x43, 0x53, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x41, 0x63, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x41, 0x63, 0x63, 0x4e, 0x61, 0x6d, 0x65, 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, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x8e, 0x01, 0x0a, 0x0c, 0x53, 0x43, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x12, 0x32, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x24, 0x0a, 0x0d, 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x41, 0x63, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x41, 0x63, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x0a, 0x43, 0x53, 0x42, 0x69, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x42, 0x61, 0x6e, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x98, 0x01, 0x0a, 0x0a, 0x53, 0x43, 0x42, 0x69, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x32, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x42, 0x61, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3e, 0x0a, 0x0c, 0x53, 0x43, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x6c, 0x61, 0x67, 0x22, 0x5e, 0x0a, 0x12, 0x53, 0x43, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x52, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x82, 0x01, 0x0a, 0x16, 0x53, 0x43, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x61, 0x66, 0x65, 0x42, 0x6f, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x53, 0x61, 0x66, 0x65, 0x42, 0x6f, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x8b, 0x01, 0x0a, 0x07, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x6f, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4c, 0x6f, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x52, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x54, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x22, 0x3c, 0x0a, 0x0c, 0x43, 0x53, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x6f, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x56, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x56, 0x65, 0x72, 0x22, 0x63, 0x0a, 0x0c, 0x53, 0x43, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x6f, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x56, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x56, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x6f, 0x67, 0x52, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x22, 0x99, 0x01, 0x0a, 0x0b, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x4c, 0x6f, 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, 0x1e, 0x0a, 0x0a, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x54, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x54, 0x73, 0x22, 0x22, 0x0a, 0x10, 0x43, 0x53, 0x47, 0x65, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x54, 0x73, 0x22, 0x6f, 0x0a, 0x10, 0x53, 0x43, 0x47, 0x65, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x12, 0x32, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x27, 0x0a, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x52, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x22, 0x6e, 0x0a, 0x0e, 0x43, 0x53, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x4f, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x4f, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 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, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x8a, 0x01, 0x0a, 0x0e, 0x53, 0x43, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x32, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x0e, 0x0a, 0x02, 0x4f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x4f, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x61, 0x66, 0x65, 0x42, 0x6f, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x53, 0x61, 0x66, 0x65, 0x42, 0x6f, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x94, 0x01, 0x0a, 0x0e, 0x53, 0x61, 0x66, 0x65, 0x42, 0x6f, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4c, 0x6f, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x50, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x4f, 0x50, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x50, 0x43, 0x6f, 0x69, 0x6e, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x4f, 0x50, 0x43, 0x6f, 0x69, 0x6e, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x50, 0x43, 0x6f, 0x69, 0x6e, 0x4c, 0x61, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x4f, 0x50, 0x43, 0x6f, 0x69, 0x6e, 0x4c, 0x61, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x54, 0x73, 0x22, 0x25, 0x0a, 0x13, 0x43, 0x53, 0x47, 0x65, 0x74, 0x53, 0x61, 0x66, 0x65, 0x42, 0x6f, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x54, 0x73, 0x22, 0x75, 0x0a, 0x13, 0x53, 0x43, 0x47, 0x65, 0x74, 0x53, 0x61, 0x66, 0x65, 0x42, 0x6f, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x12, 0x32, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x2a, 0x0a, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x53, 0x61, 0x66, 0x65, 0x42, 0x6f, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x52, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x22, 0x28, 0x0a, 0x12, 0x43, 0x53, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x48, 0x0a, 0x12, 0x53, 0x43, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x32, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x5e, 0x0a, 0x12, 0x43, 0x53, 0x57, 0x65, 0x62, 0x41, 0x50, 0x49, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x61, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x70, 0x69, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x70, 0x69, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x42, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x43, 0x42, 0x44, 0x61, 0x74, 0x61, 0x22, 0x96, 0x01, 0x0a, 0x12, 0x53, 0x43, 0x57, 0x65, 0x62, 0x41, 0x50, 0x49, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x61, 0x73, 0x73, 0x12, 0x32, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x18, 0x0a, 0x07, 0x41, 0x70, 0x69, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x70, 0x69, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x42, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x43, 0x42, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5e, 0x0a, 0x12, 0x43, 0x53, 0x57, 0x65, 0x62, 0x41, 0x50, 0x49, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x61, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x70, 0x69, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x70, 0x69, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x42, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x43, 0x42, 0x44, 0x61, 0x74, 0x61, 0x22, 0x96, 0x01, 0x0a, 0x12, 0x53, 0x43, 0x57, 0x65, 0x62, 0x41, 0x50, 0x49, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x61, 0x73, 0x73, 0x12, 0x32, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x18, 0x0a, 0x07, 0x41, 0x70, 0x69, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x70, 0x69, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x42, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x43, 0x42, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x0a, 0x0c, 0x43, 0x53, 0x53, 0x70, 0x72, 0x65, 0x61, 0x64, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x5e, 0x0a, 0x0c, 0x53, 0x43, 0x53, 0x70, 0x72, 0x65, 0x61, 0x64, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x32, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x2c, 0x0a, 0x0e, 0x43, 0x53, 0x42, 0x69, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x22, 0x60, 0x0a, 0x0e, 0x53, 0x43, 0x42, 0x69, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x22, 0x33, 0x0a, 0x13, 0x53, 0x43, 0x42, 0x69, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x69, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x42, 0x69, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x43, 0x53, 0x47, 0x65, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x2a, 0x0a, 0x12, 0x53, 0x43, 0x47, 0x65, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x37, 0x0a, 0x0b, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x3b, 0x0a, 0x10, 0x53, 0x43, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x65, 0x77, 0x4d, 0x73, 0x67, 0x12, 0x27, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x2d, 0x0a, 0x13, 0x43, 0x53, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x65, 0x77, 0x4d, 0x73, 0x67, 0x41, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x73, 0x22, 0x16, 0x0a, 0x14, 0x43, 0x53, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x68, 0x0a, 0x14, 0x53, 0x43, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x32, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x1c, 0x0a, 0x09, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x22, 0x27, 0x0a, 0x11, 0x43, 0x53, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x47, 0x0a, 0x11, 0x53, 0x43, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x32, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x8d, 0x01, 0x0a, 0x11, 0x53, 0x43, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x65, 0x73, 0x68, 0x69, 0x70, 0x54, 0x69, 0x70, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x65, 0x73, 0x68, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x65, 0x73, 0x68, 0x69, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x29, 0x0a, 0x15, 0x43, 0x53, 0x47, 0x65, 0x74, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x54, 0x65, 0x6c, 0x22, 0x5d, 0x0a, 0x15, 0x53, 0x43, 0x47, 0x65, 0x74, 0x53, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x32, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x22, 0x3a, 0x0a, 0x12, 0x43, 0x53, 0x49, 0x6f, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x54, 0x65, 0x6c, 0x22, 0x48, 0x0a, 0x12, 0x53, 0x43, 0x49, 0x6f, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x32, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x45, 0x0a, 0x0b, 0x53, 0x72, 0x76, 0x4d, 0x73, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x49, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x74, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x22, 0x4d, 0x0a, 0x08, 0x53, 0x43, 0x53, 0x72, 0x76, 0x4d, 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x53, 0x72, 0x76, 0x4d, 0x73, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x23, 0x0a, 0x0d, 0x43, 0x53, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x22, 0x5d, 0x0a, 0x0f, 0x46, 0x69, 0x73, 0x68, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x54, 0x73, 0x22, 0x4a, 0x0a, 0x0d, 0x53, 0x43, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0b, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x73, 0x68, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x13, 0x0a, 0x11, 0x43, 0x53, 0x46, 0x69, 0x73, 0x68, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x27, 0x0a, 0x11, 0x53, 0x43, 0x46, 0x69, 0x73, 0x68, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x40, 0x0a, 0x0e, 0x53, 0x43, 0x4e, 0x69, 0x63, 0x65, 0x49, 0x64, 0x52, 0x65, 0x62, 0x69, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6e, 0x69, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x6e, 0x69, 0x64, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x4e, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4e, 0x69, 0x63, 0x65, 0x49, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x43, 0x53, 0x47, 0x65, 0x74, 0x53, 0x70, 0x72, 0x65, 0x61, 0x64, 0x4c, 0x57, 0x49, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x22, 0x2d, 0x0a, 0x13, 0x53, 0x43, 0x47, 0x65, 0x74, 0x53, 0x70, 0x72, 0x65, 0x61, 0x64, 0x4c, 0x57, 0x49, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x22, 0xa0, 0x01, 0x0a, 0x0a, 0x50, 0x61, 0x79, 0x41, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x69, 0x76, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x47, 0x69, 0x76, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x69, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x69, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x3f, 0x0a, 0x0d, 0x53, 0x43, 0x50, 0x61, 0x79, 0x41, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x08, 0x50, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x79, 0x41, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x50, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x23, 0x0a, 0x0d, 0x43, 0x53, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x22, 0x45, 0x0a, 0x09, 0x52, 0x6f, 0x6c, 0x65, 0x4f, 0x72, 0x50, 0x65, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xc5, 0x03, 0x0a, 0x0d, 0x53, 0x43, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x65, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x48, 0x65, 0x61, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x53, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x43, 0x61, 0x72, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x56, 0x43, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x49, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x43, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x75, 0x72, 0x50, 0x65, 0x74, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x75, 0x72, 0x50, 0x65, 0x74, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x05, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x4f, 0x72, 0x50, 0x65, 0x74, 0x52, 0x05, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x04, 0x50, 0x65, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x4f, 0x72, 0x50, 0x65, 0x74, 0x52, 0x04, 0x50, 0x65, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x49, 0x73, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x48, 0x65, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x48, 0x65, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x41, 0x67, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x41, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x11, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x22, 0x1b, 0x0a, 0x07, 0x43, 0x53, 0x50, 0x4d, 0x43, 0x6d, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x43, 0x6d, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x43, 0x6d, 0x64, 0x22, 0x28, 0x0a, 0x0e, 0x43, 0x53, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x43, 0x68, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xe4, 0x02, 0x0a, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x61, 0x6c, 0x65, 0x47, 0x6f, 0x6c, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x61, 0x6c, 0x65, 0x47, 0x6f, 0x6c, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x54, 0x79, 0x70, 0x65, 0x22, 0x66, 0x0a, 0x0c, 0x4a, 0x79, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x28, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x22, 0x4b, 0x0a, 0x0f, 0x43, 0x53, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x70, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4f, 0x70, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x77, 0x0a, 0x0f, 0x53, 0x43, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x32, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x30, 0x0a, 0x08, 0x47, 0x61, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x4a, 0x79, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x08, 0x47, 0x61, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x89, 0x01, 0x0a, 0x11, 0x53, 0x43, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x78, 0x44, 0x72, 0x6f, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x3a, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x53, 0x43, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x78, 0x44, 0x72, 0x6f, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x38, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x20, 0x0a, 0x08, 0x43, 0x53, 0x56, 0x49, 0x50, 0x42, 0x75, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x22, 0x84, 0x01, 0x0a, 0x08, 0x53, 0x43, 0x56, 0x49, 0x50, 0x42, 0x75, 0x79, 0x12, 0x32, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x56, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x56, 0x69, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x6f, 0x6c, 0x56, 0x69, 0x70, 0x45, 0x78, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x54, 0x6f, 0x6c, 0x56, 0x69, 0x70, 0x45, 0x78, 0x70, 0x22, 0x2d, 0x0a, 0x09, 0x43, 0x53, 0x56, 0x49, 0x50, 0x44, 0x72, 0x61, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x56, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x56, 0x69, 0x70, 0x22, 0xcf, 0x01, 0x0a, 0x09, 0x53, 0x43, 0x56, 0x49, 0x50, 0x44, 0x72, 0x61, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x56, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x56, 0x69, 0x70, 0x12, 0x32, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x32, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x53, 0x43, 0x56, 0x49, 0x50, 0x44, 0x72, 0x61, 0x77, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x0b, 0x0a, 0x09, 0x43, 0x53, 0x56, 0x49, 0x50, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xc2, 0x06, 0x0a, 0x06, 0x56, 0x49, 0x50, 0x63, 0x66, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x69, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x69, 0x70, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x69, 0x70, 0x45, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x69, 0x70, 0x45, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x3e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x56, 0x49, 0x50, 0x63, 0x66, 0x67, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x4c, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x4c, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x12, 0x30, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x12, 0x28, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x42, 0x61, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x39, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x56, 0x49, 0x50, 0x63, 0x66, 0x67, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x39, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x39, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x39, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xdf, 0x01, 0x0a, 0x09, 0x53, 0x43, 0x56, 0x49, 0x50, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x32, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x22, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x56, 0x49, 0x50, 0x63, 0x66, 0x67, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x6f, 0x6c, 0x56, 0x69, 0x70, 0x45, 0x78, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x54, 0x6f, 0x6c, 0x56, 0x69, 0x70, 0x45, 0x78, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x56, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x56, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x69, 0x70, 0x49, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x56, 0x69, 0x70, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x22, 0x3a, 0x0a, 0x12, 0x53, 0x43, 0x45, 0x61, 0x73, 0x79, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0x28, 0x0a, 0x12, 0x43, 0x53, 0x56, 0x49, 0x50, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x6c, 0x0a, 0x12, 0x53, 0x43, 0x56, 0x49, 0x50, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x56, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x56, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x77, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x77, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3b, 0x0a, 0x07, 0x50, 0x61, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x22, 0x8b, 0x01, 0x0a, 0x0e, 0x53, 0x43, 0x50, 0x61, 0x79, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x47, 0x6f, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x47, 0x6f, 0x6c, 0x64, 0x12, 0x23, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x1e, 0x0a, 0x0a, 0x53, 0x43, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x21, 0x0a, 0x0b, 0x43, 0x53, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x41, 0x0a, 0x0b, 0x53, 0x43, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x12, 0x32, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x31, 0x0a, 0x0f, 0x53, 0x43, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x55, 0x6e, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x55, 0x6e, 0x4d, 0x61, 0x78, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x55, 0x6e, 0x4d, 0x61, 0x78, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x22, 0x37, 0x0a, 0x13, 0x53, 0x43, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x55, 0x6e, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x55, 0x6e, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x55, 0x6e, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x39, 0x0a, 0x0f, 0x53, 0x43, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x55, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x78, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x45, 0x78, 0x70, 0x22, 0x0f, 0x0a, 0x0d, 0x43, 0x53, 0x42, 0x69, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xa1, 0x01, 0x0a, 0x0d, 0x53, 0x43, 0x42, 0x69, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4e, 0x0a, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x53, 0x43, 0x42, 0x69, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x1a, 0x40, 0x0a, 0x12, 0x42, 0x69, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x91, 0x01, 0x0a, 0x0f, 0x43, 0x53, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x4d, 0x53, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x72, 0x65, 0x61, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x41, 0x72, 0x65, 0x61, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x54, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x3b, 0x0a, 0x0f, 0x53, 0x43, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x4d, 0x53, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x4d, 0x0a, 0x09, 0x43, 0x53, 0x42, 0x69, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x72, 0x65, 0x61, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x41, 0x72, 0x65, 0x61, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x54, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x35, 0x0a, 0x09, 0x53, 0x43, 0x42, 0x69, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x0a, 0x43, 0x53, 0x48, 0x74, 0x74, 0x70, 0x50, 0x61, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x70, 0x69, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x70, 0x69, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x42, 0x44, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x43, 0x42, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0x8e, 0x01, 0x0a, 0x0a, 0x53, 0x43, 0x48, 0x74, 0x74, 0x70, 0x50, 0x61, 0x73, 0x73, 0x12, 0x32, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x18, 0x0a, 0x07, 0x41, 0x70, 0x69, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x70, 0x69, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x42, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x43, 0x42, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x43, 0x53, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x73, 0x0a, 0x12, 0x53, 0x43, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x32, 0x0a, 0x0e, 0x43, 0x53, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x22, 0x6f, 0x0a, 0x0e, 0x53, 0x43, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x67, 0x0a, 0x0b, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x22, 0x2b, 0x0a, 0x13, 0x53, 0x43, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x1d, 0x0a, 0x05, 0x43, 0x53, 0x41, 0x44, 0x56, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x22, 0x1d, 0x0a, 0x05, 0x53, 0x43, 0x41, 0x44, 0x56, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x22, 0x9f, 0x01, 0x0a, 0x12, 0x53, 0x43, 0x47, 0x65, 0x74, 0x57, 0x65, 0x65, 0x6b, 0x43, 0x61, 0x72, 0x64, 0x41, 0x77, 0x61, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x77, 0x65, 0x65, 0x6b, 0x43, 0x61, 0x72, 0x64, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x77, 0x65, 0x65, 0x6b, 0x43, 0x61, 0x72, 0x64, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x2c, 0x0a, 0x08, 0x57, 0x65, 0x65, 0x6b, 0x43, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x57, 0x65, 0x65, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x57, 0x65, 0x65, 0x6b, 0x43, 0x61, 0x72, 0x64, 0x22, 0x6f, 0x0a, 0x0d, 0x53, 0x43, 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x69, 0x6e, 0x4d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x69, 0x6e, 0x4d, 0x61, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x41, 0x64, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x23, 0x0a, 0x11, 0x43, 0x53, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x54, 0x70, 0x22, 0x45, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x54, 0x70, 0x22, 0x40, 0x0a, 0x11, 0x53, 0x43, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x2b, 0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x52, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x22, 0x0d, 0x0a, 0x0b, 0x43, 0x53, 0x53, 0x4d, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x32, 0x0a, 0x0b, 0x53, 0x43, 0x53, 0x4d, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x23, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x53, 0x4d, 0x53, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x33, 0x0a, 0x07, 0x53, 0x4d, 0x53, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6d, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x6d, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x43, 0x53, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x9b, 0x01, 0x0a, 0x14, 0x53, 0x43, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x78, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4d, 0x61, 0x78, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x22, 0x34, 0x0a, 0x10, 0x43, 0x53, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5b, 0x0a, 0x10, 0x53, 0x43, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x1c, 0x0a, 0x1a, 0x43, 0x53, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, 0x65, 0x0a, 0x1a, 0x53, 0x43, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x33, 0x0a, 0x06, 0x53, 0x43, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x29, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x25, 0x0a, 0x0b, 0x43, 0x53, 0x5f, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x6f, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x79, 0x70, 0x65, 0x49, 0x64, 0x22, 0x94, 0x01, 0x0a, 0x0a, 0x53, 0x43, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x6f, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x6f, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x6f, 0x67, 0x12, 0x3c, 0x0a, 0x0c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x22, 0x58, 0x0a, 0x0c, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x6f, 0x67, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x6f, 0x67, 0x22, 0x60, 0x0a, 0x0c, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x72, 0x6c, 0x22, 0x80, 0x01, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x43, 0x53, 0x50, 0x6f, 0x70, 0x55, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x3f, 0x0a, 0x14, 0x53, 0x43, 0x50, 0x6f, 0x70, 0x55, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x27, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x83, 0x01, 0x0a, 0x0b, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x72, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6f, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x50, 0x61, 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x50, 0x61, 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x47, 0x61, 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x22, 0x39, 0x0a, 0x11, 0x43, 0x53, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x54, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x22, 0x6d, 0x0a, 0x11, 0x53, 0x43, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x32, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x0e, 0x0a, 0x02, 0x54, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x54, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x22, 0x33, 0x0a, 0x0d, 0x53, 0x43, 0x47, 0x75, 0x69, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x4f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x4f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6b, 0x69, 0x70, 0x22, 0xe0, 0x02, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x54, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x4f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x4f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x03, 0x52, 0x04, 0x4e, 0x75, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x4f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x08, 0x52, 0x03, 0x4f, 0x6e, 0x73, 0x12, 0x29, 0x0a, 0x03, 0x4d, 0x61, 0x70, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x4d, 0x61, 0x70, 0x12, 0x32, 0x0a, 0x06, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x1a, 0x36, 0x0a, 0x08, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x30, 0x0a, 0x0c, 0x53, 0x43, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, 0x0a, 0x03, 0x43, 0x66, 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x03, 0x43, 0x66, 0x67, 0x2a, 0x87, 0x0f, 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, 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, 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, 0x12, 0x0a, 0x0d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x6f, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x10, 0xf5, 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, 0x17, 0x0a, 0x12, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x43, 0x6f, 0x69, 0x6e, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xa0, 0x08, 0x12, 0x14, 0x0a, 0x0f, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x69, 0x63, 0x6b, 0x49, 0x73, 0x4e, 0x75, 0x6c, 0x6c, 0x10, 0xa4, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x69, 0x63, 0x6b, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x10, 0xa5, 0x08, 0x12, 0x14, 0x0a, 0x0f, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x10, 0xa6, 0x08, 0x12, 0x13, 0x0a, 0x0e, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x49, 0x63, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xa7, 0x08, 0x12, 0x12, 0x0a, 0x0d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x65, 0x78, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xa8, 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, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xaa, 0x08, 0x12, 0x1f, 0x0a, 0x1a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xab, 0x08, 0x12, 0x14, 0x0a, 0x0f, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x54, 0x65, 0x6c, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x10, 0xac, 0x08, 0x12, 0x1e, 0x0a, 0x19, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x61, 0x66, 0x65, 0x42, 0x6f, 0x78, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xae, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x54, 0x65, 0x6c, 0x49, 0x73, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x10, 0xaf, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x49, 0x6e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x10, 0xb0, 0x08, 0x12, 0x16, 0x0a, 0x11, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x69, 0x63, 0x6b, 0x49, 0x73, 0x54, 0x6f, 0x6f, 0x4c, 0x65, 0x6e, 0x10, 0xb1, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x10, 0xb2, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x69, 0x63, 0x6b, 0x49, 0x73, 0x49, 0x6c, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x10, 0xbb, 0x08, 0x12, 0x16, 0x0a, 0x11, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x4d, 0x53, 0x43, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xbc, 0x08, 0x12, 0x1c, 0x0a, 0x17, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x48, 0x61, 0x64, 0x53, 0x70, 0x72, 0x65, 0x61, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x49, 0x64, 0x10, 0xc2, 0x08, 0x12, 0x1b, 0x0a, 0x16, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x49, 0x64, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x10, 0xc3, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x70, 0x72, 0x65, 0x61, 0x64, 0x42, 0x69, 0x6e, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xc4, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x42, 0x69, 0x6e, 0x64, 0x10, 0xc5, 0x08, 0x12, 0x1e, 0x0a, 0x19, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x70, 0x72, 0x65, 0x61, 0x64, 0x42, 0x69, 0x6e, 0x64, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x4c, 0x6f, 0x6f, 0x70, 0x10, 0xc6, 0x08, 0x12, 0x1f, 0x0a, 0x1a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xc7, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x69, 0x63, 0x6b, 0x49, 0x73, 0x43, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0xd0, 0x08, 0x12, 0x14, 0x0a, 0x0f, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x6f, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x10, 0xd4, 0x08, 0x12, 0x14, 0x0a, 0x0f, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x6f, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x10, 0xd5, 0x08, 0x12, 0x16, 0x0a, 0x11, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x43, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x10, 0xd6, 0x08, 0x12, 0x19, 0x0a, 0x14, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x48, 0x61, 0x73, 0x42, 0x69, 0x6e, 0x64, 0x10, 0xd7, 0x08, 0x12, 0x1c, 0x0a, 0x17, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x6f, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x10, 0xd8, 0x08, 0x12, 0x28, 0x0a, 0x23, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x49, 0x6c, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x10, 0xd3, 0x0f, 0x12, 0x21, 0x0a, 0x1c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x5f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xd5, 0x0f, 0x12, 0x21, 0x0a, 0x1c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x5f, 0x41, 0x63, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xd6, 0x0f, 0x12, 0x21, 0x0a, 0x1c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x61, 0x66, 0x65, 0x62, 0x6f, 0x78, 0x5f, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x49, 0x6c, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x10, 0xd7, 0x0f, 0x12, 0x1c, 0x0a, 0x17, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xd8, 0x0f, 0x12, 0x1f, 0x0a, 0x1a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xd9, 0x0f, 0x12, 0x1f, 0x0a, 0x1a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x41, 0x63, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xda, 0x0f, 0x12, 0x1e, 0x0a, 0x19, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x6c, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x10, 0xdb, 0x0f, 0x12, 0x21, 0x0a, 0x1c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6c, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x10, 0xdc, 0x0f, 0x12, 0x21, 0x0a, 0x1c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x41, 0x63, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x6c, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x10, 0xdd, 0x0f, 0x12, 0x23, 0x0a, 0x1e, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x5f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6c, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x10, 0xde, 0x0f, 0x12, 0x23, 0x0a, 0x1e, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x5f, 0x41, 0x63, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x6c, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x10, 0xdf, 0x0f, 0x12, 0x22, 0x0a, 0x1d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x5f, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xe0, 0x0f, 0x12, 0x20, 0x0a, 0x1b, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xe1, 0x0f, 0x12, 0x1f, 0x0a, 0x1a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x49, 0x50, 0x5f, 0x54, 0x6f, 0x6f, 0x4d, 0x61, 0x6e, 0x79, 0x52, 0x65, 0x67, 0x10, 0xe2, 0x0f, 0x12, 0x1d, 0x0a, 0x18, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xe3, 0x0f, 0x12, 0x1f, 0x0a, 0x1a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x5f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xe4, 0x0f, 0x12, 0x1c, 0x0a, 0x17, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x6e, 0x64, 0x41, 0x6c, 0x69, 0x5f, 0x4e, 0x6f, 0x74, 0x53, 0x61, 0x6d, 0x65, 0x10, 0xe5, 0x0f, 0x12, 0x27, 0x0a, 0x22, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xe6, 0x0f, 0x12, 0x15, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4a, 0x79, 0x62, 0x5f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x10, 0xb4, 0x10, 0x12, 0x17, 0x0a, 0x12, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4a, 0x79, 0x62, 0x5f, 0x43, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x10, 0xb5, 0x10, 0x12, 0x15, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4a, 0x79, 0x62, 0x5f, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x72, 0x72, 0x10, 0xb6, 0x10, 0x12, 0x15, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4a, 0x79, 0x62, 0x5f, 0x43, 0x6f, 0x64, 0x65, 0x45, 0x72, 0x72, 0x10, 0xb7, 0x10, 0x12, 0x26, 0x0a, 0x21, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x48, 0x75, 0x6e, 0x64, 0x72, 0x65, 0x64, 0x5f, 0x59, 0x6f, 0x75, 0x48, 0x61, 0x64, 0x42, 0x65, 0x74, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x10, 0xd9, 0x36, 0x12, 0x29, 0x0a, 0x24, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x48, 0x75, 0x6e, 0x64, 0x72, 0x65, 0x64, 0x5f, 0x59, 0x6f, 0x75, 0x48, 0x61, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x65, 0x72, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x10, 0xda, 0x36, 0x12, 0x1a, 0x0a, 0x15, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x47, 0x75, 0x69, 0x64, 0x65, 0x53, 0x74, 0x65, 0x70, 0x5f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x10, 0xc1, 0x3e, 0x12, 0x19, 0x0a, 0x14, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x47, 0x75, 0x69, 0x64, 0x65, 0x53, 0x74, 0x65, 0x70, 0x5f, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x10, 0xc2, 0x3e, 0x12, 0x17, 0x0a, 0x12, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x47, 0x75, 0x69, 0x64, 0x65, 0x53, 0x74, 0x65, 0x70, 0x5f, 0x45, 0x6e, 0x64, 0x10, 0xc3, 0x3e, 0x12, 0x15, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x47, 0x75, 0x69, 0x64, 0x65, 0x5f, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x10, 0xc4, 0x3e, 0x12, 0x14, 0x0a, 0x0f, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x47, 0x75, 0x69, 0x64, 0x65, 0x5f, 0x53, 0x6b, 0x69, 0x70, 0x10, 0xc5, 0x3e, 0x12, 0x19, 0x0a, 0x14, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x47, 0x75, 0x69, 0x64, 0x65, 0x5f, 0x53, 0x6b, 0x69, 0x70, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x10, 0xc6, 0x3e, 0x2a, 0xc7, 0x20, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x44, 0x41, 0x54, 0x41, 0x10, 0xb4, 0x10, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x44, 0x41, 0x54, 0x41, 0x10, 0xb5, 0x10, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x44, 0x41, 0x59, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0xb6, 0x10, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x54, 0x48, 0x49, 0x52, 0x44, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x44, 0x41, 0x54, 0x41, 0x10, 0xb7, 0x10, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x48, 0x49, 0x52, 0x44, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x44, 0x41, 0x54, 0x41, 0x10, 0xb8, 0x10, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x44, 0x41, 0x54, 0x41, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0xb9, 0x10, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x44, 0x41, 0x54, 0x41, 0x45, 0x58, 0x10, 0xba, 0x10, 0x12, 0x14, 0x0a, 0x0f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x50, 0x4d, 0x43, 0x4d, 0x44, 0x10, 0xbb, 0x10, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x52, 0x4f, 0x42, 0x4f, 0x54, 0x43, 0x48, 0x47, 0x44, 0x41, 0x54, 0x41, 0x10, 0xbc, 0x10, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x57, 0x45, 0x43, 0x48, 0x41, 0x54, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0xbd, 0x10, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x57, 0x45, 0x43, 0x48, 0x41, 0x54, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0xbe, 0x10, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x45, 0x4e, 0x49, 0x44, 0x10, 0xbf, 0x10, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x45, 0x4e, 0x49, 0x44, 0x10, 0xc0, 0x10, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xc1, 0x10, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xc2, 0x10, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x53, 0x50, 0x52, 0x45, 0x41, 0x44, 0x42, 0x49, 0x4e, 0x44, 0x10, 0xc3, 0x10, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x50, 0x52, 0x45, 0x41, 0x44, 0x42, 0x49, 0x4e, 0x44, 0x10, 0xc4, 0x10, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x4e, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x10, 0xc7, 0x10, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x4e, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x10, 0xc8, 0x10, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x4e, 0x45, 0x57, 0x4d, 0x53, 0x47, 0x10, 0xc9, 0x10, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x4e, 0x45, 0x57, 0x4d, 0x53, 0x47, 0x41, 0x43, 0x4b, 0x10, 0xca, 0x10, 0x12, 0x15, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x52, 0x56, 0x4d, 0x53, 0x47, 0x10, 0xcb, 0x10, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x46, 0x49, 0x53, 0x48, 0x4a, 0x41, 0x43, 0x4b, 0x50, 0x4f, 0x54, 0x43, 0x4f, 0x49, 0x4e, 0x10, 0xcc, 0x10, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x46, 0x49, 0x53, 0x48, 0x4a, 0x41, 0x43, 0x4b, 0x50, 0x4f, 0x54, 0x43, 0x4f, 0x49, 0x4e, 0x10, 0xcd, 0x10, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x46, 0x49, 0x53, 0x48, 0x4a, 0x41, 0x43, 0x4b, 0x50, 0x4f, 0x54, 0x44, 0x41, 0x54, 0x41, 0x10, 0xce, 0x10, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x46, 0x49, 0x53, 0x48, 0x4a, 0x41, 0x43, 0x4b, 0x50, 0x4f, 0x54, 0x44, 0x41, 0x54, 0x41, 0x10, 0xcf, 0x10, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4e, 0x49, 0x43, 0x45, 0x49, 0x44, 0x52, 0x45, 0x42, 0x49, 0x4e, 0x44, 0x10, 0xd0, 0x10, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x50, 0x52, 0x4f, 0x4d, 0x4f, 0x54, 0x45, 0x52, 0x10, 0xd1, 0x10, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x50, 0x52, 0x4f, 0x4d, 0x4f, 0x54, 0x45, 0x52, 0x10, 0xd2, 0x10, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x50, 0x52, 0x4f, 0x4d, 0x4f, 0x54, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0xd3, 0x10, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x65, 0x74, 0x53, 0x70, 0x72, 0x65, 0x61, 0x64, 0x4c, 0x57, 0x49, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x10, 0xd4, 0x10, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x65, 0x74, 0x53, 0x70, 0x72, 0x65, 0x61, 0x64, 0x4c, 0x57, 0x49, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x10, 0xd5, 0x10, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x61, 0x79, 0x41, 0x63, 0x74, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, 0xd6, 0x10, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x4e, 0x49, 0x43, 0x4b, 0x10, 0xdc, 0x10, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x4e, 0x49, 0x43, 0x4b, 0x10, 0xdd, 0x10, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x49, 0x43, 0x4f, 0x4e, 0x10, 0xde, 0x10, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x49, 0x43, 0x4f, 0x4e, 0x10, 0xdf, 0x10, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x53, 0x45, 0x58, 0x10, 0xe0, 0x10, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x53, 0x45, 0x58, 0x10, 0xe1, 0x10, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x55, 0x50, 0x47, 0x52, 0x41, 0x44, 0x45, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0xe2, 0x10, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x55, 0x50, 0x47, 0x52, 0x41, 0x44, 0x45, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0xe3, 0x10, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x41, 0x4c, 0x49, 0x50, 0x41, 0x59, 0x10, 0xe4, 0x10, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x41, 0x4c, 0x49, 0x50, 0x41, 0x59, 0x10, 0xe5, 0x10, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x42, 0x41, 0x4e, 0x4b, 0x10, 0xe6, 0x10, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x42, 0x41, 0x4e, 0x4b, 0x10, 0xe7, 0x10, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4f, 0x50, 0x43, 0x4f, 0x49, 0x4e, 0x10, 0xe8, 0x10, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4f, 0x50, 0x43, 0x4f, 0x49, 0x4e, 0x10, 0xe9, 0x10, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x50, 0x41, 0x53, 0x53, 0x57, 0x4f, 0x52, 0x44, 0x10, 0xea, 0x10, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x50, 0x41, 0x53, 0x53, 0x57, 0x4f, 0x52, 0x44, 0x10, 0xeb, 0x10, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0xec, 0x10, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0xed, 0x10, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x47, 0x41, 0x4d, 0x45, 0x43, 0x4f, 0x49, 0x4e, 0x4c, 0x4f, 0x47, 0x10, 0xee, 0x10, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x47, 0x41, 0x4d, 0x45, 0x43, 0x4f, 0x49, 0x4e, 0x4c, 0x4f, 0x47, 0x10, 0xef, 0x10, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x53, 0x41, 0x46, 0x45, 0x42, 0x4f, 0x58, 0x43, 0x4f, 0x49, 0x4e, 0x4c, 0x4f, 0x47, 0x10, 0xf0, 0x10, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x53, 0x41, 0x46, 0x45, 0x42, 0x4f, 0x58, 0x43, 0x4f, 0x49, 0x4e, 0x4c, 0x4f, 0x47, 0x10, 0xf1, 0x10, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x45, 0x52, 0x10, 0xf2, 0x10, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x45, 0x52, 0x10, 0xf3, 0x10, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x4f, 0x55, 0x54, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0xf4, 0x10, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x4f, 0x55, 0x54, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0xf5, 0x10, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x49, 0x4e, 0x56, 0x49, 0x54, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x10, 0xf6, 0x10, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x49, 0x54, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x10, 0xf7, 0x10, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x42, 0x41, 0x50, 0x49, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x50, 0x41, 0x53, 0x53, 0x10, 0xf8, 0x10, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x42, 0x41, 0x50, 0x49, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x50, 0x41, 0x53, 0x53, 0x10, 0xf9, 0x10, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x42, 0x41, 0x50, 0x49, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x50, 0x41, 0x53, 0x53, 0x10, 0xfa, 0x10, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x42, 0x41, 0x50, 0x49, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x50, 0x41, 0x53, 0x53, 0x10, 0xfb, 0x10, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x43, 0x4f, 0x44, 0x45, 0x10, 0xfc, 0x10, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x43, 0x4f, 0x44, 0x45, 0x10, 0xfd, 0x10, 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x53, 0x4c, 0x49, 0x44, 0x45, 0x52, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x43, 0x4f, 0x44, 0x45, 0x10, 0xfe, 0x10, 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x53, 0x4c, 0x49, 0x44, 0x45, 0x52, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x43, 0x4f, 0x44, 0x45, 0x10, 0xff, 0x10, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x49, 0x4f, 0x53, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4c, 0x4c, 0x53, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x80, 0x11, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x49, 0x4f, 0x53, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4c, 0x4c, 0x53, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x81, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x10, 0x82, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x10, 0x83, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x44, 0x41, 0x54, 0x41, 0x4c, 0x4f, 0x47, 0x10, 0x84, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x44, 0x41, 0x54, 0x41, 0x4c, 0x4f, 0x47, 0x10, 0x85, 0x11, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x52, 0x45, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x41, 0x4e, 0x53, 0x57, 0x45, 0x52, 0x10, 0x86, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x87, 0x11, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x43, 0x4f, 0x49, 0x4e, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x88, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x52, 0x55, 0x53, 0x54, 0x45, 0x45, 0x53, 0x48, 0x49, 0x50, 0x54, 0x49, 0x50, 0x53, 0x10, 0x89, 0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x5f, 0x53, 0x45, 0x54, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x8a, 0x11, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x47, 0x41, 0x4d, 0x45, 0x45, 0x58, 0x44, 0x52, 0x4f, 0x50, 0x49, 0x54, 0x45, 0x4d, 0x53, 0x10, 0x8b, 0x11, 0x12, 0x15, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x56, 0x49, 0x50, 0x42, 0x55, 0x59, 0x10, 0x8c, 0x11, 0x12, 0x15, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x56, 0x49, 0x50, 0x42, 0x55, 0x59, 0x10, 0x8d, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x44, 0x52, 0x41, 0x57, 0x56, 0x49, 0x50, 0x47, 0x49, 0x46, 0x54, 0x10, 0x8e, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x44, 0x52, 0x41, 0x57, 0x56, 0x49, 0x50, 0x47, 0x49, 0x46, 0x54, 0x10, 0x8f, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x56, 0x49, 0x50, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x90, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x56, 0x49, 0x50, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x91, 0x11, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x57, 0x45, 0x4c, 0x46, 0x41, 0x52, 0x45, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x92, 0x11, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x56, 0x49, 0x50, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0x93, 0x11, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x56, 0x49, 0x50, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0x94, 0x11, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x41, 0x59, 0x47, 0x4f, 0x4f, 0x44, 0x53, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x95, 0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x10, 0x96, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x10, 0x97, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x10, 0x98, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x48, 0x54, 0x54, 0x50, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x10, 0x99, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x48, 0x54, 0x54, 0x50, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x10, 0x9a, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x10, 0x9b, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x10, 0x9c, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x48, 0x65, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x10, 0xf1, 0x15, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x48, 0x65, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x10, 0xf2, 0x15, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x55, 0x6e, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x10, 0xf3, 0x15, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x55, 0x6e, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x10, 0xf4, 0x15, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x55, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x10, 0xf5, 0x15, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x4d, 0x53, 0x43, 0x6f, 0x64, 0x65, 0x10, 0xf6, 0x15, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x4d, 0x53, 0x43, 0x6f, 0x64, 0x65, 0x10, 0xf7, 0x15, 0x12, 0x15, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x42, 0x69, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x10, 0xf8, 0x15, 0x12, 0x15, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x42, 0x69, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x10, 0xf9, 0x15, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x42, 0x69, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xfa, 0x15, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x42, 0x69, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xfb, 0x15, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x42, 0x69, 0x6c, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x10, 0xfc, 0x15, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x42, 0x69, 0x6c, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x10, 0xfd, 0x15, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x53, 0x61, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xfe, 0x15, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x53, 0x61, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xff, 0x15, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0x80, 0x16, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0x81, 0x16, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x10, 0x82, 0x16, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x10, 0x83, 0x16, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x84, 0x16, 0x12, 0x11, 0x0a, 0x0c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x41, 0x44, 0x56, 0x10, 0x85, 0x16, 0x12, 0x11, 0x0a, 0x0c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x41, 0x44, 0x56, 0x10, 0x86, 0x16, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x47, 0x65, 0x74, 0x57, 0x65, 0x65, 0x6b, 0x43, 0x61, 0x72, 0x64, 0x41, 0x77, 0x61, 0x72, 0x79, 0x10, 0x87, 0x16, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x88, 0x16, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x10, 0x89, 0x16, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x10, 0x8a, 0x16, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x53, 0x4d, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x10, 0x8b, 0x16, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x53, 0x4d, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x10, 0x8c, 0x16, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0x8d, 0x16, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0x8e, 0x16, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x10, 0x8f, 0x16, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x10, 0x90, 0x16, 0x12, 0x26, 0x0a, 0x21, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0x91, 0x16, 0x12, 0x26, 0x0a, 0x21, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0x92, 0x16, 0x12, 0x12, 0x0a, 0x0d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x49, 0x74, 0x65, 0x6d, 0x10, 0x93, 0x16, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x6f, 0x67, 0x10, 0x94, 0x16, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x6f, 0x67, 0x10, 0x95, 0x16, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x50, 0x6f, 0x70, 0x55, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x10, 0x96, 0x16, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x50, 0x6f, 0x70, 0x55, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x10, 0x97, 0x16, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x10, 0x98, 0x16, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x10, 0x99, 0x16, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x47, 0x75, 0x69, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x10, 0x9a, 0x16, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x10, 0x9b, 0x16, 0x42, 0x26, 0x5a, 0x24, 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, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_player_proto_rawDescOnce sync.Once file_player_proto_rawDescData = file_player_proto_rawDesc ) func file_player_proto_rawDescGZIP() []byte { file_player_proto_rawDescOnce.Do(func() { file_player_proto_rawDescData = protoimpl.X.CompressGZIP(file_player_proto_rawDescData) }) return file_player_proto_rawDescData } var file_player_proto_enumTypes = make([]protoimpl.EnumInfo, 2) var file_player_proto_msgTypes = make([]protoimpl.MessageInfo, 167) var file_player_proto_goTypes = []interface{}{ (OpResultCode)(0), // 0: player.OpResultCode (PlayerPacketID)(0), // 1: player.PlayerPacketID (*CSBillList)(nil), // 2: player.CSBillList (*SCBillList)(nil), // 3: player.SCBillList (*BillItem)(nil), // 4: player.BillItem (*CSSavePlayerInfo)(nil), // 5: player.CSSavePlayerInfo (*SCSavePlayerInfo)(nil), // 6: player.SCSavePlayerInfo (*CSPlayerData)(nil), // 7: player.CSPlayerData (*PlayerData)(nil), // 8: player.PlayerData (*WeekInfo)(nil), // 9: player.WeekInfo (*MiniGameInfo)(nil), // 10: player.MiniGameInfo (*SCPlayerData)(nil), // 11: player.SCPlayerData (*SCPlayerDataUpdate)(nil), // 12: player.SCPlayerDataUpdate (*CSThirdPlayerData)(nil), // 13: player.CSThirdPlayerData (*SCThirdPlayerData)(nil), // 14: player.SCThirdPlayerData (*CSChangeNick)(nil), // 15: player.CSChangeNick (*SCChangeNick)(nil), // 16: player.SCChangeNick (*CSChangePassword)(nil), // 17: player.CSChangePassword (*SCChangePassword)(nil), // 18: player.SCChangePassword (*CSPlayerChangeIcon)(nil), // 19: player.CSPlayerChangeIcon (*SCPlayerChangeIcon)(nil), // 20: player.SCPlayerChangeIcon (*CSPlayerChangeHeadOutLine)(nil), // 21: player.CSPlayerChangeHeadOutLine (*SCPlayerChangeHeadOutLine)(nil), // 22: player.SCPlayerChangeHeadOutLine (*CSPlayerChangeSex)(nil), // 23: player.CSPlayerChangeSex (*SCPlayerChangeSex)(nil), // 24: player.SCPlayerChangeSex (*CSHeadUrl)(nil), // 25: player.CSHeadUrl (*SCHeadUrl)(nil), // 26: player.SCHeadUrl (*CSPlayerVerificationCode)(nil), // 27: player.CSPlayerVerificationCode (*SCPlayerVerificationCode)(nil), // 28: player.SCPlayerVerificationCode (*CSRegister)(nil), // 29: player.CSRegister (*SCRegister)(nil), // 30: player.SCRegister (*CSUpgradeAccount)(nil), // 31: player.CSUpgradeAccount (*SCUpgradeAccount)(nil), // 32: player.SCUpgradeAccount (*CSBindAlipay)(nil), // 33: player.CSBindAlipay (*SCBindAlipay)(nil), // 34: player.SCBindAlipay (*CSBindBank)(nil), // 35: player.CSBindBank (*SCBindBank)(nil), // 36: player.SCBindBank (*SCPlayerFlag)(nil), // 37: player.SCPlayerFlag (*SCPlayerCoinChange)(nil), // 38: player.SCPlayerCoinChange (*SCPlayerRechargeAnswer)(nil), // 39: player.SCPlayerRechargeAnswer (*DataLog)(nil), // 40: player.DataLog (*CSGetDataLog)(nil), // 41: player.CSGetDataLog (*SCGetDataLog)(nil), // 42: player.SCGetDataLog (*GameCoinLog)(nil), // 43: player.GameCoinLog (*CSGetGameCoinLog)(nil), // 44: player.CSGetGameCoinLog (*SCGetGameCoinLog)(nil), // 45: player.SCGetGameCoinLog (*CSPlayerOpCoin)(nil), // 46: player.CSPlayerOpCoin (*SCPlayerOpCoin)(nil), // 47: player.SCPlayerOpCoin (*SafeBoxCoinLog)(nil), // 48: player.SafeBoxCoinLog (*CSGetSafeBoxCoinLog)(nil), // 49: player.CSGetSafeBoxCoinLog (*SCGetSafeBoxCoinLog)(nil), // 50: player.SCGetSafeBoxCoinLog (*CSPlayerInviteCode)(nil), // 51: player.CSPlayerInviteCode (*SCPlayerInviteCode)(nil), // 52: player.SCPlayerInviteCode (*CSWebAPIPlayerPass)(nil), // 53: player.CSWebAPIPlayerPass (*SCWebAPIPlayerPass)(nil), // 54: player.SCWebAPIPlayerPass (*CSWebAPISystemPass)(nil), // 55: player.CSWebAPISystemPass (*SCWebAPISystemPass)(nil), // 56: player.SCWebAPISystemPass (*CSSpreadBind)(nil), // 57: player.CSSpreadBind (*SCSpreadBind)(nil), // 58: player.SCSpreadBind (*CSBindPromoter)(nil), // 59: player.CSBindPromoter (*SCBindPromoter)(nil), // 60: player.SCBindPromoter (*SCBindPromoterState)(nil), // 61: player.SCBindPromoterState (*CSGenCustomerToken)(nil), // 62: player.CSGenCustomerToken (*SCGenCustomerToken)(nil), // 63: player.SCGenCustomerToken (*CustomerMsg)(nil), // 64: player.CustomerMsg (*SCCustomerNewMsg)(nil), // 65: player.SCCustomerNewMsg (*CSCustomerNewMsgAck)(nil), // 66: player.CSCustomerNewMsgAck (*CSGetImageVerifyCode)(nil), // 67: player.CSGetImageVerifyCode (*SCGetImageVerifyCode)(nil), // 68: player.SCGetImageVerifyCode (*CSImageVerifyCode)(nil), // 69: player.CSImageVerifyCode (*SCImageVerifyCode)(nil), // 70: player.SCImageVerifyCode (*SCTrusteeshipTips)(nil), // 71: player.SCTrusteeshipTips (*CSGetSliderVerifyCode)(nil), // 72: player.CSGetSliderVerifyCode (*SCGetSliderVerifyCode)(nil), // 73: player.SCGetSliderVerifyCode (*CSIosInstallStable)(nil), // 74: player.CSIosInstallStable (*SCIosInstallStable)(nil), // 75: player.SCIosInstallStable (*SrvMsgParam)(nil), // 76: player.SrvMsgParam (*SCSrvMsg)(nil), // 77: player.SCSrvMsg (*CSJackpotList)(nil), // 78: player.CSJackpotList (*FishJackpotInfo)(nil), // 79: player.FishJackpotInfo (*SCJackpotList)(nil), // 80: player.SCJackpotList (*CSFishJackpotCoin)(nil), // 81: player.CSFishJackpotCoin (*SCFishJackpotCoin)(nil), // 82: player.SCFishJackpotCoin (*SCNiceIdRebind)(nil), // 83: player.SCNiceIdRebind (*CSGetSpreadLWIsOpen)(nil), // 84: player.CSGetSpreadLWIsOpen (*SCGetSpreadLWIsOpen)(nil), // 85: player.SCGetSpreadLWIsOpen (*PayActInfo)(nil), // 86: player.PayActInfo (*SCPayActState)(nil), // 87: player.SCPayActState (*CSQueryPlayer)(nil), // 88: player.CSQueryPlayer (*RoleOrPet)(nil), // 89: player.RoleOrPet (*SCQueryPlayer)(nil), // 90: player.SCQueryPlayer (*CSPMCmd)(nil), // 91: player.CSPMCmd (*CSRobotChgData)(nil), // 92: player.CSRobotChgData (*ItemInfo)(nil), // 93: player.ItemInfo (*JybInfoAward)(nil), // 94: player.JybInfoAward (*CSPlayerSetting)(nil), // 95: player.CSPlayerSetting (*SCPlayerSetting)(nil), // 96: player.SCPlayerSetting (*SCGameExDropItems)(nil), // 97: player.SCGameExDropItems (*CSVIPBuy)(nil), // 98: player.CSVIPBuy (*SCVIPBuy)(nil), // 99: player.SCVIPBuy (*CSVIPDraw)(nil), // 100: player.CSVIPDraw (*SCVIPDraw)(nil), // 101: player.SCVIPDraw (*CSVIPInfo)(nil), // 102: player.CSVIPInfo (*VIPcfg)(nil), // 103: player.VIPcfg (*SCVIPInfo)(nil), // 104: player.SCVIPInfo (*SCEasyWelfaredInfo)(nil), // 105: player.SCEasyWelfaredInfo (*CSVIPPrivilegeInfo)(nil), // 106: player.CSVIPPrivilegeInfo (*SCVIPPrivilegeInfo)(nil), // 107: player.SCVIPPrivilegeInfo (*PayItem)(nil), // 108: player.PayItem (*SCPayGoodsInfo)(nil), // 109: player.SCPayGoodsInfo (*SCResource)(nil), // 110: player.SCResource (*CSClientLog)(nil), // 111: player.CSClientLog (*SCClientLog)(nil), // 112: player.SCClientLog (*SCPlayerUnPower)(nil), // 113: player.SCPlayerUnPower (*SCPlayerUnPowerList)(nil), // 114: player.SCPlayerUnPowerList (*SCPlayerUpLevel)(nil), // 115: player.SCPlayerUpLevel (*CSBindTelInfo)(nil), // 116: player.CSBindTelInfo (*SCBindTelInfo)(nil), // 117: player.SCBindTelInfo (*CSPlayerSMSCode)(nil), // 118: player.CSPlayerSMSCode (*SCPlayerSMSCode)(nil), // 119: player.SCPlayerSMSCode (*CSBindTel)(nil), // 120: player.CSBindTel (*SCBindTel)(nil), // 121: player.SCBindTel (*CSHttpPass)(nil), // 122: player.CSHttpPass (*SCHttpPass)(nil), // 123: player.SCHttpPass (*CSPhoneLotteryInfo)(nil), // 124: player.CSPhoneLotteryInfo (*SCPhoneLotteryInfo)(nil), // 125: player.SCPhoneLotteryInfo (*CSPhoneLottery)(nil), // 126: player.CSPhoneLottery (*SCPhoneLottery)(nil), // 127: player.SCPhoneLottery (*LotteryItem)(nil), // 128: player.LotteryItem (*SCPhoneLotteryCount)(nil), // 129: player.SCPhoneLotteryCount (*CSADV)(nil), // 130: player.CSADV (*SCADV)(nil), // 131: player.SCADV (*SCGetWeekCardAwary)(nil), // 132: player.SCGetWeekCardAwary (*SCPigBankCoin)(nil), // 133: player.SCPigBankCoin (*CSExchangeChannel)(nil), // 134: player.CSExchangeChannel (*ChannelSwitch)(nil), // 135: player.ChannelSwitch (*SCExchangeChannel)(nil), // 136: player.SCExchangeChannel (*CSSMSConfig)(nil), // 137: player.CSSMSConfig (*SCSMSConfig)(nil), // 138: player.SCSMSConfig (*SMSInfo)(nil), // 139: player.SMSInfo (*CSDiamondLotteryInfo)(nil), // 140: player.CSDiamondLotteryInfo (*SCDiamondLotteryInfo)(nil), // 141: player.SCDiamondLotteryInfo (*CSDiamondLottery)(nil), // 142: player.CSDiamondLottery (*SCDiamondLottery)(nil), // 143: player.SCDiamondLottery (*CSDiamondLotteryLuckyAward)(nil), // 144: player.CSDiamondLotteryLuckyAward (*SCDiamondLotteryLuckyAward)(nil), // 145: player.SCDiamondLotteryLuckyAward (*SCItem)(nil), // 146: player.SCItem (*CS_AwardLog)(nil), // 147: player.CS_AwardLog (*SCAwardLog)(nil), // 148: player.SCAwardLog (*AwardLogData)(nil), // 149: player.AwardLogData (*AwardLogInfo)(nil), // 150: player.AwardLogInfo (*AnnouncerLogInfo)(nil), // 151: player.AnnouncerLogInfo (*CSPopUpWindowsConfig)(nil), // 152: player.CSPopUpWindowsConfig (*SCPopUpWindowsConfig)(nil), // 153: player.SCPopUpWindowsConfig (*WindowsInfo)(nil), // 154: player.WindowsInfo (*CSUpdateAttribute)(nil), // 155: player.CSUpdateAttribute (*SCUpdateAttribute)(nil), // 156: player.SCUpdateAttribute (*SCGuideConfig)(nil), // 157: player.SCGuideConfig (*Config)(nil), // 158: player.Config (*SCDataConfig)(nil), // 159: player.SCDataConfig nil, // 160: player.PlayerData.RankScoreEntry nil, // 161: player.SCPlayerDataUpdate.RankScoreEntry nil, // 162: player.SCGameExDropItems.ItemsEntry nil, // 163: player.SCVIPDraw.AwardEntry nil, // 164: player.VIPcfg.Privilege1Entry nil, // 165: player.VIPcfg.Privilege9Entry nil, // 166: player.SCBindTelInfo.BindTelRewardEntry nil, // 167: player.Config.MapEntry nil, // 168: player.Config.MapStrEntry (*server.DB_GameItem)(nil), // 169: server.DB_GameItem } var file_player_proto_depIdxs = []int32{ 4, // 0: player.SCBillList.Items:type_name -> player.BillItem 0, // 1: player.SCSavePlayerInfo.OpRetCode:type_name -> player.OpResultCode 160, // 2: player.PlayerData.RankScore:type_name -> player.PlayerData.RankScoreEntry 9, // 3: player.PlayerData.WeekCard:type_name -> player.WeekInfo 0, // 4: player.SCPlayerData.OpRetCode:type_name -> player.OpResultCode 8, // 5: player.SCPlayerData.Data:type_name -> player.PlayerData 10, // 6: player.SCPlayerData.MiniGameArr:type_name -> player.MiniGameInfo 161, // 7: player.SCPlayerDataUpdate.RankScore:type_name -> player.SCPlayerDataUpdate.RankScoreEntry 8, // 8: player.SCThirdPlayerData.Data:type_name -> player.PlayerData 0, // 9: player.SCChangeNick.OpRetCode:type_name -> player.OpResultCode 0, // 10: player.SCChangePassword.OpRetCode:type_name -> player.OpResultCode 0, // 11: player.SCPlayerChangeIcon.OpRetCode:type_name -> player.OpResultCode 0, // 12: player.SCPlayerChangeHeadOutLine.OpRetCode:type_name -> player.OpResultCode 0, // 13: player.SCPlayerChangeSex.OpRetCode:type_name -> player.OpResultCode 0, // 14: player.SCHeadUrl.OpRetCode:type_name -> player.OpResultCode 0, // 15: player.SCPlayerVerificationCode.OpRetCode:type_name -> player.OpResultCode 0, // 16: player.SCRegister.OpRetCode:type_name -> player.OpResultCode 0, // 17: player.SCUpgradeAccount.OpRetCode:type_name -> player.OpResultCode 0, // 18: player.SCBindAlipay.OpRetCode:type_name -> player.OpResultCode 0, // 19: player.SCBindBank.OpRetCode:type_name -> player.OpResultCode 40, // 20: player.SCGetDataLog.Datas:type_name -> player.DataLog 0, // 21: player.SCGetGameCoinLog.OpRetCode:type_name -> player.OpResultCode 43, // 22: player.SCGetGameCoinLog.Logs:type_name -> player.GameCoinLog 0, // 23: player.SCPlayerOpCoin.OpRetCode:type_name -> player.OpResultCode 0, // 24: player.SCGetSafeBoxCoinLog.OpRetCode:type_name -> player.OpResultCode 48, // 25: player.SCGetSafeBoxCoinLog.Logs:type_name -> player.SafeBoxCoinLog 0, // 26: player.SCPlayerInviteCode.OpRetCode:type_name -> player.OpResultCode 0, // 27: player.SCWebAPIPlayerPass.OpRetCode:type_name -> player.OpResultCode 0, // 28: player.SCWebAPISystemPass.OpRetCode:type_name -> player.OpResultCode 0, // 29: player.SCSpreadBind.OpRetCode:type_name -> player.OpResultCode 0, // 30: player.SCBindPromoter.OpRetCode:type_name -> player.OpResultCode 64, // 31: player.SCCustomerNewMsg.Data:type_name -> player.CustomerMsg 0, // 32: player.SCGetImageVerifyCode.OpRetCode:type_name -> player.OpResultCode 0, // 33: player.SCImageVerifyCode.OpRetCode:type_name -> player.OpResultCode 0, // 34: player.SCGetSliderVerifyCode.OpRetCode:type_name -> player.OpResultCode 0, // 35: player.SCIosInstallStable.OpRetCode:type_name -> player.OpResultCode 76, // 36: player.SCSrvMsg.Params:type_name -> player.SrvMsgParam 79, // 37: player.SCJackpotList.JackpotList:type_name -> player.FishJackpotInfo 86, // 38: player.SCPayActState.PayState:type_name -> player.PayActInfo 89, // 39: player.SCQueryPlayer.Roles:type_name -> player.RoleOrPet 89, // 40: player.SCQueryPlayer.Pets:type_name -> player.RoleOrPet 93, // 41: player.JybInfoAward.ItemId:type_name -> player.ItemInfo 0, // 42: player.SCPlayerSetting.OpRetCode:type_name -> player.OpResultCode 94, // 43: player.SCPlayerSetting.GainItem:type_name -> player.JybInfoAward 162, // 44: player.SCGameExDropItems.Items:type_name -> player.SCGameExDropItems.ItemsEntry 0, // 45: player.SCVIPBuy.OpRetCode:type_name -> player.OpResultCode 0, // 46: player.SCVIPDraw.OpRetCode:type_name -> player.OpResultCode 163, // 47: player.SCVIPDraw.Award:type_name -> player.SCVIPDraw.AwardEntry 93, // 48: player.VIPcfg.Item:type_name -> player.ItemInfo 164, // 49: player.VIPcfg.Privilege1:type_name -> player.VIPcfg.Privilege1Entry 93, // 50: player.VIPcfg.Privilege7:type_name -> player.ItemInfo 165, // 51: player.VIPcfg.Privilege9:type_name -> player.VIPcfg.Privilege9Entry 0, // 52: player.SCVIPInfo.OpRetCode:type_name -> player.OpResultCode 103, // 53: player.SCVIPInfo.List:type_name -> player.VIPcfg 108, // 54: player.SCPayGoodsInfo.Item:type_name -> player.PayItem 0, // 55: player.SCClientLog.OpRetCode:type_name -> player.OpResultCode 166, // 56: player.SCBindTelInfo.BindTelReward:type_name -> player.SCBindTelInfo.BindTelRewardEntry 0, // 57: player.SCPlayerSMSCode.Code:type_name -> player.OpResultCode 0, // 58: player.SCBindTel.Code:type_name -> player.OpResultCode 0, // 59: player.SCHttpPass.OpRetCode:type_name -> player.OpResultCode 128, // 60: player.SCPhoneLotteryInfo.Item:type_name -> player.LotteryItem 128, // 61: player.SCPhoneLottery.Item:type_name -> player.LotteryItem 108, // 62: player.SCGetWeekCardAwary.Items:type_name -> player.PayItem 9, // 63: player.SCGetWeekCardAwary.WeekCard:type_name -> player.WeekInfo 135, // 64: player.SCExchangeChannel.Datas:type_name -> player.ChannelSwitch 139, // 65: player.SCSMSConfig.Info:type_name -> player.SMSInfo 128, // 66: player.SCDiamondLotteryInfo.Item:type_name -> player.LotteryItem 128, // 67: player.SCDiamondLottery.Item:type_name -> player.LotteryItem 128, // 68: player.SCDiamondLotteryLuckyAward.Item:type_name -> player.LotteryItem 169, // 69: player.SCItem.Items:type_name -> server.DB_GameItem 149, // 70: player.SCAwardLog.AwardLog:type_name -> player.AwardLogData 151, // 71: player.SCAwardLog.AnnouncerLog:type_name -> player.AnnouncerLogInfo 150, // 72: player.AwardLogData.AwardLog:type_name -> player.AwardLogInfo 154, // 73: player.SCPopUpWindowsConfig.Info:type_name -> player.WindowsInfo 0, // 74: player.SCUpdateAttribute.OpRetCode:type_name -> player.OpResultCode 167, // 75: player.Config.Map:type_name -> player.Config.MapEntry 168, // 76: player.Config.MapStr:type_name -> player.Config.MapStrEntry 158, // 77: player.SCDataConfig.Cfg:type_name -> player.Config 78, // [78:78] is the sub-list for method output_type 78, // [78:78] is the sub-list for method input_type 78, // [78:78] is the sub-list for extension type_name 78, // [78:78] is the sub-list for extension extendee 0, // [0:78] is the sub-list for field type_name } func init() { file_player_proto_init() } func file_player_proto_init() { if File_player_proto != nil { return } if !protoimpl.UnsafeEnabled { file_player_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSBillList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCBillList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BillItem); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSSavePlayerInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCSavePlayerInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSPlayerData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PlayerData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WeekInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MiniGameInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCPlayerData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCPlayerDataUpdate); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSThirdPlayerData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCThirdPlayerData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSChangeNick); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCChangeNick); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSChangePassword); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCChangePassword); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSPlayerChangeIcon); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCPlayerChangeIcon); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSPlayerChangeHeadOutLine); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCPlayerChangeHeadOutLine); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSPlayerChangeSex); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCPlayerChangeSex); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSHeadUrl); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCHeadUrl); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSPlayerVerificationCode); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCPlayerVerificationCode); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSRegister); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCRegister); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSUpgradeAccount); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCUpgradeAccount); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSBindAlipay); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCBindAlipay); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSBindBank); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCBindBank); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCPlayerFlag); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCPlayerCoinChange); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCPlayerRechargeAnswer); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DataLog); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSGetDataLog); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCGetDataLog); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GameCoinLog); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSGetGameCoinLog); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCGetGameCoinLog); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSPlayerOpCoin); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCPlayerOpCoin); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SafeBoxCoinLog); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSGetSafeBoxCoinLog); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCGetSafeBoxCoinLog); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSPlayerInviteCode); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCPlayerInviteCode); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSWebAPIPlayerPass); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCWebAPIPlayerPass); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSWebAPISystemPass); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCWebAPISystemPass); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSSpreadBind); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCSpreadBind); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSBindPromoter); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCBindPromoter); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCBindPromoterState); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSGenCustomerToken); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCGenCustomerToken); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CustomerMsg); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCCustomerNewMsg); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSCustomerNewMsgAck); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSGetImageVerifyCode); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCGetImageVerifyCode); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSImageVerifyCode); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCImageVerifyCode); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCTrusteeshipTips); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSGetSliderVerifyCode); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCGetSliderVerifyCode); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSIosInstallStable); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCIosInstallStable); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SrvMsgParam); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCSrvMsg); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSJackpotList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FishJackpotInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCJackpotList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSFishJackpotCoin); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCFishJackpotCoin); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCNiceIdRebind); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSGetSpreadLWIsOpen); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCGetSpreadLWIsOpen); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PayActInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCPayActState); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSQueryPlayer); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoleOrPet); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCQueryPlayer); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSPMCmd); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSRobotChgData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ItemInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*JybInfoAward); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSPlayerSetting); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCPlayerSetting); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCGameExDropItems); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSVIPBuy); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCVIPBuy); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSVIPDraw); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCVIPDraw); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSVIPInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VIPcfg); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCVIPInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCEasyWelfaredInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSVIPPrivilegeInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCVIPPrivilegeInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PayItem); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCPayGoodsInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCResource); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSClientLog); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCClientLog); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCPlayerUnPower); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCPlayerUnPowerList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCPlayerUpLevel); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSBindTelInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCBindTelInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSPlayerSMSCode); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCPlayerSMSCode); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSBindTel); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCBindTel); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSHttpPass); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCHttpPass); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSPhoneLotteryInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCPhoneLotteryInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSPhoneLottery); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCPhoneLottery); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LotteryItem); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCPhoneLotteryCount); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSADV); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCADV); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCGetWeekCardAwary); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCPigBankCoin); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSExchangeChannel); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ChannelSwitch); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCExchangeChannel); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSSMSConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCSMSConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SMSInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSDiamondLotteryInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCDiamondLotteryInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSDiamondLottery); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCDiamondLottery); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSDiamondLotteryLuckyAward); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCDiamondLotteryLuckyAward); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCItem); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CS_AwardLog); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCAwardLog); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AwardLogData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AwardLogInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AnnouncerLogInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSPopUpWindowsConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCPopUpWindowsConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WindowsInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSUpdateAttribute); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCUpdateAttribute); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCGuideConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Config); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_player_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCDataConfig); 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_player_proto_rawDesc, NumEnums: 2, NumMessages: 167, NumExtensions: 0, NumServices: 0, }, GoTypes: file_player_proto_goTypes, DependencyIndexes: file_player_proto_depIdxs, EnumInfos: file_player_proto_enumTypes, MessageInfos: file_player_proto_msgTypes, }.Build() File_player_proto = out.File file_player_proto_rawDesc = nil file_player_proto_goTypes = nil file_player_proto_depIdxs = nil }