// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.35.1
// 	protoc        v5.28.2
// source: proto/Gameapi.proto

package msg

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type ITEM_POP_LABEL int32

const (
	ITEM_POP_LABEL_Playroom              ITEM_POP_LABEL = 0
	ITEM_POP_LABEL_PiggyBank             ITEM_POP_LABEL = 1
	ITEM_POP_LABEL_Charge                ITEM_POP_LABEL = 2
	ITEM_POP_LABEL_Endless               ITEM_POP_LABEL = 3
	ITEM_POP_LABEL_LevUpReward           ITEM_POP_LABEL = 4
	ITEM_POP_LABEL_HandleChess           ITEM_POP_LABEL = 5
	ITEM_POP_LABEL_HandbookReward        ITEM_POP_LABEL = 6
	ITEM_POP_LABEL_OrderReward           ITEM_POP_LABEL = 7
	ITEM_POP_LABEL_DecorateCost          ITEM_POP_LABEL = 8
	ITEM_POP_LABEL_DecorateAdd           ITEM_POP_LABEL = 9
	ITEM_POP_LABEL_BuyChessBagGrid       ITEM_POP_LABEL = 10
	ITEM_POP_LABEL_ChessEx               ITEM_POP_LABEL = 11
	ITEM_POP_LABEL_CardCollectReward     ITEM_POP_LABEL = 12
	ITEM_POP_LABEL_ExStarReward          ITEM_POP_LABEL = 13
	ITEM_POP_LABEL_AllCollectReward      ITEM_POP_LABEL = 14
	ITEM_POP_LABEL_GuideReward           ITEM_POP_LABEL = 15
	ITEM_POP_LABEL_DailyTaskReward       ITEM_POP_LABEL = 16
	ITEM_POP_LABEL_DailyWeekReward       ITEM_POP_LABEL = 17
	ITEM_POP_LABEL_BuyEnergy             ITEM_POP_LABEL = 18
	ITEM_POP_LABEL_SevenLoginRewardLabel ITEM_POP_LABEL = 19
	ITEM_POP_LABEL_MonthLoginReward      ITEM_POP_LABEL = 20
	ITEM_POP_LABEL_FastProduceReward     ITEM_POP_LABEL = 21
	ITEM_POP_LABEL_LimitSenceReward      ITEM_POP_LABEL = 22
	ITEM_POP_LABEL_MailReward            ITEM_POP_LABEL = 23
	ITEM_POP_LABEL_FreeShop              ITEM_POP_LABEL = 24
	ITEM_POP_LABEL_ChessShop             ITEM_POP_LABEL = 25
	ITEM_POP_LABEL_RefreshChessShop      ITEM_POP_LABEL = 26
	ITEM_POP_LABEL_EndlessReward         ITEM_POP_LABEL = 27
	ITEM_POP_LABEL_PiggyBankReward       ITEM_POP_LABEL = 28
	ITEM_POP_LABEL_ChampshipReward       ITEM_POP_LABEL = 29
	ITEM_POP_LABEL_LimitEventReward      ITEM_POP_LABEL = 30
	ITEM_POP_LABEL_ChampshipRankReward   ITEM_POP_LABEL = 31
	ITEM_POP_LABEL_invite                ITEM_POP_LABEL = 32
	ITEM_POP_LABEL_SelectLimitEvent      ITEM_POP_LABEL = 33
	ITEM_POP_LABEL_MiningTake            ITEM_POP_LABEL = 34
	ITEM_POP_LABEL_MiningReward          ITEM_POP_LABEL = 35
	ITEM_POP_LABEL_GuessColor            ITEM_POP_LABEL = 36
	ITEM_POP_LABEL_GuessColorReward      ITEM_POP_LABEL = 37
	ITEM_POP_LABEL_RaceReward            ITEM_POP_LABEL = 38
	ITEM_POP_LABEL_PlayroomGame          ITEM_POP_LABEL = 39
	ITEM_POP_LABEL_PlayroomDraw          ITEM_POP_LABEL = 40
	ITEM_POP_LABEL_PlayroomChip          ITEM_POP_LABEL = 41
	ITEM_POP_LABEL_PlayroomFlip          ITEM_POP_LABEL = 42
	ITEM_POP_LABEL_FriendtreasureFilp    ITEM_POP_LABEL = 43 // 宠物宝藏翻牌
	ITEM_POP_LABEL_FriendtreasureEnd     ITEM_POP_LABEL = 44
	ITEM_POP_LABEL_GM                    ITEM_POP_LABEL = 45
	ITEM_POP_LABEL_Friendtreasure        ITEM_POP_LABEL = 46
	ITEM_POP_LABEL_CardHandbookReward    ITEM_POP_LABEL = 47 // 卡牌图鉴奖励
	ITEM_POP_LABEL_LimitEventChestRain   ITEM_POP_LABEL = 48 // 限时事件宝箱雨
	ITEM_POP_LABEL_GetEnergyByAD         ITEM_POP_LABEL = 49 // 看广告获取体力
	ITEM_POP_LABEL_SourceChest           ITEM_POP_LABEL = 50 // 开启资源宝箱
	ITEM_POP_LABEL_PlayroomBuyItem       ITEM_POP_LABEL = 51 // playroom打工购买物品
	ITEM_POP_LABEL_CardSeasonFirstReward ITEM_POP_LABEL = 52 // 卡牌赛季初奖励
	ITEM_POP_LABEL_AllCollectRewardHB    ITEM_POP_LABEL = 53 // 图鉴全收集奖励 图鉴体力补发
	ITEM_POP_LABEL_PlayroomShop          ITEM_POP_LABEL = 54 // playroom商店
	ITEM_POP_LABEL_HandbookAllReward     ITEM_POP_LABEL = 55 // 图鉴收集奖励
	ITEM_POP_LABEL_TLUpvote              ITEM_POP_LABEL = 56 // 时间线点赞
	ITEM_POP_LABEL_Collect               ITEM_POP_LABEL = 57 // 收集
	ITEM_POP_LABEL_ActivityGift          ITEM_POP_LABEL = 58 // 活动礼包
)

// Enum value maps for ITEM_POP_LABEL.
var (
	ITEM_POP_LABEL_name = map[int32]string{
		0:  "Playroom",
		1:  "PiggyBank",
		2:  "Charge",
		3:  "Endless",
		4:  "LevUpReward",
		5:  "HandleChess",
		6:  "HandbookReward",
		7:  "OrderReward",
		8:  "DecorateCost",
		9:  "DecorateAdd",
		10: "BuyChessBagGrid",
		11: "ChessEx",
		12: "CardCollectReward",
		13: "ExStarReward",
		14: "AllCollectReward",
		15: "GuideReward",
		16: "DailyTaskReward",
		17: "DailyWeekReward",
		18: "BuyEnergy",
		19: "SevenLoginRewardLabel",
		20: "MonthLoginReward",
		21: "FastProduceReward",
		22: "LimitSenceReward",
		23: "MailReward",
		24: "FreeShop",
		25: "ChessShop",
		26: "RefreshChessShop",
		27: "EndlessReward",
		28: "PiggyBankReward",
		29: "ChampshipReward",
		30: "LimitEventReward",
		31: "ChampshipRankReward",
		32: "invite",
		33: "SelectLimitEvent",
		34: "MiningTake",
		35: "MiningReward",
		36: "GuessColor",
		37: "GuessColorReward",
		38: "RaceReward",
		39: "PlayroomGame",
		40: "PlayroomDraw",
		41: "PlayroomChip",
		42: "PlayroomFlip",
		43: "FriendtreasureFilp",
		44: "FriendtreasureEnd",
		45: "GM",
		46: "Friendtreasure",
		47: "CardHandbookReward",
		48: "LimitEventChestRain",
		49: "GetEnergyByAD",
		50: "SourceChest",
		51: "PlayroomBuyItem",
		52: "CardSeasonFirstReward",
		53: "AllCollectRewardHB",
		54: "PlayroomShop",
		55: "HandbookAllReward",
		56: "TLUpvote",
		57: "Collect",
		58: "ActivityGift",
	}
	ITEM_POP_LABEL_value = map[string]int32{
		"Playroom":              0,
		"PiggyBank":             1,
		"Charge":                2,
		"Endless":               3,
		"LevUpReward":           4,
		"HandleChess":           5,
		"HandbookReward":        6,
		"OrderReward":           7,
		"DecorateCost":          8,
		"DecorateAdd":           9,
		"BuyChessBagGrid":       10,
		"ChessEx":               11,
		"CardCollectReward":     12,
		"ExStarReward":          13,
		"AllCollectReward":      14,
		"GuideReward":           15,
		"DailyTaskReward":       16,
		"DailyWeekReward":       17,
		"BuyEnergy":             18,
		"SevenLoginRewardLabel": 19,
		"MonthLoginReward":      20,
		"FastProduceReward":     21,
		"LimitSenceReward":      22,
		"MailReward":            23,
		"FreeShop":              24,
		"ChessShop":             25,
		"RefreshChessShop":      26,
		"EndlessReward":         27,
		"PiggyBankReward":       28,
		"ChampshipReward":       29,
		"LimitEventReward":      30,
		"ChampshipRankReward":   31,
		"invite":                32,
		"SelectLimitEvent":      33,
		"MiningTake":            34,
		"MiningReward":          35,
		"GuessColor":            36,
		"GuessColorReward":      37,
		"RaceReward":            38,
		"PlayroomGame":          39,
		"PlayroomDraw":          40,
		"PlayroomChip":          41,
		"PlayroomFlip":          42,
		"FriendtreasureFilp":    43,
		"FriendtreasureEnd":     44,
		"GM":                    45,
		"Friendtreasure":        46,
		"CardHandbookReward":    47,
		"LimitEventChestRain":   48,
		"GetEnergyByAD":         49,
		"SourceChest":           50,
		"PlayroomBuyItem":       51,
		"CardSeasonFirstReward": 52,
		"AllCollectRewardHB":    53,
		"PlayroomShop":          54,
		"HandbookAllReward":     55,
		"TLUpvote":              56,
		"Collect":               57,
		"ActivityGift":          58,
	}
)

func (x ITEM_POP_LABEL) Enum() *ITEM_POP_LABEL {
	p := new(ITEM_POP_LABEL)
	*p = x
	return p
}

func (x ITEM_POP_LABEL) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ITEM_POP_LABEL) Descriptor() protoreflect.EnumDescriptor {
	return file_proto_Gameapi_proto_enumTypes[0].Descriptor()
}

func (ITEM_POP_LABEL) Type() protoreflect.EnumType {
	return &file_proto_Gameapi_proto_enumTypes[0]
}

func (x ITEM_POP_LABEL) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use ITEM_POP_LABEL.Descriptor instead.
func (ITEM_POP_LABEL) EnumDescriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{0}
}

type HANDLE_TYPE int32

const (
	HANDLE_TYPE_ADD     HANDLE_TYPE = 0
	HANDLE_TYPE_COMPOSE HANDLE_TYPE = 1
	HANDLE_TYPE_BUY     HANDLE_TYPE = 2
	HANDLE_TYPE_SELL    HANDLE_TYPE = 3
	HANDLE_TYPE_REMOVE  HANDLE_TYPE = 4
)

// Enum value maps for HANDLE_TYPE.
var (
	HANDLE_TYPE_name = map[int32]string{
		0: "ADD",
		1: "COMPOSE",
		2: "BUY",
		3: "SELL",
		4: "REMOVE",
	}
	HANDLE_TYPE_value = map[string]int32{
		"ADD":     0,
		"COMPOSE": 1,
		"BUY":     2,
		"SELL":    3,
		"REMOVE":  4,
	}
)

func (x HANDLE_TYPE) Enum() *HANDLE_TYPE {
	p := new(HANDLE_TYPE)
	*p = x
	return p
}

func (x HANDLE_TYPE) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (HANDLE_TYPE) Descriptor() protoreflect.EnumDescriptor {
	return file_proto_Gameapi_proto_enumTypes[1].Descriptor()
}

func (HANDLE_TYPE) Type() protoreflect.EnumType {
	return &file_proto_Gameapi_proto_enumTypes[1]
}

func (x HANDLE_TYPE) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use HANDLE_TYPE.Descriptor instead.
func (HANDLE_TYPE) EnumDescriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{1}
}

type RES_CODE int32

const (
	RES_CODE_FAIL    RES_CODE = 0
	RES_CODE_SUCCESS RES_CODE = 1
)

// Enum value maps for RES_CODE.
var (
	RES_CODE_name = map[int32]string{
		0: "FAIL",
		1: "SUCCESS",
	}
	RES_CODE_value = map[string]int32{
		"FAIL":    0,
		"SUCCESS": 1,
	}
)

func (x RES_CODE) Enum() *RES_CODE {
	p := new(RES_CODE)
	*p = x
	return p
}

func (x RES_CODE) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (RES_CODE) Descriptor() protoreflect.EnumDescriptor {
	return file_proto_Gameapi_proto_enumTypes[2].Descriptor()
}

func (RES_CODE) Type() protoreflect.EnumType {
	return &file_proto_Gameapi_proto_enumTypes[2]
}

func (x RES_CODE) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use RES_CODE.Descriptor instead.
func (RES_CODE) EnumDescriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{2}
}

type ITEM_TYPE int32

const (
	ITEM_TYPE_ENERGY  ITEM_TYPE = 0
	ITEM_TYPE_STAR    ITEM_TYPE = 1
	ITEM_TYPE_DIAMOND ITEM_TYPE = 2
)

// Enum value maps for ITEM_TYPE.
var (
	ITEM_TYPE_name = map[int32]string{
		0: "ENERGY",
		1: "STAR",
		2: "DIAMOND",
	}
	ITEM_TYPE_value = map[string]int32{
		"ENERGY":  0,
		"STAR":    1,
		"DIAMOND": 2,
	}
)

func (x ITEM_TYPE) Enum() *ITEM_TYPE {
	p := new(ITEM_TYPE)
	*p = x
	return p
}

func (x ITEM_TYPE) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ITEM_TYPE) Descriptor() protoreflect.EnumDescriptor {
	return file_proto_Gameapi_proto_enumTypes[3].Descriptor()
}

func (ITEM_TYPE) Type() protoreflect.EnumType {
	return &file_proto_Gameapi_proto_enumTypes[3]
}

func (x ITEM_TYPE) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use ITEM_TYPE.Descriptor instead.
func (ITEM_TYPE) EnumDescriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{3}
}

type ClientReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Func      string `protobuf:"bytes,1,opt,name=func,proto3" json:"func,omitempty"` //  serverMode/functionID
	Cid       string `protobuf:"bytes,2,opt,name=cid,proto3" json:"cid,omitempty"`
	Info      []byte `protobuf:"bytes,3,opt,name=info,proto3" json:"info,omitempty"`
	SessionId string `protobuf:"bytes,4,opt,name=sessionId,proto3" json:"sessionId,omitempty"`
	GatewayId string `protobuf:"bytes,5,opt,name=gatewayId,proto3" json:"gatewayId,omitempty"`
	UserId    string `protobuf:"bytes,6,opt,name=userId,proto3" json:"userId,omitempty"`
	UserBase  string `protobuf:"bytes,7,opt,name=userBase,proto3" json:"userBase,omitempty"`
}

func (x *ClientReq) Reset() {
	*x = ClientReq{}
	mi := &file_proto_Gameapi_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ClientReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ClientReq) ProtoMessage() {}

func (x *ClientReq) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ClientReq.ProtoReflect.Descriptor instead.
func (*ClientReq) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{0}
}

func (x *ClientReq) GetFunc() string {
	if x != nil {
		return x.Func
	}
	return ""
}

func (x *ClientReq) GetCid() string {
	if x != nil {
		return x.Cid
	}
	return ""
}

func (x *ClientReq) GetInfo() []byte {
	if x != nil {
		return x.Info
	}
	return nil
}

func (x *ClientReq) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

func (x *ClientReq) GetGatewayId() string {
	if x != nil {
		return x.GatewayId
	}
	return ""
}

func (x *ClientReq) GetUserId() string {
	if x != nil {
		return x.UserId
	}
	return ""
}

func (x *ClientReq) GetUserBase() string {
	if x != nil {
		return x.UserBase
	}
	return ""
}

type ReqOfflineReconnect struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"`
}

func (x *ReqOfflineReconnect) Reset() {
	*x = ReqOfflineReconnect{}
	mi := &file_proto_Gameapi_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqOfflineReconnect) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqOfflineReconnect) ProtoMessage() {}

func (x *ReqOfflineReconnect) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqOfflineReconnect.ProtoReflect.Descriptor instead.
func (*ReqOfflineReconnect) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{1}
}

func (x *ReqOfflineReconnect) GetDwUin() int64 {
	if x != nil {
		return x.DwUin
	}
	return 0
}

type ResOfflineReconnect struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DwUin  int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"`
	Result int32 `protobuf:"varint,2,opt,name=Result,proto3" json:"Result,omitempty"`
}

func (x *ResOfflineReconnect) Reset() {
	*x = ResOfflineReconnect{}
	mi := &file_proto_Gameapi_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResOfflineReconnect) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResOfflineReconnect) ProtoMessage() {}

func (x *ResOfflineReconnect) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[2]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResOfflineReconnect.ProtoReflect.Descriptor instead.
func (*ResOfflineReconnect) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{2}
}

func (x *ResOfflineReconnect) GetDwUin() int64 {
	if x != nil {
		return x.DwUin
	}
	return 0
}

func (x *ResOfflineReconnect) GetResult() int32 {
	if x != nil {
		return x.Result
	}
	return 0
}

type ReqBindFacebookAccount struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DwUin         int64  `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"`
	BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"`
}

func (x *ReqBindFacebookAccount) Reset() {
	*x = ReqBindFacebookAccount{}
	mi := &file_proto_Gameapi_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqBindFacebookAccount) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqBindFacebookAccount) ProtoMessage() {}

func (x *ReqBindFacebookAccount) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[3]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqBindFacebookAccount.ProtoReflect.Descriptor instead.
func (*ReqBindFacebookAccount) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{3}
}

func (x *ReqBindFacebookAccount) GetDwUin() int64 {
	if x != nil {
		return x.DwUin
	}
	return 0
}

func (x *ReqBindFacebookAccount) GetBindAccountId() string {
	if x != nil {
		return x.BindAccountId
	}
	return ""
}

type ResBindFacebookAccount struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DwUin         int64  `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"`
	BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"`
	ResultCode    int32  `protobuf:"varint,3,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"`
}

func (x *ResBindFacebookAccount) Reset() {
	*x = ResBindFacebookAccount{}
	mi := &file_proto_Gameapi_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResBindFacebookAccount) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResBindFacebookAccount) ProtoMessage() {}

func (x *ResBindFacebookAccount) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[4]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResBindFacebookAccount.ProtoReflect.Descriptor instead.
func (*ResBindFacebookAccount) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{4}
}

func (x *ResBindFacebookAccount) GetDwUin() int64 {
	if x != nil {
		return x.DwUin
	}
	return 0
}

func (x *ResBindFacebookAccount) GetBindAccountId() string {
	if x != nil {
		return x.BindAccountId
	}
	return ""
}

func (x *ResBindFacebookAccount) GetResultCode() int32 {
	if x != nil {
		return x.ResultCode
	}
	return 0
}

// //请求强制绑定已绑过其他设备的fb并且不同步数据
type ReqOnlyBindFacebook struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DwUin         int64  `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"`
	BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"`
}

func (x *ReqOnlyBindFacebook) Reset() {
	*x = ReqOnlyBindFacebook{}
	mi := &file_proto_Gameapi_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqOnlyBindFacebook) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqOnlyBindFacebook) ProtoMessage() {}

func (x *ReqOnlyBindFacebook) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[5]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqOnlyBindFacebook.ProtoReflect.Descriptor instead.
func (*ReqOnlyBindFacebook) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{5}
}

func (x *ReqOnlyBindFacebook) GetDwUin() int64 {
	if x != nil {
		return x.DwUin
	}
	return 0
}

func (x *ReqOnlyBindFacebook) GetBindAccountId() string {
	if x != nil {
		return x.BindAccountId
	}
	return ""
}

type ResOnlyBindFacebook struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DwUin         int64  `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"`
	BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"`
	ResultCode    int32  `protobuf:"varint,3,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"`
}

func (x *ResOnlyBindFacebook) Reset() {
	*x = ResOnlyBindFacebook{}
	mi := &file_proto_Gameapi_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResOnlyBindFacebook) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResOnlyBindFacebook) ProtoMessage() {}

func (x *ResOnlyBindFacebook) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[6]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResOnlyBindFacebook.ProtoReflect.Descriptor instead.
func (*ResOnlyBindFacebook) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{6}
}

func (x *ResOnlyBindFacebook) GetDwUin() int64 {
	if x != nil {
		return x.DwUin
	}
	return 0
}

func (x *ResOnlyBindFacebook) GetBindAccountId() string {
	if x != nil {
		return x.BindAccountId
	}
	return ""
}

func (x *ResOnlyBindFacebook) GetResultCode() int32 {
	if x != nil {
		return x.ResultCode
	}
	return 0
}

// //请求接触绑定
type ReqUnBindFacebook struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DwUin         int64  `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"`
	BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"`
}

func (x *ReqUnBindFacebook) Reset() {
	*x = ReqUnBindFacebook{}
	mi := &file_proto_Gameapi_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqUnBindFacebook) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqUnBindFacebook) ProtoMessage() {}

func (x *ReqUnBindFacebook) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[7]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqUnBindFacebook.ProtoReflect.Descriptor instead.
func (*ReqUnBindFacebook) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{7}
}

func (x *ReqUnBindFacebook) GetDwUin() int64 {
	if x != nil {
		return x.DwUin
	}
	return 0
}

func (x *ReqUnBindFacebook) GetBindAccountId() string {
	if x != nil {
		return x.BindAccountId
	}
	return ""
}

type ResUnBindFacebook struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ResultCode    int32  `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"`
	BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"`
}

func (x *ResUnBindFacebook) Reset() {
	*x = ResUnBindFacebook{}
	mi := &file_proto_Gameapi_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResUnBindFacebook) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResUnBindFacebook) ProtoMessage() {}

func (x *ResUnBindFacebook) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[8]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResUnBindFacebook.ProtoReflect.Descriptor instead.
func (*ResUnBindFacebook) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{8}
}

func (x *ResUnBindFacebook) GetResultCode() int32 {
	if x != nil {
		return x.ResultCode
	}
	return 0
}

func (x *ResUnBindFacebook) GetBindAccountId() string {
	if x != nil {
		return x.BindAccountId
	}
	return ""
}

// //请求强制绑定已绑过其他设备的fb并且同步数据
type ReqSynGameData struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DwUin   int64  `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"`
	NewFBId string `protobuf:"bytes,2,opt,name=NewFBId,proto3" json:"NewFBId,omitempty"`
}

func (x *ReqSynGameData) Reset() {
	*x = ReqSynGameData{}
	mi := &file_proto_Gameapi_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqSynGameData) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqSynGameData) ProtoMessage() {}

func (x *ReqSynGameData) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[9]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqSynGameData.ProtoReflect.Descriptor instead.
func (*ReqSynGameData) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{9}
}

func (x *ReqSynGameData) GetDwUin() int64 {
	if x != nil {
		return x.DwUin
	}
	return 0
}

func (x *ReqSynGameData) GetNewFBId() string {
	if x != nil {
		return x.NewFBId
	}
	return ""
}

type ResSynGameData struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DwUin      int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"`
	ResultCode int32 `protobuf:"varint,2,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"`
}

func (x *ResSynGameData) Reset() {
	*x = ResSynGameData{}
	mi := &file_proto_Gameapi_proto_msgTypes[10]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResSynGameData) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResSynGameData) ProtoMessage() {}

func (x *ResSynGameData) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[10]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResSynGameData.ProtoReflect.Descriptor instead.
func (*ResSynGameData) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{10}
}

func (x *ResSynGameData) GetDwUin() int64 {
	if x != nil {
		return x.DwUin
	}
	return 0
}

func (x *ResSynGameData) GetResultCode() int32 {
	if x != nil {
		return x.ResultCode
	}
	return 0
}

type ForceKickOut struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ForceKickOut) Reset() {
	*x = ForceKickOut{}
	mi := &file_proto_Gameapi_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ForceKickOut) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ForceKickOut) ProtoMessage() {}

func (x *ForceKickOut) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[11]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ForceKickOut.ProtoReflect.Descriptor instead.
func (*ForceKickOut) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{11}
}

type ResServerVersion struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Version int32 `protobuf:"varint,1,opt,name=Version,proto3" json:"Version,omitempty"`
}

func (x *ResServerVersion) Reset() {
	*x = ResServerVersion{}
	mi := &file_proto_Gameapi_proto_msgTypes[12]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResServerVersion) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResServerVersion) ProtoMessage() {}

func (x *ResServerVersion) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[12]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResServerVersion.ProtoReflect.Descriptor instead.
func (*ResServerVersion) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{12}
}

func (x *ResServerVersion) GetVersion() int32 {
	if x != nil {
		return x.Version
	}
	return 0
}

type ResChessColorData struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MChessColorData map[string]int32 `protobuf:"bytes,1,rep,name=mChessColorData,proto3" json:"mChessColorData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
}

func (x *ResChessColorData) Reset() {
	*x = ResChessColorData{}
	mi := &file_proto_Gameapi_proto_msgTypes[13]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResChessColorData) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResChessColorData) ProtoMessage() {}

func (x *ResChessColorData) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[13]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResChessColorData.ProtoReflect.Descriptor instead.
func (*ResChessColorData) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{13}
}

func (x *ResChessColorData) GetMChessColorData() map[string]int32 {
	if x != nil {
		return x.MChessColorData
	}
	return nil
}

type ClientRes struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Func string `protobuf:"bytes,1,opt,name=func,proto3" json:"func,omitempty"`
	Cid  string `protobuf:"bytes,2,opt,name=cid,proto3" json:"cid,omitempty"`
	Info []byte `protobuf:"bytes,3,opt,name=info,proto3" json:"info,omitempty"`
}

func (x *ClientRes) Reset() {
	*x = ClientRes{}
	mi := &file_proto_Gameapi_proto_msgTypes[14]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ClientRes) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ClientRes) ProtoMessage() {}

func (x *ClientRes) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[14]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ClientRes.ProtoReflect.Descriptor instead.
func (*ClientRes) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{14}
}

func (x *ClientRes) GetFunc() string {
	if x != nil {
		return x.Func
	}
	return ""
}

func (x *ClientRes) GetCid() string {
	if x != nil {
		return x.Cid
	}
	return ""
}

func (x *ClientRes) GetInfo() []byte {
	if x != nil {
		return x.Info
	}
	return nil
}

// //请求注册账号
type ReqRegisterAccount struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	UserName string `protobuf:"bytes,1,opt,name=UserName,proto3" json:"UserName,omitempty"`
	UserPwd  string `protobuf:"bytes,2,opt,name=UserPwd,proto3" json:"UserPwd,omitempty"`
	DwUin    int32  `protobuf:"varint,3,opt,name=dwUin,proto3" json:"dwUin,omitempty"`
}

func (x *ReqRegisterAccount) Reset() {
	*x = ReqRegisterAccount{}
	mi := &file_proto_Gameapi_proto_msgTypes[15]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqRegisterAccount) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqRegisterAccount) ProtoMessage() {}

func (x *ReqRegisterAccount) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[15]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqRegisterAccount.ProtoReflect.Descriptor instead.
func (*ReqRegisterAccount) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{15}
}

func (x *ReqRegisterAccount) GetUserName() string {
	if x != nil {
		return x.UserName
	}
	return ""
}

func (x *ReqRegisterAccount) GetUserPwd() string {
	if x != nil {
		return x.UserPwd
	}
	return ""
}

func (x *ReqRegisterAccount) GetDwUin() int32 {
	if x != nil {
		return x.DwUin
	}
	return 0
}

// //响应注册账号
type ResRegisterAccount struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"`
}

func (x *ResRegisterAccount) Reset() {
	*x = ResRegisterAccount{}
	mi := &file_proto_Gameapi_proto_msgTypes[16]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResRegisterAccount) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResRegisterAccount) ProtoMessage() {}

func (x *ResRegisterAccount) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[16]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResRegisterAccount.ProtoReflect.Descriptor instead.
func (*ResRegisterAccount) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{16}
}

func (x *ResRegisterAccount) GetResultCode() int32 {
	if x != nil {
		return x.ResultCode
	}
	return 0
}

// //请求登录
type ReqLogin struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	UserName string `protobuf:"bytes,1,opt,name=UserName,proto3" json:"UserName,omitempty"`
	UserPwd  string `protobuf:"bytes,2,opt,name=UserPwd,proto3" json:"UserPwd,omitempty"`
}

func (x *ReqLogin) Reset() {
	*x = ReqLogin{}
	mi := &file_proto_Gameapi_proto_msgTypes[17]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqLogin) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqLogin) ProtoMessage() {}

func (x *ReqLogin) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[17]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqLogin.ProtoReflect.Descriptor instead.
func (*ReqLogin) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{17}
}

func (x *ReqLogin) GetUserName() string {
	if x != nil {
		return x.UserName
	}
	return ""
}

func (x *ReqLogin) GetUserPwd() string {
	if x != nil {
		return x.UserPwd
	}
	return ""
}

// //响应登录
type ResLogin struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ResultCode int32  `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"`
	DwUin      int64  `protobuf:"varint,2,opt,name=dwUin,proto3" json:"dwUin,omitempty"`
	UserName   string `protobuf:"bytes,3,opt,name=UserName,proto3" json:"UserName,omitempty"`
	FaceBookId string `protobuf:"bytes,4,opt,name=FaceBookId,proto3" json:"FaceBookId,omitempty"`
}

func (x *ResLogin) Reset() {
	*x = ResLogin{}
	mi := &file_proto_Gameapi_proto_msgTypes[18]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResLogin) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResLogin) ProtoMessage() {}

func (x *ResLogin) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[18]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResLogin.ProtoReflect.Descriptor instead.
func (*ResLogin) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{18}
}

func (x *ResLogin) GetResultCode() int32 {
	if x != nil {
		return x.ResultCode
	}
	return 0
}

func (x *ResLogin) GetDwUin() int64 {
	if x != nil {
		return x.DwUin
	}
	return 0
}

func (x *ResLogin) GetUserName() string {
	if x != nil {
		return x.UserName
	}
	return ""
}

func (x *ResLogin) GetFaceBookId() string {
	if x != nil {
		return x.FaceBookId
	}
	return ""
}

// /请求玩家基本信息（玩家登入成功后，第一条请求信息）
type ReqPlayerBaseInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"`
}

func (x *ReqPlayerBaseInfo) Reset() {
	*x = ReqPlayerBaseInfo{}
	mi := &file_proto_Gameapi_proto_msgTypes[19]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqPlayerBaseInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqPlayerBaseInfo) ProtoMessage() {}

func (x *ReqPlayerBaseInfo) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[19]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqPlayerBaseInfo.ProtoReflect.Descriptor instead.
func (*ReqPlayerBaseInfo) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{19}
}

func (x *ReqPlayerBaseInfo) GetDwUin() int64 {
	if x != nil {
		return x.DwUin
	}
	return 0
}

// 响应基本信息
type ResPlayerBaseInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DwUin             int64  `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"`
	Energy            int32  `protobuf:"varint,2,opt,name=energy,proto3" json:"energy,omitempty"`
	Star              int32  `protobuf:"varint,3,opt,name=star,proto3" json:"star,omitempty"`
	RecoverTime       int32  `protobuf:"varint,4,opt,name=recover_time,json=recoverTime,proto3" json:"recover_time,omitempty"`
	Diamond           int32  `protobuf:"varint,5,opt,name=diamond,proto3" json:"diamond,omitempty"`
	Level             int32  `protobuf:"varint,6,opt,name=level,proto3" json:"level,omitempty"`
	Exp               int32  `protobuf:"varint,7,opt,name=exp,proto3" json:"exp,omitempty"`
	StartOrderId      string `protobuf:"bytes,8,opt,name=start_order_id,json=startOrderId,proto3" json:"start_order_id,omitempty"`
	MusicCode         int32  `protobuf:"varint,9,opt,name=music_code,json=musicCode,proto3" json:"music_code,omitempty"`
	Guild             int32  `protobuf:"varint,10,opt,name=guild,proto3" json:"guild,omitempty"`
	PackUnlockCount   int32  `protobuf:"varint,11,opt,name=pack_unlock_count,json=packUnlockCount,proto3" json:"pack_unlock_count,omitempty"`
	LastPlayTime      int32  `protobuf:"varint,12,opt,name=last_play_time,json=lastPlayTime,proto3" json:"last_play_time,omitempty"`
	EnergyBuyCount    int32  `protobuf:"varint,13,opt,name=EnergyBuyCount,proto3" json:"EnergyBuyCount,omitempty"`
	UserName          string `protobuf:"bytes,14,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"`
	LoginTime         int32  `protobuf:"varint,15,opt,name=login_time,json=loginTime,proto3" json:"login_time,omitempty"`
	LogoutTime        int32  `protobuf:"varint,16,opt,name=logout_time,json=logoutTime,proto3" json:"logout_time,omitempty"`
	Todayolinetime    int32  `protobuf:"varint,17,opt,name=todayolinetime,proto3" json:"todayolinetime,omitempty"`
	Rolecreatetime    int32  `protobuf:"varint,18,opt,name=rolecreatetime,proto3" json:"rolecreatetime,omitempty"`
	EmitOrderCnt      int32  `protobuf:"varint,19,opt,name=EmitOrderCnt,proto3" json:"EmitOrderCnt,omitempty"`
	NoAd              int32  `protobuf:"varint,20,opt,name=NoAd,proto3" json:"NoAd,omitempty"`
	ChampshipsGroupID int32  `protobuf:"varint,21,opt,name=ChampshipsGroupID,proto3" json:"ChampshipsGroupID,omitempty"`
	LastChampGroupID  int32  `protobuf:"varint,22,opt,name=LastChampGroupID,proto3" json:"LastChampGroupID,omitempty"`
	FaceBookId        string `protobuf:"bytes,23,opt,name=FaceBookId,proto3" json:"FaceBookId,omitempty"`
}

func (x *ResPlayerBaseInfo) Reset() {
	*x = ResPlayerBaseInfo{}
	mi := &file_proto_Gameapi_proto_msgTypes[20]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResPlayerBaseInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResPlayerBaseInfo) ProtoMessage() {}

func (x *ResPlayerBaseInfo) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[20]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResPlayerBaseInfo.ProtoReflect.Descriptor instead.
func (*ResPlayerBaseInfo) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{20}
}

func (x *ResPlayerBaseInfo) GetDwUin() int64 {
	if x != nil {
		return x.DwUin
	}
	return 0
}

func (x *ResPlayerBaseInfo) GetEnergy() int32 {
	if x != nil {
		return x.Energy
	}
	return 0
}

func (x *ResPlayerBaseInfo) GetStar() int32 {
	if x != nil {
		return x.Star
	}
	return 0
}

func (x *ResPlayerBaseInfo) GetRecoverTime() int32 {
	if x != nil {
		return x.RecoverTime
	}
	return 0
}

func (x *ResPlayerBaseInfo) GetDiamond() int32 {
	if x != nil {
		return x.Diamond
	}
	return 0
}

func (x *ResPlayerBaseInfo) GetLevel() int32 {
	if x != nil {
		return x.Level
	}
	return 0
}

func (x *ResPlayerBaseInfo) GetExp() int32 {
	if x != nil {
		return x.Exp
	}
	return 0
}

func (x *ResPlayerBaseInfo) GetStartOrderId() string {
	if x != nil {
		return x.StartOrderId
	}
	return ""
}

func (x *ResPlayerBaseInfo) GetMusicCode() int32 {
	if x != nil {
		return x.MusicCode
	}
	return 0
}

func (x *ResPlayerBaseInfo) GetGuild() int32 {
	if x != nil {
		return x.Guild
	}
	return 0
}

func (x *ResPlayerBaseInfo) GetPackUnlockCount() int32 {
	if x != nil {
		return x.PackUnlockCount
	}
	return 0
}

func (x *ResPlayerBaseInfo) GetLastPlayTime() int32 {
	if x != nil {
		return x.LastPlayTime
	}
	return 0
}

func (x *ResPlayerBaseInfo) GetEnergyBuyCount() int32 {
	if x != nil {
		return x.EnergyBuyCount
	}
	return 0
}

func (x *ResPlayerBaseInfo) GetUserName() string {
	if x != nil {
		return x.UserName
	}
	return ""
}

func (x *ResPlayerBaseInfo) GetLoginTime() int32 {
	if x != nil {
		return x.LoginTime
	}
	return 0
}

func (x *ResPlayerBaseInfo) GetLogoutTime() int32 {
	if x != nil {
		return x.LogoutTime
	}
	return 0
}

func (x *ResPlayerBaseInfo) GetTodayolinetime() int32 {
	if x != nil {
		return x.Todayolinetime
	}
	return 0
}

func (x *ResPlayerBaseInfo) GetRolecreatetime() int32 {
	if x != nil {
		return x.Rolecreatetime
	}
	return 0
}

func (x *ResPlayerBaseInfo) GetEmitOrderCnt() int32 {
	if x != nil {
		return x.EmitOrderCnt
	}
	return 0
}

func (x *ResPlayerBaseInfo) GetNoAd() int32 {
	if x != nil {
		return x.NoAd
	}
	return 0
}

func (x *ResPlayerBaseInfo) GetChampshipsGroupID() int32 {
	if x != nil {
		return x.ChampshipsGroupID
	}
	return 0
}

func (x *ResPlayerBaseInfo) GetLastChampGroupID() int32 {
	if x != nil {
		return x.LastChampGroupID
	}
	return 0
}

func (x *ResPlayerBaseInfo) GetFaceBookId() string {
	if x != nil {
		return x.FaceBookId
	}
	return ""
}

type ReqPlayerAsset struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqPlayerAsset) Reset() {
	*x = ReqPlayerAsset{}
	mi := &file_proto_Gameapi_proto_msgTypes[21]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqPlayerAsset) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqPlayerAsset) ProtoMessage() {}

func (x *ReqPlayerAsset) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[21]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqPlayerAsset.ProtoReflect.Descriptor instead.
func (*ReqPlayerAsset) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{21}
}

// 玩家资产
type ResPlayerAsset struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DwUin       int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"`
	Energy      int32 `protobuf:"varint,2,opt,name=energy,proto3" json:"energy,omitempty"`
	Star        int32 `protobuf:"varint,3,opt,name=star,proto3" json:"star,omitempty"`
	RecoverTime int32 `protobuf:"varint,4,opt,name=recover_time,json=recoverTime,proto3" json:"recover_time,omitempty"`
	Diamond     int32 `protobuf:"varint,5,opt,name=diamond,proto3" json:"diamond,omitempty"`
	Level       int32 `protobuf:"varint,6,opt,name=level,proto3" json:"level,omitempty"`
	Exp         int32 `protobuf:"varint,7,opt,name=exp,proto3" json:"exp,omitempty"`
	Login       int32 `protobuf:"varint,8,opt,name=Login,proto3" json:"Login,omitempty"`
	Logout      int32 `protobuf:"varint,9,opt,name=Logout,proto3" json:"Logout,omitempty"`
}

func (x *ResPlayerAsset) Reset() {
	*x = ResPlayerAsset{}
	mi := &file_proto_Gameapi_proto_msgTypes[22]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResPlayerAsset) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResPlayerAsset) ProtoMessage() {}

func (x *ResPlayerAsset) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[22]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResPlayerAsset.ProtoReflect.Descriptor instead.
func (*ResPlayerAsset) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{22}
}

func (x *ResPlayerAsset) GetDwUin() int64 {
	if x != nil {
		return x.DwUin
	}
	return 0
}

func (x *ResPlayerAsset) GetEnergy() int32 {
	if x != nil {
		return x.Energy
	}
	return 0
}

func (x *ResPlayerAsset) GetStar() int32 {
	if x != nil {
		return x.Star
	}
	return 0
}

func (x *ResPlayerAsset) GetRecoverTime() int32 {
	if x != nil {
		return x.RecoverTime
	}
	return 0
}

func (x *ResPlayerAsset) GetDiamond() int32 {
	if x != nil {
		return x.Diamond
	}
	return 0
}

func (x *ResPlayerAsset) GetLevel() int32 {
	if x != nil {
		return x.Level
	}
	return 0
}

func (x *ResPlayerAsset) GetExp() int32 {
	if x != nil {
		return x.Exp
	}
	return 0
}

func (x *ResPlayerAsset) GetLogin() int32 {
	if x != nil {
		return x.Login
	}
	return 0
}

func (x *ResPlayerAsset) GetLogout() int32 {
	if x != nil {
		return x.Logout
	}
	return 0
}

// 客户端向服务器请求更新基本信息条目（没有响应）
type UpdateBaseItemInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DwUin       int64           `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"`
	MUpdateItem map[int32]int32 `protobuf:"bytes,2,rep,name=mUpdateItem,proto3" json:"mUpdateItem,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
}

func (x *UpdateBaseItemInfo) Reset() {
	*x = UpdateBaseItemInfo{}
	mi := &file_proto_Gameapi_proto_msgTypes[23]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *UpdateBaseItemInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateBaseItemInfo) ProtoMessage() {}

func (x *UpdateBaseItemInfo) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[23]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UpdateBaseItemInfo.ProtoReflect.Descriptor instead.
func (*UpdateBaseItemInfo) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{23}
}

func (x *UpdateBaseItemInfo) GetDwUin() int64 {
	if x != nil {
		return x.DwUin
	}
	return 0
}

func (x *UpdateBaseItemInfo) GetMUpdateItem() map[int32]int32 {
	if x != nil {
		return x.MUpdateItem
	}
	return nil
}

type NotifyRenewBuyEnergyCnt struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DwUin  int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"`
	CurCnt int32 `protobuf:"varint,2,opt,name=CurCnt,proto3" json:"CurCnt,omitempty"`
}

func (x *NotifyRenewBuyEnergyCnt) Reset() {
	*x = NotifyRenewBuyEnergyCnt{}
	mi := &file_proto_Gameapi_proto_msgTypes[24]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *NotifyRenewBuyEnergyCnt) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NotifyRenewBuyEnergyCnt) ProtoMessage() {}

func (x *NotifyRenewBuyEnergyCnt) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[24]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use NotifyRenewBuyEnergyCnt.ProtoReflect.Descriptor instead.
func (*NotifyRenewBuyEnergyCnt) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{24}
}

func (x *NotifyRenewBuyEnergyCnt) GetDwUin() int64 {
	if x != nil {
		return x.DwUin
	}
	return 0
}

func (x *NotifyRenewBuyEnergyCnt) GetCurCnt() int32 {
	if x != nil {
		return x.CurCnt
	}
	return 0
}

// /请求移除广告
type ReqRemoveAd struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"`
}

func (x *ReqRemoveAd) Reset() {
	*x = ReqRemoveAd{}
	mi := &file_proto_Gameapi_proto_msgTypes[25]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqRemoveAd) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqRemoveAd) ProtoMessage() {}

func (x *ReqRemoveAd) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[25]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqRemoveAd.ProtoReflect.Descriptor instead.
func (*ReqRemoveAd) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{25}
}

func (x *ReqRemoveAd) GetDwUin() int64 {
	if x != nil {
		return x.DwUin
	}
	return 0
}

// //响应移除广告
type ResRemoveAd struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"`
}

func (x *ResRemoveAd) Reset() {
	*x = ResRemoveAd{}
	mi := &file_proto_Gameapi_proto_msgTypes[26]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResRemoveAd) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResRemoveAd) ProtoMessage() {}

func (x *ResRemoveAd) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[26]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResRemoveAd.ProtoReflect.Descriptor instead.
func (*ResRemoveAd) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{26}
}

func (x *ResRemoveAd) GetResultCode() int32 {
	if x != nil {
		return x.ResultCode
	}
	return 0
}

// 服务器向客户端通知间隔增长的体力
type NotifyAddEnergy struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DwUin  int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"`
	AddCnt int32 `protobuf:"varint,2,opt,name=addCnt,proto3" json:"addCnt,omitempty"`
}

func (x *NotifyAddEnergy) Reset() {
	*x = NotifyAddEnergy{}
	mi := &file_proto_Gameapi_proto_msgTypes[27]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *NotifyAddEnergy) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NotifyAddEnergy) ProtoMessage() {}

func (x *NotifyAddEnergy) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[27]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use NotifyAddEnergy.ProtoReflect.Descriptor instead.
func (*NotifyAddEnergy) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{27}
}

func (x *NotifyAddEnergy) GetDwUin() int64 {
	if x != nil {
		return x.DwUin
	}
	return 0
}

func (x *NotifyAddEnergy) GetAddCnt() int32 {
	if x != nil {
		return x.AddCnt
	}
	return 0
}

// /请求服务器时间
type ReqServerTime struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"`
}

func (x *ReqServerTime) Reset() {
	*x = ReqServerTime{}
	mi := &file_proto_Gameapi_proto_msgTypes[28]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqServerTime) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqServerTime) ProtoMessage() {}

func (x *ReqServerTime) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[28]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqServerTime.ProtoReflect.Descriptor instead.
func (*ReqServerTime) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{28}
}

func (x *ReqServerTime) GetDwUin() int64 {
	if x != nil {
		return x.DwUin
	}
	return 0
}

// //响应服务器时间
type ResServerTime struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ServerTime int32 `protobuf:"varint,1,opt,name=ServerTime,proto3" json:"ServerTime,omitempty"`
}

func (x *ResServerTime) Reset() {
	*x = ResServerTime{}
	mi := &file_proto_Gameapi_proto_msgTypes[29]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResServerTime) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResServerTime) ProtoMessage() {}

func (x *ResServerTime) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[29]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResServerTime.ProtoReflect.Descriptor instead.
func (*ResServerTime) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{29}
}

func (x *ResServerTime) GetServerTime() int32 {
	if x != nil {
		return x.ServerTime
	}
	return 0
}

type ReqPlayerChessData struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"`
}

func (x *ReqPlayerChessData) Reset() {
	*x = ReqPlayerChessData{}
	mi := &file_proto_Gameapi_proto_msgTypes[30]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqPlayerChessData) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqPlayerChessData) ProtoMessage() {}

func (x *ReqPlayerChessData) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[30]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqPlayerChessData.ProtoReflect.Descriptor instead.
func (*ReqPlayerChessData) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{30}
}

func (x *ReqPlayerChessData) GetDwUin() int64 {
	if x != nil {
		return x.DwUin
	}
	return 0
}

// /响应棋盘数据
type ResPlayerChessData struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DwUin      int64            `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"`
	MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
	ChessList  []int32          `protobuf:"varint,3,rep,packed,name=ChessList,proto3" json:"ChessList,omitempty"`
	ChessBuff  []int32          `protobuf:"varint,4,rep,packed,name=ChessBuff,proto3" json:"ChessBuff,omitempty"`
}

func (x *ResPlayerChessData) Reset() {
	*x = ResPlayerChessData{}
	mi := &file_proto_Gameapi_proto_msgTypes[31]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResPlayerChessData) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResPlayerChessData) ProtoMessage() {}

func (x *ResPlayerChessData) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[31]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResPlayerChessData.ProtoReflect.Descriptor instead.
func (*ResPlayerChessData) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{31}
}

func (x *ResPlayerChessData) GetDwUin() int64 {
	if x != nil {
		return x.DwUin
	}
	return 0
}

func (x *ResPlayerChessData) GetMChessData() map[string]int32 {
	if x != nil {
		return x.MChessData
	}
	return nil
}

func (x *ResPlayerChessData) GetChessList() []int32 {
	if x != nil {
		return x.ChessList
	}
	return nil
}

func (x *ResPlayerChessData) GetChessBuff() []int32 {
	if x != nil {
		return x.ChessBuff
	}
	return nil
}

type ResPlayerChessInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ChessList  []int32   `protobuf:"varint,1,rep,packed,name=ChessList,proto3" json:"ChessList,omitempty"`
	ChessBuff  []int32   `protobuf:"varint,2,rep,packed,name=ChessBuff,proto3" json:"ChessBuff,omitempty"`
	ChessBag   *ChessBag `protobuf:"bytes,3,opt,name=ChessBag,proto3" json:"ChessBag,omitempty"`
	RetireEmit []string  `protobuf:"bytes,4,rep,name=RetireEmit,proto3" json:"RetireEmit,omitempty"`
	Honor      []int32   `protobuf:"varint,5,rep,packed,name=Honor,proto3" json:"Honor,omitempty"`
}

func (x *ResPlayerChessInfo) Reset() {
	*x = ResPlayerChessInfo{}
	mi := &file_proto_Gameapi_proto_msgTypes[32]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResPlayerChessInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResPlayerChessInfo) ProtoMessage() {}

func (x *ResPlayerChessInfo) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[32]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResPlayerChessInfo.ProtoReflect.Descriptor instead.
func (*ResPlayerChessInfo) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{32}
}

func (x *ResPlayerChessInfo) GetChessList() []int32 {
	if x != nil {
		return x.ChessList
	}
	return nil
}

func (x *ResPlayerChessInfo) GetChessBuff() []int32 {
	if x != nil {
		return x.ChessBuff
	}
	return nil
}

func (x *ResPlayerChessInfo) GetChessBag() *ChessBag {
	if x != nil {
		return x.ChessBag
	}
	return nil
}

func (x *ResPlayerChessInfo) GetRetireEmit() []string {
	if x != nil {
		return x.RetireEmit
	}
	return nil
}

func (x *ResPlayerChessInfo) GetHonor() []int32 {
	if x != nil {
		return x.Honor
	}
	return nil
}

// 棋盘操作队列
type ChessHandle struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Type    HANDLE_TYPE `protobuf:"varint,1,opt,name=type,proto3,enum=tutorial.HANDLE_TYPE" json:"type,omitempty"`
	Emit    int32       `protobuf:"varint,2,opt,name=Emit,proto3" json:"Emit,omitempty"`
	ChessId int32       `protobuf:"varint,3,opt,name=ChessId,proto3" json:"ChessId,omitempty"`
	Id      int32       `protobuf:"varint,4,opt,name=Id,proto3" json:"Id,omitempty"`
	ActType []int32     `protobuf:"varint,5,rep,packed,name=ActType,proto3" json:"ActType,omitempty"` // 活动类型
}

func (x *ChessHandle) Reset() {
	*x = ChessHandle{}
	mi := &file_proto_Gameapi_proto_msgTypes[33]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ChessHandle) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ChessHandle) ProtoMessage() {}

func (x *ChessHandle) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[33]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ChessHandle.ProtoReflect.Descriptor instead.
func (*ChessHandle) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{33}
}

func (x *ChessHandle) GetType() HANDLE_TYPE {
	if x != nil {
		return x.Type
	}
	return HANDLE_TYPE_ADD
}

func (x *ChessHandle) GetEmit() int32 {
	if x != nil {
		return x.Emit
	}
	return 0
}

func (x *ChessHandle) GetChessId() int32 {
	if x != nil {
		return x.ChessId
	}
	return 0
}

func (x *ChessHandle) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *ChessHandle) GetActType() []int32 {
	if x != nil {
		return x.ActType
	}
	return nil
}

// ///同步棋盘数据
type UpdatePlayerChessData struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DwUin        int64            `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"`
	MChessData   map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
	MChessHandle []*ChessHandle   `protobuf:"bytes,3,rep,name=mChessHandle,proto3" json:"mChessHandle,omitempty"`
}

func (x *UpdatePlayerChessData) Reset() {
	*x = UpdatePlayerChessData{}
	mi := &file_proto_Gameapi_proto_msgTypes[34]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *UpdatePlayerChessData) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdatePlayerChessData) ProtoMessage() {}

func (x *UpdatePlayerChessData) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[34]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UpdatePlayerChessData.ProtoReflect.Descriptor instead.
func (*UpdatePlayerChessData) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{34}
}

func (x *UpdatePlayerChessData) GetDwUin() int64 {
	if x != nil {
		return x.DwUin
	}
	return 0
}

func (x *UpdatePlayerChessData) GetMChessData() map[string]int32 {
	if x != nil {
		return x.MChessData
	}
	return nil
}

func (x *UpdatePlayerChessData) GetMChessHandle() []*ChessHandle {
	if x != nil {
		return x.MChessHandle
	}
	return nil
}

type ResUpdatePlayerChessData struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"`
}

func (x *ResUpdatePlayerChessData) Reset() {
	*x = ResUpdatePlayerChessData{}
	mi := &file_proto_Gameapi_proto_msgTypes[35]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResUpdatePlayerChessData) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResUpdatePlayerChessData) ProtoMessage() {}

func (x *ResUpdatePlayerChessData) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[35]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResUpdatePlayerChessData.ProtoReflect.Descriptor instead.
func (*ResUpdatePlayerChessData) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{35}
}

func (x *ResUpdatePlayerChessData) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResUpdatePlayerChessData) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 分离器
type ReqSeparateChess struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ChessId    int32            `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"`
	MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
}

func (x *ReqSeparateChess) Reset() {
	*x = ReqSeparateChess{}
	mi := &file_proto_Gameapi_proto_msgTypes[36]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqSeparateChess) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqSeparateChess) ProtoMessage() {}

func (x *ReqSeparateChess) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[36]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqSeparateChess.ProtoReflect.Descriptor instead.
func (*ReqSeparateChess) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{36}
}

func (x *ReqSeparateChess) GetChessId() int32 {
	if x != nil {
		return x.ChessId
	}
	return 0
}

func (x *ReqSeparateChess) GetMChessData() map[string]int32 {
	if x != nil {
		return x.MChessData
	}
	return nil
}

type ResSeparateChess struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"`
}

func (x *ResSeparateChess) Reset() {
	*x = ResSeparateChess{}
	mi := &file_proto_Gameapi_proto_msgTypes[37]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResSeparateChess) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResSeparateChess) ProtoMessage() {}

func (x *ResSeparateChess) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[37]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResSeparateChess.ProtoReflect.Descriptor instead.
func (*ResSeparateChess) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{37}
}

func (x *ResSeparateChess) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResSeparateChess) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 神奇魔术棒（升级器）
type ReqUpgradeChess struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ChessId    int32            `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"`
	MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
}

func (x *ReqUpgradeChess) Reset() {
	*x = ReqUpgradeChess{}
	mi := &file_proto_Gameapi_proto_msgTypes[38]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqUpgradeChess) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqUpgradeChess) ProtoMessage() {}

func (x *ReqUpgradeChess) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[38]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqUpgradeChess.ProtoReflect.Descriptor instead.
func (*ReqUpgradeChess) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{38}
}

func (x *ReqUpgradeChess) GetChessId() int32 {
	if x != nil {
		return x.ChessId
	}
	return 0
}

func (x *ReqUpgradeChess) GetMChessData() map[string]int32 {
	if x != nil {
		return x.MChessData
	}
	return nil
}

type ResUpgradeChess struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"`
}

func (x *ResUpgradeChess) Reset() {
	*x = ResUpgradeChess{}
	mi := &file_proto_Gameapi_proto_msgTypes[39]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResUpgradeChess) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResUpgradeChess) ProtoMessage() {}

func (x *ResUpgradeChess) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[39]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResUpgradeChess.ProtoReflect.Descriptor instead.
func (*ResUpgradeChess) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{39}
}

func (x *ResUpgradeChess) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResUpgradeChess) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 从缓存中获取棋子
type ReqGetChessFromBuff struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ChessId    int32            `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"`
	MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
}

func (x *ReqGetChessFromBuff) Reset() {
	*x = ReqGetChessFromBuff{}
	mi := &file_proto_Gameapi_proto_msgTypes[40]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqGetChessFromBuff) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqGetChessFromBuff) ProtoMessage() {}

func (x *ReqGetChessFromBuff) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[40]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqGetChessFromBuff.ProtoReflect.Descriptor instead.
func (*ReqGetChessFromBuff) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{40}
}

func (x *ReqGetChessFromBuff) GetChessId() int32 {
	if x != nil {
		return x.ChessId
	}
	return 0
}

func (x *ReqGetChessFromBuff) GetMChessData() map[string]int32 {
	if x != nil {
		return x.MChessData
	}
	return nil
}

type ResGetChessFromBuff struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"`
}

func (x *ResGetChessFromBuff) Reset() {
	*x = ResGetChessFromBuff{}
	mi := &file_proto_Gameapi_proto_msgTypes[41]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResGetChessFromBuff) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResGetChessFromBuff) ProtoMessage() {}

func (x *ResGetChessFromBuff) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[41]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResGetChessFromBuff.ProtoReflect.Descriptor instead.
func (*ResGetChessFromBuff) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{41}
}

func (x *ResGetChessFromBuff) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResGetChessFromBuff) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 棋子转换
type ReqChessEx struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	OldChessId int32            `protobuf:"varint,1,opt,name=OldChessId,proto3" json:"OldChessId,omitempty"`
	NewChessId int32            `protobuf:"varint,2,opt,name=NewChessId,proto3" json:"NewChessId,omitempty"`
	CostDia    int32            `protobuf:"varint,3,opt,name=CostDia,proto3" json:"CostDia,omitempty"`
	Type       int32            `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` //1 气泡 2 宝箱解锁 3 快捷购买
	MChessData map[string]int32 `protobuf:"bytes,5,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
}

func (x *ReqChessEx) Reset() {
	*x = ReqChessEx{}
	mi := &file_proto_Gameapi_proto_msgTypes[42]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqChessEx) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqChessEx) ProtoMessage() {}

func (x *ReqChessEx) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[42]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqChessEx.ProtoReflect.Descriptor instead.
func (*ReqChessEx) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{42}
}

func (x *ReqChessEx) GetOldChessId() int32 {
	if x != nil {
		return x.OldChessId
	}
	return 0
}

func (x *ReqChessEx) GetNewChessId() int32 {
	if x != nil {
		return x.NewChessId
	}
	return 0
}

func (x *ReqChessEx) GetCostDia() int32 {
	if x != nil {
		return x.CostDia
	}
	return 0
}

func (x *ReqChessEx) GetType() int32 {
	if x != nil {
		return x.Type
	}
	return 0
}

func (x *ReqChessEx) GetMChessData() map[string]int32 {
	if x != nil {
		return x.MChessData
	}
	return nil
}

type ResChessEx struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"`
}

func (x *ResChessEx) Reset() {
	*x = ResChessEx{}
	mi := &file_proto_Gameapi_proto_msgTypes[43]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResChessEx) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResChessEx) ProtoMessage() {}

func (x *ResChessEx) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[43]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResChessEx.ProtoReflect.Descriptor instead.
func (*ResChessEx) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{43}
}

func (x *ResChessEx) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResChessEx) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 开启资源宝箱
type ReqSourceChest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ChestId    int32            `protobuf:"varint,1,opt,name=ChestId,proto3" json:"ChestId,omitempty"`
	MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
}

func (x *ReqSourceChest) Reset() {
	*x = ReqSourceChest{}
	mi := &file_proto_Gameapi_proto_msgTypes[44]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqSourceChest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqSourceChest) ProtoMessage() {}

func (x *ReqSourceChest) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[44]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqSourceChest.ProtoReflect.Descriptor instead.
func (*ReqSourceChest) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{44}
}

func (x *ReqSourceChest) GetChestId() int32 {
	if x != nil {
		return x.ChestId
	}
	return 0
}

func (x *ReqSourceChest) GetMChessData() map[string]int32 {
	if x != nil {
		return x.MChessData
	}
	return nil
}

type ResSourceChest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"`
}

func (x *ResSourceChest) Reset() {
	*x = ResSourceChest{}
	mi := &file_proto_Gameapi_proto_msgTypes[45]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResSourceChest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResSourceChest) ProtoMessage() {}

func (x *ResSourceChest) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[45]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResSourceChest.ProtoReflect.Descriptor instead.
func (*ResSourceChest) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{45}
}

func (x *ResSourceChest) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResSourceChest) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// playroom 打工离线
type ReqPlayroomOutline struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	OldChessId int32            `protobuf:"varint,1,opt,name=OldChessId,proto3" json:"OldChessId,omitempty"`
	NewChessId int32            `protobuf:"varint,2,opt,name=NewChessId,proto3" json:"NewChessId,omitempty"`
	CostDia    int32            `protobuf:"varint,3,opt,name=CostDia,proto3" json:"CostDia,omitempty"`
	Type       int32            `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` //1 气泡 2 宝箱解锁 3 快捷购买 4 打工离线
	MChessData map[string]int32 `protobuf:"bytes,5,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
}

func (x *ReqPlayroomOutline) Reset() {
	*x = ReqPlayroomOutline{}
	mi := &file_proto_Gameapi_proto_msgTypes[46]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqPlayroomOutline) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqPlayroomOutline) ProtoMessage() {}

func (x *ReqPlayroomOutline) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[46]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqPlayroomOutline.ProtoReflect.Descriptor instead.
func (*ReqPlayroomOutline) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{46}
}

func (x *ReqPlayroomOutline) GetOldChessId() int32 {
	if x != nil {
		return x.OldChessId
	}
	return 0
}

func (x *ReqPlayroomOutline) GetNewChessId() int32 {
	if x != nil {
		return x.NewChessId
	}
	return 0
}

func (x *ReqPlayroomOutline) GetCostDia() int32 {
	if x != nil {
		return x.CostDia
	}
	return 0
}

func (x *ReqPlayroomOutline) GetType() int32 {
	if x != nil {
		return x.Type
	}
	return 0
}

func (x *ReqPlayroomOutline) GetMChessData() map[string]int32 {
	if x != nil {
		return x.MChessData
	}
	return nil
}

type ResPlayroomOutline struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"`
}

func (x *ResPlayroomOutline) Reset() {
	*x = ResPlayroomOutline{}
	mi := &file_proto_Gameapi_proto_msgTypes[47]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResPlayroomOutline) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResPlayroomOutline) ProtoMessage() {}

func (x *ResPlayroomOutline) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[47]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResPlayroomOutline.ProtoReflect.Descriptor instead.
func (*ResPlayroomOutline) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{47}
}

func (x *ResPlayroomOutline) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResPlayroomOutline) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 棋盘背包
type ChessBag struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ChessBagGrids []*ChessBagGrid `protobuf:"bytes,1,rep,name=ChessBagGrids,proto3" json:"ChessBagGrids,omitempty"` //已解锁棋盘背包格子
	ChessBuyCnt   int32           `protobuf:"varint,2,opt,name=ChessBuyCnt,proto3" json:"ChessBuyCnt,omitempty"`    //已购买棋盘格子数
	ChessFreeCnt  int32           `protobuf:"varint,3,opt,name=ChessFreeCnt,proto3" json:"ChessFreeCnt,omitempty"`  //剩余免费解锁次数
}

func (x *ChessBag) Reset() {
	*x = ChessBag{}
	mi := &file_proto_Gameapi_proto_msgTypes[48]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ChessBag) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ChessBag) ProtoMessage() {}

func (x *ChessBag) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[48]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ChessBag.ProtoReflect.Descriptor instead.
func (*ChessBag) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{48}
}

func (x *ChessBag) GetChessBagGrids() []*ChessBagGrid {
	if x != nil {
		return x.ChessBagGrids
	}
	return nil
}

func (x *ChessBag) GetChessBuyCnt() int32 {
	if x != nil {
		return x.ChessBuyCnt
	}
	return 0
}

func (x *ChessBag) GetChessFreeCnt() int32 {
	if x != nil {
		return x.ChessFreeCnt
	}
	return 0
}

type ChessBagGrid struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id      int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`           //格子ID
	ChessId int32 `protobuf:"varint,2,opt,name=ChessId,proto3" json:"ChessId,omitempty"` //棋子ID
	EmitId  int32 `protobuf:"varint,3,opt,name=EmitId,proto3" json:"EmitId,omitempty"`   //发射器ID
}

func (x *ChessBagGrid) Reset() {
	*x = ChessBagGrid{}
	mi := &file_proto_Gameapi_proto_msgTypes[49]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ChessBagGrid) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ChessBagGrid) ProtoMessage() {}

func (x *ChessBagGrid) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[49]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ChessBagGrid.ProtoReflect.Descriptor instead.
func (*ChessBagGrid) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{49}
}

func (x *ChessBagGrid) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *ChessBagGrid) GetChessId() int32 {
	if x != nil {
		return x.ChessId
	}
	return 0
}

func (x *ChessBagGrid) GetEmitId() int32 {
	if x != nil {
		return x.EmitId
	}
	return 0
}

// 放置棋子进背包
type ReqPutChessInBag struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ChessId    int32            `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"`
	BagId      int32            `protobuf:"varint,2,opt,name=BagId,proto3" json:"BagId,omitempty"`
	EmitId     int32            `protobuf:"varint,3,opt,name=EmitId,proto3" json:"EmitId,omitempty"` //发射器ID
	MChessData map[string]int32 `protobuf:"bytes,4,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
}

func (x *ReqPutChessInBag) Reset() {
	*x = ReqPutChessInBag{}
	mi := &file_proto_Gameapi_proto_msgTypes[50]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqPutChessInBag) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqPutChessInBag) ProtoMessage() {}

func (x *ReqPutChessInBag) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[50]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqPutChessInBag.ProtoReflect.Descriptor instead.
func (*ReqPutChessInBag) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{50}
}

func (x *ReqPutChessInBag) GetChessId() int32 {
	if x != nil {
		return x.ChessId
	}
	return 0
}

func (x *ReqPutChessInBag) GetBagId() int32 {
	if x != nil {
		return x.BagId
	}
	return 0
}

func (x *ReqPutChessInBag) GetEmitId() int32 {
	if x != nil {
		return x.EmitId
	}
	return 0
}

func (x *ReqPutChessInBag) GetMChessData() map[string]int32 {
	if x != nil {
		return x.MChessData
	}
	return nil
}

type ResPutChessInBag struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"`
}

func (x *ResPutChessInBag) Reset() {
	*x = ResPutChessInBag{}
	mi := &file_proto_Gameapi_proto_msgTypes[51]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResPutChessInBag) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResPutChessInBag) ProtoMessage() {}

func (x *ResPutChessInBag) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[51]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResPutChessInBag.ProtoReflect.Descriptor instead.
func (*ResPutChessInBag) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{51}
}

func (x *ResPutChessInBag) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResPutChessInBag) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 从背包取出棋子
type ReqTakeChessOutBag struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	BagId      int32            `protobuf:"varint,1,opt,name=BagId,proto3" json:"BagId,omitempty"`
	MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
}

func (x *ReqTakeChessOutBag) Reset() {
	*x = ReqTakeChessOutBag{}
	mi := &file_proto_Gameapi_proto_msgTypes[52]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqTakeChessOutBag) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqTakeChessOutBag) ProtoMessage() {}

func (x *ReqTakeChessOutBag) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[52]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqTakeChessOutBag.ProtoReflect.Descriptor instead.
func (*ReqTakeChessOutBag) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{52}
}

func (x *ReqTakeChessOutBag) GetBagId() int32 {
	if x != nil {
		return x.BagId
	}
	return 0
}

func (x *ReqTakeChessOutBag) GetMChessData() map[string]int32 {
	if x != nil {
		return x.MChessData
	}
	return nil
}

type ResTakeChessOutBag struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"`
}

func (x *ResTakeChessOutBag) Reset() {
	*x = ResTakeChessOutBag{}
	mi := &file_proto_Gameapi_proto_msgTypes[53]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResTakeChessOutBag) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResTakeChessOutBag) ProtoMessage() {}

func (x *ResTakeChessOutBag) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[53]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResTakeChessOutBag.ProtoReflect.Descriptor instead.
func (*ResTakeChessOutBag) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{53}
}

func (x *ResTakeChessOutBag) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResTakeChessOutBag) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 购买棋盘格子
type ReqBuyChessBagGrid struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqBuyChessBagGrid) Reset() {
	*x = ReqBuyChessBagGrid{}
	mi := &file_proto_Gameapi_proto_msgTypes[54]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqBuyChessBagGrid) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqBuyChessBagGrid) ProtoMessage() {}

func (x *ReqBuyChessBagGrid) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[54]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqBuyChessBagGrid.ProtoReflect.Descriptor instead.
func (*ReqBuyChessBagGrid) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{54}
}

type ResBuyChessBagGrid struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"`
}

func (x *ResBuyChessBagGrid) Reset() {
	*x = ResBuyChessBagGrid{}
	mi := &file_proto_Gameapi_proto_msgTypes[55]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResBuyChessBagGrid) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResBuyChessBagGrid) ProtoMessage() {}

func (x *ResBuyChessBagGrid) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[55]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResBuyChessBagGrid.ProtoReflect.Descriptor instead.
func (*ResBuyChessBagGrid) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{55}
}

func (x *ResBuyChessBagGrid) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResBuyChessBagGrid) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// /请求玩家身份信息
type ReqPlayerProfileData struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"`
}

func (x *ReqPlayerProfileData) Reset() {
	*x = ReqPlayerProfileData{}
	mi := &file_proto_Gameapi_proto_msgTypes[56]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqPlayerProfileData) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqPlayerProfileData) ProtoMessage() {}

func (x *ReqPlayerProfileData) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[56]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqPlayerProfileData.ProtoReflect.Descriptor instead.
func (*ReqPlayerProfileData) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{56}
}

func (x *ReqPlayerProfileData) GetDwUin() int64 {
	if x != nil {
		return x.DwUin
	}
	return 0
}

type ResPlayerProfileData struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DwUin       int64  `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"`
	ImageFrame  int32  `protobuf:"varint,2,opt,name=ImageFrame,proto3" json:"ImageFrame,omitempty"`
	ImageIcon   int32  `protobuf:"varint,3,opt,name=ImageIcon,proto3" json:"ImageIcon,omitempty"`
	DecorateCnt int32  `protobuf:"varint,4,opt,name=DecorateCnt,proto3" json:"DecorateCnt,omitempty"`
	NickName    string `protobuf:"bytes,5,opt,name=NickName,proto3" json:"NickName,omitempty"`
	PicURL      string `protobuf:"bytes,6,opt,name=PicURL,proto3" json:"PicURL,omitempty"`
	UnlockFrame string `protobuf:"bytes,7,opt,name=UnlockFrame,proto3" json:"UnlockFrame,omitempty"`
	UnlockIcon  string `protobuf:"bytes,8,opt,name=UnlockIcon,proto3" json:"UnlockIcon,omitempty"`
	ActiveTime  int32  `protobuf:"varint,9,opt,name=ActiveTime,proto3" json:"ActiveTime,omitempty"`
}

func (x *ResPlayerProfileData) Reset() {
	*x = ResPlayerProfileData{}
	mi := &file_proto_Gameapi_proto_msgTypes[57]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResPlayerProfileData) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResPlayerProfileData) ProtoMessage() {}

func (x *ResPlayerProfileData) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[57]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResPlayerProfileData.ProtoReflect.Descriptor instead.
func (*ResPlayerProfileData) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{57}
}

func (x *ResPlayerProfileData) GetDwUin() int64 {
	if x != nil {
		return x.DwUin
	}
	return 0
}

func (x *ResPlayerProfileData) GetImageFrame() int32 {
	if x != nil {
		return x.ImageFrame
	}
	return 0
}

func (x *ResPlayerProfileData) GetImageIcon() int32 {
	if x != nil {
		return x.ImageIcon
	}
	return 0
}

func (x *ResPlayerProfileData) GetDecorateCnt() int32 {
	if x != nil {
		return x.DecorateCnt
	}
	return 0
}

func (x *ResPlayerProfileData) GetNickName() string {
	if x != nil {
		return x.NickName
	}
	return ""
}

func (x *ResPlayerProfileData) GetPicURL() string {
	if x != nil {
		return x.PicURL
	}
	return ""
}

func (x *ResPlayerProfileData) GetUnlockFrame() string {
	if x != nil {
		return x.UnlockFrame
	}
	return ""
}

func (x *ResPlayerProfileData) GetUnlockIcon() string {
	if x != nil {
		return x.UnlockIcon
	}
	return ""
}

func (x *ResPlayerProfileData) GetActiveTime() int32 {
	if x != nil {
		return x.ActiveTime
	}
	return 0
}

// /请求玩家身份信息
type ReqPlayerBriefProfileData struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"`
}

func (x *ReqPlayerBriefProfileData) Reset() {
	*x = ReqPlayerBriefProfileData{}
	mi := &file_proto_Gameapi_proto_msgTypes[58]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqPlayerBriefProfileData) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqPlayerBriefProfileData) ProtoMessage() {}

func (x *ReqPlayerBriefProfileData) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[58]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqPlayerBriefProfileData.ProtoReflect.Descriptor instead.
func (*ReqPlayerBriefProfileData) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{58}
}

func (x *ReqPlayerBriefProfileData) GetDwUin() int64 {
	if x != nil {
		return x.DwUin
	}
	return 0
}

type ResPlayerBriefProfileData struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DwUin       int64  `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"`
	ImageFrame  int32  `protobuf:"varint,2,opt,name=ImageFrame,proto3" json:"ImageFrame,omitempty"`
	ImageIcon   int32  `protobuf:"varint,3,opt,name=ImageIcon,proto3" json:"ImageIcon,omitempty"`
	DecorateCnt int32  `protobuf:"varint,4,opt,name=DecorateCnt,proto3" json:"DecorateCnt,omitempty"`
	NickName    string `protobuf:"bytes,5,opt,name=NickName,proto3" json:"NickName,omitempty"`
	PicURL      string `protobuf:"bytes,6,opt,name=PicURL,proto3" json:"PicURL,omitempty"`
	ActiveTime  int32  `protobuf:"varint,7,opt,name=ActiveTime,proto3" json:"ActiveTime,omitempty"`
}

func (x *ResPlayerBriefProfileData) Reset() {
	*x = ResPlayerBriefProfileData{}
	mi := &file_proto_Gameapi_proto_msgTypes[59]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResPlayerBriefProfileData) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResPlayerBriefProfileData) ProtoMessage() {}

func (x *ResPlayerBriefProfileData) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[59]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResPlayerBriefProfileData.ProtoReflect.Descriptor instead.
func (*ResPlayerBriefProfileData) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{59}
}

func (x *ResPlayerBriefProfileData) GetDwUin() int64 {
	if x != nil {
		return x.DwUin
	}
	return 0
}

func (x *ResPlayerBriefProfileData) GetImageFrame() int32 {
	if x != nil {
		return x.ImageFrame
	}
	return 0
}

func (x *ResPlayerBriefProfileData) GetImageIcon() int32 {
	if x != nil {
		return x.ImageIcon
	}
	return 0
}

func (x *ResPlayerBriefProfileData) GetDecorateCnt() int32 {
	if x != nil {
		return x.DecorateCnt
	}
	return 0
}

func (x *ResPlayerBriefProfileData) GetNickName() string {
	if x != nil {
		return x.NickName
	}
	return ""
}

func (x *ResPlayerBriefProfileData) GetPicURL() string {
	if x != nil {
		return x.PicURL
	}
	return ""
}

func (x *ResPlayerBriefProfileData) GetActiveTime() int32 {
	if x != nil {
		return x.ActiveTime
	}
	return 0
}

// 设置能量倍数
type ReqSetEnergyMul struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	EnergyMul int32 `protobuf:"varint,1,opt,name=EnergyMul,proto3" json:"EnergyMul,omitempty"`
}

func (x *ReqSetEnergyMul) Reset() {
	*x = ReqSetEnergyMul{}
	mi := &file_proto_Gameapi_proto_msgTypes[60]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqSetEnergyMul) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqSetEnergyMul) ProtoMessage() {}

func (x *ReqSetEnergyMul) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[60]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqSetEnergyMul.ProtoReflect.Descriptor instead.
func (*ReqSetEnergyMul) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{60}
}

func (x *ReqSetEnergyMul) GetEnergyMul() int32 {
	if x != nil {
		return x.EnergyMul
	}
	return 0
}

type ResSetEnergyMul struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ResultCode RES_CODE `protobuf:"varint,1,opt,name=ResultCode,proto3,enum=tutorial.RES_CODE" json:"ResultCode,omitempty"`
	Msg        string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResSetEnergyMul) Reset() {
	*x = ResSetEnergyMul{}
	mi := &file_proto_Gameapi_proto_msgTypes[61]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResSetEnergyMul) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResSetEnergyMul) ProtoMessage() {}

func (x *ResSetEnergyMul) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[61]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResSetEnergyMul.ProtoReflect.Descriptor instead.
func (*ResSetEnergyMul) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{61}
}

func (x *ResSetEnergyMul) GetResultCode() RES_CODE {
	if x != nil {
		return x.ResultCode
	}
	return RES_CODE_FAIL
}

func (x *ResSetEnergyMul) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type BaseInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	EnergyMul  int32 `protobuf:"varint,1,opt,name=EnergyMul,proto3" json:"EnergyMul,omitempty"`   // 能量倍数
	IsFirstBuy bool  `protobuf:"varint,2,opt,name=IsFirstBuy,proto3" json:"IsFirstBuy,omitempty"` // 是否已第一次购买体力商店
	EnergyBuy  int32 `protobuf:"varint,3,opt,name=EnergyBuy,proto3" json:"EnergyBuy,omitempty"`   // 今日体力商店购买次数
	EnergyAD   int32 `protobuf:"varint,4,opt,name=EnergyAD,proto3" json:"EnergyAD,omitempty"`     // 今日看广告获取体力次数
}

func (x *BaseInfo) Reset() {
	*x = BaseInfo{}
	mi := &file_proto_Gameapi_proto_msgTypes[62]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *BaseInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*BaseInfo) ProtoMessage() {}

func (x *BaseInfo) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[62]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use BaseInfo.ProtoReflect.Descriptor instead.
func (*BaseInfo) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{62}
}

func (x *BaseInfo) GetEnergyMul() int32 {
	if x != nil {
		return x.EnergyMul
	}
	return 0
}

func (x *BaseInfo) GetIsFirstBuy() bool {
	if x != nil {
		return x.IsFirstBuy
	}
	return false
}

func (x *BaseInfo) GetEnergyBuy() int32 {
	if x != nil {
		return x.EnergyBuy
	}
	return 0
}

func (x *BaseInfo) GetEnergyAD() int32 {
	if x != nil {
		return x.EnergyAD
	}
	return 0
}

type ReqUserInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqUserInfo) Reset() {
	*x = ReqUserInfo{}
	mi := &file_proto_Gameapi_proto_msgTypes[63]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqUserInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqUserInfo) ProtoMessage() {}

func (x *ReqUserInfo) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[63]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqUserInfo.ProtoReflect.Descriptor instead.
func (*ReqUserInfo) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{63}
}

type UserInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Uid         int64           `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"`
	Nickname    string          `protobuf:"bytes,2,opt,name=Nickname,proto3" json:"Nickname,omitempty"`
	Avatar      int32           `protobuf:"varint,3,opt,name=Avatar,proto3" json:"Avatar,omitempty"`
	Face        int32           `protobuf:"varint,4,opt,name=Face,proto3" json:"Face,omitempty"`
	DecorateCnt int32           `protobuf:"varint,5,opt,name=DecorateCnt,proto3" json:"DecorateCnt,omitempty"`
	AvatarList  []*AvatarInfo   `protobuf:"bytes,6,rep,name=AvatarList,proto3" json:"AvatarList,omitempty"`
	FaceList    []*FaceInfo     `protobuf:"bytes,7,rep,name=FaceList,proto3" json:"FaceList,omitempty"`
	Login       int32           `protobuf:"varint,8,opt,name=Login,proto3" json:"Login,omitempty"`                                                                                                 // 登录
	PetName     string          `protobuf:"bytes,9,opt,name=PetName,proto3" json:"PetName,omitempty"`                                                                                              //宠物名字
	EmojiList   []*EmojiInfo    `protobuf:"bytes,10,rep,name=EmojiList,proto3" json:"EmojiList,omitempty"`                                                                                         // 表情列表
	SetEmoji    map[int32]int32 `protobuf:"bytes,11,rep,name=SetEmoji,proto3" json:"SetEmoji,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 已设置的头像
}

func (x *UserInfo) Reset() {
	*x = UserInfo{}
	mi := &file_proto_Gameapi_proto_msgTypes[64]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *UserInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UserInfo) ProtoMessage() {}

func (x *UserInfo) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[64]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UserInfo.ProtoReflect.Descriptor instead.
func (*UserInfo) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{64}
}

func (x *UserInfo) GetUid() int64 {
	if x != nil {
		return x.Uid
	}
	return 0
}

func (x *UserInfo) GetNickname() string {
	if x != nil {
		return x.Nickname
	}
	return ""
}

func (x *UserInfo) GetAvatar() int32 {
	if x != nil {
		return x.Avatar
	}
	return 0
}

func (x *UserInfo) GetFace() int32 {
	if x != nil {
		return x.Face
	}
	return 0
}

func (x *UserInfo) GetDecorateCnt() int32 {
	if x != nil {
		return x.DecorateCnt
	}
	return 0
}

func (x *UserInfo) GetAvatarList() []*AvatarInfo {
	if x != nil {
		return x.AvatarList
	}
	return nil
}

func (x *UserInfo) GetFaceList() []*FaceInfo {
	if x != nil {
		return x.FaceList
	}
	return nil
}

func (x *UserInfo) GetLogin() int32 {
	if x != nil {
		return x.Login
	}
	return 0
}

func (x *UserInfo) GetPetName() string {
	if x != nil {
		return x.PetName
	}
	return ""
}

func (x *UserInfo) GetEmojiList() []*EmojiInfo {
	if x != nil {
		return x.EmojiList
	}
	return nil
}

func (x *UserInfo) GetSetEmoji() map[int32]int32 {
	if x != nil {
		return x.SetEmoji
	}
	return nil
}

// 设置昵称
type ReqSetName struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"`
}

func (x *ReqSetName) Reset() {
	*x = ReqSetName{}
	mi := &file_proto_Gameapi_proto_msgTypes[65]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqSetName) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqSetName) ProtoMessage() {}

func (x *ReqSetName) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[65]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqSetName.ProtoReflect.Descriptor instead.
func (*ReqSetName) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{65}
}

func (x *ReqSetName) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

type ResSetName struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ResultCode RES_CODE `protobuf:"varint,1,opt,name=ResultCode,proto3,enum=tutorial.RES_CODE" json:"ResultCode,omitempty"`
	Msg        string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResSetName) Reset() {
	*x = ResSetName{}
	mi := &file_proto_Gameapi_proto_msgTypes[66]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResSetName) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResSetName) ProtoMessage() {}

func (x *ResSetName) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[66]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResSetName.ProtoReflect.Descriptor instead.
func (*ResSetName) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{66}
}

func (x *ResSetName) GetResultCode() RES_CODE {
	if x != nil {
		return x.ResultCode
	}
	return RES_CODE_FAIL
}

func (x *ResSetName) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 设置宠物名字
type ReqSetPetName struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"`
}

func (x *ReqSetPetName) Reset() {
	*x = ReqSetPetName{}
	mi := &file_proto_Gameapi_proto_msgTypes[67]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqSetPetName) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqSetPetName) ProtoMessage() {}

func (x *ReqSetPetName) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[67]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqSetPetName.ProtoReflect.Descriptor instead.
func (*ReqSetPetName) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{67}
}

func (x *ReqSetPetName) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

type ResSetPetName struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ResultCode RES_CODE `protobuf:"varint,1,opt,name=ResultCode,proto3,enum=tutorial.RES_CODE" json:"ResultCode,omitempty"`
	Msg        string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResSetPetName) Reset() {
	*x = ResSetPetName{}
	mi := &file_proto_Gameapi_proto_msgTypes[68]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResSetPetName) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResSetPetName) ProtoMessage() {}

func (x *ResSetPetName) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[68]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResSetPetName.ProtoReflect.Descriptor instead.
func (*ResSetPetName) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{68}
}

func (x *ResSetPetName) GetResultCode() RES_CODE {
	if x != nil {
		return x.ResultCode
	}
	return RES_CODE_FAIL
}

func (x *ResSetPetName) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 购买能量
type ReqBuyEnergy struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Energy int32 `protobuf:"varint,1,opt,name=Energy,proto3" json:"Energy,omitempty"` // 购买体力
}

func (x *ReqBuyEnergy) Reset() {
	*x = ReqBuyEnergy{}
	mi := &file_proto_Gameapi_proto_msgTypes[69]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqBuyEnergy) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqBuyEnergy) ProtoMessage() {}

func (x *ReqBuyEnergy) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[69]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqBuyEnergy.ProtoReflect.Descriptor instead.
func (*ReqBuyEnergy) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{69}
}

func (x *ReqBuyEnergy) GetEnergy() int32 {
	if x != nil {
		return x.Energy
	}
	return 0
}

type ResBuyEnergy struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResBuyEnergy) Reset() {
	*x = ResBuyEnergy{}
	mi := &file_proto_Gameapi_proto_msgTypes[70]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResBuyEnergy) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResBuyEnergy) ProtoMessage() {}

func (x *ResBuyEnergy) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[70]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResBuyEnergy.ProtoReflect.Descriptor instead.
func (*ResBuyEnergy) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{70}
}

func (x *ResBuyEnergy) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResBuyEnergy) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 看广告获取能量
type ReqGetEnergyByAD struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqGetEnergyByAD) Reset() {
	*x = ReqGetEnergyByAD{}
	mi := &file_proto_Gameapi_proto_msgTypes[71]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqGetEnergyByAD) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqGetEnergyByAD) ProtoMessage() {}

func (x *ReqGetEnergyByAD) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[71]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqGetEnergyByAD.ProtoReflect.Descriptor instead.
func (*ReqGetEnergyByAD) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{71}
}

type ResGetEnergyByAD struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResGetEnergyByAD) Reset() {
	*x = ResGetEnergyByAD{}
	mi := &file_proto_Gameapi_proto_msgTypes[72]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResGetEnergyByAD) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResGetEnergyByAD) ProtoMessage() {}

func (x *ResGetEnergyByAD) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[72]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResGetEnergyByAD.ProtoReflect.Descriptor instead.
func (*ResGetEnergyByAD) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{72}
}

func (x *ResGetEnergyByAD) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResGetEnergyByAD) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type ReqGetHandbookReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"`
}

func (x *ReqGetHandbookReward) Reset() {
	*x = ReqGetHandbookReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[73]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqGetHandbookReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqGetHandbookReward) ProtoMessage() {}

func (x *ReqGetHandbookReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[73]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqGetHandbookReward.ProtoReflect.Descriptor instead.
func (*ReqGetHandbookReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{73}
}

func (x *ReqGetHandbookReward) GetChessId() int32 {
	if x != nil {
		return x.ChessId
	}
	return 0
}

type ResGetHandbookReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResGetHandbookReward) Reset() {
	*x = ResGetHandbookReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[74]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResGetHandbookReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResGetHandbookReward) ProtoMessage() {}

func (x *ResGetHandbookReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[74]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResGetHandbookReward.ProtoReflect.Descriptor instead.
func (*ResGetHandbookReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{74}
}

func (x *ResGetHandbookReward) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResGetHandbookReward) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type HandbookInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"`
	Status  int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"`
}

func (x *HandbookInfo) Reset() {
	*x = HandbookInfo{}
	mi := &file_proto_Gameapi_proto_msgTypes[75]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *HandbookInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HandbookInfo) ProtoMessage() {}

func (x *HandbookInfo) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[75]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HandbookInfo.ProtoReflect.Descriptor instead.
func (*HandbookInfo) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{75}
}

func (x *HandbookInfo) GetChessId() int32 {
	if x != nil {
		return x.ChessId
	}
	return 0
}

func (x *HandbookInfo) GetStatus() int32 {
	if x != nil {
		return x.Status
	}
	return 0
}

type Handbook struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Handbooks []*HandbookInfo `protobuf:"bytes,1,rep,name=Handbooks,proto3" json:"Handbooks,omitempty"`
}

func (x *Handbook) Reset() {
	*x = Handbook{}
	mi := &file_proto_Gameapi_proto_msgTypes[76]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Handbook) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Handbook) ProtoMessage() {}

func (x *Handbook) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[76]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Handbook.ProtoReflect.Descriptor instead.
func (*Handbook) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{76}
}

func (x *Handbook) GetHandbooks() []*HandbookInfo {
	if x != nil {
		return x.Handbooks
	}
	return nil
}

type RegHandbookAllReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Type string `protobuf:"bytes,1,opt,name=Type,proto3" json:"Type,omitempty"` // "棋子系列 A B C"
}

func (x *RegHandbookAllReward) Reset() {
	*x = RegHandbookAllReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[77]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RegHandbookAllReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RegHandbookAllReward) ProtoMessage() {}

func (x *RegHandbookAllReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[77]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RegHandbookAllReward.ProtoReflect.Descriptor instead.
func (*RegHandbookAllReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{77}
}

func (x *RegHandbookAllReward) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

type ResHandbookAllReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResHandbookAllReward) Reset() {
	*x = ResHandbookAllReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[78]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResHandbookAllReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResHandbookAllReward) ProtoMessage() {}

func (x *ResHandbookAllReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[78]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResHandbookAllReward.ProtoReflect.Descriptor instead.
func (*ResHandbookAllReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{78}
}

func (x *ResHandbookAllReward) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResHandbookAllReward) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type ReqRewardOrder struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	OrderId    int32            `protobuf:"varint,1,opt,name=OrderId,proto3" json:"OrderId,omitempty"`
	MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
}

func (x *ReqRewardOrder) Reset() {
	*x = ReqRewardOrder{}
	mi := &file_proto_Gameapi_proto_msgTypes[79]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqRewardOrder) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqRewardOrder) ProtoMessage() {}

func (x *ReqRewardOrder) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[79]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqRewardOrder.ProtoReflect.Descriptor instead.
func (*ReqRewardOrder) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{79}
}

func (x *ReqRewardOrder) GetOrderId() int32 {
	if x != nil {
		return x.OrderId
	}
	return 0
}

func (x *ReqRewardOrder) GetMChessData() map[string]int32 {
	if x != nil {
		return x.MChessData
	}
	return nil
}

type ResRewardOrder struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResRewardOrder) Reset() {
	*x = ResRewardOrder{}
	mi := &file_proto_Gameapi_proto_msgTypes[80]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResRewardOrder) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResRewardOrder) ProtoMessage() {}

func (x *ResRewardOrder) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[80]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResRewardOrder.ProtoReflect.Descriptor instead.
func (*ResRewardOrder) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{80}
}

func (x *ResRewardOrder) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResRewardOrder) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 删除订单
type ReqDelOrder struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	OrderId int32 `protobuf:"varint,1,opt,name=OrderId,proto3" json:"OrderId,omitempty"`
}

func (x *ReqDelOrder) Reset() {
	*x = ReqDelOrder{}
	mi := &file_proto_Gameapi_proto_msgTypes[81]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqDelOrder) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqDelOrder) ProtoMessage() {}

func (x *ReqDelOrder) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[81]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqDelOrder.ProtoReflect.Descriptor instead.
func (*ReqDelOrder) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{81}
}

func (x *ReqDelOrder) GetOrderId() int32 {
	if x != nil {
		return x.OrderId
	}
	return 0
}

type ResDelOrder struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResDelOrder) Reset() {
	*x = ResDelOrder{}
	mi := &file_proto_Gameapi_proto_msgTypes[82]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResDelOrder) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResDelOrder) ProtoMessage() {}

func (x *ResDelOrder) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[82]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResDelOrder.ProtoReflect.Descriptor instead.
func (*ResDelOrder) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{82}
}

func (x *ResDelOrder) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResDelOrder) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 获取出售棋子获得的星星数量
type ReqSellChessNum struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"`
}

func (x *ReqSellChessNum) Reset() {
	*x = ReqSellChessNum{}
	mi := &file_proto_Gameapi_proto_msgTypes[83]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqSellChessNum) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqSellChessNum) ProtoMessage() {}

func (x *ReqSellChessNum) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[83]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqSellChessNum.ProtoReflect.Descriptor instead.
func (*ReqSellChessNum) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{83}
}

func (x *ReqSellChessNum) GetChessId() int32 {
	if x != nil {
		return x.ChessId
	}
	return 0
}

type ResSellChessNum struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Num int32 `protobuf:"varint,1,opt,name=Num,proto3" json:"Num,omitempty"`
}

func (x *ResSellChessNum) Reset() {
	*x = ResSellChessNum{}
	mi := &file_proto_Gameapi_proto_msgTypes[84]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResSellChessNum) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResSellChessNum) ProtoMessage() {}

func (x *ResSellChessNum) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[84]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResSellChessNum.ProtoReflect.Descriptor instead.
func (*ResSellChessNum) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{84}
}

func (x *ResSellChessNum) GetNum() int32 {
	if x != nil {
		return x.Num
	}
	return 0
}

type Order struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id      int32   `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`
	ChessId []int32 `protobuf:"varint,2,rep,packed,name=ChessId,proto3" json:"ChessId,omitempty"`
	Type    int32   `protobuf:"varint,3,opt,name=type,proto3" json:"type,omitempty"`
}

func (x *Order) Reset() {
	*x = Order{}
	mi := &file_proto_Gameapi_proto_msgTypes[85]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Order) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Order) ProtoMessage() {}

func (x *Order) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[85]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Order.ProtoReflect.Descriptor instead.
func (*Order) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{85}
}

func (x *Order) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *Order) GetChessId() []int32 {
	if x != nil {
		return x.ChessId
	}
	return nil
}

func (x *Order) GetType() int32 {
	if x != nil {
		return x.Type
	}
	return 0
}

type ResOrderList struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	OrderList []*Order `protobuf:"bytes,1,rep,name=OrderList,proto3" json:"OrderList,omitempty"`
}

func (x *ResOrderList) Reset() {
	*x = ResOrderList{}
	mi := &file_proto_Gameapi_proto_msgTypes[86]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResOrderList) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResOrderList) ProtoMessage() {}

func (x *ResOrderList) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[86]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResOrderList.ProtoReflect.Descriptor instead.
func (*ResOrderList) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{86}
}

func (x *ResOrderList) GetOrderList() []*Order {
	if x != nil {
		return x.OrderList
	}
	return nil
}

// 装饰信息
type ResDecorateInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AreaId      int32   `protobuf:"varint,1,opt,name=AreaId,proto3" json:"AreaId,omitempty"`
	MFinishList []int32 `protobuf:"varint,2,rep,packed,name=mFinishList,proto3" json:"mFinishList,omitempty"`
}

func (x *ResDecorateInfo) Reset() {
	*x = ResDecorateInfo{}
	mi := &file_proto_Gameapi_proto_msgTypes[87]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResDecorateInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResDecorateInfo) ProtoMessage() {}

func (x *ResDecorateInfo) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[87]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResDecorateInfo.ProtoReflect.Descriptor instead.
func (*ResDecorateInfo) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{87}
}

func (x *ResDecorateInfo) GetAreaId() int32 {
	if x != nil {
		return x.AreaId
	}
	return 0
}

func (x *ResDecorateInfo) GetMFinishList() []int32 {
	if x != nil {
		return x.MFinishList
	}
	return nil
}

// 请求装饰基础信息
type ReqDecorate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AreaId     int32 `protobuf:"varint,1,opt,name=AreaId,proto3" json:"AreaId,omitempty"`
	DecorateId int32 `protobuf:"varint,2,opt,name=DecorateId,proto3" json:"DecorateId,omitempty"`
}

func (x *ReqDecorate) Reset() {
	*x = ReqDecorate{}
	mi := &file_proto_Gameapi_proto_msgTypes[88]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqDecorate) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqDecorate) ProtoMessage() {}

func (x *ReqDecorate) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[88]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqDecorate.ProtoReflect.Descriptor instead.
func (*ReqDecorate) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{88}
}

func (x *ReqDecorate) GetAreaId() int32 {
	if x != nil {
		return x.AreaId
	}
	return 0
}

func (x *ReqDecorate) GetDecorateId() int32 {
	if x != nil {
		return x.DecorateId
	}
	return 0
}

type ResDecorate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResDecorate) Reset() {
	*x = ResDecorate{}
	mi := &file_proto_Gameapi_proto_msgTypes[89]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResDecorate) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResDecorate) ProtoMessage() {}

func (x *ResDecorate) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[89]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResDecorate.ProtoReflect.Descriptor instead.
func (*ResDecorate) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{89}
}

func (x *ResDecorate) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResDecorate) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 一键装饰
type ReqDecorateAll struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqDecorateAll) Reset() {
	*x = ReqDecorateAll{}
	mi := &file_proto_Gameapi_proto_msgTypes[90]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqDecorateAll) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqDecorateAll) ProtoMessage() {}

func (x *ReqDecorateAll) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[90]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqDecorateAll.ProtoReflect.Descriptor instead.
func (*ReqDecorateAll) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{90}
}

type ResDecorateAll struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResDecorateAll) Reset() {
	*x = ResDecorateAll{}
	mi := &file_proto_Gameapi_proto_msgTypes[91]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResDecorateAll) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResDecorateAll) ProtoMessage() {}

func (x *ResDecorateAll) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[91]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResDecorateAll.ProtoReflect.Descriptor instead.
func (*ResDecorateAll) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{91}
}

func (x *ResDecorateAll) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResDecorateAll) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 请求Gm命令
type ReqGmCommand struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Command string `protobuf:"bytes,1,opt,name=Command,proto3" json:"Command,omitempty"`
	Args    string `protobuf:"bytes,2,opt,name=args,proto3" json:"args,omitempty"`
}

func (x *ReqGmCommand) Reset() {
	*x = ReqGmCommand{}
	mi := &file_proto_Gameapi_proto_msgTypes[92]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqGmCommand) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqGmCommand) ProtoMessage() {}

func (x *ReqGmCommand) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[92]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqGmCommand.ProtoReflect.Descriptor instead.
func (*ReqGmCommand) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{92}
}

func (x *ReqGmCommand) GetCommand() string {
	if x != nil {
		return x.Command
	}
	return ""
}

func (x *ReqGmCommand) GetArgs() string {
	if x != nil {
		return x.Args
	}
	return ""
}

// --------------卡牌------------
type Card struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id    int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`
	Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"`
}

func (x *Card) Reset() {
	*x = Card{}
	mi := &file_proto_Gameapi_proto_msgTypes[93]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Card) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Card) ProtoMessage() {}

func (x *Card) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[93]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Card.ProtoReflect.Descriptor instead.
func (*Card) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{93}
}

func (x *Card) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *Card) GetCount() int32 {
	if x != nil {
		return x.Count
	}
	return 0
}

type ReqCardInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqCardInfo) Reset() {
	*x = ReqCardInfo{}
	mi := &file_proto_Gameapi_proto_msgTypes[94]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqCardInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqCardInfo) ProtoMessage() {}

func (x *ReqCardInfo) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[94]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqCardInfo.ProtoReflect.Descriptor instead.
func (*ReqCardInfo) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{94}
}

type ResCardInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CardList    []*Card         `protobuf:"bytes,1,rep,name=CardList,proto3" json:"CardList,omitempty"`                                                                                            // 卡牌列表
	ExStar      int32           `protobuf:"varint,2,opt,name=ExStar,proto3" json:"ExStar,omitempty"`                                                                                               // 额外星级
	Status      int32           `protobuf:"varint,3,opt,name=Status,proto3" json:"Status,omitempty"`                                                                                               // 全收集奖励0:未领取 1:已领取
	CollectId   []int32         `protobuf:"varint,4,rep,packed,name=CollectId,proto3" json:"CollectId,omitempty"`                                                                                  // 已领取的收集奖励
	ExTimes     int32           `protobuf:"varint,5,opt,name=ExTimes,proto3" json:"ExTimes,omitempty"`                                                                                             //剩余交换次数
	ReqTimes    int32           `protobuf:"varint,6,opt,name=ReqTimes,proto3" json:"ReqTimes,omitempty"`                                                                                           //剩余请求次数
	AllCard     map[int32]int32 `protobuf:"bytes,7,rep,name=AllCard,proto3" json:"AllCard,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`    // 万能卡牌
	EndTime     int32           `protobuf:"varint,8,opt,name=EndTime,proto3" json:"EndTime,omitempty"`                                                                                             //周期结束时间
	ReqUid      []int64         `protobuf:"varint,9,rep,packed,name=ReqUid,proto3" json:"ReqUid,omitempty"`                                                                                        // 今日已请求的Uid
	ExUid       []int64         `protobuf:"varint,10,rep,packed,name=ExUid,proto3" json:"ExUid,omitempty"`                                                                                         // 今日已置换的Uid
	GoldTimes   int32           `protobuf:"varint,11,opt,name=GoldTimes,proto3" json:"GoldTimes,omitempty"`                                                                                        //剩余金卡交换次数
	Round       int32           `protobuf:"varint,12,opt,name=Round,proto3" json:"Round,omitempty"`                                                                                                // 轮次
	Handbook    map[int32]int32 `protobuf:"bytes,13,rep,name=Handbook,proto3" json:"Handbook,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 图鉴 CardId => Status 1:已解锁 2:已领取
	SeasonFirst bool            `protobuf:"varint,14,opt,name=SeasonFirst,proto3" json:"SeasonFirst,omitempty"`                                                                                    // 是否已领取赛季初奖励
}

func (x *ResCardInfo) Reset() {
	*x = ResCardInfo{}
	mi := &file_proto_Gameapi_proto_msgTypes[95]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResCardInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResCardInfo) ProtoMessage() {}

func (x *ResCardInfo) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[95]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResCardInfo.ProtoReflect.Descriptor instead.
func (*ResCardInfo) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{95}
}

func (x *ResCardInfo) GetCardList() []*Card {
	if x != nil {
		return x.CardList
	}
	return nil
}

func (x *ResCardInfo) GetExStar() int32 {
	if x != nil {
		return x.ExStar
	}
	return 0
}

func (x *ResCardInfo) GetStatus() int32 {
	if x != nil {
		return x.Status
	}
	return 0
}

func (x *ResCardInfo) GetCollectId() []int32 {
	if x != nil {
		return x.CollectId
	}
	return nil
}

func (x *ResCardInfo) GetExTimes() int32 {
	if x != nil {
		return x.ExTimes
	}
	return 0
}

func (x *ResCardInfo) GetReqTimes() int32 {
	if x != nil {
		return x.ReqTimes
	}
	return 0
}

func (x *ResCardInfo) GetAllCard() map[int32]int32 {
	if x != nil {
		return x.AllCard
	}
	return nil
}

func (x *ResCardInfo) GetEndTime() int32 {
	if x != nil {
		return x.EndTime
	}
	return 0
}

func (x *ResCardInfo) GetReqUid() []int64 {
	if x != nil {
		return x.ReqUid
	}
	return nil
}

func (x *ResCardInfo) GetExUid() []int64 {
	if x != nil {
		return x.ExUid
	}
	return nil
}

func (x *ResCardInfo) GetGoldTimes() int32 {
	if x != nil {
		return x.GoldTimes
	}
	return 0
}

func (x *ResCardInfo) GetRound() int32 {
	if x != nil {
		return x.Round
	}
	return 0
}

func (x *ResCardInfo) GetHandbook() map[int32]int32 {
	if x != nil {
		return x.Handbook
	}
	return nil
}

func (x *ResCardInfo) GetSeasonFirst() bool {
	if x != nil {
		return x.SeasonFirst
	}
	return false
}

type ResNotifyCardTimes struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ExTimes   int32   `protobuf:"varint,1,opt,name=ExTimes,proto3" json:"ExTimes,omitempty"`      //剩余兑换次数
	ReqTimes  int32   `protobuf:"varint,2,opt,name=ReqTimes,proto3" json:"ReqTimes,omitempty"`    //剩余请求次数
	ReqUid    []int64 `protobuf:"varint,3,rep,packed,name=ReqUid,proto3" json:"ReqUid,omitempty"` // 今日已请求的Uid
	ExUid     []int64 `protobuf:"varint,4,rep,packed,name=ExUid,proto3" json:"ExUid,omitempty"`   // 今日已置换的Uid
	GoldTimes int32   `protobuf:"varint,5,opt,name=GoldTimes,proto3" json:"GoldTimes,omitempty"`  //剩余金卡交换次数
}

func (x *ResNotifyCardTimes) Reset() {
	*x = ResNotifyCardTimes{}
	mi := &file_proto_Gameapi_proto_msgTypes[96]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResNotifyCardTimes) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResNotifyCardTimes) ProtoMessage() {}

func (x *ResNotifyCardTimes) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[96]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResNotifyCardTimes.ProtoReflect.Descriptor instead.
func (*ResNotifyCardTimes) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{96}
}

func (x *ResNotifyCardTimes) GetExTimes() int32 {
	if x != nil {
		return x.ExTimes
	}
	return 0
}

func (x *ResNotifyCardTimes) GetReqTimes() int32 {
	if x != nil {
		return x.ReqTimes
	}
	return 0
}

func (x *ResNotifyCardTimes) GetReqUid() []int64 {
	if x != nil {
		return x.ReqUid
	}
	return nil
}

func (x *ResNotifyCardTimes) GetExUid() []int64 {
	if x != nil {
		return x.ExUid
	}
	return nil
}

func (x *ResNotifyCardTimes) GetGoldTimes() int32 {
	if x != nil {
		return x.GoldTimes
	}
	return 0
}

type ReqCardSeasonFirstReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqCardSeasonFirstReward) Reset() {
	*x = ReqCardSeasonFirstReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[97]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqCardSeasonFirstReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqCardSeasonFirstReward) ProtoMessage() {}

func (x *ReqCardSeasonFirstReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[97]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqCardSeasonFirstReward.ProtoReflect.Descriptor instead.
func (*ReqCardSeasonFirstReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{97}
}

type ResCardSeasonFirstReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResCardSeasonFirstReward) Reset() {
	*x = ResCardSeasonFirstReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[98]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResCardSeasonFirstReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResCardSeasonFirstReward) ProtoMessage() {}

func (x *ResCardSeasonFirstReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[98]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResCardSeasonFirstReward.ProtoReflect.Descriptor instead.
func (*ResCardSeasonFirstReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{98}
}

func (x *ResCardSeasonFirstReward) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResCardSeasonFirstReward) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 领取卡牌图鉴奖励
type ReqCardHandbookReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CardId int32 `protobuf:"varint,1,opt,name=CardId,proto3" json:"CardId,omitempty"`
}

func (x *ReqCardHandbookReward) Reset() {
	*x = ReqCardHandbookReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[99]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqCardHandbookReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqCardHandbookReward) ProtoMessage() {}

func (x *ReqCardHandbookReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[99]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqCardHandbookReward.ProtoReflect.Descriptor instead.
func (*ReqCardHandbookReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{99}
}

func (x *ReqCardHandbookReward) GetCardId() int32 {
	if x != nil {
		return x.CardId
	}
	return 0
}

type ResCardHandbookReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code   RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg    string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
	CardId int32    `protobuf:"varint,3,opt,name=CardId,proto3" json:"CardId,omitempty"`
}

func (x *ResCardHandbookReward) Reset() {
	*x = ResCardHandbookReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[100]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResCardHandbookReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResCardHandbookReward) ProtoMessage() {}

func (x *ResCardHandbookReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[100]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResCardHandbookReward.ProtoReflect.Descriptor instead.
func (*ResCardHandbookReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{100}
}

func (x *ResCardHandbookReward) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResCardHandbookReward) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

func (x *ResCardHandbookReward) GetCardId() int32 {
	if x != nil {
		return x.CardId
	}
	return 0
}

// 万能卡兑换
type ReqMasterCard struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id     int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`         // 万能卡id 6 普通 7 金卡
	CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` // 兑换的卡id
}

func (x *ReqMasterCard) Reset() {
	*x = ReqMasterCard{}
	mi := &file_proto_Gameapi_proto_msgTypes[101]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqMasterCard) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqMasterCard) ProtoMessage() {}

func (x *ReqMasterCard) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[101]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqMasterCard.ProtoReflect.Descriptor instead.
func (*ReqMasterCard) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{101}
}

func (x *ReqMasterCard) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *ReqMasterCard) GetCardId() int32 {
	if x != nil {
		return x.CardId
	}
	return 0
}

type ResMasterCard struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code     RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg      string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
	MasterId int32    `protobuf:"varint,3,opt,name=MasterId,proto3" json:"MasterId,omitempty"`
	CardId   int32    `protobuf:"varint,4,opt,name=CardId,proto3" json:"CardId,omitempty"`
}

func (x *ResMasterCard) Reset() {
	*x = ResMasterCard{}
	mi := &file_proto_Gameapi_proto_msgTypes[102]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResMasterCard) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResMasterCard) ProtoMessage() {}

func (x *ResMasterCard) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[102]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResMasterCard.ProtoReflect.Descriptor instead.
func (*ResMasterCard) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{102}
}

func (x *ResMasterCard) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResMasterCard) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

func (x *ResMasterCard) GetMasterId() int32 {
	if x != nil {
		return x.MasterId
	}
	return 0
}

func (x *ResMasterCard) GetCardId() int32 {
	if x != nil {
		return x.CardId
	}
	return 0
}

// 领取卡牌系列收集奖励
type ReqCardCollectReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Color int32 `protobuf:"varint,1,opt,name=Color,proto3" json:"Color,omitempty"`
}

func (x *ReqCardCollectReward) Reset() {
	*x = ReqCardCollectReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[103]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqCardCollectReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqCardCollectReward) ProtoMessage() {}

func (x *ReqCardCollectReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[103]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqCardCollectReward.ProtoReflect.Descriptor instead.
func (*ReqCardCollectReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{103}
}

func (x *ReqCardCollectReward) GetColor() int32 {
	if x != nil {
		return x.Color
	}
	return 0
}

type ResCardCollectReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResCardCollectReward) Reset() {
	*x = ResCardCollectReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[104]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResCardCollectReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResCardCollectReward) ProtoMessage() {}

func (x *ResCardCollectReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[104]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResCardCollectReward.ProtoReflect.Descriptor instead.
func (*ResCardCollectReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{104}
}

func (x *ResCardCollectReward) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResCardCollectReward) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 兑换收集星星奖励
type ReqExStarReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`
}

func (x *ReqExStarReward) Reset() {
	*x = ReqExStarReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[105]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqExStarReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqExStarReward) ProtoMessage() {}

func (x *ReqExStarReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[105]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqExStarReward.ProtoReflect.Descriptor instead.
func (*ReqExStarReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{105}
}

func (x *ReqExStarReward) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type ResExStarReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResExStarReward) Reset() {
	*x = ResExStarReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[106]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResExStarReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResExStarReward) ProtoMessage() {}

func (x *ResExStarReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[106]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResExStarReward.ProtoReflect.Descriptor instead.
func (*ResExStarReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{106}
}

func (x *ResExStarReward) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResExStarReward) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 领取全收集奖励
type ReqAllCollectReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqAllCollectReward) Reset() {
	*x = ReqAllCollectReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[107]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqAllCollectReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqAllCollectReward) ProtoMessage() {}

func (x *ReqAllCollectReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[107]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqAllCollectReward.ProtoReflect.Descriptor instead.
func (*ReqAllCollectReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{107}
}

type ResAllCollectReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResAllCollectReward) Reset() {
	*x = ResAllCollectReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[108]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResAllCollectReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResAllCollectReward) ProtoMessage() {}

func (x *ResAllCollectReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[108]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResAllCollectReward.ProtoReflect.Descriptor instead.
func (*ResAllCollectReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{108}
}

func (x *ResAllCollectReward) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResAllCollectReward) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 请求赠送卡片
type ReqCardGive struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Uid    []int64 `protobuf:"varint,1,rep,packed,name=Uid,proto3" json:"Uid,omitempty"`
	CardId int32   `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"`
}

func (x *ReqCardGive) Reset() {
	*x = ReqCardGive{}
	mi := &file_proto_Gameapi_proto_msgTypes[109]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqCardGive) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqCardGive) ProtoMessage() {}

func (x *ReqCardGive) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[109]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqCardGive.ProtoReflect.Descriptor instead.
func (*ReqCardGive) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{109}
}

func (x *ReqCardGive) GetUid() []int64 {
	if x != nil {
		return x.Uid
	}
	return nil
}

func (x *ReqCardGive) GetCardId() int32 {
	if x != nil {
		return x.CardId
	}
	return 0
}

type ResCardGive struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResCardGive) Reset() {
	*x = ResCardGive{}
	mi := &file_proto_Gameapi_proto_msgTypes[110]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResCardGive) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResCardGive) ProtoMessage() {}

func (x *ResCardGive) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[110]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResCardGive.ProtoReflect.Descriptor instead.
func (*ResCardGive) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{110}
}

func (x *ResCardGive) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResCardGive) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 同意请求卡牌
type ReqAgreeCardGive struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // Id
}

func (x *ReqAgreeCardGive) Reset() {
	*x = ReqAgreeCardGive{}
	mi := &file_proto_Gameapi_proto_msgTypes[111]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqAgreeCardGive) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqAgreeCardGive) ProtoMessage() {}

func (x *ReqAgreeCardGive) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[111]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqAgreeCardGive.ProtoReflect.Descriptor instead.
func (*ReqAgreeCardGive) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{111}
}

func (x *ReqAgreeCardGive) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

type ResAgreeCardGive struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
	Id   string   `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"`
}

func (x *ResAgreeCardGive) Reset() {
	*x = ResAgreeCardGive{}
	mi := &file_proto_Gameapi_proto_msgTypes[112]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResAgreeCardGive) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResAgreeCardGive) ProtoMessage() {}

func (x *ResAgreeCardGive) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[112]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResAgreeCardGive.ProtoReflect.Descriptor instead.
func (*ResAgreeCardGive) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{112}
}

func (x *ResAgreeCardGive) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResAgreeCardGive) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

func (x *ResAgreeCardGive) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

// 拒绝请求卡牌
type ReqRefuseCardGive struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // Id
}

func (x *ReqRefuseCardGive) Reset() {
	*x = ReqRefuseCardGive{}
	mi := &file_proto_Gameapi_proto_msgTypes[113]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqRefuseCardGive) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqRefuseCardGive) ProtoMessage() {}

func (x *ReqRefuseCardGive) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[113]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqRefuseCardGive.ProtoReflect.Descriptor instead.
func (*ReqRefuseCardGive) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{113}
}

func (x *ReqRefuseCardGive) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

type ResRefuseCardGive struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
	Id   string   `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"`
}

func (x *ResRefuseCardGive) Reset() {
	*x = ResRefuseCardGive{}
	mi := &file_proto_Gameapi_proto_msgTypes[114]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResRefuseCardGive) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResRefuseCardGive) ProtoMessage() {}

func (x *ResRefuseCardGive) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[114]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResRefuseCardGive.ProtoReflect.Descriptor instead.
func (*ResRefuseCardGive) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{114}
}

func (x *ResRefuseCardGive) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResRefuseCardGive) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

func (x *ResRefuseCardGive) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

// 直接赠送卡牌
type ReqCardSend struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Uid    int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"`
	CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"`
}

func (x *ReqCardSend) Reset() {
	*x = ReqCardSend{}
	mi := &file_proto_Gameapi_proto_msgTypes[115]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqCardSend) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqCardSend) ProtoMessage() {}

func (x *ReqCardSend) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[115]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqCardSend.ProtoReflect.Descriptor instead.
func (*ReqCardSend) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{115}
}

func (x *ReqCardSend) GetUid() int64 {
	if x != nil {
		return x.Uid
	}
	return 0
}

func (x *ReqCardSend) GetCardId() int32 {
	if x != nil {
		return x.CardId
	}
	return 0
}

type ResCardSend struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResCardSend) Reset() {
	*x = ResCardSend{}
	mi := &file_proto_Gameapi_proto_msgTypes[116]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResCardSend) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResCardSend) ProtoMessage() {}

func (x *ResCardSend) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[116]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResCardSend.ProtoReflect.Descriptor instead.
func (*ResCardSend) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{116}
}

func (x *ResCardSend) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResCardSend) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 请求卡牌交换
type ReqCardExchange struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Uid    int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"`
	CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"`
}

func (x *ReqCardExchange) Reset() {
	*x = ReqCardExchange{}
	mi := &file_proto_Gameapi_proto_msgTypes[117]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqCardExchange) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqCardExchange) ProtoMessage() {}

func (x *ReqCardExchange) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[117]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqCardExchange.ProtoReflect.Descriptor instead.
func (*ReqCardExchange) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{117}
}

func (x *ReqCardExchange) GetUid() int64 {
	if x != nil {
		return x.Uid
	}
	return 0
}

func (x *ReqCardExchange) GetCardId() int32 {
	if x != nil {
		return x.CardId
	}
	return 0
}

type ResCardExchange struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResCardExchange) Reset() {
	*x = ResCardExchange{}
	mi := &file_proto_Gameapi_proto_msgTypes[118]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResCardExchange) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResCardExchange) ProtoMessage() {}

func (x *ResCardExchange) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[118]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResCardExchange.ProtoReflect.Descriptor instead.
func (*ResCardExchange) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{118}
}

func (x *ResCardExchange) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResCardExchange) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 选择交换的卡牌
type ReqSelectCardExchange struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id     string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"`
	CardId int32  `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"`
}

func (x *ReqSelectCardExchange) Reset() {
	*x = ReqSelectCardExchange{}
	mi := &file_proto_Gameapi_proto_msgTypes[119]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqSelectCardExchange) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqSelectCardExchange) ProtoMessage() {}

func (x *ReqSelectCardExchange) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[119]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqSelectCardExchange.ProtoReflect.Descriptor instead.
func (*ReqSelectCardExchange) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{119}
}

func (x *ReqSelectCardExchange) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *ReqSelectCardExchange) GetCardId() int32 {
	if x != nil {
		return x.CardId
	}
	return 0
}

type ResSelectCardExchange struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
	Id   string   `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"`
}

func (x *ResSelectCardExchange) Reset() {
	*x = ResSelectCardExchange{}
	mi := &file_proto_Gameapi_proto_msgTypes[120]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResSelectCardExchange) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResSelectCardExchange) ProtoMessage() {}

func (x *ResSelectCardExchange) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[120]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResSelectCardExchange.ProtoReflect.Descriptor instead.
func (*ResSelectCardExchange) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{120}
}

func (x *ResSelectCardExchange) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResSelectCardExchange) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

func (x *ResSelectCardExchange) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

// 同意卡牌交换
type ReqAgreeCardExchange struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"`
}

func (x *ReqAgreeCardExchange) Reset() {
	*x = ReqAgreeCardExchange{}
	mi := &file_proto_Gameapi_proto_msgTypes[121]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqAgreeCardExchange) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqAgreeCardExchange) ProtoMessage() {}

func (x *ReqAgreeCardExchange) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[121]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqAgreeCardExchange.ProtoReflect.Descriptor instead.
func (*ReqAgreeCardExchange) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{121}
}

func (x *ReqAgreeCardExchange) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

type ResAgreeCardExchange struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
	Id   string   `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"`
}

func (x *ResAgreeCardExchange) Reset() {
	*x = ResAgreeCardExchange{}
	mi := &file_proto_Gameapi_proto_msgTypes[122]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResAgreeCardExchange) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResAgreeCardExchange) ProtoMessage() {}

func (x *ResAgreeCardExchange) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[122]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResAgreeCardExchange.ProtoReflect.Descriptor instead.
func (*ResAgreeCardExchange) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{122}
}

func (x *ResAgreeCardExchange) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResAgreeCardExchange) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

func (x *ResAgreeCardExchange) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

// 拒绝选择卡牌进行交换
type ReqRefuseCardSelect struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"`
}

func (x *ReqRefuseCardSelect) Reset() {
	*x = ReqRefuseCardSelect{}
	mi := &file_proto_Gameapi_proto_msgTypes[123]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqRefuseCardSelect) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqRefuseCardSelect) ProtoMessage() {}

func (x *ReqRefuseCardSelect) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[123]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqRefuseCardSelect.ProtoReflect.Descriptor instead.
func (*ReqRefuseCardSelect) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{123}
}

func (x *ReqRefuseCardSelect) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

type ResRefuseCardSelect struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
	Id   string   `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"`
}

func (x *ResRefuseCardSelect) Reset() {
	*x = ResRefuseCardSelect{}
	mi := &file_proto_Gameapi_proto_msgTypes[124]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResRefuseCardSelect) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResRefuseCardSelect) ProtoMessage() {}

func (x *ResRefuseCardSelect) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[124]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResRefuseCardSelect.ProtoReflect.Descriptor instead.
func (*ResRefuseCardSelect) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{124}
}

func (x *ResRefuseCardSelect) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResRefuseCardSelect) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

func (x *ResRefuseCardSelect) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

// 拒绝卡牌交换
type ReqRefuseCardExchange struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"`
}

func (x *ReqRefuseCardExchange) Reset() {
	*x = ReqRefuseCardExchange{}
	mi := &file_proto_Gameapi_proto_msgTypes[125]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqRefuseCardExchange) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqRefuseCardExchange) ProtoMessage() {}

func (x *ReqRefuseCardExchange) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[125]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqRefuseCardExchange.ProtoReflect.Descriptor instead.
func (*ReqRefuseCardExchange) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{125}
}

func (x *ReqRefuseCardExchange) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

type ResRefuseCardExchange struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
	Id   string   `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"`
}

func (x *ResRefuseCardExchange) Reset() {
	*x = ResRefuseCardExchange{}
	mi := &file_proto_Gameapi_proto_msgTypes[126]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResRefuseCardExchange) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResRefuseCardExchange) ProtoMessage() {}

func (x *ResRefuseCardExchange) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[126]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResRefuseCardExchange.ProtoReflect.Descriptor instead.
func (*ResRefuseCardExchange) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{126}
}

func (x *ResRefuseCardExchange) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResRefuseCardExchange) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

func (x *ResRefuseCardExchange) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

// 领取卡牌
type ReqGetFriendCard struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"`
}

func (x *ReqGetFriendCard) Reset() {
	*x = ReqGetFriendCard{}
	mi := &file_proto_Gameapi_proto_msgTypes[127]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqGetFriendCard) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqGetFriendCard) ProtoMessage() {}

func (x *ReqGetFriendCard) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[127]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqGetFriendCard.ProtoReflect.Descriptor instead.
func (*ReqGetFriendCard) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{127}
}

func (x *ReqGetFriendCard) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

type ResGetFriendCard struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code   RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg    string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
	Id     string   `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"`
	CardId int32    `protobuf:"varint,4,opt,name=CardId,proto3" json:"CardId,omitempty"`
}

func (x *ResGetFriendCard) Reset() {
	*x = ResGetFriendCard{}
	mi := &file_proto_Gameapi_proto_msgTypes[128]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResGetFriendCard) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResGetFriendCard) ProtoMessage() {}

func (x *ResGetFriendCard) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[128]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResGetFriendCard.ProtoReflect.Descriptor instead.
func (*ResGetFriendCard) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{128}
}

func (x *ResGetFriendCard) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResGetFriendCard) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

func (x *ResGetFriendCard) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *ResGetFriendCard) GetCardId() int32 {
	if x != nil {
		return x.CardId
	}
	return 0
}

// 获取可以交换的金卡
type ReqGetGoldCard struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqGetGoldCard) Reset() {
	*x = ReqGetGoldCard{}
	mi := &file_proto_Gameapi_proto_msgTypes[129]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqGetGoldCard) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqGetGoldCard) ProtoMessage() {}

func (x *ReqGetGoldCard) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[129]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqGetGoldCard.ProtoReflect.Descriptor instead.
func (*ReqGetGoldCard) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{129}
}

type ResGetGoldCard struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Four int32 `protobuf:"varint,1,opt,name=Four,proto3" json:"Four,omitempty"` // 四星金卡
	Five int32 `protobuf:"varint,2,opt,name=Five,proto3" json:"Five,omitempty"` // 五星金卡
}

func (x *ResGetGoldCard) Reset() {
	*x = ResGetGoldCard{}
	mi := &file_proto_Gameapi_proto_msgTypes[130]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResGetGoldCard) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResGetGoldCard) ProtoMessage() {}

func (x *ResGetGoldCard) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[130]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResGetGoldCard.ProtoReflect.Descriptor instead.
func (*ResGetGoldCard) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{130}
}

func (x *ResGetGoldCard) GetFour() int32 {
	if x != nil {
		return x.Four
	}
	return 0
}

func (x *ResGetGoldCard) GetFive() int32 {
	if x != nil {
		return x.Five
	}
	return 0
}

// 领取引导奖励
type ReqGuideReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`
}

func (x *ReqGuideReward) Reset() {
	*x = ReqGuideReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[131]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqGuideReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqGuideReward) ProtoMessage() {}

func (x *ReqGuideReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[131]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqGuideReward.ProtoReflect.Descriptor instead.
func (*ReqGuideReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{131}
}

func (x *ReqGuideReward) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type ResGuideReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResGuideReward) Reset() {
	*x = ResGuideReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[132]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResGuideReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResGuideReward) ProtoMessage() {}

func (x *ResGuideReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[132]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResGuideReward.ProtoReflect.Descriptor instead.
func (*ResGuideReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{132}
}

func (x *ResGuideReward) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResGuideReward) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type ResGuildInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Reward map[int32]int32 `protobuf:"bytes,1,rep,name=Reward,proto3" json:"Reward,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
}

func (x *ResGuildInfo) Reset() {
	*x = ResGuildInfo{}
	mi := &file_proto_Gameapi_proto_msgTypes[133]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResGuildInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResGuildInfo) ProtoMessage() {}

func (x *ResGuildInfo) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[133]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResGuildInfo.ProtoReflect.Descriptor instead.
func (*ResGuildInfo) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{133}
}

func (x *ResGuildInfo) GetReward() map[int32]int32 {
	if x != nil {
		return x.Reward
	}
	return nil
}

type ResItemPop struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id        int32       `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`
	Items     []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"`         // 道具
	CardPacks []*CardPack `protobuf:"bytes,3,rep,name=CardPacks,proto3" json:"CardPacks,omitempty"` // 卡包
	Lable     string      `protobuf:"bytes,4,opt,name=Lable,proto3" json:"Lable,omitempty"`         // 标签
}

func (x *ResItemPop) Reset() {
	*x = ResItemPop{}
	mi := &file_proto_Gameapi_proto_msgTypes[134]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResItemPop) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResItemPop) ProtoMessage() {}

func (x *ResItemPop) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[134]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResItemPop.ProtoReflect.Descriptor instead.
func (*ResItemPop) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{134}
}

func (x *ResItemPop) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *ResItemPop) GetItems() []*ItemInfo {
	if x != nil {
		return x.Items
	}
	return nil
}

func (x *ResItemPop) GetCardPacks() []*CardPack {
	if x != nil {
		return x.CardPacks
	}
	return nil
}

func (x *ResItemPop) GetLable() string {
	if x != nil {
		return x.Lable
	}
	return ""
}

type ItemInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id  int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`
	Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"`
}

func (x *ItemInfo) Reset() {
	*x = ItemInfo{}
	mi := &file_proto_Gameapi_proto_msgTypes[135]
	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_proto_Gameapi_proto_msgTypes[135]
	if 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_proto_Gameapi_proto_rawDescGZIP(), []int{135}
}

func (x *ItemInfo) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *ItemInfo) GetNum() int32 {
	if x != nil {
		return x.Num
	}
	return 0
}

type CardPack struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id   int32   `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 卡包id
	Card []int32 `protobuf:"varint,2,rep,packed,name=Card,proto3" json:"Card,omitempty"`
}

func (x *CardPack) Reset() {
	*x = CardPack{}
	mi := &file_proto_Gameapi_proto_msgTypes[136]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CardPack) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CardPack) ProtoMessage() {}

func (x *CardPack) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[136]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CardPack.ProtoReflect.Descriptor instead.
func (*CardPack) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{136}
}

func (x *CardPack) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *CardPack) GetCard() []int32 {
	if x != nil {
		return x.Card
	}
	return nil
}

type ResDailyTask struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	WeekReward map[int32]*DailyWeek `protobuf:"bytes,1,rep,name=WeekReward,proto3" json:"WeekReward,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` //周奖励
	DailyTask  map[int32]*DailyTask `protobuf:"bytes,2,rep,name=DailyTask,proto3" json:"DailyTask,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`   //任务进度
	Active     int32                `protobuf:"varint,3,opt,name=Active,proto3" json:"Active,omitempty"`                                                                                                 //活跃度
	DayEnd     int32                `protobuf:"varint,4,opt,name=DayEnd,proto3" json:"DayEnd,omitempty"`                                                                                                 // 日结束时间戳
	WeekEnd    int32                `protobuf:"varint,5,opt,name=WeekEnd,proto3" json:"WeekEnd,omitempty"`                                                                                               //周结束时间戳
}

func (x *ResDailyTask) Reset() {
	*x = ResDailyTask{}
	mi := &file_proto_Gameapi_proto_msgTypes[137]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResDailyTask) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResDailyTask) ProtoMessage() {}

func (x *ResDailyTask) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[137]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResDailyTask.ProtoReflect.Descriptor instead.
func (*ResDailyTask) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{137}
}

func (x *ResDailyTask) GetWeekReward() map[int32]*DailyWeek {
	if x != nil {
		return x.WeekReward
	}
	return nil
}

func (x *ResDailyTask) GetDailyTask() map[int32]*DailyTask {
	if x != nil {
		return x.DailyTask
	}
	return nil
}

func (x *ResDailyTask) GetActive() int32 {
	if x != nil {
		return x.Active
	}
	return 0
}

func (x *ResDailyTask) GetDayEnd() int32 {
	if x != nil {
		return x.DayEnd
	}
	return 0
}

func (x *ResDailyTask) GetWeekEnd() int32 {
	if x != nil {
		return x.WeekEnd
	}
	return 0
}

type DailyWeek struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Items      []*ItemInfo `protobuf:"bytes,1,rep,name=Items,proto3" json:"Items,omitempty"`            //奖励
	Status     bool        `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"`         //状态 0:未领取 1:已领取
	NeedActive int32       `protobuf:"varint,3,opt,name=NeedActive,proto3" json:"NeedActive,omitempty"` //需要的活跃度
}

func (x *DailyWeek) Reset() {
	*x = DailyWeek{}
	mi := &file_proto_Gameapi_proto_msgTypes[138]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DailyWeek) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DailyWeek) ProtoMessage() {}

func (x *DailyWeek) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[138]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DailyWeek.ProtoReflect.Descriptor instead.
func (*DailyWeek) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{138}
}

func (x *DailyWeek) GetItems() []*ItemInfo {
	if x != nil {
		return x.Items
	}
	return nil
}

func (x *DailyWeek) GetStatus() bool {
	if x != nil {
		return x.Status
	}
	return false
}

func (x *DailyWeek) GetNeedActive() int32 {
	if x != nil {
		return x.NeedActive
	}
	return 0
}

type DailyTask struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status   int32          `protobuf:"varint,1,opt,name=Status,proto3" json:"Status,omitempty"`    //状态 0:未完成， 1已完成 2已领取
	UnLock   bool           `protobuf:"varint,2,opt,name=UnLock,proto3" json:"UnLock,omitempty"`    //是否解锁 0:未解锁 1:已解锁
	Progress *QuestProgress `protobuf:"bytes,3,opt,name=Progress,proto3" json:"Progress,omitempty"` //任务进度
	Items    []*ItemInfo    `protobuf:"bytes,4,rep,name=Items,proto3" json:"Items,omitempty"`       //奖励
}

func (x *DailyTask) Reset() {
	*x = DailyTask{}
	mi := &file_proto_Gameapi_proto_msgTypes[139]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DailyTask) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DailyTask) ProtoMessage() {}

func (x *DailyTask) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[139]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DailyTask.ProtoReflect.Descriptor instead.
func (*DailyTask) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{139}
}

func (x *DailyTask) GetStatus() int32 {
	if x != nil {
		return x.Status
	}
	return 0
}

func (x *DailyTask) GetUnLock() bool {
	if x != nil {
		return x.UnLock
	}
	return false
}

func (x *DailyTask) GetProgress() *QuestProgress {
	if x != nil {
		return x.Progress
	}
	return nil
}

func (x *DailyTask) GetItems() []*ItemInfo {
	if x != nil {
		return x.Items
	}
	return nil
}

type QuestProgress struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Label  string `protobuf:"bytes,1,opt,name=Label,proto3" json:"Label,omitempty"`    //任务标签
	Num    int32  `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"`       //当前进度
	Target int32  `protobuf:"varint,3,opt,name=Target,proto3" json:"Target,omitempty"` //目标
	Status bool   `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未完成， 1已完成
	Param  int32  `protobuf:"varint,5,opt,name=Param,proto3" json:"Param,omitempty"`   //参数
}

func (x *QuestProgress) Reset() {
	*x = QuestProgress{}
	mi := &file_proto_Gameapi_proto_msgTypes[140]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *QuestProgress) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QuestProgress) ProtoMessage() {}

func (x *QuestProgress) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[140]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QuestProgress.ProtoReflect.Descriptor instead.
func (*QuestProgress) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{140}
}

func (x *QuestProgress) GetLabel() string {
	if x != nil {
		return x.Label
	}
	return ""
}

func (x *QuestProgress) GetNum() int32 {
	if x != nil {
		return x.Num
	}
	return 0
}

func (x *QuestProgress) GetTarget() int32 {
	if x != nil {
		return x.Target
	}
	return 0
}

func (x *QuestProgress) GetStatus() bool {
	if x != nil {
		return x.Status
	}
	return false
}

func (x *QuestProgress) GetParam() int32 {
	if x != nil {
		return x.Param
	}
	return 0
}

// 领取日常任务奖励
type ReqGetDailyTaskReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`
}

func (x *ReqGetDailyTaskReward) Reset() {
	*x = ReqGetDailyTaskReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[141]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqGetDailyTaskReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqGetDailyTaskReward) ProtoMessage() {}

func (x *ReqGetDailyTaskReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[141]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqGetDailyTaskReward.ProtoReflect.Descriptor instead.
func (*ReqGetDailyTaskReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{141}
}

func (x *ReqGetDailyTaskReward) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type ResGetDailyTaskReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResGetDailyTaskReward) Reset() {
	*x = ResGetDailyTaskReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[142]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResGetDailyTaskReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResGetDailyTaskReward) ProtoMessage() {}

func (x *ResGetDailyTaskReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[142]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResGetDailyTaskReward.ProtoReflect.Descriptor instead.
func (*ResGetDailyTaskReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{142}
}

func (x *ResGetDailyTaskReward) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResGetDailyTaskReward) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 领取日常周奖励
type ReqGetDailyWeekReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`
}

func (x *ReqGetDailyWeekReward) Reset() {
	*x = ReqGetDailyWeekReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[143]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqGetDailyWeekReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqGetDailyWeekReward) ProtoMessage() {}

func (x *ReqGetDailyWeekReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[143]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqGetDailyWeekReward.ProtoReflect.Descriptor instead.
func (*ReqGetDailyWeekReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{143}
}

func (x *ReqGetDailyWeekReward) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type ResGetDailyWeekReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResGetDailyWeekReward) Reset() {
	*x = ResGetDailyWeekReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[144]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResGetDailyWeekReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResGetDailyWeekReward) ProtoMessage() {}

func (x *ResGetDailyWeekReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[144]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResGetDailyWeekReward.ProtoReflect.Descriptor instead.
func (*ResGetDailyWeekReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{144}
}

func (x *ResGetDailyWeekReward) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResGetDailyWeekReward) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type ReqDailyUnlock struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqDailyUnlock) Reset() {
	*x = ReqDailyUnlock{}
	mi := &file_proto_Gameapi_proto_msgTypes[145]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqDailyUnlock) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqDailyUnlock) ProtoMessage() {}

func (x *ReqDailyUnlock) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[145]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqDailyUnlock.ProtoReflect.Descriptor instead.
func (*ReqDailyUnlock) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{145}
}

type ResDailyUnlock struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResDailyUnlock) Reset() {
	*x = ResDailyUnlock{}
	mi := &file_proto_Gameapi_proto_msgTypes[146]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResDailyUnlock) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResDailyUnlock) ProtoMessage() {}

func (x *ResDailyUnlock) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[146]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResDailyUnlock.ProtoReflect.Descriptor instead.
func (*ResDailyUnlock) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{146}
}

func (x *ResDailyUnlock) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResDailyUnlock) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type ResFaceInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	FaceList []*FaceInfo `protobuf:"bytes,1,rep,name=FaceList,proto3" json:"FaceList,omitempty"`
	SetId    int32       `protobuf:"varint,2,opt,name=SetId,proto3" json:"SetId,omitempty"`
}

func (x *ResFaceInfo) Reset() {
	*x = ResFaceInfo{}
	mi := &file_proto_Gameapi_proto_msgTypes[147]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResFaceInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResFaceInfo) ProtoMessage() {}

func (x *ResFaceInfo) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[147]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResFaceInfo.ProtoReflect.Descriptor instead.
func (*ResFaceInfo) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{147}
}

func (x *ResFaceInfo) GetFaceList() []*FaceInfo {
	if x != nil {
		return x.FaceList
	}
	return nil
}

func (x *ResFaceInfo) GetSetId() int32 {
	if x != nil {
		return x.SetId
	}
	return 0
}

type FaceInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id      int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`           // 头像id
	EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间
	AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间
}

func (x *FaceInfo) Reset() {
	*x = FaceInfo{}
	mi := &file_proto_Gameapi_proto_msgTypes[148]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *FaceInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FaceInfo) ProtoMessage() {}

func (x *FaceInfo) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[148]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FaceInfo.ProtoReflect.Descriptor instead.
func (*FaceInfo) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{148}
}

func (x *FaceInfo) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *FaceInfo) GetEndTime() int64 {
	if x != nil {
		return x.EndTime
	}
	return 0
}

func (x *FaceInfo) GetAddTime() int64 {
	if x != nil {
		return x.AddTime
	}
	return 0
}

type ReqSetFace struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Face int32 `protobuf:"varint,1,opt,name=Face,proto3" json:"Face,omitempty"`
}

func (x *ReqSetFace) Reset() {
	*x = ReqSetFace{}
	mi := &file_proto_Gameapi_proto_msgTypes[149]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqSetFace) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqSetFace) ProtoMessage() {}

func (x *ReqSetFace) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[149]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqSetFace.ProtoReflect.Descriptor instead.
func (*ReqSetFace) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{149}
}

func (x *ReqSetFace) GetFace() int32 {
	if x != nil {
		return x.Face
	}
	return 0
}

type ResSetFace struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResSetFace) Reset() {
	*x = ResSetFace{}
	mi := &file_proto_Gameapi_proto_msgTypes[150]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResSetFace) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResSetFace) ProtoMessage() {}

func (x *ResSetFace) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[150]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResSetFace.ProtoReflect.Descriptor instead.
func (*ResSetFace) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{150}
}

func (x *ResSetFace) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResSetFace) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type ResAvatarInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AvatarList []*AvatarInfo `protobuf:"bytes,1,rep,name=AvatarList,proto3" json:"AvatarList,omitempty"`
	SetId      int32         `protobuf:"varint,2,opt,name=SetId,proto3" json:"SetId,omitempty"`
}

func (x *ResAvatarInfo) Reset() {
	*x = ResAvatarInfo{}
	mi := &file_proto_Gameapi_proto_msgTypes[151]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResAvatarInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResAvatarInfo) ProtoMessage() {}

func (x *ResAvatarInfo) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[151]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResAvatarInfo.ProtoReflect.Descriptor instead.
func (*ResAvatarInfo) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{151}
}

func (x *ResAvatarInfo) GetAvatarList() []*AvatarInfo {
	if x != nil {
		return x.AvatarList
	}
	return nil
}

func (x *ResAvatarInfo) GetSetId() int32 {
	if x != nil {
		return x.SetId
	}
	return 0
}

type AvatarInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id      int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`           // 头像框id
	EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间
	AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间
}

func (x *AvatarInfo) Reset() {
	*x = AvatarInfo{}
	mi := &file_proto_Gameapi_proto_msgTypes[152]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AvatarInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AvatarInfo) ProtoMessage() {}

func (x *AvatarInfo) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[152]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AvatarInfo.ProtoReflect.Descriptor instead.
func (*AvatarInfo) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{152}
}

func (x *AvatarInfo) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *AvatarInfo) GetEndTime() int64 {
	if x != nil {
		return x.EndTime
	}
	return 0
}

func (x *AvatarInfo) GetAddTime() int64 {
	if x != nil {
		return x.AddTime
	}
	return 0
}

type ReqSetAvatar struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Avatar int32 `protobuf:"varint,1,opt,name=Avatar,proto3" json:"Avatar,omitempty"`
}

func (x *ReqSetAvatar) Reset() {
	*x = ReqSetAvatar{}
	mi := &file_proto_Gameapi_proto_msgTypes[153]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqSetAvatar) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqSetAvatar) ProtoMessage() {}

func (x *ReqSetAvatar) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[153]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqSetAvatar.ProtoReflect.Descriptor instead.
func (*ReqSetAvatar) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{153}
}

func (x *ReqSetAvatar) GetAvatar() int32 {
	if x != nil {
		return x.Avatar
	}
	return 0
}

type ResSetAvatar struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResSetAvatar) Reset() {
	*x = ResSetAvatar{}
	mi := &file_proto_Gameapi_proto_msgTypes[154]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResSetAvatar) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResSetAvatar) ProtoMessage() {}

func (x *ResSetAvatar) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[154]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResSetAvatar.ProtoReflect.Descriptor instead.
func (*ResSetAvatar) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{154}
}

func (x *ResSetAvatar) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResSetAvatar) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 表情 Emoji
type EmojiInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id      int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`           // 表情id
	EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间
	AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间
}

func (x *EmojiInfo) Reset() {
	*x = EmojiInfo{}
	mi := &file_proto_Gameapi_proto_msgTypes[155]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *EmojiInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*EmojiInfo) ProtoMessage() {}

func (x *EmojiInfo) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[155]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use EmojiInfo.ProtoReflect.Descriptor instead.
func (*EmojiInfo) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{155}
}

func (x *EmojiInfo) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *EmojiInfo) GetEndTime() int64 {
	if x != nil {
		return x.EndTime
	}
	return 0
}

func (x *EmojiInfo) GetAddTime() int64 {
	if x != nil {
		return x.AddTime
	}
	return 0
}

// 设置表情
type ReqSetEmoji struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id   int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`     // 表情Id
	Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 表情类型 Greeting = 0, Happy = 1, Taunt = 2, Fail = 3
}

func (x *ReqSetEmoji) Reset() {
	*x = ReqSetEmoji{}
	mi := &file_proto_Gameapi_proto_msgTypes[156]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqSetEmoji) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqSetEmoji) ProtoMessage() {}

func (x *ReqSetEmoji) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[156]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqSetEmoji.ProtoReflect.Descriptor instead.
func (*ReqSetEmoji) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{156}
}

func (x *ReqSetEmoji) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *ReqSetEmoji) GetType() int32 {
	if x != nil {
		return x.Type
	}
	return 0
}

type ResSetEmoji struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResSetEmoji) Reset() {
	*x = ResSetEmoji{}
	mi := &file_proto_Gameapi_proto_msgTypes[157]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResSetEmoji) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResSetEmoji) ProtoMessage() {}

func (x *ResSetEmoji) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[157]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResSetEmoji.ProtoReflect.Descriptor instead.
func (*ResSetEmoji) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{157}
}

func (x *ResSetEmoji) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResSetEmoji) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 七日签到
type ResSevenLogin struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	WeekReward  []*SevenLoginReward `protobuf:"bytes,1,rep,name=WeekReward,proto3" json:"WeekReward,omitempty"`   //周奖励
	MonthReward []*SevenLoginReward `protobuf:"bytes,2,rep,name=MonthReward,proto3" json:"MonthReward,omitempty"` //月奖励
	Active      int32               `protobuf:"varint,3,opt,name=Active,proto3" json:"Active,omitempty"`          //活跃度
	IsBack      bool                `protobuf:"varint,4,opt,name=IsBack,proto3" json:"IsBack,omitempty"`          //是否召回
}

func (x *ResSevenLogin) Reset() {
	*x = ResSevenLogin{}
	mi := &file_proto_Gameapi_proto_msgTypes[158]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResSevenLogin) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResSevenLogin) ProtoMessage() {}

func (x *ResSevenLogin) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[158]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResSevenLogin.ProtoReflect.Descriptor instead.
func (*ResSevenLogin) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{158}
}

func (x *ResSevenLogin) GetWeekReward() []*SevenLoginReward {
	if x != nil {
		return x.WeekReward
	}
	return nil
}

func (x *ResSevenLogin) GetMonthReward() []*SevenLoginReward {
	if x != nil {
		return x.MonthReward
	}
	return nil
}

func (x *ResSevenLogin) GetActive() int32 {
	if x != nil {
		return x.Active
	}
	return 0
}

func (x *ResSevenLogin) GetIsBack() bool {
	if x != nil {
		return x.IsBack
	}
	return false
}

type SevenLoginReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Item1  []*ItemInfo `protobuf:"bytes,1,rep,name=Item1,proto3" json:"Item1,omitempty"`    //奖励1
	Item2  []*ItemInfo `protobuf:"bytes,2,rep,name=Item2,proto3" json:"Item2,omitempty"`    //奖励2
	Item3  []*ItemInfo `protobuf:"bytes,3,rep,name=Item3,proto3" json:"Item3,omitempty"`    //奖励3
	Status int32       `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未领取 1:可领取 2：已领取
	Id     int32       `protobuf:"varint,5,opt,name=Id,proto3" json:"Id,omitempty"`         //id
}

func (x *SevenLoginReward) Reset() {
	*x = SevenLoginReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[159]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SevenLoginReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SevenLoginReward) ProtoMessage() {}

func (x *SevenLoginReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[159]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SevenLoginReward.ProtoReflect.Descriptor instead.
func (*SevenLoginReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{159}
}

func (x *SevenLoginReward) GetItem1() []*ItemInfo {
	if x != nil {
		return x.Item1
	}
	return nil
}

func (x *SevenLoginReward) GetItem2() []*ItemInfo {
	if x != nil {
		return x.Item2
	}
	return nil
}

func (x *SevenLoginReward) GetItem3() []*ItemInfo {
	if x != nil {
		return x.Item3
	}
	return nil
}

func (x *SevenLoginReward) GetStatus() int32 {
	if x != nil {
		return x.Status
	}
	return 0
}

func (x *SevenLoginReward) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

// 领取周奖励
type ReqGetSevenLoginReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`
}

func (x *ReqGetSevenLoginReward) Reset() {
	*x = ReqGetSevenLoginReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[160]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqGetSevenLoginReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqGetSevenLoginReward) ProtoMessage() {}

func (x *ReqGetSevenLoginReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[160]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqGetSevenLoginReward.ProtoReflect.Descriptor instead.
func (*ReqGetSevenLoginReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{160}
}

func (x *ReqGetSevenLoginReward) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type ResGetSevenLoginReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResGetSevenLoginReward) Reset() {
	*x = ResGetSevenLoginReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[161]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResGetSevenLoginReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResGetSevenLoginReward) ProtoMessage() {}

func (x *ResGetSevenLoginReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[161]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResGetSevenLoginReward.ProtoReflect.Descriptor instead.
func (*ResGetSevenLoginReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{161}
}

func (x *ResGetSevenLoginReward) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResGetSevenLoginReward) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 领取月奖励
type ReqGetMonthLoginReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`
}

func (x *ReqGetMonthLoginReward) Reset() {
	*x = ReqGetMonthLoginReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[162]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqGetMonthLoginReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqGetMonthLoginReward) ProtoMessage() {}

func (x *ReqGetMonthLoginReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[162]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqGetMonthLoginReward.ProtoReflect.Descriptor instead.
func (*ReqGetMonthLoginReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{162}
}

func (x *ReqGetMonthLoginReward) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type ResGetMonthLoginReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResGetMonthLoginReward) Reset() {
	*x = ResGetMonthLoginReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[163]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResGetMonthLoginReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResGetMonthLoginReward) ProtoMessage() {}

func (x *ResGetMonthLoginReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[163]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResGetMonthLoginReward.ProtoReflect.Descriptor instead.
func (*ResGetMonthLoginReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{163}
}

func (x *ResGetMonthLoginReward) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResGetMonthLoginReward) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 活动
type ResActivity struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ActiveList []*ActivityInfo `protobuf:"bytes,1,rep,name=ActiveList,proto3" json:"ActiveList,omitempty"`
}

func (x *ResActivity) Reset() {
	*x = ResActivity{}
	mi := &file_proto_Gameapi_proto_msgTypes[164]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResActivity) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResActivity) ProtoMessage() {}

func (x *ResActivity) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[164]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResActivity.ProtoReflect.Descriptor instead.
func (*ResActivity) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{164}
}

func (x *ResActivity) GetActiveList() []*ActivityInfo {
	if x != nil {
		return x.ActiveList
	}
	return nil
}

type ActivityInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id        int32  `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`               //id
	Type      int32  `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"`           //类型
	StartTime int32  `protobuf:"varint,3,opt,name=StartTime,proto3" json:"StartTime,omitempty"` //开始时间
	EndTime   int32  `protobuf:"varint,4,opt,name=EndTime,proto3" json:"EndTime,omitempty"`     //结束时间
	Status    int32  `protobuf:"varint,5,opt,name=Status,proto3" json:"Status,omitempty"`       //状态 0:未开始 1:进行中 2:已结束
	Title     string `protobuf:"bytes,6,opt,name=Title,proto3" json:"Title,omitempty"`          //标题
	Red       int32  `protobuf:"varint,7,opt,name=Red,proto3" json:"Red,omitempty"`             //红点
}

func (x *ActivityInfo) Reset() {
	*x = ActivityInfo{}
	mi := &file_proto_Gameapi_proto_msgTypes[165]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ActivityInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ActivityInfo) ProtoMessage() {}

func (x *ActivityInfo) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[165]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ActivityInfo.ProtoReflect.Descriptor instead.
func (*ActivityInfo) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{165}
}

func (x *ActivityInfo) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *ActivityInfo) GetType() int32 {
	if x != nil {
		return x.Type
	}
	return 0
}

func (x *ActivityInfo) GetStartTime() int32 {
	if x != nil {
		return x.StartTime
	}
	return 0
}

func (x *ActivityInfo) GetEndTime() int32 {
	if x != nil {
		return x.EndTime
	}
	return 0
}

func (x *ActivityInfo) GetStatus() int32 {
	if x != nil {
		return x.Status
	}
	return 0
}

func (x *ActivityInfo) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *ActivityInfo) GetRed() int32 {
	if x != nil {
		return x.Red
	}
	return 0
}

// 限时事件
type ReqLimitEvent struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqLimitEvent) Reset() {
	*x = ReqLimitEvent{}
	mi := &file_proto_Gameapi_proto_msgTypes[166]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqLimitEvent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqLimitEvent) ProtoMessage() {}

func (x *ReqLimitEvent) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[166]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqLimitEvent.ProtoReflect.Descriptor instead.
func (*ReqLimitEvent) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{166}
}

type ResLimitEvent struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	LimitEventList map[int32]*LimitEvent `protobuf:"bytes,1,rep,name=LimitEventList,proto3" json:"LimitEventList,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` //限时事件列表
}

func (x *ResLimitEvent) Reset() {
	*x = ResLimitEvent{}
	mi := &file_proto_Gameapi_proto_msgTypes[167]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResLimitEvent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResLimitEvent) ProtoMessage() {}

func (x *ResLimitEvent) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[167]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResLimitEvent.ProtoReflect.Descriptor instead.
func (*ResLimitEvent) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{167}
}

func (x *ResLimitEvent) GetLimitEventList() map[int32]*LimitEvent {
	if x != nil {
		return x.LimitEventList
	}
	return nil
}

type ResLimitEventProgress struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ProgressMax    int32           `protobuf:"varint,1,opt,name=ProgressMax,proto3" json:"ProgressMax,omitempty"`                                                                                                //最大进度
	Progress       int32           `protobuf:"varint,2,opt,name=Progress,proto3" json:"Progress,omitempty"`                                                                                                      //进度
	ProgressReward map[int32]int32 `protobuf:"bytes,3,rep,name=ProgressReward,proto3" json:"ProgressReward,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //奖励 可以选择的奖励 Id =》 RewardId
}

func (x *ResLimitEventProgress) Reset() {
	*x = ResLimitEventProgress{}
	mi := &file_proto_Gameapi_proto_msgTypes[168]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResLimitEventProgress) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResLimitEventProgress) ProtoMessage() {}

func (x *ResLimitEventProgress) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[168]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResLimitEventProgress.ProtoReflect.Descriptor instead.
func (*ResLimitEventProgress) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{168}
}

func (x *ResLimitEventProgress) GetProgressMax() int32 {
	if x != nil {
		return x.ProgressMax
	}
	return 0
}

func (x *ResLimitEventProgress) GetProgress() int32 {
	if x != nil {
		return x.Progress
	}
	return 0
}

func (x *ResLimitEventProgress) GetProgressReward() map[int32]int32 {
	if x != nil {
		return x.ProgressReward
	}
	return nil
}

type ReqLimitEventReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`
}

func (x *ReqLimitEventReward) Reset() {
	*x = ReqLimitEventReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[169]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqLimitEventReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqLimitEventReward) ProtoMessage() {}

func (x *ReqLimitEventReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[169]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqLimitEventReward.ProtoReflect.Descriptor instead.
func (*ReqLimitEventReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{169}
}

func (x *ReqLimitEventReward) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type ResLimitEventReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResLimitEventReward) Reset() {
	*x = ResLimitEventReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[170]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResLimitEventReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResLimitEventReward) ProtoMessage() {}

func (x *ResLimitEventReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[170]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResLimitEventReward.ProtoReflect.Descriptor instead.
func (*ResLimitEventReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{170}
}

func (x *ResLimitEventReward) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResLimitEventReward) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type ReqSelectLimitEvent struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`
}

func (x *ReqSelectLimitEvent) Reset() {
	*x = ReqSelectLimitEvent{}
	mi := &file_proto_Gameapi_proto_msgTypes[171]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqSelectLimitEvent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqSelectLimitEvent) ProtoMessage() {}

func (x *ReqSelectLimitEvent) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[171]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqSelectLimitEvent.ProtoReflect.Descriptor instead.
func (*ReqSelectLimitEvent) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{171}
}

func (x *ReqSelectLimitEvent) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type ResSelectLimitEvent struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResSelectLimitEvent) Reset() {
	*x = ResSelectLimitEvent{}
	mi := &file_proto_Gameapi_proto_msgTypes[172]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResSelectLimitEvent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResSelectLimitEvent) ProtoMessage() {}

func (x *ResSelectLimitEvent) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[172]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResSelectLimitEvent.ProtoReflect.Descriptor instead.
func (*ResSelectLimitEvent) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{172}
}

func (x *ResSelectLimitEvent) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResSelectLimitEvent) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type LimitEvent struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	EndTime   int32   `protobuf:"varint,1,opt,name=EndTime,proto3" json:"EndTime,omitempty"`     //结束时间
	Cd        int32   `protobuf:"varint,2,opt,name=Cd,proto3" json:"Cd,omitempty"`               //cd
	Mul       float32 `protobuf:"fixed32,3,opt,name=mul,proto3" json:"mul,omitempty"`            //倍数
	StartTime int32   `protobuf:"varint,4,opt,name=StartTime,proto3" json:"StartTime,omitempty"` //开始时间
}

func (x *LimitEvent) Reset() {
	*x = LimitEvent{}
	mi := &file_proto_Gameapi_proto_msgTypes[173]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *LimitEvent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LimitEvent) ProtoMessage() {}

func (x *LimitEvent) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[173]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LimitEvent.ProtoReflect.Descriptor instead.
func (*LimitEvent) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{173}
}

func (x *LimitEvent) GetEndTime() int32 {
	if x != nil {
		return x.EndTime
	}
	return 0
}

func (x *LimitEvent) GetCd() int32 {
	if x != nil {
		return x.Cd
	}
	return 0
}

func (x *LimitEvent) GetMul() float32 {
	if x != nil {
		return x.Mul
	}
	return 0
}

func (x *LimitEvent) GetStartTime() int32 {
	if x != nil {
		return x.StartTime
	}
	return 0
}

type LimitEventNotify struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id      int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`           // 限时事件类型
	Type    int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"`       // 0 开始 1 结束
	EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //结束时间
	Cd      int32 `protobuf:"varint,4,opt,name=Cd,proto3" json:"Cd,omitempty"`           //cd
}

func (x *LimitEventNotify) Reset() {
	*x = LimitEventNotify{}
	mi := &file_proto_Gameapi_proto_msgTypes[174]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *LimitEventNotify) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LimitEventNotify) ProtoMessage() {}

func (x *LimitEventNotify) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[174]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LimitEventNotify.ProtoReflect.Descriptor instead.
func (*LimitEventNotify) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{174}
}

func (x *LimitEventNotify) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *LimitEventNotify) GetType() int32 {
	if x != nil {
		return x.Type
	}
	return 0
}

func (x *LimitEventNotify) GetEndTime() int32 {
	if x != nil {
		return x.EndTime
	}
	return 0
}

func (x *LimitEventNotify) GetCd() int32 {
	if x != nil {
		return x.Cd
	}
	return 0
}

type ReqLimitEventLuckyCat struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ChessId    int32            `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"`
	MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
}

func (x *ReqLimitEventLuckyCat) Reset() {
	*x = ReqLimitEventLuckyCat{}
	mi := &file_proto_Gameapi_proto_msgTypes[175]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqLimitEventLuckyCat) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqLimitEventLuckyCat) ProtoMessage() {}

func (x *ReqLimitEventLuckyCat) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[175]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqLimitEventLuckyCat.ProtoReflect.Descriptor instead.
func (*ReqLimitEventLuckyCat) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{175}
}

func (x *ReqLimitEventLuckyCat) GetChessId() int32 {
	if x != nil {
		return x.ChessId
	}
	return 0
}

func (x *ReqLimitEventLuckyCat) GetMChessData() map[string]int32 {
	if x != nil {
		return x.MChessData
	}
	return nil
}

type ResLimitEventLuckyCat struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResLimitEventLuckyCat) Reset() {
	*x = ResLimitEventLuckyCat{}
	mi := &file_proto_Gameapi_proto_msgTypes[176]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResLimitEventLuckyCat) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResLimitEventLuckyCat) ProtoMessage() {}

func (x *ResLimitEventLuckyCat) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[176]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResLimitEventLuckyCat.ProtoReflect.Descriptor instead.
func (*ResLimitEventLuckyCat) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{176}
}

func (x *ResLimitEventLuckyCat) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResLimitEventLuckyCat) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type ReqLimitSenceReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqLimitSenceReward) Reset() {
	*x = ReqLimitSenceReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[177]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqLimitSenceReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqLimitSenceReward) ProtoMessage() {}

func (x *ReqLimitSenceReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[177]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqLimitSenceReward.ProtoReflect.Descriptor instead.
func (*ReqLimitSenceReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{177}
}

type ResLimitSenceReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResLimitSenceReward) Reset() {
	*x = ResLimitSenceReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[178]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResLimitSenceReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResLimitSenceReward) ProtoMessage() {}

func (x *ResLimitSenceReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[178]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResLimitSenceReward.ProtoReflect.Descriptor instead.
func (*ResLimitSenceReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{178}
}

func (x *ResLimitSenceReward) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResLimitSenceReward) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type ResChessRainReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Items []*ItemInfo `protobuf:"bytes,1,rep,name=Items,proto3" json:"Items,omitempty"` //奖励道具
	Id    int32       `protobuf:"varint,2,opt,name=Id,proto3" json:"Id,omitempty"`      // 转盘id
}

func (x *ResChessRainReward) Reset() {
	*x = ResChessRainReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[179]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResChessRainReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResChessRainReward) ProtoMessage() {}

func (x *ResChessRainReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[179]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResChessRainReward.ProtoReflect.Descriptor instead.
func (*ResChessRainReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{179}
}

func (x *ResChessRainReward) GetItems() []*ItemInfo {
	if x != nil {
		return x.Items
	}
	return nil
}

func (x *ResChessRainReward) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type ReqFastProduceInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqFastProduceInfo) Reset() {
	*x = ReqFastProduceInfo{}
	mi := &file_proto_Gameapi_proto_msgTypes[180]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqFastProduceInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqFastProduceInfo) ProtoMessage() {}

func (x *ReqFastProduceInfo) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[180]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqFastProduceInfo.ProtoReflect.Descriptor instead.
func (*ReqFastProduceInfo) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{180}
}

type ResFastProduceInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Energy  int32 `protobuf:"varint,1,opt,name=Energy,proto3" json:"Energy,omitempty"`   // 快手能量
	Num     int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"`         // 快手次数
	EndTime int64 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间
}

func (x *ResFastProduceInfo) Reset() {
	*x = ResFastProduceInfo{}
	mi := &file_proto_Gameapi_proto_msgTypes[181]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResFastProduceInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResFastProduceInfo) ProtoMessage() {}

func (x *ResFastProduceInfo) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[181]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResFastProduceInfo.ProtoReflect.Descriptor instead.
func (*ResFastProduceInfo) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{181}
}

func (x *ResFastProduceInfo) GetEnergy() int32 {
	if x != nil {
		return x.Energy
	}
	return 0
}

func (x *ResFastProduceInfo) GetNum() int32 {
	if x != nil {
		return x.Num
	}
	return 0
}

func (x *ResFastProduceInfo) GetEndTime() int64 {
	if x != nil {
		return x.EndTime
	}
	return 0
}

// 连技快手奖励
type ReqFastProduceReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Energy int32 `protobuf:"varint,1,opt,name=Energy,proto3" json:"Energy,omitempty"`
}

func (x *ReqFastProduceReward) Reset() {
	*x = ReqFastProduceReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[182]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqFastProduceReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqFastProduceReward) ProtoMessage() {}

func (x *ReqFastProduceReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[182]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqFastProduceReward.ProtoReflect.Descriptor instead.
func (*ReqFastProduceReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{182}
}

func (x *ReqFastProduceReward) GetEnergy() int32 {
	if x != nil {
		return x.Energy
	}
	return 0
}

type ResFastProduceReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code    RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg     string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
	EndTime int64    `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"`
	Num     int32    `protobuf:"varint,4,opt,name=Num,proto3" json:"Num,omitempty"`
}

func (x *ResFastProduceReward) Reset() {
	*x = ResFastProduceReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[183]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResFastProduceReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResFastProduceReward) ProtoMessage() {}

func (x *ResFastProduceReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[183]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResFastProduceReward.ProtoReflect.Descriptor instead.
func (*ResFastProduceReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{183}
}

func (x *ResFastProduceReward) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResFastProduceReward) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

func (x *ResFastProduceReward) GetEndTime() int64 {
	if x != nil {
		return x.EndTime
	}
	return 0
}

func (x *ResFastProduceReward) GetNum() int32 {
	if x != nil {
		return x.Num
	}
	return 0
}

// 搜索好友
type ReqSearchPlayer struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Uid string `protobuf:"bytes,1,opt,name=Uid,proto3" json:"Uid,omitempty"`
}

func (x *ReqSearchPlayer) Reset() {
	*x = ReqSearchPlayer{}
	mi := &file_proto_Gameapi_proto_msgTypes[184]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqSearchPlayer) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqSearchPlayer) ProtoMessage() {}

func (x *ReqSearchPlayer) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[184]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqSearchPlayer.ProtoReflect.Descriptor instead.
func (*ReqSearchPlayer) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{184}
}

func (x *ReqSearchPlayer) GetUid() string {
	if x != nil {
		return x.Uid
	}
	return ""
}

type ResSearchPlayer struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code int32              `protobuf:"varint,1,opt,name=Code,proto3" json:"Code,omitempty"`
	List []*ResPlayerSimple `protobuf:"bytes,2,rep,name=List,proto3" json:"List,omitempty"`
}

func (x *ResSearchPlayer) Reset() {
	*x = ResSearchPlayer{}
	mi := &file_proto_Gameapi_proto_msgTypes[185]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResSearchPlayer) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResSearchPlayer) ProtoMessage() {}

func (x *ResSearchPlayer) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[185]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResSearchPlayer.ProtoReflect.Descriptor instead.
func (*ResSearchPlayer) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{185}
}

func (x *ResSearchPlayer) GetCode() int32 {
	if x != nil {
		return x.Code
	}
	return 0
}

func (x *ResSearchPlayer) GetList() []*ResPlayerSimple {
	if x != nil {
		return x.List
	}
	return nil
}

type ResPlayerSimple struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Uid      int64           `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"`
	Name     string          `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"`
	Face     int32           `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"`
	Avatar   int32           `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"`
	Level    int32           `protobuf:"varint,5,opt,name=Level,proto3" json:"Level,omitempty"`
	Decorate int32           `protobuf:"varint,6,opt,name=Decorate,proto3" json:"Decorate,omitempty"`
	Login    int32           `protobuf:"varint,7,opt,name=login,proto3" json:"login,omitempty"`
	Loginout int32           `protobuf:"varint,8,opt,name=loginout,proto3" json:"loginout,omitempty"`
	Facebook string          `protobuf:"bytes,9,opt,name=Facebook,proto3" json:"Facebook,omitempty"`
	Emoji    map[int32]int32 `protobuf:"bytes,10,rep,name=Emoji,proto3" json:"Emoji,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 表情
}

func (x *ResPlayerSimple) Reset() {
	*x = ResPlayerSimple{}
	mi := &file_proto_Gameapi_proto_msgTypes[186]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResPlayerSimple) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResPlayerSimple) ProtoMessage() {}

func (x *ResPlayerSimple) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[186]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResPlayerSimple.ProtoReflect.Descriptor instead.
func (*ResPlayerSimple) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{186}
}

func (x *ResPlayerSimple) GetUid() int64 {
	if x != nil {
		return x.Uid
	}
	return 0
}

func (x *ResPlayerSimple) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *ResPlayerSimple) GetFace() int32 {
	if x != nil {
		return x.Face
	}
	return 0
}

func (x *ResPlayerSimple) GetAvatar() int32 {
	if x != nil {
		return x.Avatar
	}
	return 0
}

func (x *ResPlayerSimple) GetLevel() int32 {
	if x != nil {
		return x.Level
	}
	return 0
}

func (x *ResPlayerSimple) GetDecorate() int32 {
	if x != nil {
		return x.Decorate
	}
	return 0
}

func (x *ResPlayerSimple) GetLogin() int32 {
	if x != nil {
		return x.Login
	}
	return 0
}

func (x *ResPlayerSimple) GetLoginout() int32 {
	if x != nil {
		return x.Loginout
	}
	return 0
}

func (x *ResPlayerSimple) GetFacebook() string {
	if x != nil {
		return x.Facebook
	}
	return ""
}

func (x *ResPlayerSimple) GetEmoji() map[int32]int32 {
	if x != nil {
		return x.Emoji
	}
	return nil
}

type ResPlayerRank struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Uid    int64   `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"`
	Name   string  `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"`
	Face   int32   `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"`
	Avatar int32   `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"`
	Level  int32   `protobuf:"varint,5,opt,name=Level,proto3" json:"Level,omitempty"`
	Score  float32 `protobuf:"fixed32,6,opt,name=score,proto3" json:"score,omitempty"`
}

func (x *ResPlayerRank) Reset() {
	*x = ResPlayerRank{}
	mi := &file_proto_Gameapi_proto_msgTypes[187]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResPlayerRank) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResPlayerRank) ProtoMessage() {}

func (x *ResPlayerRank) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[187]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResPlayerRank.ProtoReflect.Descriptor instead.
func (*ResPlayerRank) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{187}
}

func (x *ResPlayerRank) GetUid() int64 {
	if x != nil {
		return x.Uid
	}
	return 0
}

func (x *ResPlayerRank) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *ResPlayerRank) GetFace() int32 {
	if x != nil {
		return x.Face
	}
	return 0
}

func (x *ResPlayerRank) GetAvatar() int32 {
	if x != nil {
		return x.Avatar
	}
	return 0
}

func (x *ResPlayerRank) GetLevel() int32 {
	if x != nil {
		return x.Level
	}
	return 0
}

func (x *ResPlayerRank) GetScore() float32 {
	if x != nil {
		return x.Score
	}
	return 0
}

type ResFriendLog struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Player *ResPlayerSimple `protobuf:"bytes,1,opt,name=Player,proto3" json:"Player,omitempty"`
	Type   int32            `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"`
	Time   int32            `protobuf:"varint,3,opt,name=Time,proto3" json:"Time,omitempty"`
	Param  string           `protobuf:"bytes,4,opt,name=Param,proto3" json:"Param,omitempty"`
	Id     int32            `protobuf:"varint,5,opt,name=Id,proto3" json:"Id,omitempty"`
	Upvote bool             `protobuf:"varint,6,opt,name=Upvote,proto3" json:"Upvote,omitempty"` // 是否点赞
}

func (x *ResFriendLog) Reset() {
	*x = ResFriendLog{}
	mi := &file_proto_Gameapi_proto_msgTypes[188]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResFriendLog) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResFriendLog) ProtoMessage() {}

func (x *ResFriendLog) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[188]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResFriendLog.ProtoReflect.Descriptor instead.
func (*ResFriendLog) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{188}
}

func (x *ResFriendLog) GetPlayer() *ResPlayerSimple {
	if x != nil {
		return x.Player
	}
	return nil
}

func (x *ResFriendLog) GetType() int32 {
	if x != nil {
		return x.Type
	}
	return 0
}

func (x *ResFriendLog) GetTime() int32 {
	if x != nil {
		return x.Time
	}
	return 0
}

func (x *ResFriendLog) GetParam() string {
	if x != nil {
		return x.Param
	}
	return ""
}

func (x *ResFriendLog) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *ResFriendLog) GetUpvote() bool {
	if x != nil {
		return x.Upvote
	}
	return false
}

type NotifyFriendLog struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Info *ResFriendLog `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"`
}

func (x *NotifyFriendLog) Reset() {
	*x = NotifyFriendLog{}
	mi := &file_proto_Gameapi_proto_msgTypes[189]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *NotifyFriendLog) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NotifyFriendLog) ProtoMessage() {}

func (x *NotifyFriendLog) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[189]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use NotifyFriendLog.ProtoReflect.Descriptor instead.
func (*NotifyFriendLog) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{189}
}

func (x *NotifyFriendLog) GetInfo() *ResFriendLog {
	if x != nil {
		return x.Info
	}
	return nil
}

type NotifyFriendCard struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Info *ResFriendCard `protobuf:"bytes,1,opt,name=Info,proto3" json:"Info,omitempty"`
}

func (x *NotifyFriendCard) Reset() {
	*x = NotifyFriendCard{}
	mi := &file_proto_Gameapi_proto_msgTypes[190]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *NotifyFriendCard) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NotifyFriendCard) ProtoMessage() {}

func (x *NotifyFriendCard) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[190]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use NotifyFriendCard.ProtoReflect.Descriptor instead.
func (*NotifyFriendCard) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{190}
}

func (x *NotifyFriendCard) GetInfo() *ResFriendCard {
	if x != nil {
		return x.Info
	}
	return nil
}

type ResFriendCard struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Uid      int64  `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"`
	Name     string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"`
	Face     int32  `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"`
	Avatar   int32  `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"`
	Level    int32  `protobuf:"varint,5,opt,name=Level,proto3" json:"Level,omitempty"`
	Type     int32  `protobuf:"varint,6,opt,name=Type,proto3" json:"Type,omitempty"`
	Time     int32  `protobuf:"varint,7,opt,name=Time,proto3" json:"Time,omitempty"`
	CardId   int32  `protobuf:"varint,8,opt,name=CardId,proto3" json:"CardId,omitempty"`
	ExCardId int32  `protobuf:"varint,9,opt,name=ExCardId,proto3" json:"ExCardId,omitempty"`
	Status   int32  `protobuf:"varint,10,opt,name=Status,proto3" json:"Status,omitempty"`
	Id       string `protobuf:"bytes,11,opt,name=Id,proto3" json:"Id,omitempty"`
}

func (x *ResFriendCard) Reset() {
	*x = ResFriendCard{}
	mi := &file_proto_Gameapi_proto_msgTypes[191]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResFriendCard) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResFriendCard) ProtoMessage() {}

func (x *ResFriendCard) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[191]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResFriendCard.ProtoReflect.Descriptor instead.
func (*ResFriendCard) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{191}
}

func (x *ResFriendCard) GetUid() int64 {
	if x != nil {
		return x.Uid
	}
	return 0
}

func (x *ResFriendCard) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *ResFriendCard) GetFace() int32 {
	if x != nil {
		return x.Face
	}
	return 0
}

func (x *ResFriendCard) GetAvatar() int32 {
	if x != nil {
		return x.Avatar
	}
	return 0
}

func (x *ResFriendCard) GetLevel() int32 {
	if x != nil {
		return x.Level
	}
	return 0
}

func (x *ResFriendCard) GetType() int32 {
	if x != nil {
		return x.Type
	}
	return 0
}

func (x *ResFriendCard) GetTime() int32 {
	if x != nil {
		return x.Time
	}
	return 0
}

func (x *ResFriendCard) GetCardId() int32 {
	if x != nil {
		return x.CardId
	}
	return 0
}

func (x *ResFriendCard) GetExCardId() int32 {
	if x != nil {
		return x.ExCardId
	}
	return 0
}

func (x *ResFriendCard) GetStatus() int32 {
	if x != nil {
		return x.Status
	}
	return 0
}

func (x *ResFriendCard) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

type ReqKv struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Key   int32  `protobuf:"varint,1,opt,name=key,proto3" json:"key,omitempty"`
	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
}

func (x *ReqKv) Reset() {
	*x = ReqKv{}
	mi := &file_proto_Gameapi_proto_msgTypes[192]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqKv) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqKv) ProtoMessage() {}

func (x *ReqKv) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[192]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqKv.ProtoReflect.Descriptor instead.
func (*ReqKv) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{192}
}

func (x *ReqKv) GetKey() int32 {
	if x != nil {
		return x.Key
	}
	return 0
}

func (x *ReqKv) GetValue() string {
	if x != nil {
		return x.Value
	}
	return ""
}

type ResKv struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Kv map[int32]string `protobuf:"bytes,1,rep,name=kv,proto3" json:"kv,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *ResKv) Reset() {
	*x = ResKv{}
	mi := &file_proto_Gameapi_proto_msgTypes[193]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResKv) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResKv) ProtoMessage() {}

func (x *ResKv) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[193]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResKv.ProtoReflect.Descriptor instead.
func (*ResKv) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{193}
}

func (x *ResKv) GetKv() map[int32]string {
	if x != nil {
		return x.Kv
	}
	return nil
}

// 好友推荐
type ReqFriendRecommend struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqFriendRecommend) Reset() {
	*x = ReqFriendRecommend{}
	mi := &file_proto_Gameapi_proto_msgTypes[194]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqFriendRecommend) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqFriendRecommend) ProtoMessage() {}

func (x *ReqFriendRecommend) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[194]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqFriendRecommend.ProtoReflect.Descriptor instead.
func (*ReqFriendRecommend) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{194}
}

type ResFriendRecommend struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	List []*ResPlayerSimple `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"`
}

func (x *ResFriendRecommend) Reset() {
	*x = ResFriendRecommend{}
	mi := &file_proto_Gameapi_proto_msgTypes[195]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResFriendRecommend) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResFriendRecommend) ProtoMessage() {}

func (x *ResFriendRecommend) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[195]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResFriendRecommend.ProtoReflect.Descriptor instead.
func (*ResFriendRecommend) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{195}
}

func (x *ResFriendRecommend) GetList() []*ResPlayerSimple {
	if x != nil {
		return x.List
	}
	return nil
}

// 隐藏
type ReqFriendIgnore struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"`
}

func (x *ReqFriendIgnore) Reset() {
	*x = ReqFriendIgnore{}
	mi := &file_proto_Gameapi_proto_msgTypes[196]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqFriendIgnore) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqFriendIgnore) ProtoMessage() {}

func (x *ReqFriendIgnore) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[196]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqFriendIgnore.ProtoReflect.Descriptor instead.
func (*ReqFriendIgnore) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{196}
}

func (x *ReqFriendIgnore) GetUid() int64 {
	if x != nil {
		return x.Uid
	}
	return 0
}

type ResFriendIgnore struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResFriendIgnore) Reset() {
	*x = ResFriendIgnore{}
	mi := &file_proto_Gameapi_proto_msgTypes[197]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResFriendIgnore) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResFriendIgnore) ProtoMessage() {}

func (x *ResFriendIgnore) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[197]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResFriendIgnore.ProtoReflect.Descriptor instead.
func (*ResFriendIgnore) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{197}
}

func (x *ResFriendIgnore) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResFriendIgnore) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 好友基础信息
type ReqFriendList struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqFriendList) Reset() {
	*x = ReqFriendList{}
	mi := &file_proto_Gameapi_proto_msgTypes[198]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqFriendList) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqFriendList) ProtoMessage() {}

func (x *ReqFriendList) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[198]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqFriendList.ProtoReflect.Descriptor instead.
func (*ReqFriendList) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{198}
}

type ResFriendList struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	FriendList []*ResPlayerSimple `protobuf:"bytes,1,rep,name=FriendList,proto3" json:"FriendList,omitempty"`
}

func (x *ResFriendList) Reset() {
	*x = ResFriendList{}
	mi := &file_proto_Gameapi_proto_msgTypes[199]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResFriendList) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResFriendList) ProtoMessage() {}

func (x *ResFriendList) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[199]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResFriendList.ProtoReflect.Descriptor instead.
func (*ResFriendList) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{199}
}

func (x *ResFriendList) GetFriendList() []*ResPlayerSimple {
	if x != nil {
		return x.FriendList
	}
	return nil
}

// 好友申请列表
type ReqFriendApply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqFriendApply) Reset() {
	*x = ReqFriendApply{}
	mi := &file_proto_Gameapi_proto_msgTypes[200]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqFriendApply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqFriendApply) ProtoMessage() {}

func (x *ReqFriendApply) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[200]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqFriendApply.ProtoReflect.Descriptor instead.
func (*ReqFriendApply) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{200}
}

type ResFriendApply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ApplyList []*ResFriendApplyInfo `protobuf:"bytes,1,rep,name=ApplyList,proto3" json:"ApplyList,omitempty"`
}

func (x *ResFriendApply) Reset() {
	*x = ResFriendApply{}
	mi := &file_proto_Gameapi_proto_msgTypes[201]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResFriendApply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResFriendApply) ProtoMessage() {}

func (x *ResFriendApply) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[201]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResFriendApply.ProtoReflect.Descriptor instead.
func (*ResFriendApply) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{201}
}

func (x *ResFriendApply) GetApplyList() []*ResFriendApplyInfo {
	if x != nil {
		return x.ApplyList
	}
	return nil
}

type ResFriendApplyInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Player *ResPlayerSimple `protobuf:"bytes,1,opt,name=Player,proto3" json:"Player,omitempty"`
	Time   int32            `protobuf:"varint,2,opt,name=Time,proto3" json:"Time,omitempty"`
}

func (x *ResFriendApplyInfo) Reset() {
	*x = ResFriendApplyInfo{}
	mi := &file_proto_Gameapi_proto_msgTypes[202]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResFriendApplyInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResFriendApplyInfo) ProtoMessage() {}

func (x *ResFriendApplyInfo) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[202]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResFriendApplyInfo.ProtoReflect.Descriptor instead.
func (*ResFriendApplyInfo) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{202}
}

func (x *ResFriendApplyInfo) GetPlayer() *ResPlayerSimple {
	if x != nil {
		return x.Player
	}
	return nil
}

func (x *ResFriendApplyInfo) GetTime() int32 {
	if x != nil {
		return x.Time
	}
	return 0
}

// 好友卡牌交换列表
type ReqFriendCardMsg struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqFriendCardMsg) Reset() {
	*x = ReqFriendCardMsg{}
	mi := &file_proto_Gameapi_proto_msgTypes[203]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqFriendCardMsg) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqFriendCardMsg) ProtoMessage() {}

func (x *ReqFriendCardMsg) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[203]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqFriendCardMsg.ProtoReflect.Descriptor instead.
func (*ReqFriendCardMsg) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{203}
}

type ResFriendCardMsg struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MsgList []*ResFriendCard `protobuf:"bytes,1,rep,name=MsgList,proto3" json:"MsgList,omitempty"`
}

func (x *ResFriendCardMsg) Reset() {
	*x = ResFriendCardMsg{}
	mi := &file_proto_Gameapi_proto_msgTypes[204]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResFriendCardMsg) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResFriendCardMsg) ProtoMessage() {}

func (x *ResFriendCardMsg) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[204]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResFriendCardMsg.ProtoReflect.Descriptor instead.
func (*ResFriendCardMsg) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{204}
}

func (x *ResFriendCardMsg) GetMsgList() []*ResFriendCard {
	if x != nil {
		return x.MsgList
	}
	return nil
}

// 好友时间线
type ReqFriendTimeLine struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqFriendTimeLine) Reset() {
	*x = ReqFriendTimeLine{}
	mi := &file_proto_Gameapi_proto_msgTypes[205]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqFriendTimeLine) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqFriendTimeLine) ProtoMessage() {}

func (x *ReqFriendTimeLine) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[205]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqFriendTimeLine.ProtoReflect.Descriptor instead.
func (*ReqFriendTimeLine) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{205}
}

type ResFriendTimeLine struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Log []*ResFriendLog `protobuf:"bytes,1,rep,name=Log,proto3" json:"Log,omitempty"`
}

func (x *ResFriendTimeLine) Reset() {
	*x = ResFriendTimeLine{}
	mi := &file_proto_Gameapi_proto_msgTypes[206]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResFriendTimeLine) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResFriendTimeLine) ProtoMessage() {}

func (x *ResFriendTimeLine) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[206]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResFriendTimeLine.ProtoReflect.Descriptor instead.
func (*ResFriendTimeLine) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{206}
}

func (x *ResFriendTimeLine) GetLog() []*ResFriendLog {
	if x != nil {
		return x.Log
	}
	return nil
}

// 时间线点赞
type ReqFriendTLUpvote struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`
}

func (x *ReqFriendTLUpvote) Reset() {
	*x = ReqFriendTLUpvote{}
	mi := &file_proto_Gameapi_proto_msgTypes[207]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqFriendTLUpvote) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqFriendTLUpvote) ProtoMessage() {}

func (x *ReqFriendTLUpvote) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[207]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqFriendTLUpvote.ProtoReflect.Descriptor instead.
func (*ReqFriendTLUpvote) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{207}
}

func (x *ReqFriendTLUpvote) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type ResFriendTLUpvote struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
	Id   int32    `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"`
}

func (x *ResFriendTLUpvote) Reset() {
	*x = ResFriendTLUpvote{}
	mi := &file_proto_Gameapi_proto_msgTypes[208]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResFriendTLUpvote) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResFriendTLUpvote) ProtoMessage() {}

func (x *ResFriendTLUpvote) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[208]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResFriendTLUpvote.ProtoReflect.Descriptor instead.
func (*ResFriendTLUpvote) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{208}
}

func (x *ResFriendTLUpvote) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResFriendTLUpvote) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

func (x *ResFriendTLUpvote) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type ResFriendApplyNotify struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Player *ResPlayerSimple `protobuf:"bytes,1,opt,name=Player,proto3" json:"Player,omitempty"`
	Type   int32            `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 1:申请 2:同意 3:拒绝 4:删除
	Time   int32            `protobuf:"varint,3,opt,name=Time,proto3" json:"Time,omitempty"`
}

func (x *ResFriendApplyNotify) Reset() {
	*x = ResFriendApplyNotify{}
	mi := &file_proto_Gameapi_proto_msgTypes[209]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResFriendApplyNotify) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResFriendApplyNotify) ProtoMessage() {}

func (x *ResFriendApplyNotify) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[209]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResFriendApplyNotify.ProtoReflect.Descriptor instead.
func (*ResFriendApplyNotify) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{209}
}

func (x *ResFriendApplyNotify) GetPlayer() *ResPlayerSimple {
	if x != nil {
		return x.Player
	}
	return nil
}

func (x *ResFriendApplyNotify) GetType() int32 {
	if x != nil {
		return x.Type
	}
	return 0
}

func (x *ResFriendApplyNotify) GetTime() int32 {
	if x != nil {
		return x.Time
	}
	return 0
}

// 申请好友
type ReqApplyFriend struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"`
}

func (x *ReqApplyFriend) Reset() {
	*x = ReqApplyFriend{}
	mi := &file_proto_Gameapi_proto_msgTypes[210]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqApplyFriend) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqApplyFriend) ProtoMessage() {}

func (x *ReqApplyFriend) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[210]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqApplyFriend.ProtoReflect.Descriptor instead.
func (*ReqApplyFriend) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{210}
}

func (x *ReqApplyFriend) GetUid() int64 {
	if x != nil {
		return x.Uid
	}
	return 0
}

type ResApplyFriend struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResApplyFriend) Reset() {
	*x = ResApplyFriend{}
	mi := &file_proto_Gameapi_proto_msgTypes[211]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResApplyFriend) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResApplyFriend) ProtoMessage() {}

func (x *ResApplyFriend) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[211]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResApplyFriend.ProtoReflect.Descriptor instead.
func (*ResApplyFriend) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{211}
}

func (x *ResApplyFriend) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResApplyFriend) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 同意申请
type ReqAgreeFriend struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"`
}

func (x *ReqAgreeFriend) Reset() {
	*x = ReqAgreeFriend{}
	mi := &file_proto_Gameapi_proto_msgTypes[212]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqAgreeFriend) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqAgreeFriend) ProtoMessage() {}

func (x *ReqAgreeFriend) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[212]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqAgreeFriend.ProtoReflect.Descriptor instead.
func (*ReqAgreeFriend) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{212}
}

func (x *ReqAgreeFriend) GetUid() int64 {
	if x != nil {
		return x.Uid
	}
	return 0
}

type ResAgreeFriend struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code   RES_CODE         `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg    string           `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
	Uid    int64            `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"`
	Player *ResPlayerSimple `protobuf:"bytes,4,opt,name=Player,proto3" json:"Player,omitempty"`
}

func (x *ResAgreeFriend) Reset() {
	*x = ResAgreeFriend{}
	mi := &file_proto_Gameapi_proto_msgTypes[213]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResAgreeFriend) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResAgreeFriend) ProtoMessage() {}

func (x *ResAgreeFriend) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[213]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResAgreeFriend.ProtoReflect.Descriptor instead.
func (*ResAgreeFriend) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{213}
}

func (x *ResAgreeFriend) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResAgreeFriend) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

func (x *ResAgreeFriend) GetUid() int64 {
	if x != nil {
		return x.Uid
	}
	return 0
}

func (x *ResAgreeFriend) GetPlayer() *ResPlayerSimple {
	if x != nil {
		return x.Player
	}
	return nil
}

// 拒绝申请
type ReqRefuseFriend struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"`
}

func (x *ReqRefuseFriend) Reset() {
	*x = ReqRefuseFriend{}
	mi := &file_proto_Gameapi_proto_msgTypes[214]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqRefuseFriend) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqRefuseFriend) ProtoMessage() {}

func (x *ReqRefuseFriend) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[214]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqRefuseFriend.ProtoReflect.Descriptor instead.
func (*ReqRefuseFriend) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{214}
}

func (x *ReqRefuseFriend) GetUid() int64 {
	if x != nil {
		return x.Uid
	}
	return 0
}

type ResRefuseFriend struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
	Uid  int64    `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"`
}

func (x *ResRefuseFriend) Reset() {
	*x = ResRefuseFriend{}
	mi := &file_proto_Gameapi_proto_msgTypes[215]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResRefuseFriend) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResRefuseFriend) ProtoMessage() {}

func (x *ResRefuseFriend) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[215]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResRefuseFriend.ProtoReflect.Descriptor instead.
func (*ResRefuseFriend) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{215}
}

func (x *ResRefuseFriend) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResRefuseFriend) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

func (x *ResRefuseFriend) GetUid() int64 {
	if x != nil {
		return x.Uid
	}
	return 0
}

// 删除好友
type ReqDelFriend struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"`
}

func (x *ReqDelFriend) Reset() {
	*x = ReqDelFriend{}
	mi := &file_proto_Gameapi_proto_msgTypes[216]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqDelFriend) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqDelFriend) ProtoMessage() {}

func (x *ReqDelFriend) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[216]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqDelFriend.ProtoReflect.Descriptor instead.
func (*ReqDelFriend) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{216}
}

func (x *ReqDelFriend) GetUid() int64 {
	if x != nil {
		return x.Uid
	}
	return 0
}

type ResDelFriend struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
	Uid  int64    `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"`
}

func (x *ResDelFriend) Reset() {
	*x = ResDelFriend{}
	mi := &file_proto_Gameapi_proto_msgTypes[217]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResDelFriend) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResDelFriend) ProtoMessage() {}

func (x *ResDelFriend) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[217]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResDelFriend.ProtoReflect.Descriptor instead.
func (*ResDelFriend) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{217}
}

func (x *ResDelFriend) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResDelFriend) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

func (x *ResDelFriend) GetUid() int64 {
	if x != nil {
		return x.Uid
	}
	return 0
}

// 玩家榜单
type ReqRank struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 1:玩家榜单 2:全球榜单
}

func (x *ReqRank) Reset() {
	*x = ReqRank{}
	mi := &file_proto_Gameapi_proto_msgTypes[218]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqRank) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqRank) ProtoMessage() {}

func (x *ReqRank) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[218]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqRank.ProtoReflect.Descriptor instead.
func (*ReqRank) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{218}
}

func (x *ReqRank) GetType() int32 {
	if x != nil {
		return x.Type
	}
	return 0
}

type ResRank struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Type     int32                      `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"`                                                                                                 // 榜单类型
	RankList map[int32]*ResPlayerSimple `protobuf:"bytes,2,rep,name=RankList,proto3" json:"RankList,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 榜单数据
	MyRank   int32                      `protobuf:"varint,3,opt,name=MyRank,proto3" json:"MyRank,omitempty"`                                                                                             // 我的排行
	MyScore  float32                    `protobuf:"fixed32,4,opt,name=MyScore,proto3" json:"MyScore,omitempty"`                                                                                          //我的积分
}

func (x *ResRank) Reset() {
	*x = ResRank{}
	mi := &file_proto_Gameapi_proto_msgTypes[219]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResRank) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResRank) ProtoMessage() {}

func (x *ResRank) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[219]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResRank.ProtoReflect.Descriptor instead.
func (*ResRank) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{219}
}

func (x *ResRank) GetType() int32 {
	if x != nil {
		return x.Type
	}
	return 0
}

func (x *ResRank) GetRankList() map[int32]*ResPlayerSimple {
	if x != nil {
		return x.RankList
	}
	return nil
}

func (x *ResRank) GetMyRank() int32 {
	if x != nil {
		return x.MyRank
	}
	return 0
}

func (x *ResRank) GetMyScore() float32 {
	if x != nil {
		return x.MyScore
	}
	return 0
}

// 邮件列表
type ReqMailList struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqMailList) Reset() {
	*x = ReqMailList{}
	mi := &file_proto_Gameapi_proto_msgTypes[220]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqMailList) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqMailList) ProtoMessage() {}

func (x *ReqMailList) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[220]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqMailList.ProtoReflect.Descriptor instead.
func (*ReqMailList) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{220}
}

type ResMailList struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MailList map[int32]*MailInfo `protobuf:"bytes,1,rep,name=MailList,proto3" json:"MailList,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *ResMailList) Reset() {
	*x = ResMailList{}
	mi := &file_proto_Gameapi_proto_msgTypes[221]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResMailList) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResMailList) ProtoMessage() {}

func (x *ResMailList) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[221]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResMailList.ProtoReflect.Descriptor instead.
func (*ResMailList) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{221}
}

func (x *ResMailList) GetMailList() map[int32]*MailInfo {
	if x != nil {
		return x.MailList
	}
	return nil
}

type MailInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id      int32       `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`          // 邮件id
	Title   string      `protobuf:"bytes,2,opt,name=Title,proto3" json:"Title,omitempty"`     // 标题
	Content string      `protobuf:"bytes,3,opt,name=Content,proto3" json:"Content,omitempty"` // 内容
	Time    int32       `protobuf:"varint,4,opt,name=Time,proto3" json:"Time,omitempty"`      // 时间
	Status  int32       `protobuf:"varint,5,opt,name=Status,proto3" json:"Status,omitempty"`  // 0 未读 1 已读 2 已领取 3 已删除
	Items   []*ItemInfo `protobuf:"bytes,6,rep,name=Items,proto3" json:"Items,omitempty"`     // 奖励
}

func (x *MailInfo) Reset() {
	*x = MailInfo{}
	mi := &file_proto_Gameapi_proto_msgTypes[222]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *MailInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MailInfo) ProtoMessage() {}

func (x *MailInfo) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[222]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MailInfo.ProtoReflect.Descriptor instead.
func (*MailInfo) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{222}
}

func (x *MailInfo) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *MailInfo) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *MailInfo) GetContent() string {
	if x != nil {
		return x.Content
	}
	return ""
}

func (x *MailInfo) GetTime() int32 {
	if x != nil {
		return x.Time
	}
	return 0
}

func (x *MailInfo) GetStatus() int32 {
	if x != nil {
		return x.Status
	}
	return 0
}

func (x *MailInfo) GetItems() []*ItemInfo {
	if x != nil {
		return x.Items
	}
	return nil
}

type MailNotify struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Info *MailInfo `protobuf:"bytes,1,opt,name=Info,proto3" json:"Info,omitempty"`
}

func (x *MailNotify) Reset() {
	*x = MailNotify{}
	mi := &file_proto_Gameapi_proto_msgTypes[223]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *MailNotify) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MailNotify) ProtoMessage() {}

func (x *MailNotify) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[223]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MailNotify.ProtoReflect.Descriptor instead.
func (*MailNotify) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{223}
}

func (x *MailNotify) GetInfo() *MailInfo {
	if x != nil {
		return x.Info
	}
	return nil
}

// 读邮件
type ReqReadMail struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`
}

func (x *ReqReadMail) Reset() {
	*x = ReqReadMail{}
	mi := &file_proto_Gameapi_proto_msgTypes[224]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqReadMail) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqReadMail) ProtoMessage() {}

func (x *ReqReadMail) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[224]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqReadMail.ProtoReflect.Descriptor instead.
func (*ReqReadMail) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{224}
}

func (x *ReqReadMail) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type ResReadMail struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
	Id   int32    `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"`
}

func (x *ResReadMail) Reset() {
	*x = ResReadMail{}
	mi := &file_proto_Gameapi_proto_msgTypes[225]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResReadMail) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResReadMail) ProtoMessage() {}

func (x *ResReadMail) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[225]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResReadMail.ProtoReflect.Descriptor instead.
func (*ResReadMail) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{225}
}

func (x *ResReadMail) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResReadMail) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

func (x *ResReadMail) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

// 领取邮件
type ReqGetMailReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`
}

func (x *ReqGetMailReward) Reset() {
	*x = ReqGetMailReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[226]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqGetMailReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqGetMailReward) ProtoMessage() {}

func (x *ReqGetMailReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[226]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqGetMailReward.ProtoReflect.Descriptor instead.
func (*ReqGetMailReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{226}
}

func (x *ReqGetMailReward) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type ResGetMailReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
	Id   int32    `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"`
}

func (x *ResGetMailReward) Reset() {
	*x = ResGetMailReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[227]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResGetMailReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResGetMailReward) ProtoMessage() {}

func (x *ResGetMailReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[227]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResGetMailReward.ProtoReflect.Descriptor instead.
func (*ResGetMailReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{227}
}

func (x *ResGetMailReward) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResGetMailReward) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

func (x *ResGetMailReward) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

// 删除邮件
type ReqDeleteMail struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`
}

func (x *ReqDeleteMail) Reset() {
	*x = ReqDeleteMail{}
	mi := &file_proto_Gameapi_proto_msgTypes[228]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqDeleteMail) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqDeleteMail) ProtoMessage() {}

func (x *ReqDeleteMail) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[228]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqDeleteMail.ProtoReflect.Descriptor instead.
func (*ReqDeleteMail) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{228}
}

func (x *ReqDeleteMail) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type ResDeleteMail struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
	Id   int32    `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"`
}

func (x *ResDeleteMail) Reset() {
	*x = ResDeleteMail{}
	mi := &file_proto_Gameapi_proto_msgTypes[229]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResDeleteMail) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResDeleteMail) ProtoMessage() {}

func (x *ResDeleteMail) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[229]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResDeleteMail.ProtoReflect.Descriptor instead.
func (*ResDeleteMail) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{229}
}

func (x *ResDeleteMail) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResDeleteMail) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

func (x *ResDeleteMail) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type ResCharge struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Charge      float32                   `protobuf:"fixed32,1,opt,name=Charge,proto3" json:"Charge,omitempty"`                                                                                                  // 总充值金额
	Total       int32                     `protobuf:"varint,2,opt,name=Total,proto3" json:"Total,omitempty"`                                                                                                     // 总充值次数
	First       []int32                   `protobuf:"varint,3,rep,packed,name=First,proto3" json:"First,omitempty"`                                                                                              //已首充档次
	SpecialShop map[int32]*ResSpecialShop `protobuf:"bytes,4,rep,name=SpecialShop,proto3" json:"SpecialShop,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 特惠礼包
	FreeShop    int32                     `protobuf:"varint,5,opt,name=FreeShop,proto3" json:"FreeShop,omitempty"`                                                                                               // 已领取免费礼包档次
	ChessShop   map[int32]*ResChessShop   `protobuf:"bytes,6,rep,name=ChessShop,proto3" json:"ChessShop,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`     // 棋子商店
	Gift        map[int32]int32           `protobuf:"bytes,7,rep,name=Gift,proto3" json:"Gift,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`              // 礼包 礼包id =》 礼包数量
	Ad          bool                      `protobuf:"varint,8,opt,name=Ad,proto3" json:"Ad,omitempty"`                                                                                                           // 是否有广告礼包
}

func (x *ResCharge) Reset() {
	*x = ResCharge{}
	mi := &file_proto_Gameapi_proto_msgTypes[230]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResCharge) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResCharge) ProtoMessage() {}

func (x *ResCharge) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[230]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResCharge.ProtoReflect.Descriptor instead.
func (*ResCharge) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{230}
}

func (x *ResCharge) GetCharge() float32 {
	if x != nil {
		return x.Charge
	}
	return 0
}

func (x *ResCharge) GetTotal() int32 {
	if x != nil {
		return x.Total
	}
	return 0
}

func (x *ResCharge) GetFirst() []int32 {
	if x != nil {
		return x.First
	}
	return nil
}

func (x *ResCharge) GetSpecialShop() map[int32]*ResSpecialShop {
	if x != nil {
		return x.SpecialShop
	}
	return nil
}

func (x *ResCharge) GetFreeShop() int32 {
	if x != nil {
		return x.FreeShop
	}
	return 0
}

func (x *ResCharge) GetChessShop() map[int32]*ResChessShop {
	if x != nil {
		return x.ChessShop
	}
	return nil
}

func (x *ResCharge) GetGift() map[int32]int32 {
	if x != nil {
		return x.Gift
	}
	return nil
}

func (x *ResCharge) GetAd() bool {
	if x != nil {
		return x.Ad
	}
	return false
}

type ResSpecialShop struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Grade int32 `protobuf:"varint,1,opt,name=Grade,proto3" json:"Grade,omitempty"` //挡位
	Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` //剩余购买次数
}

func (x *ResSpecialShop) Reset() {
	*x = ResSpecialShop{}
	mi := &file_proto_Gameapi_proto_msgTypes[231]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResSpecialShop) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResSpecialShop) ProtoMessage() {}

func (x *ResSpecialShop) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[231]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResSpecialShop.ProtoReflect.Descriptor instead.
func (*ResSpecialShop) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{231}
}

func (x *ResSpecialShop) GetGrade() int32 {
	if x != nil {
		return x.Grade
	}
	return 0
}

func (x *ResSpecialShop) GetCount() int32 {
	if x != nil {
		return x.Count
	}
	return 0
}

type ResChessShop struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Diamond int32 `protobuf:"varint,1,opt,name=Diamond,proto3" json:"Diamond,omitempty"` // 需要花费钻石
	Count   int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"`     // 剩余购买数量
	ChessId int32 `protobuf:"varint,3,opt,name=ChessId,proto3" json:"ChessId,omitempty"` // 棋子id
}

func (x *ResChessShop) Reset() {
	*x = ResChessShop{}
	mi := &file_proto_Gameapi_proto_msgTypes[232]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResChessShop) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResChessShop) ProtoMessage() {}

func (x *ResChessShop) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[232]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResChessShop.ProtoReflect.Descriptor instead.
func (*ResChessShop) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{232}
}

func (x *ResChessShop) GetDiamond() int32 {
	if x != nil {
		return x.Diamond
	}
	return 0
}

func (x *ResChessShop) GetCount() int32 {
	if x != nil {
		return x.Count
	}
	return 0
}

func (x *ResChessShop) GetChessId() int32 {
	if x != nil {
		return x.ChessId
	}
	return 0
}

type ReqFreeShop struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqFreeShop) Reset() {
	*x = ReqFreeShop{}
	mi := &file_proto_Gameapi_proto_msgTypes[233]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqFreeShop) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqFreeShop) ProtoMessage() {}

func (x *ReqFreeShop) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[233]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqFreeShop.ProtoReflect.Descriptor instead.
func (*ReqFreeShop) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{233}
}

type ResFreeShop struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResFreeShop) Reset() {
	*x = ResFreeShop{}
	mi := &file_proto_Gameapi_proto_msgTypes[234]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResFreeShop) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResFreeShop) ProtoMessage() {}

func (x *ResFreeShop) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[234]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResFreeShop.ProtoReflect.Descriptor instead.
func (*ResFreeShop) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{234}
}

func (x *ResFreeShop) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResFreeShop) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 商店购买棋子
type ReqBuyChessShop struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`
}

func (x *ReqBuyChessShop) Reset() {
	*x = ReqBuyChessShop{}
	mi := &file_proto_Gameapi_proto_msgTypes[235]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqBuyChessShop) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqBuyChessShop) ProtoMessage() {}

func (x *ReqBuyChessShop) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[235]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqBuyChessShop.ProtoReflect.Descriptor instead.
func (*ReqBuyChessShop) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{235}
}

func (x *ReqBuyChessShop) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type ResBuyChessShop struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResBuyChessShop) Reset() {
	*x = ResBuyChessShop{}
	mi := &file_proto_Gameapi_proto_msgTypes[236]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResBuyChessShop) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResBuyChessShop) ProtoMessage() {}

func (x *ResBuyChessShop) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[236]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResBuyChessShop.ProtoReflect.Descriptor instead.
func (*ResBuyChessShop) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{236}
}

func (x *ResBuyChessShop) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResBuyChessShop) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 商店购买棋子
type ReqBuyChessShop2 struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id         int32            `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`
	MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
}

func (x *ReqBuyChessShop2) Reset() {
	*x = ReqBuyChessShop2{}
	mi := &file_proto_Gameapi_proto_msgTypes[237]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqBuyChessShop2) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqBuyChessShop2) ProtoMessage() {}

func (x *ReqBuyChessShop2) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[237]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqBuyChessShop2.ProtoReflect.Descriptor instead.
func (*ReqBuyChessShop2) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{237}
}

func (x *ReqBuyChessShop2) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *ReqBuyChessShop2) GetMChessData() map[string]int32 {
	if x != nil {
		return x.MChessData
	}
	return nil
}

type ResBuyChessShop2 struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResBuyChessShop2) Reset() {
	*x = ResBuyChessShop2{}
	mi := &file_proto_Gameapi_proto_msgTypes[238]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResBuyChessShop2) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResBuyChessShop2) ProtoMessage() {}

func (x *ResBuyChessShop2) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[238]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResBuyChessShop2.ProtoReflect.Descriptor instead.
func (*ResBuyChessShop2) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{238}
}

func (x *ResBuyChessShop2) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResBuyChessShop2) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 刷新棋子商店
type ReqRefreshChessShop struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqRefreshChessShop) Reset() {
	*x = ReqRefreshChessShop{}
	mi := &file_proto_Gameapi_proto_msgTypes[239]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqRefreshChessShop) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqRefreshChessShop) ProtoMessage() {}

func (x *ReqRefreshChessShop) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[239]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqRefreshChessShop.ProtoReflect.Descriptor instead.
func (*ReqRefreshChessShop) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{239}
}

type ResRefreshChessShop struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResRefreshChessShop) Reset() {
	*x = ResRefreshChessShop{}
	mi := &file_proto_Gameapi_proto_msgTypes[240]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResRefreshChessShop) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResRefreshChessShop) ProtoMessage() {}

func (x *ResRefreshChessShop) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[240]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResRefreshChessShop.ProtoReflect.Descriptor instead.
func (*ResRefreshChessShop) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{240}
}

func (x *ResRefreshChessShop) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResRefreshChessShop) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type ReqEndless struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqEndless) Reset() {
	*x = ReqEndless{}
	mi := &file_proto_Gameapi_proto_msgTypes[241]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqEndless) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqEndless) ProtoMessage() {}

func (x *ReqEndless) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[241]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqEndless.ProtoReflect.Descriptor instead.
func (*ReqEndless) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{241}
}

type ResEndless struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id          int32                     `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`
	EndlessList map[int32]*ResEndlessInfo `protobuf:"bytes,2,rep,name=EndlessList,proto3" json:"EndlessList,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *ResEndless) Reset() {
	*x = ResEndless{}
	mi := &file_proto_Gameapi_proto_msgTypes[242]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResEndless) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResEndless) ProtoMessage() {}

func (x *ResEndless) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[242]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResEndless.ProtoReflect.Descriptor instead.
func (*ResEndless) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{242}
}

func (x *ResEndless) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *ResEndless) GetEndlessList() map[int32]*ResEndlessInfo {
	if x != nil {
		return x.EndlessList
	}
	return nil
}

type ResEndlessInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ChargeId int32       `protobuf:"varint,1,opt,name=ChargeId,proto3" json:"ChargeId,omitempty"`
	Type     int32       `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"`
	Items    []*ItemInfo `protobuf:"bytes,3,rep,name=Items,proto3" json:"Items,omitempty"`
}

func (x *ResEndlessInfo) Reset() {
	*x = ResEndlessInfo{}
	mi := &file_proto_Gameapi_proto_msgTypes[243]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResEndlessInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResEndlessInfo) ProtoMessage() {}

func (x *ResEndlessInfo) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[243]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResEndlessInfo.ProtoReflect.Descriptor instead.
func (*ResEndlessInfo) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{243}
}

func (x *ResEndlessInfo) GetChargeId() int32 {
	if x != nil {
		return x.ChargeId
	}
	return 0
}

func (x *ResEndlessInfo) GetType() int32 {
	if x != nil {
		return x.Type
	}
	return 0
}

func (x *ResEndlessInfo) GetItems() []*ItemInfo {
	if x != nil {
		return x.Items
	}
	return nil
}

type ReqEndlessReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqEndlessReward) Reset() {
	*x = ReqEndlessReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[244]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqEndlessReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqEndlessReward) ProtoMessage() {}

func (x *ReqEndlessReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[244]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqEndlessReward.ProtoReflect.Descriptor instead.
func (*ReqEndlessReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{244}
}

type ResEndlessReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResEndlessReward) Reset() {
	*x = ResEndlessReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[245]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResEndlessReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResEndlessReward) ProtoMessage() {}

func (x *ResEndlessReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[245]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResEndlessReward.ProtoReflect.Descriptor instead.
func (*ResEndlessReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{245}
}

func (x *ResEndlessReward) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResEndlessReward) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type ResPiggyBank struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Type    int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"`       // 存钱罐类型 1：充值 2：广告
	Diamond int32 `protobuf:"varint,2,opt,name=Diamond,proto3" json:"Diamond,omitempty"` // 存钱罐中的钻石
	Count   int32 `protobuf:"varint,3,opt,name=Count,proto3" json:"Count,omitempty"`     // 剩余可以触发的次数
	EndTime int32 `protobuf:"varint,4,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 当前存钱罐结束时间
}

func (x *ResPiggyBank) Reset() {
	*x = ResPiggyBank{}
	mi := &file_proto_Gameapi_proto_msgTypes[246]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResPiggyBank) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResPiggyBank) ProtoMessage() {}

func (x *ResPiggyBank) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[246]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResPiggyBank.ProtoReflect.Descriptor instead.
func (*ResPiggyBank) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{246}
}

func (x *ResPiggyBank) GetType() int32 {
	if x != nil {
		return x.Type
	}
	return 0
}

func (x *ResPiggyBank) GetDiamond() int32 {
	if x != nil {
		return x.Diamond
	}
	return 0
}

func (x *ResPiggyBank) GetCount() int32 {
	if x != nil {
		return x.Count
	}
	return 0
}

func (x *ResPiggyBank) GetEndTime() int32 {
	if x != nil {
		return x.EndTime
	}
	return 0
}

type ReqPiggyBankReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqPiggyBankReward) Reset() {
	*x = ReqPiggyBankReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[247]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqPiggyBankReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqPiggyBankReward) ProtoMessage() {}

func (x *ReqPiggyBankReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[247]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqPiggyBankReward.ProtoReflect.Descriptor instead.
func (*ReqPiggyBankReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{247}
}

type ResPiggyBankReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResPiggyBankReward) Reset() {
	*x = ResPiggyBankReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[248]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResPiggyBankReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResPiggyBankReward) ProtoMessage() {}

func (x *ResPiggyBankReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[248]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResPiggyBankReward.ProtoReflect.Descriptor instead.
func (*ResPiggyBankReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{248}
}

func (x *ResPiggyBankReward) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResPiggyBankReward) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type ReqCreateOrderSn struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ChargeId int32  `protobuf:"varint,1,opt,name=ChargeId,proto3" json:"ChargeId,omitempty"`
	PlatForm string `protobuf:"bytes,2,opt,name=PlatForm,proto3" json:"PlatForm,omitempty"` // 平台标识 测试用test
	Channel  string `protobuf:"bytes,3,opt,name=channel,proto3" json:"channel,omitempty"`   // 支付渠道标识  测试用test
}

func (x *ReqCreateOrderSn) Reset() {
	*x = ReqCreateOrderSn{}
	mi := &file_proto_Gameapi_proto_msgTypes[249]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqCreateOrderSn) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqCreateOrderSn) ProtoMessage() {}

func (x *ReqCreateOrderSn) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[249]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqCreateOrderSn.ProtoReflect.Descriptor instead.
func (*ReqCreateOrderSn) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{249}
}

func (x *ReqCreateOrderSn) GetChargeId() int32 {
	if x != nil {
		return x.ChargeId
	}
	return 0
}

func (x *ReqCreateOrderSn) GetPlatForm() string {
	if x != nil {
		return x.PlatForm
	}
	return ""
}

func (x *ReqCreateOrderSn) GetChannel() string {
	if x != nil {
		return x.Channel
	}
	return ""
}

type ResCreateOrderSn struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	OrderSn string `protobuf:"bytes,1,opt,name=OrderSn,proto3" json:"OrderSn,omitempty"` // 订单号
}

func (x *ResCreateOrderSn) Reset() {
	*x = ResCreateOrderSn{}
	mi := &file_proto_Gameapi_proto_msgTypes[250]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResCreateOrderSn) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResCreateOrderSn) ProtoMessage() {}

func (x *ResCreateOrderSn) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[250]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResCreateOrderSn.ProtoReflect.Descriptor instead.
func (*ResCreateOrderSn) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{250}
}

func (x *ResCreateOrderSn) GetOrderSn() string {
	if x != nil {
		return x.OrderSn
	}
	return ""
}

type ReqShippingOrder struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	OrderSn   string `protobuf:"bytes,1,opt,name=OrderSn,proto3" json:"OrderSn,omitempty"`     // 订单号
	ProduceId string `protobuf:"bytes,2,opt,name=ProduceId,proto3" json:"ProduceId,omitempty"` // 商品Id
	Token     string `protobuf:"bytes,3,opt,name=Token,proto3" json:"Token,omitempty"`         // token
	Status    int32  `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"`      // 1:支付成功 2:支付失败
}

func (x *ReqShippingOrder) Reset() {
	*x = ReqShippingOrder{}
	mi := &file_proto_Gameapi_proto_msgTypes[251]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqShippingOrder) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqShippingOrder) ProtoMessage() {}

func (x *ReqShippingOrder) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[251]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqShippingOrder.ProtoReflect.Descriptor instead.
func (*ReqShippingOrder) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{251}
}

func (x *ReqShippingOrder) GetOrderSn() string {
	if x != nil {
		return x.OrderSn
	}
	return ""
}

func (x *ReqShippingOrder) GetProduceId() string {
	if x != nil {
		return x.ProduceId
	}
	return ""
}

func (x *ReqShippingOrder) GetToken() string {
	if x != nil {
		return x.Token
	}
	return ""
}

func (x *ReqShippingOrder) GetStatus() int32 {
	if x != nil {
		return x.Status
	}
	return 0
}

type ResShippingOrder struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResShippingOrder) Reset() {
	*x = ResShippingOrder{}
	mi := &file_proto_Gameapi_proto_msgTypes[252]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResShippingOrder) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResShippingOrder) ProtoMessage() {}

func (x *ResShippingOrder) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[252]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResShippingOrder.ProtoReflect.Descriptor instead.
func (*ResShippingOrder) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{252}
}

func (x *ResShippingOrder) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResShippingOrder) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type ReqChampship struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqChampship) Reset() {
	*x = ReqChampship{}
	mi := &file_proto_Gameapi_proto_msgTypes[253]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqChampship) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqChampship) ProtoMessage() {}

func (x *ReqChampship) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[253]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqChampship.ProtoReflect.Descriptor instead.
func (*ReqChampship) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{253}
}

type ResChampship struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Score      int32 `protobuf:"varint,1,opt,name=Score,proto3" json:"Score,omitempty"`
	Reward     int32 `protobuf:"varint,2,opt,name=Reward,proto3" json:"Reward,omitempty"`
	EndTime    int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"`
	Period     int32 `protobuf:"varint,4,opt,name=Period,proto3" json:"Period,omitempty"`
	Rank       int32 `protobuf:"varint,5,opt,name=Rank,proto3" json:"Rank,omitempty"`
	RankReward int32 `protobuf:"varint,6,opt,name=RankReward,proto3" json:"RankReward,omitempty"`
	Status     int32 `protobuf:"varint,7,opt,name=Status,proto3" json:"Status,omitempty"`
}

func (x *ResChampship) Reset() {
	*x = ResChampship{}
	mi := &file_proto_Gameapi_proto_msgTypes[254]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResChampship) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResChampship) ProtoMessage() {}

func (x *ResChampship) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[254]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResChampship.ProtoReflect.Descriptor instead.
func (*ResChampship) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{254}
}

func (x *ResChampship) GetScore() int32 {
	if x != nil {
		return x.Score
	}
	return 0
}

func (x *ResChampship) GetReward() int32 {
	if x != nil {
		return x.Reward
	}
	return 0
}

func (x *ResChampship) GetEndTime() int32 {
	if x != nil {
		return x.EndTime
	}
	return 0
}

func (x *ResChampship) GetPeriod() int32 {
	if x != nil {
		return x.Period
	}
	return 0
}

func (x *ResChampship) GetRank() int32 {
	if x != nil {
		return x.Rank
	}
	return 0
}

func (x *ResChampship) GetRankReward() int32 {
	if x != nil {
		return x.RankReward
	}
	return 0
}

func (x *ResChampship) GetStatus() int32 {
	if x != nil {
		return x.Status
	}
	return 0
}

type ReqChampshipReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqChampshipReward) Reset() {
	*x = ReqChampshipReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[255]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqChampshipReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqChampshipReward) ProtoMessage() {}

func (x *ReqChampshipReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[255]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqChampshipReward.ProtoReflect.Descriptor instead.
func (*ReqChampshipReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{255}
}

type ResChampshipReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResChampshipReward) Reset() {
	*x = ResChampshipReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[256]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResChampshipReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResChampshipReward) ProtoMessage() {}

func (x *ResChampshipReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[256]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResChampshipReward.ProtoReflect.Descriptor instead.
func (*ResChampshipReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{256}
}

func (x *ResChampshipReward) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResChampshipReward) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type ReqChampshipRankReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqChampshipRankReward) Reset() {
	*x = ReqChampshipRankReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[257]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqChampshipRankReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqChampshipRankReward) ProtoMessage() {}

func (x *ReqChampshipRankReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[257]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqChampshipRankReward.ProtoReflect.Descriptor instead.
func (*ReqChampshipRankReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{257}
}

type ResChampshipRankReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResChampshipRankReward) Reset() {
	*x = ResChampshipRankReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[258]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResChampshipRankReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResChampshipRankReward) ProtoMessage() {}

func (x *ResChampshipRankReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[258]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResChampshipRankReward.ProtoReflect.Descriptor instead.
func (*ResChampshipRankReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{258}
}

func (x *ResChampshipRankReward) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResChampshipRankReward) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type ReqChampshipRank struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqChampshipRank) Reset() {
	*x = ReqChampshipRank{}
	mi := &file_proto_Gameapi_proto_msgTypes[259]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqChampshipRank) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqChampshipRank) ProtoMessage() {}

func (x *ReqChampshipRank) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[259]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqChampshipRank.ProtoReflect.Descriptor instead.
func (*ReqChampshipRank) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{259}
}

type ResChampshipRank struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	RankList map[int32]*ResPlayerRank `protobuf:"bytes,1,rep,name=RankList,proto3" json:"RankList,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 榜单数据
	MyRank   int32                    `protobuf:"varint,2,opt,name=MyRank,proto3" json:"MyRank,omitempty"`                                                                                             // 我的排行
	MyScore  float32                  `protobuf:"fixed32,3,opt,name=MyScore,proto3" json:"MyScore,omitempty"`                                                                                          //我的积分
}

func (x *ResChampshipRank) Reset() {
	*x = ResChampshipRank{}
	mi := &file_proto_Gameapi_proto_msgTypes[260]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResChampshipRank) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResChampshipRank) ProtoMessage() {}

func (x *ResChampshipRank) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[260]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResChampshipRank.ProtoReflect.Descriptor instead.
func (*ResChampshipRank) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{260}
}

func (x *ResChampshipRank) GetRankList() map[int32]*ResPlayerRank {
	if x != nil {
		return x.RankList
	}
	return nil
}

func (x *ResChampshipRank) GetMyRank() int32 {
	if x != nil {
		return x.MyRank
	}
	return 0
}

func (x *ResChampshipRank) GetMyScore() float32 {
	if x != nil {
		return x.MyScore
	}
	return 0
}

type ReqChampshipPreRank struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqChampshipPreRank) Reset() {
	*x = ReqChampshipPreRank{}
	mi := &file_proto_Gameapi_proto_msgTypes[261]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqChampshipPreRank) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqChampshipPreRank) ProtoMessage() {}

func (x *ReqChampshipPreRank) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[261]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqChampshipPreRank.ProtoReflect.Descriptor instead.
func (*ReqChampshipPreRank) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{261}
}

type ResChampshipPreRank struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	RankList map[int32]*ResPlayerRank `protobuf:"bytes,1,rep,name=RankList,proto3" json:"RankList,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 榜单数据
	MyRank   int32                    `protobuf:"varint,2,opt,name=MyRank,proto3" json:"MyRank,omitempty"`                                                                                             // 我的排行
	MyScore  float32                  `protobuf:"fixed32,3,opt,name=MyScore,proto3" json:"MyScore,omitempty"`                                                                                          //我的积分
}

func (x *ResChampshipPreRank) Reset() {
	*x = ResChampshipPreRank{}
	mi := &file_proto_Gameapi_proto_msgTypes[262]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResChampshipPreRank) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResChampshipPreRank) ProtoMessage() {}

func (x *ResChampshipPreRank) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[262]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResChampshipPreRank.ProtoReflect.Descriptor instead.
func (*ResChampshipPreRank) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{262}
}

func (x *ResChampshipPreRank) GetRankList() map[int32]*ResPlayerRank {
	if x != nil {
		return x.RankList
	}
	return nil
}

func (x *ResChampshipPreRank) GetMyRank() int32 {
	if x != nil {
		return x.MyRank
	}
	return 0
}

func (x *ResChampshipPreRank) GetMyScore() float32 {
	if x != nil {
		return x.MyScore
	}
	return 0
}

type ResNotifyCard struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Card     map[int32]int32 `protobuf:"bytes,1,rep,name=Card,proto3" json:"Card,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`         //  卡牌
	Master   map[int32]int32 `protobuf:"bytes,2,rep,name=Master,proto3" json:"Master,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`     //  万能卡牌
	ExStar   int32           `protobuf:"varint,3,opt,name=ExStar,proto3" json:"ExStar,omitempty"`                                                                                              // 额外星星
	Handbook map[int32]int32 `protobuf:"bytes,4,rep,name=Handbook,proto3" json:"Handbook,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 图鉴
}

func (x *ResNotifyCard) Reset() {
	*x = ResNotifyCard{}
	mi := &file_proto_Gameapi_proto_msgTypes[263]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResNotifyCard) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResNotifyCard) ProtoMessage() {}

func (x *ResNotifyCard) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[263]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResNotifyCard.ProtoReflect.Descriptor instead.
func (*ResNotifyCard) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{263}
}

func (x *ResNotifyCard) GetCard() map[int32]int32 {
	if x != nil {
		return x.Card
	}
	return nil
}

func (x *ResNotifyCard) GetMaster() map[int32]int32 {
	if x != nil {
		return x.Master
	}
	return nil
}

func (x *ResNotifyCard) GetExStar() int32 {
	if x != nil {
		return x.ExStar
	}
	return 0
}

func (x *ResNotifyCard) GetHandbook() map[int32]int32 {
	if x != nil {
		return x.Handbook
	}
	return nil
}

type ReqSetFacebookUrl struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Url string `protobuf:"bytes,1,opt,name=Url,proto3" json:"Url,omitempty"`
}

func (x *ReqSetFacebookUrl) Reset() {
	*x = ReqSetFacebookUrl{}
	mi := &file_proto_Gameapi_proto_msgTypes[264]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqSetFacebookUrl) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqSetFacebookUrl) ProtoMessage() {}

func (x *ReqSetFacebookUrl) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[264]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqSetFacebookUrl.ProtoReflect.Descriptor instead.
func (*ReqSetFacebookUrl) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{264}
}

func (x *ReqSetFacebookUrl) GetUrl() string {
	if x != nil {
		return x.Url
	}
	return ""
}

type ResSetFacebookUrl struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResSetFacebookUrl) Reset() {
	*x = ResSetFacebookUrl{}
	mi := &file_proto_Gameapi_proto_msgTypes[265]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResSetFacebookUrl) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResSetFacebookUrl) ProtoMessage() {}

func (x *ResSetFacebookUrl) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[265]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResSetFacebookUrl.ProtoReflect.Descriptor instead.
func (*ResSetFacebookUrl) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{265}
}

func (x *ResSetFacebookUrl) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResSetFacebookUrl) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 邀请facebook好友
type ReqInviteFriendData struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"`
}

func (x *ReqInviteFriendData) Reset() {
	*x = ReqInviteFriendData{}
	mi := &file_proto_Gameapi_proto_msgTypes[266]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqInviteFriendData) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqInviteFriendData) ProtoMessage() {}

func (x *ReqInviteFriendData) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[266]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqInviteFriendData.ProtoReflect.Descriptor instead.
func (*ReqInviteFriendData) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{266}
}

func (x *ReqInviteFriendData) GetDwUin() int64 {
	if x != nil {
		return x.DwUin
	}
	return 0
}

type ResInviteFriendData struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	IdLists  []int32 `protobuf:"varint,1,rep,packed,name=IdLists,proto3" json:"IdLists,omitempty"`
	GetIndex int32   `protobuf:"varint,2,opt,name=GetIndex,proto3" json:"GetIndex,omitempty"`
}

func (x *ResInviteFriendData) Reset() {
	*x = ResInviteFriendData{}
	mi := &file_proto_Gameapi_proto_msgTypes[267]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResInviteFriendData) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResInviteFriendData) ProtoMessage() {}

func (x *ResInviteFriendData) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[267]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResInviteFriendData.ProtoReflect.Descriptor instead.
func (*ResInviteFriendData) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{267}
}

func (x *ResInviteFriendData) GetIdLists() []int32 {
	if x != nil {
		return x.IdLists
	}
	return nil
}

func (x *ResInviteFriendData) GetGetIndex() int32 {
	if x != nil {
		return x.GetIndex
	}
	return 0
}

type ReqSelfInvited struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	InviterId int64 `protobuf:"varint,1,opt,name=InviterId,proto3" json:"InviterId,omitempty"`
}

func (x *ReqSelfInvited) Reset() {
	*x = ReqSelfInvited{}
	mi := &file_proto_Gameapi_proto_msgTypes[268]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqSelfInvited) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqSelfInvited) ProtoMessage() {}

func (x *ReqSelfInvited) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[268]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqSelfInvited.ProtoReflect.Descriptor instead.
func (*ReqSelfInvited) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{268}
}

func (x *ReqSelfInvited) GetInviterId() int64 {
	if x != nil {
		return x.InviterId
	}
	return 0
}

type ResSelfInvited struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"`
}

func (x *ResSelfInvited) Reset() {
	*x = ResSelfInvited{}
	mi := &file_proto_Gameapi_proto_msgTypes[269]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResSelfInvited) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResSelfInvited) ProtoMessage() {}

func (x *ResSelfInvited) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[269]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResSelfInvited.ProtoReflect.Descriptor instead.
func (*ResSelfInvited) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{269}
}

func (x *ResSelfInvited) GetResultCode() int32 {
	if x != nil {
		return x.ResultCode
	}
	return 0
}

type NotifyInvitedSuccess struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ResultCode int32   `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"`
	IdLists    []int32 `protobuf:"varint,2,rep,packed,name=IdLists,proto3" json:"IdLists,omitempty"`
}

func (x *NotifyInvitedSuccess) Reset() {
	*x = NotifyInvitedSuccess{}
	mi := &file_proto_Gameapi_proto_msgTypes[270]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *NotifyInvitedSuccess) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NotifyInvitedSuccess) ProtoMessage() {}

func (x *NotifyInvitedSuccess) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[270]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use NotifyInvitedSuccess.ProtoReflect.Descriptor instead.
func (*NotifyInvitedSuccess) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{270}
}

func (x *NotifyInvitedSuccess) GetResultCode() int32 {
	if x != nil {
		return x.ResultCode
	}
	return 0
}

func (x *NotifyInvitedSuccess) GetIdLists() []int32 {
	if x != nil {
		return x.IdLists
	}
	return nil
}

type ReqGetInviteReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	GetIndex int32 `protobuf:"varint,1,opt,name=GetIndex,proto3" json:"GetIndex,omitempty"`
}

func (x *ReqGetInviteReward) Reset() {
	*x = ReqGetInviteReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[271]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqGetInviteReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqGetInviteReward) ProtoMessage() {}

func (x *ReqGetInviteReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[271]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqGetInviteReward.ProtoReflect.Descriptor instead.
func (*ReqGetInviteReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{271}
}

func (x *ReqGetInviteReward) GetGetIndex() int32 {
	if x != nil {
		return x.GetIndex
	}
	return 0
}

type ResGetInviteReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"`
}

func (x *ResGetInviteReward) Reset() {
	*x = ResGetInviteReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[272]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResGetInviteReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResGetInviteReward) ProtoMessage() {}

func (x *ResGetInviteReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[272]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResGetInviteReward.ProtoReflect.Descriptor instead.
func (*ResGetInviteReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{272}
}

func (x *ResGetInviteReward) GetResultCode() int32 {
	if x != nil {
		return x.ResultCode
	}
	return 0
}

type ReqAutoAddInviteFriend struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` // uid
}

func (x *ReqAutoAddInviteFriend) Reset() {
	*x = ReqAutoAddInviteFriend{}
	mi := &file_proto_Gameapi_proto_msgTypes[273]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqAutoAddInviteFriend) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqAutoAddInviteFriend) ProtoMessage() {}

func (x *ReqAutoAddInviteFriend) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[273]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqAutoAddInviteFriend.ProtoReflect.Descriptor instead.
func (*ReqAutoAddInviteFriend) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{273}
}

func (x *ReqAutoAddInviteFriend) GetId() int64 {
	if x != nil {
		return x.Id
	}
	return 0
}

type ResAutoAddInviteFriend struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"`
}

func (x *ResAutoAddInviteFriend) Reset() {
	*x = ResAutoAddInviteFriend{}
	mi := &file_proto_Gameapi_proto_msgTypes[274]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResAutoAddInviteFriend) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResAutoAddInviteFriend) ProtoMessage() {}

func (x *ResAutoAddInviteFriend) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[274]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResAutoAddInviteFriend.ProtoReflect.Descriptor instead.
func (*ResAutoAddInviteFriend) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{274}
}

func (x *ResAutoAddInviteFriend) GetResultCode() int32 {
	if x != nil {
		return x.ResultCode
	}
	return 0
}

type ReqAutoAddInviteFriend2 struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // facebook id
}

func (x *ReqAutoAddInviteFriend2) Reset() {
	*x = ReqAutoAddInviteFriend2{}
	mi := &file_proto_Gameapi_proto_msgTypes[275]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqAutoAddInviteFriend2) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqAutoAddInviteFriend2) ProtoMessage() {}

func (x *ReqAutoAddInviteFriend2) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[275]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqAutoAddInviteFriend2.ProtoReflect.Descriptor instead.
func (*ReqAutoAddInviteFriend2) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{275}
}

func (x *ReqAutoAddInviteFriend2) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

type ResAutoAddInviteFriend2 struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"`
}

func (x *ResAutoAddInviteFriend2) Reset() {
	*x = ResAutoAddInviteFriend2{}
	mi := &file_proto_Gameapi_proto_msgTypes[276]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResAutoAddInviteFriend2) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResAutoAddInviteFriend2) ProtoMessage() {}

func (x *ResAutoAddInviteFriend2) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[276]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResAutoAddInviteFriend2.ProtoReflect.Descriptor instead.
func (*ResAutoAddInviteFriend2) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{276}
}

func (x *ResAutoAddInviteFriend2) GetResultCode() int32 {
	if x != nil {
		return x.ResultCode
	}
	return 0
}

// 挖矿活动
type ReqMining struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqMining) Reset() {
	*x = ReqMining{}
	mi := &file_proto_Gameapi_proto_msgTypes[277]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqMining) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqMining) ProtoMessage() {}

func (x *ReqMining) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[277]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqMining.ProtoReflect.Descriptor instead.
func (*ReqMining) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{277}
}

type ResMining struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id       int32            `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`                                                                                           // 活动id
	Status   int32            `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"`                                                                                   // 0 未开始 1 进行中 2 已结束
	EndTime  int32            `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"`                                                                                 // 结束时间
	Template int32            `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"`                                                                               // 模板
	Pass     int32            `protobuf:"varint,5,opt,name=Pass,proto3" json:"Pass,omitempty"`                                                                                       // 关卡
	Gem      []int32          `protobuf:"varint,6,rep,packed,name=Gem,proto3" json:"Gem,omitempty"`                                                                                  // 宝石
	Map      map[int32]string `protobuf:"bytes,7,rep,name=Map,proto3" json:"Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 地图
	Mining   int32            `protobuf:"varint,8,opt,name=Mining,proto3" json:"Mining,omitempty"`                                                                                   // 本关挖矿次数
}

func (x *ResMining) Reset() {
	*x = ResMining{}
	mi := &file_proto_Gameapi_proto_msgTypes[278]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResMining) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResMining) ProtoMessage() {}

func (x *ResMining) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[278]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResMining.ProtoReflect.Descriptor instead.
func (*ResMining) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{278}
}

func (x *ResMining) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *ResMining) GetStatus() int32 {
	if x != nil {
		return x.Status
	}
	return 0
}

func (x *ResMining) GetEndTime() int32 {
	if x != nil {
		return x.EndTime
	}
	return 0
}

func (x *ResMining) GetTemplate() int32 {
	if x != nil {
		return x.Template
	}
	return 0
}

func (x *ResMining) GetPass() int32 {
	if x != nil {
		return x.Pass
	}
	return 0
}

func (x *ResMining) GetGem() []int32 {
	if x != nil {
		return x.Gem
	}
	return nil
}

func (x *ResMining) GetMap() map[int32]string {
	if x != nil {
		return x.Map
	}
	return nil
}

func (x *ResMining) GetMining() int32 {
	if x != nil {
		return x.Mining
	}
	return 0
}

type ReqMiningTake struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Map map[int32]string `protobuf:"bytes,1,rep,name=Map,proto3" json:"Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 地图
	Gem int32            `protobuf:"varint,2,opt,name=Gem,proto3" json:"Gem,omitempty"`                                                                                         // 解锁的宝石
}

func (x *ReqMiningTake) Reset() {
	*x = ReqMiningTake{}
	mi := &file_proto_Gameapi_proto_msgTypes[279]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqMiningTake) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqMiningTake) ProtoMessage() {}

func (x *ReqMiningTake) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[279]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqMiningTake.ProtoReflect.Descriptor instead.
func (*ReqMiningTake) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{279}
}

func (x *ReqMiningTake) GetMap() map[int32]string {
	if x != nil {
		return x.Map
	}
	return nil
}

func (x *ReqMiningTake) GetGem() int32 {
	if x != nil {
		return x.Gem
	}
	return 0
}

type ResMiningTake struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResMiningTake) Reset() {
	*x = ResMiningTake{}
	mi := &file_proto_Gameapi_proto_msgTypes[280]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResMiningTake) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResMiningTake) ProtoMessage() {}

func (x *ResMiningTake) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[280]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResMiningTake.ProtoReflect.Descriptor instead.
func (*ResMiningTake) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{280}
}

func (x *ResMiningTake) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResMiningTake) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type ReqMiningReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqMiningReward) Reset() {
	*x = ReqMiningReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[281]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqMiningReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqMiningReward) ProtoMessage() {}

func (x *ReqMiningReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[281]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqMiningReward.ProtoReflect.Descriptor instead.
func (*ReqMiningReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{281}
}

type ResMiningReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResMiningReward) Reset() {
	*x = ResMiningReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[282]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResMiningReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResMiningReward) ProtoMessage() {}

func (x *ResMiningReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[282]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResMiningReward.ProtoReflect.Descriptor instead.
func (*ResMiningReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{282}
}

func (x *ResMiningReward) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResMiningReward) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type ResActRed struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Red map[int32]int32 `protobuf:"bytes,1,rep,name=Red,proto3" json:"Red,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 活动红点
}

func (x *ResActRed) Reset() {
	*x = ResActRed{}
	mi := &file_proto_Gameapi_proto_msgTypes[283]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResActRed) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResActRed) ProtoMessage() {}

func (x *ResActRed) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[283]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResActRed.ProtoReflect.Descriptor instead.
func (*ResActRed) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{283}
}

func (x *ResActRed) GetRed() map[int32]int32 {
	if x != nil {
		return x.Red
	}
	return nil
}

// 活动红点通知
type NotifyActRed struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id  int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`
	Red int32 `protobuf:"varint,2,opt,name=Red,proto3" json:"Red,omitempty"`
}

func (x *NotifyActRed) Reset() {
	*x = NotifyActRed{}
	mi := &file_proto_Gameapi_proto_msgTypes[284]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *NotifyActRed) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NotifyActRed) ProtoMessage() {}

func (x *NotifyActRed) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[284]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use NotifyActRed.ProtoReflect.Descriptor instead.
func (*NotifyActRed) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{284}
}

func (x *NotifyActRed) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *NotifyActRed) GetRed() int32 {
	if x != nil {
		return x.Red
	}
	return 0
}

// 活动更新通知
type ActivityNotify struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Info *ActivityInfo `protobuf:"bytes,1,opt,name=Info,proto3" json:"Info,omitempty"`
}

func (x *ActivityNotify) Reset() {
	*x = ActivityNotify{}
	mi := &file_proto_Gameapi_proto_msgTypes[285]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ActivityNotify) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ActivityNotify) ProtoMessage() {}

func (x *ActivityNotify) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[285]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ActivityNotify.ProtoReflect.Descriptor instead.
func (*ActivityNotify) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{285}
}

func (x *ActivityNotify) GetInfo() *ActivityInfo {
	if x != nil {
		return x.Info
	}
	return nil
}

type ResItem struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Item map[int32]int32 `protobuf:"bytes,1,rep,name=Item,proto3" json:"Item,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
}

func (x *ResItem) Reset() {
	*x = ResItem{}
	mi := &file_proto_Gameapi_proto_msgTypes[286]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResItem) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResItem) ProtoMessage() {}

func (x *ResItem) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[286]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResItem.ProtoReflect.Descriptor instead.
func (*ResItem) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{286}
}

func (x *ResItem) GetItem() map[int32]int32 {
	if x != nil {
		return x.Item
	}
	return nil
}

type ItemNotify struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Item map[int32]int32 `protobuf:"bytes,1,rep,name=Item,proto3" json:"Item,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 道具id =》 变化的数量
}

func (x *ItemNotify) Reset() {
	*x = ItemNotify{}
	mi := &file_proto_Gameapi_proto_msgTypes[287]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ItemNotify) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ItemNotify) ProtoMessage() {}

func (x *ItemNotify) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[287]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ItemNotify.ProtoReflect.Descriptor instead.
func (*ItemNotify) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{287}
}

func (x *ItemNotify) GetItem() map[int32]int32 {
	if x != nil {
		return x.Item
	}
	return nil
}

// 猜颜色
type ReqGuessColor struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqGuessColor) Reset() {
	*x = ReqGuessColor{}
	mi := &file_proto_Gameapi_proto_msgTypes[288]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqGuessColor) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqGuessColor) ProtoMessage() {}

func (x *ReqGuessColor) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[288]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqGuessColor.ProtoReflect.Descriptor instead.
func (*ReqGuessColor) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{288}
}

type ResGuessColor struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id       int32     `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`              // 活动id
	Status   int32     `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"`      // 0 未开始 1 进行中 2 已结束
	EndTime  int32     `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"`    // 结束时间
	Template int32     `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"`  // 模板
	Pass     int32     `protobuf:"varint,5,opt,name=Pass,proto3" json:"Pass,omitempty"`          // 关卡
	Color    []int32   `protobuf:"varint,6,rep,packed,name=Color,proto3" json:"Color,omitempty"` // 剩余的颜色
	Pos      []int32   `protobuf:"varint,7,rep,packed,name=Pos,proto3" json:"Pos,omitempty"`     // 已猜中的颜色 位置从左到右 从1开始
	Opponent *Opponent `protobuf:"bytes,8,opt,name=Opponent,proto3" json:"Opponent,omitempty"`   // 对手
}

func (x *ResGuessColor) Reset() {
	*x = ResGuessColor{}
	mi := &file_proto_Gameapi_proto_msgTypes[289]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResGuessColor) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResGuessColor) ProtoMessage() {}

func (x *ResGuessColor) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[289]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResGuessColor.ProtoReflect.Descriptor instead.
func (*ResGuessColor) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{289}
}

func (x *ResGuessColor) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *ResGuessColor) GetStatus() int32 {
	if x != nil {
		return x.Status
	}
	return 0
}

func (x *ResGuessColor) GetEndTime() int32 {
	if x != nil {
		return x.EndTime
	}
	return 0
}

func (x *ResGuessColor) GetTemplate() int32 {
	if x != nil {
		return x.Template
	}
	return 0
}

func (x *ResGuessColor) GetPass() int32 {
	if x != nil {
		return x.Pass
	}
	return 0
}

func (x *ResGuessColor) GetColor() []int32 {
	if x != nil {
		return x.Color
	}
	return nil
}

func (x *ResGuessColor) GetPos() []int32 {
	if x != nil {
		return x.Pos
	}
	return nil
}

func (x *ResGuessColor) GetOpponent() *Opponent {
	if x != nil {
		return x.Opponent
	}
	return nil
}

type Opponent struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name     string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"`
	Face     int32  `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"`
	Avatar   int32  `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"`
	Progress int32  `protobuf:"varint,5,opt,name=Progress,proto3" json:"Progress,omitempty"`
}

func (x *Opponent) Reset() {
	*x = Opponent{}
	mi := &file_proto_Gameapi_proto_msgTypes[290]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Opponent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Opponent) ProtoMessage() {}

func (x *Opponent) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[290]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Opponent.ProtoReflect.Descriptor instead.
func (*Opponent) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{290}
}

func (x *Opponent) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *Opponent) GetFace() int32 {
	if x != nil {
		return x.Face
	}
	return 0
}

func (x *Opponent) GetAvatar() int32 {
	if x != nil {
		return x.Avatar
	}
	return 0
}

func (x *Opponent) GetProgress() int32 {
	if x != nil {
		return x.Progress
	}
	return 0
}

type ReqGuessColorTake struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Map map[int32]int32 `protobuf:"bytes,1,rep,name=Map,proto3" json:"Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 颜色 pos => color
}

func (x *ReqGuessColorTake) Reset() {
	*x = ReqGuessColorTake{}
	mi := &file_proto_Gameapi_proto_msgTypes[291]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqGuessColorTake) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqGuessColorTake) ProtoMessage() {}

func (x *ReqGuessColorTake) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[291]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqGuessColorTake.ProtoReflect.Descriptor instead.
func (*ReqGuessColorTake) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{291}
}

func (x *ReqGuessColorTake) GetMap() map[int32]int32 {
	if x != nil {
		return x.Map
	}
	return nil
}

type ResGuessColorTake struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResGuessColorTake) Reset() {
	*x = ResGuessColorTake{}
	mi := &file_proto_Gameapi_proto_msgTypes[292]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResGuessColorTake) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResGuessColorTake) ProtoMessage() {}

func (x *ResGuessColorTake) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[292]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResGuessColorTake.ProtoReflect.Descriptor instead.
func (*ResGuessColorTake) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{292}
}

func (x *ResGuessColorTake) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResGuessColorTake) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type ReqGuessColorReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqGuessColorReward) Reset() {
	*x = ReqGuessColorReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[293]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqGuessColorReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqGuessColorReward) ProtoMessage() {}

func (x *ReqGuessColorReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[293]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqGuessColorReward.ProtoReflect.Descriptor instead.
func (*ReqGuessColorReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{293}
}

type ResGuessColorReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResGuessColorReward) Reset() {
	*x = ResGuessColorReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[294]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResGuessColorReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResGuessColorReward) ProtoMessage() {}

func (x *ResGuessColorReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[294]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResGuessColorReward.ProtoReflect.Descriptor instead.
func (*ResGuessColorReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{294}
}

func (x *ResGuessColorReward) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResGuessColorReward) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type ReqRace struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqRace) Reset() {
	*x = ReqRace{}
	mi := &file_proto_Gameapi_proto_msgTypes[295]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqRace) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqRace) ProtoMessage() {}

func (x *ReqRace) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[295]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqRace.ProtoReflect.Descriptor instead.
func (*ReqRace) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{295}
}

type ResRace struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id            int32           `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`                       // 活动id
	Status        int32           `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"`               // 0 未开始 1 进行中 2 已结束
	EndTime       int32           `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"`             // 结束时间
	Template      int32           `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"`           // 模板
	Pass          int32           `protobuf:"varint,5,opt,name=Pass,proto3" json:"Pass,omitempty"`                   // 关卡
	GameStartTime int32           `protobuf:"varint,6,opt,name=GameStartTime,proto3" json:"GameStartTime,omitempty"` // 游戏开始时间
	GameEndTime   int32           `protobuf:"varint,7,opt,name=GameEndTime,proto3" json:"GameEndTime,omitempty"`     // 游戏结束时间
	Progress      int32           `protobuf:"varint,8,opt,name=Progress,proto3" json:"Progress,omitempty"`           // 进度
	Opponent      []*Raceopponent `protobuf:"bytes,9,rep,name=Opponent,proto3" json:"Opponent,omitempty"`            // 对手
}

func (x *ResRace) Reset() {
	*x = ResRace{}
	mi := &file_proto_Gameapi_proto_msgTypes[296]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResRace) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResRace) ProtoMessage() {}

func (x *ResRace) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[296]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResRace.ProtoReflect.Descriptor instead.
func (*ResRace) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{296}
}

func (x *ResRace) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *ResRace) GetStatus() int32 {
	if x != nil {
		return x.Status
	}
	return 0
}

func (x *ResRace) GetEndTime() int32 {
	if x != nil {
		return x.EndTime
	}
	return 0
}

func (x *ResRace) GetTemplate() int32 {
	if x != nil {
		return x.Template
	}
	return 0
}

func (x *ResRace) GetPass() int32 {
	if x != nil {
		return x.Pass
	}
	return 0
}

func (x *ResRace) GetGameStartTime() int32 {
	if x != nil {
		return x.GameStartTime
	}
	return 0
}

func (x *ResRace) GetGameEndTime() int32 {
	if x != nil {
		return x.GameEndTime
	}
	return 0
}

func (x *ResRace) GetProgress() int32 {
	if x != nil {
		return x.Progress
	}
	return 0
}

func (x *ResRace) GetOpponent() []*Raceopponent {
	if x != nil {
		return x.Opponent
	}
	return nil
}

type Raceopponent struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id       int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`
	Image    int32 `protobuf:"varint,2,opt,name=Image,proto3" json:"Image,omitempty"`
	Progress int32 `protobuf:"varint,3,opt,name=Progress,proto3" json:"Progress,omitempty"`
}

func (x *Raceopponent) Reset() {
	*x = Raceopponent{}
	mi := &file_proto_Gameapi_proto_msgTypes[297]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Raceopponent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Raceopponent) ProtoMessage() {}

func (x *Raceopponent) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[297]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Raceopponent.ProtoReflect.Descriptor instead.
func (*Raceopponent) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{297}
}

func (x *Raceopponent) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *Raceopponent) GetImage() int32 {
	if x != nil {
		return x.Image
	}
	return 0
}

func (x *Raceopponent) GetProgress() int32 {
	if x != nil {
		return x.Progress
	}
	return 0
}

type ReqRaceStart struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqRaceStart) Reset() {
	*x = ReqRaceStart{}
	mi := &file_proto_Gameapi_proto_msgTypes[298]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqRaceStart) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqRaceStart) ProtoMessage() {}

func (x *ReqRaceStart) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[298]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqRaceStart.ProtoReflect.Descriptor instead.
func (*ReqRaceStart) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{298}
}

type ResRaceStart struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResRaceStart) Reset() {
	*x = ResRaceStart{}
	mi := &file_proto_Gameapi_proto_msgTypes[299]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResRaceStart) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResRaceStart) ProtoMessage() {}

func (x *ResRaceStart) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[299]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResRaceStart.ProtoReflect.Descriptor instead.
func (*ResRaceStart) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{299}
}

func (x *ResRaceStart) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResRaceStart) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type ReqRaceReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqRaceReward) Reset() {
	*x = ReqRaceReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[300]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqRaceReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqRaceReward) ProtoMessage() {}

func (x *ReqRaceReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[300]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqRaceReward.ProtoReflect.Descriptor instead.
func (*ReqRaceReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{300}
}

type ResRaceReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResRaceReward) Reset() {
	*x = ResRaceReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[301]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResRaceReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResRaceReward) ProtoMessage() {}

func (x *ResRaceReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[301]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResRaceReward.ProtoReflect.Descriptor instead.
func (*ResRaceReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{301}
}

func (x *ResRaceReward) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResRaceReward) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// --------------------------【playroom】--------------------------
type ReqPlayroom struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqPlayroom) Reset() {
	*x = ReqPlayroom{}
	mi := &file_proto_Gameapi_proto_msgTypes[302]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqPlayroom) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqPlayroom) ProtoMessage() {}

func (x *ReqPlayroom) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[302]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqPlayroom.ProtoReflect.Descriptor instead.
func (*ReqPlayroom) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{302}
}

type ResPlayroom struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status      int32                    `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"`                                                                                              // 状态
	Items       []*ItemInfo              `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"`                                                                                                 // 触发式订单奖励
	Opponent    []*RoomOpponent          `protobuf:"bytes,3,rep,name=Opponent,proto3" json:"Opponent,omitempty"`                                                                                           // 对手
	Friend      []*FriendRoom            `protobuf:"bytes,4,rep,name=Friend,proto3" json:"Friend,omitempty"`                                                                                               // 好友
	Playroom    map[int32]int32          `protobuf:"bytes,5,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 空间装饰 位置 =》 装饰id
	Collect     []int32                  `protobuf:"varint,6,rep,packed,name=collect,proto3" json:"collect,omitempty"`                                                                                     // 已解锁的装饰
	Mood        map[int32]int32          `protobuf:"bytes,7,rep,name=Mood,proto3" json:"Mood,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`         // 心情 <位置, 心情>
	LoseItem    []*ItemInfo              `protobuf:"bytes,8,rep,name=LoseItem,proto3" json:"LoseItem,omitempty"`                                                                                           // 损失的道具
	StartTime   int32                    `protobuf:"varint,9,opt,name=StartTime,proto3" json:"StartTime,omitempty"`                                                                                        // 开始时间
	WorkStatus  int32                    `protobuf:"varint,10,opt,name=WorkStatus,proto3" json:"WorkStatus,omitempty"`                                                                                     // 1 工作中 2 休息中
	AllMood     int32                    `protobuf:"varint,11,opt,name=AllMood,proto3" json:"AllMood,omitempty"`                                                                                           // 总心情
	Chip        int32                    `protobuf:"varint,12,opt,name=Chip,proto3" json:"Chip,omitempty"`                                                                                                 // 碎片
	WorkOutline int32                    `protobuf:"varint,13,opt,name=WorkOutline,proto3" json:"WorkOutline,omitempty"`                                                                                   // 离线打工状态 0 未离线 1 已离线
	Jackpot     int32                    `protobuf:"varint,14,opt,name=Jackpot,proto3" json:"Jackpot,omitempty"`                                                                                           // 每日转盘次数
	Physiology  map[int32]int32          `protobuf:"bytes,15,rep,name=Physiology,proto3" json:"Physiology,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
	Dress       map[int32]*PlayroomDress `protobuf:"bytes,16,rep,name=Dress,proto3" json:"Dress,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`        // 服装仓库 位置 =》 服装id 位置ID： 1 帽子 2 眼镜 3 上衣 4 裤子 5 鞋子 6 连体 7 胡子 8 脸 9 美瞳
	DressSet    map[int32]int32          `protobuf:"bytes,17,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 服装装饰 位置 =》 服装id
	PetAir      []int32                  `protobuf:"varint,18,rep,packed,name=PetAir,proto3" json:"PetAir,omitempty"`                                                                                       // 宠物背包
	PetAirSet   int32                    `protobuf:"varint,19,opt,name=PetAirSet,proto3" json:"PetAirSet,omitempty"`                                                                                        // 宠物背包设置
}

func (x *ResPlayroom) Reset() {
	*x = ResPlayroom{}
	mi := &file_proto_Gameapi_proto_msgTypes[303]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResPlayroom) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResPlayroom) ProtoMessage() {}

func (x *ResPlayroom) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[303]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResPlayroom.ProtoReflect.Descriptor instead.
func (*ResPlayroom) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{303}
}

func (x *ResPlayroom) GetStatus() int32 {
	if x != nil {
		return x.Status
	}
	return 0
}

func (x *ResPlayroom) GetItems() []*ItemInfo {
	if x != nil {
		return x.Items
	}
	return nil
}

func (x *ResPlayroom) GetOpponent() []*RoomOpponent {
	if x != nil {
		return x.Opponent
	}
	return nil
}

func (x *ResPlayroom) GetFriend() []*FriendRoom {
	if x != nil {
		return x.Friend
	}
	return nil
}

func (x *ResPlayroom) GetPlayroom() map[int32]int32 {
	if x != nil {
		return x.Playroom
	}
	return nil
}

func (x *ResPlayroom) GetCollect() []int32 {
	if x != nil {
		return x.Collect
	}
	return nil
}

func (x *ResPlayroom) GetMood() map[int32]int32 {
	if x != nil {
		return x.Mood
	}
	return nil
}

func (x *ResPlayroom) GetLoseItem() []*ItemInfo {
	if x != nil {
		return x.LoseItem
	}
	return nil
}

func (x *ResPlayroom) GetStartTime() int32 {
	if x != nil {
		return x.StartTime
	}
	return 0
}

func (x *ResPlayroom) GetWorkStatus() int32 {
	if x != nil {
		return x.WorkStatus
	}
	return 0
}

func (x *ResPlayroom) GetAllMood() int32 {
	if x != nil {
		return x.AllMood
	}
	return 0
}

func (x *ResPlayroom) GetChip() int32 {
	if x != nil {
		return x.Chip
	}
	return 0
}

func (x *ResPlayroom) GetWorkOutline() int32 {
	if x != nil {
		return x.WorkOutline
	}
	return 0
}

func (x *ResPlayroom) GetJackpot() int32 {
	if x != nil {
		return x.Jackpot
	}
	return 0
}

func (x *ResPlayroom) GetPhysiology() map[int32]int32 {
	if x != nil {
		return x.Physiology
	}
	return nil
}

func (x *ResPlayroom) GetDress() map[int32]*PlayroomDress {
	if x != nil {
		return x.Dress
	}
	return nil
}

func (x *ResPlayroom) GetDressSet() map[int32]int32 {
	if x != nil {
		return x.DressSet
	}
	return nil
}

func (x *ResPlayroom) GetPetAir() []int32 {
	if x != nil {
		return x.PetAir
	}
	return nil
}

func (x *ResPlayroom) GetPetAirSet() int32 {
	if x != nil {
		return x.PetAirSet
	}
	return 0
}

type PlayroomDress struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	List []int32 `protobuf:"varint,1,rep,packed,name=List,proto3" json:"List,omitempty"` // 服装仓库 位置 =》 服装id
}

func (x *PlayroomDress) Reset() {
	*x = PlayroomDress{}
	mi := &file_proto_Gameapi_proto_msgTypes[304]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *PlayroomDress) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PlayroomDress) ProtoMessage() {}

func (x *PlayroomDress) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[304]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PlayroomDress.ProtoReflect.Descriptor instead.
func (*PlayroomDress) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{304}
}

func (x *PlayroomDress) GetList() []int32 {
	if x != nil {
		return x.List
	}
	return nil
}

type ReqPlayroomDressSet struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DressSet map[int32]int32 `protobuf:"bytes,1,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 服装装饰 位置 =》 服装id
}

func (x *ReqPlayroomDressSet) Reset() {
	*x = ReqPlayroomDressSet{}
	mi := &file_proto_Gameapi_proto_msgTypes[305]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqPlayroomDressSet) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqPlayroomDressSet) ProtoMessage() {}

func (x *ReqPlayroomDressSet) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[305]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqPlayroomDressSet.ProtoReflect.Descriptor instead.
func (*ReqPlayroomDressSet) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{305}
}

func (x *ReqPlayroomDressSet) GetDressSet() map[int32]int32 {
	if x != nil {
		return x.DressSet
	}
	return nil
}

type ResPlayroomDressSet struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResPlayroomDressSet) Reset() {
	*x = ResPlayroomDressSet{}
	mi := &file_proto_Gameapi_proto_msgTypes[306]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResPlayroomDressSet) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResPlayroomDressSet) ProtoMessage() {}

func (x *ResPlayroomDressSet) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[306]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResPlayroomDressSet.ProtoReflect.Descriptor instead.
func (*ResPlayroomDressSet) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{306}
}

func (x *ResPlayroomDressSet) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResPlayroomDressSet) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type ReqPlayroomPetAirSet struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PetAirSet int32 `protobuf:"varint,1,opt,name=PetAirSet,proto3" json:"PetAirSet,omitempty"` // 宠物背包设置
}

func (x *ReqPlayroomPetAirSet) Reset() {
	*x = ReqPlayroomPetAirSet{}
	mi := &file_proto_Gameapi_proto_msgTypes[307]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqPlayroomPetAirSet) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqPlayroomPetAirSet) ProtoMessage() {}

func (x *ReqPlayroomPetAirSet) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[307]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqPlayroomPetAirSet.ProtoReflect.Descriptor instead.
func (*ReqPlayroomPetAirSet) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{307}
}

func (x *ReqPlayroomPetAirSet) GetPetAirSet() int32 {
	if x != nil {
		return x.PetAirSet
	}
	return 0
}

type ResPlayroomPetAirSet struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResPlayroomPetAirSet) Reset() {
	*x = ResPlayroomPetAirSet{}
	mi := &file_proto_Gameapi_proto_msgTypes[308]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResPlayroomPetAirSet) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResPlayroomPetAirSet) ProtoMessage() {}

func (x *ResPlayroomPetAirSet) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[308]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResPlayroomPetAirSet.ProtoReflect.Descriptor instead.
func (*ResPlayroomPetAirSet) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{308}
}

func (x *ResPlayroomPetAirSet) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResPlayroomPetAirSet) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type ReqPlayroomWrokOutline struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqPlayroomWrokOutline) Reset() {
	*x = ReqPlayroomWrokOutline{}
	mi := &file_proto_Gameapi_proto_msgTypes[309]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqPlayroomWrokOutline) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqPlayroomWrokOutline) ProtoMessage() {}

func (x *ReqPlayroomWrokOutline) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[309]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqPlayroomWrokOutline.ProtoReflect.Descriptor instead.
func (*ReqPlayroomWrokOutline) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{309}
}

type ResPlayroomWrokOutline struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResPlayroomWrokOutline) Reset() {
	*x = ResPlayroomWrokOutline{}
	mi := &file_proto_Gameapi_proto_msgTypes[310]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResPlayroomWrokOutline) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResPlayroomWrokOutline) ProtoMessage() {}

func (x *ResPlayroomWrokOutline) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[310]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResPlayroomWrokOutline.ProtoReflect.Descriptor instead.
func (*ResPlayroomWrokOutline) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{310}
}

func (x *ResPlayroomWrokOutline) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResPlayroomWrokOutline) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type NofiPlayroomStatus struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	WorkOutline int32 `protobuf:"varint,1,opt,name=WorkOutline,proto3" json:"WorkOutline,omitempty"` // 状态
}

func (x *NofiPlayroomStatus) Reset() {
	*x = NofiPlayroomStatus{}
	mi := &file_proto_Gameapi_proto_msgTypes[311]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *NofiPlayroomStatus) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NofiPlayroomStatus) ProtoMessage() {}

func (x *NofiPlayroomStatus) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[311]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use NofiPlayroomStatus.ProtoReflect.Descriptor instead.
func (*NofiPlayroomStatus) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{311}
}

func (x *NofiPlayroomStatus) GetWorkOutline() int32 {
	if x != nil {
		return x.WorkOutline
	}
	return 0
}

type NotifyPlayroomWork struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	StartTime  int32 `protobuf:"varint,1,opt,name=StartTime,proto3" json:"StartTime,omitempty"`   // 开始时间
	WorkStatus int32 `protobuf:"varint,2,opt,name=WorkStatus,proto3" json:"WorkStatus,omitempty"` // 1 工作中 2 休息中
}

func (x *NotifyPlayroomWork) Reset() {
	*x = NotifyPlayroomWork{}
	mi := &file_proto_Gameapi_proto_msgTypes[312]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *NotifyPlayroomWork) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NotifyPlayroomWork) ProtoMessage() {}

func (x *NotifyPlayroomWork) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[312]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use NotifyPlayroomWork.ProtoReflect.Descriptor instead.
func (*NotifyPlayroomWork) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{312}
}

func (x *NotifyPlayroomWork) GetStartTime() int32 {
	if x != nil {
		return x.StartTime
	}
	return 0
}

func (x *NotifyPlayroomWork) GetWorkStatus() int32 {
	if x != nil {
		return x.WorkStatus
	}
	return 0
}

type NotifyPlayroomLose struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	LoseItem []*ItemInfo `protobuf:"bytes,1,rep,name=LoseItem,proto3" json:"LoseItem,omitempty"` // 损失的道具
	Chip     int32       `protobuf:"varint,2,opt,name=Chip,proto3" json:"Chip,omitempty"`        // 碎片
}

func (x *NotifyPlayroomLose) Reset() {
	*x = NotifyPlayroomLose{}
	mi := &file_proto_Gameapi_proto_msgTypes[313]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *NotifyPlayroomLose) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NotifyPlayroomLose) ProtoMessage() {}

func (x *NotifyPlayroomLose) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[313]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use NotifyPlayroomLose.ProtoReflect.Descriptor instead.
func (*NotifyPlayroomLose) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{313}
}

func (x *NotifyPlayroomLose) GetLoseItem() []*ItemInfo {
	if x != nil {
		return x.LoseItem
	}
	return nil
}

func (x *NotifyPlayroomLose) GetChip() int32 {
	if x != nil {
		return x.Chip
	}
	return 0
}

type NotifyPlayroomMood struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AllMood    int32           `protobuf:"varint,1,opt,name=AllMood,proto3" json:"AllMood,omitempty"`                                                                                                // 总心情
	Mood       map[int32]int32 `protobuf:"bytes,2,rep,name=Mood,proto3" json:"Mood,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`             // 心情 <位置, 心情>
	Physiology map[int32]int32 `protobuf:"bytes,3,rep,name=Physiology,proto3" json:"Physiology,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 生理 <位置, 生理>
}

func (x *NotifyPlayroomMood) Reset() {
	*x = NotifyPlayroomMood{}
	mi := &file_proto_Gameapi_proto_msgTypes[314]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *NotifyPlayroomMood) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NotifyPlayroomMood) ProtoMessage() {}

func (x *NotifyPlayroomMood) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[314]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use NotifyPlayroomMood.ProtoReflect.Descriptor instead.
func (*NotifyPlayroomMood) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{314}
}

func (x *NotifyPlayroomMood) GetAllMood() int32 {
	if x != nil {
		return x.AllMood
	}
	return 0
}

func (x *NotifyPlayroomMood) GetMood() map[int32]int32 {
	if x != nil {
		return x.Mood
	}
	return nil
}

func (x *NotifyPlayroomMood) GetPhysiology() map[int32]int32 {
	if x != nil {
		return x.Physiology
	}
	return nil
}

type FriendRoom struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Uid    int64  `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"`
	Name   string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"`
	Face   int32  `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"`
	Avatar int32  `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"`
	Times  int32  `protobuf:"varint,5,opt,name=Times,proto3" json:"Times,omitempty"` // 以你为目标的次数
}

func (x *FriendRoom) Reset() {
	*x = FriendRoom{}
	mi := &file_proto_Gameapi_proto_msgTypes[315]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *FriendRoom) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FriendRoom) ProtoMessage() {}

func (x *FriendRoom) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[315]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FriendRoom.ProtoReflect.Descriptor instead.
func (*FriendRoom) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{315}
}

func (x *FriendRoom) GetUid() int64 {
	if x != nil {
		return x.Uid
	}
	return 0
}

func (x *FriendRoom) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *FriendRoom) GetFace() int32 {
	if x != nil {
		return x.Face
	}
	return 0
}

func (x *FriendRoom) GetAvatar() int32 {
	if x != nil {
		return x.Avatar
	}
	return 0
}

func (x *FriendRoom) GetTimes() int32 {
	if x != nil {
		return x.Times
	}
	return 0
}

type RoomOpponent struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Uid      int64  `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"`
	Name     string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"`
	Face     int32  `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"`
	Avatar   int32  `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"`
	LastTime int32  `protobuf:"varint,5,opt,name=LastTime,proto3" json:"LastTime,omitempty"` // 上次被攻击时间
}

func (x *RoomOpponent) Reset() {
	*x = RoomOpponent{}
	mi := &file_proto_Gameapi_proto_msgTypes[316]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RoomOpponent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RoomOpponent) ProtoMessage() {}

func (x *RoomOpponent) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[316]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RoomOpponent.ProtoReflect.Descriptor instead.
func (*RoomOpponent) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{316}
}

func (x *RoomOpponent) GetUid() int64 {
	if x != nil {
		return x.Uid
	}
	return 0
}

func (x *RoomOpponent) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *RoomOpponent) GetFace() int32 {
	if x != nil {
		return x.Face
	}
	return 0
}

func (x *RoomOpponent) GetAvatar() int32 {
	if x != nil {
		return x.Avatar
	}
	return 0
}

func (x *RoomOpponent) GetLastTime() int32 {
	if x != nil {
		return x.LastTime
	}
	return 0
}

// 请求拜访空间信息
type ReqPlayroomInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"`
}

func (x *ReqPlayroomInfo) Reset() {
	*x = ReqPlayroomInfo{}
	mi := &file_proto_Gameapi_proto_msgTypes[317]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqPlayroomInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqPlayroomInfo) ProtoMessage() {}

func (x *ReqPlayroomInfo) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[317]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqPlayroomInfo.ProtoReflect.Descriptor instead.
func (*ReqPlayroomInfo) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{317}
}

func (x *ReqPlayroomInfo) GetUid() int64 {
	if x != nil {
		return x.Uid
	}
	return 0
}

type ResPlayroomInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Uid      int64               `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"`
	Name     string              `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Face     int32               `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"`
	Avatar   int32               `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"`
	Playroom map[int32]int32     `protobuf:"bytes,5,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 空间装饰 位置 =》 装饰id
	GameId   int32               `protobuf:"varint,6,opt,name=GameId,proto3" json:"GameId,omitempty"`                                                                                              // 游戏id
	Items    map[int32]*ItemInfo `protobuf:"bytes,7,rep,name=Items,proto3" json:"Items,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`        // 游戏奖励
	Status   int32               `protobuf:"varint,8,opt,name=Status,proto3" json:"Status,omitempty"`                                                                                              // 状态 0 未开始 1 选择奖励 2 已结束
	Defense  bool                `protobuf:"varint,9,opt,name=defense,proto3" json:"defense,omitempty"`                                                                                            // 是否有防御
	Flip     map[int32]int32     `protobuf:"bytes,10,rep,name=flip,proto3" json:"flip,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`        // 翻牌 <位置, 牌>
	Chip     int32               `protobuf:"varint,11,opt,name=Chip,proto3" json:"Chip,omitempty"`                                                                                                 // 碎片
	PetName  string              `protobuf:"bytes,12,opt,name=PetName,proto3" json:"PetName,omitempty"`                                                                                            // 宠物名
	Emoji    map[int32]int32     `protobuf:"bytes,13,rep,name=Emoji,proto3" json:"Emoji,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`      // 表情
}

func (x *ResPlayroomInfo) Reset() {
	*x = ResPlayroomInfo{}
	mi := &file_proto_Gameapi_proto_msgTypes[318]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResPlayroomInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResPlayroomInfo) ProtoMessage() {}

func (x *ResPlayroomInfo) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[318]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResPlayroomInfo.ProtoReflect.Descriptor instead.
func (*ResPlayroomInfo) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{318}
}

func (x *ResPlayroomInfo) GetUid() int64 {
	if x != nil {
		return x.Uid
	}
	return 0
}

func (x *ResPlayroomInfo) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *ResPlayroomInfo) GetFace() int32 {
	if x != nil {
		return x.Face
	}
	return 0
}

func (x *ResPlayroomInfo) GetAvatar() int32 {
	if x != nil {
		return x.Avatar
	}
	return 0
}

func (x *ResPlayroomInfo) GetPlayroom() map[int32]int32 {
	if x != nil {
		return x.Playroom
	}
	return nil
}

func (x *ResPlayroomInfo) GetGameId() int32 {
	if x != nil {
		return x.GameId
	}
	return 0
}

func (x *ResPlayroomInfo) GetItems() map[int32]*ItemInfo {
	if x != nil {
		return x.Items
	}
	return nil
}

func (x *ResPlayroomInfo) GetStatus() int32 {
	if x != nil {
		return x.Status
	}
	return 0
}

func (x *ResPlayroomInfo) GetDefense() bool {
	if x != nil {
		return x.Defense
	}
	return false
}

func (x *ResPlayroomInfo) GetFlip() map[int32]int32 {
	if x != nil {
		return x.Flip
	}
	return nil
}

func (x *ResPlayroomInfo) GetChip() int32 {
	if x != nil {
		return x.Chip
	}
	return 0
}

func (x *ResPlayroomInfo) GetPetName() string {
	if x != nil {
		return x.PetName
	}
	return ""
}

func (x *ResPlayroomInfo) GetEmoji() map[int32]int32 {
	if x != nil {
		return x.Emoji
	}
	return nil
}

// 请求翻牌
type ReqPlayroomFlip struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 翻牌位置
}

func (x *ReqPlayroomFlip) Reset() {
	*x = ReqPlayroomFlip{}
	mi := &file_proto_Gameapi_proto_msgTypes[319]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqPlayroomFlip) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqPlayroomFlip) ProtoMessage() {}

func (x *ReqPlayroomFlip) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[319]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqPlayroomFlip.ProtoReflect.Descriptor instead.
func (*ReqPlayroomFlip) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{319}
}

func (x *ReqPlayroomFlip) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type ResPlayroomFlip struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code   RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg    string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
	Id     int32    `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"`         // 翻牌位置
	CardId int32    `protobuf:"varint,4,opt,name=CardId,proto3" json:"CardId,omitempty"` // 卡牌id
}

func (x *ResPlayroomFlip) Reset() {
	*x = ResPlayroomFlip{}
	mi := &file_proto_Gameapi_proto_msgTypes[320]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResPlayroomFlip) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResPlayroomFlip) ProtoMessage() {}

func (x *ResPlayroomFlip) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[320]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResPlayroomFlip.ProtoReflect.Descriptor instead.
func (*ResPlayroomFlip) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{320}
}

func (x *ResPlayroomFlip) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResPlayroomFlip) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

func (x *ResPlayroomFlip) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *ResPlayroomFlip) GetCardId() int32 {
	if x != nil {
		return x.CardId
	}
	return 0
}

// 领取游戏奖励
type ReqPlayroomFlipReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqPlayroomFlipReward) Reset() {
	*x = ReqPlayroomFlipReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[321]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqPlayroomFlipReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqPlayroomFlipReward) ProtoMessage() {}

func (x *ReqPlayroomFlipReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[321]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqPlayroomFlipReward.ProtoReflect.Descriptor instead.
func (*ReqPlayroomFlipReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{321}
}

type ResPlayroomFlipReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResPlayroomFlipReward) Reset() {
	*x = ResPlayroomFlipReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[322]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResPlayroomFlipReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResPlayroomFlipReward) ProtoMessage() {}

func (x *ResPlayroomFlipReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[322]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResPlayroomFlipReward.ProtoReflect.Descriptor instead.
func (*ResPlayroomFlipReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{322}
}

func (x *ResPlayroomFlipReward) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResPlayroomFlipReward) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type ReqPlayroomGame struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 1:绿色 2：黄色 3：红色
}

func (x *ReqPlayroomGame) Reset() {
	*x = ReqPlayroomGame{}
	mi := &file_proto_Gameapi_proto_msgTypes[323]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqPlayroomGame) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqPlayroomGame) ProtoMessage() {}

func (x *ReqPlayroomGame) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[323]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqPlayroomGame.ProtoReflect.Descriptor instead.
func (*ReqPlayroomGame) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{323}
}

func (x *ReqPlayroomGame) GetType() int32 {
	if x != nil {
		return x.Type
	}
	return 0
}

type ResPlayroomGame struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code  RES_CODE            `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg   string              `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
	Type  int32               `protobuf:"varint,3,opt,name=Type,proto3" json:"Type,omitempty"`
	Items map[int32]*ItemInfo `protobuf:"bytes,4,rep,name=Items,proto3" json:"Items,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 游戏奖励
}

func (x *ResPlayroomGame) Reset() {
	*x = ResPlayroomGame{}
	mi := &file_proto_Gameapi_proto_msgTypes[324]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResPlayroomGame) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResPlayroomGame) ProtoMessage() {}

func (x *ResPlayroomGame) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[324]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResPlayroomGame.ProtoReflect.Descriptor instead.
func (*ResPlayroomGame) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{324}
}

func (x *ResPlayroomGame) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResPlayroomGame) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

func (x *ResPlayroomGame) GetType() int32 {
	if x != nil {
		return x.Type
	}
	return 0
}

func (x *ResPlayroomGame) GetItems() map[int32]*ItemInfo {
	if x != nil {
		return x.Items
	}
	return nil
}

// 宠物交互
type ReqPlayroomInteract struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id   int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`     // 互动类型
	Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 1 消耗道具1 2 消耗道具2
}

func (x *ReqPlayroomInteract) Reset() {
	*x = ReqPlayroomInteract{}
	mi := &file_proto_Gameapi_proto_msgTypes[325]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqPlayroomInteract) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqPlayroomInteract) ProtoMessage() {}

func (x *ReqPlayroomInteract) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[325]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqPlayroomInteract.ProtoReflect.Descriptor instead.
func (*ReqPlayroomInteract) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{325}
}

func (x *ReqPlayroomInteract) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *ReqPlayroomInteract) GetType() int32 {
	if x != nil {
		return x.Type
	}
	return 0
}

type ResPlayroomInteract struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResPlayroomInteract) Reset() {
	*x = ResPlayroomInteract{}
	mi := &file_proto_Gameapi_proto_msgTypes[326]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResPlayroomInteract) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResPlayroomInteract) ProtoMessage() {}

func (x *ResPlayroomInteract) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[326]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResPlayroomInteract.ProtoReflect.Descriptor instead.
func (*ResPlayroomInteract) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{326}
}

func (x *ResPlayroomInteract) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResPlayroomInteract) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// playroom装饰
type ReqPlayroomSetRoom struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Playroom map[int32]int32 `protobuf:"bytes,1,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 空间装饰 位置 =》 装饰id
}

func (x *ReqPlayroomSetRoom) Reset() {
	*x = ReqPlayroomSetRoom{}
	mi := &file_proto_Gameapi_proto_msgTypes[327]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqPlayroomSetRoom) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqPlayroomSetRoom) ProtoMessage() {}

func (x *ReqPlayroomSetRoom) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[327]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqPlayroomSetRoom.ProtoReflect.Descriptor instead.
func (*ReqPlayroomSetRoom) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{327}
}

func (x *ReqPlayroomSetRoom) GetPlayroom() map[int32]int32 {
	if x != nil {
		return x.Playroom
	}
	return nil
}

type ResPlayroomSetRoom struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResPlayroomSetRoom) Reset() {
	*x = ResPlayroomSetRoom{}
	mi := &file_proto_Gameapi_proto_msgTypes[328]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResPlayroomSetRoom) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResPlayroomSetRoom) ProtoMessage() {}

func (x *ResPlayroomSetRoom) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[328]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResPlayroomSetRoom.ProtoReflect.Descriptor instead.
func (*ResPlayroomSetRoom) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{328}
}

func (x *ResPlayroomSetRoom) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResPlayroomSetRoom) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type ReqPlayroomSelectReward 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 *ReqPlayroomSelectReward) Reset() {
	*x = ReqPlayroomSelectReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[329]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqPlayroomSelectReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqPlayroomSelectReward) ProtoMessage() {}

func (x *ReqPlayroomSelectReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[329]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqPlayroomSelectReward.ProtoReflect.Descriptor instead.
func (*ReqPlayroomSelectReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{329}
}

func (x *ReqPlayroomSelectReward) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type ResPlayroomSelectReward struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResPlayroomSelectReward) Reset() {
	*x = ResPlayroomSelectReward{}
	mi := &file_proto_Gameapi_proto_msgTypes[330]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResPlayroomSelectReward) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResPlayroomSelectReward) ProtoMessage() {}

func (x *ResPlayroomSelectReward) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[330]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResPlayroomSelectReward.ProtoReflect.Descriptor instead.
func (*ResPlayroomSelectReward) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{330}
}

func (x *ResPlayroomSelectReward) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResPlayroomSelectReward) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 处理偷取的棋子
type ReqPlayroomLose struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqPlayroomLose) Reset() {
	*x = ReqPlayroomLose{}
	mi := &file_proto_Gameapi_proto_msgTypes[331]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqPlayroomLose) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqPlayroomLose) ProtoMessage() {}

func (x *ReqPlayroomLose) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[331]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqPlayroomLose.ProtoReflect.Descriptor instead.
func (*ReqPlayroomLose) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{331}
}

type ResPlayroomLose struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResPlayroomLose) Reset() {
	*x = ResPlayroomLose{}
	mi := &file_proto_Gameapi_proto_msgTypes[332]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResPlayroomLose) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResPlayroomLose) ProtoMessage() {}

func (x *ResPlayroomLose) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[332]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResPlayroomLose.ProtoReflect.Descriptor instead.
func (*ResPlayroomLose) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{332}
}

func (x *ResPlayroomLose) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResPlayroomLose) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 打工
type ReqPlayroomWork struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqPlayroomWork) Reset() {
	*x = ReqPlayroomWork{}
	mi := &file_proto_Gameapi_proto_msgTypes[333]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqPlayroomWork) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqPlayroomWork) ProtoMessage() {}

func (x *ReqPlayroomWork) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[333]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqPlayroomWork.ProtoReflect.Descriptor instead.
func (*ReqPlayroomWork) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{333}
}

type ResPlayroomWork struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResPlayroomWork) Reset() {
	*x = ResPlayroomWork{}
	mi := &file_proto_Gameapi_proto_msgTypes[334]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResPlayroomWork) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResPlayroomWork) ProtoMessage() {}

func (x *ResPlayroomWork) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[334]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResPlayroomWork.ProtoReflect.Descriptor instead.
func (*ResPlayroomWork) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{334}
}

func (x *ResPlayroomWork) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResPlayroomWork) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 休息
type ReqPlayroomRest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqPlayroomRest) Reset() {
	*x = ReqPlayroomRest{}
	mi := &file_proto_Gameapi_proto_msgTypes[335]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqPlayroomRest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqPlayroomRest) ProtoMessage() {}

func (x *ReqPlayroomRest) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[335]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqPlayroomRest.ProtoReflect.Descriptor instead.
func (*ReqPlayroomRest) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{335}
}

type ResPlayroomRest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResPlayroomRest) Reset() {
	*x = ResPlayroomRest{}
	mi := &file_proto_Gameapi_proto_msgTypes[336]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResPlayroomRest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResPlayroomRest) ProtoMessage() {}

func (x *ResPlayroomRest) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[336]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResPlayroomRest.ProtoReflect.Descriptor instead.
func (*ResPlayroomRest) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{336}
}

func (x *ResPlayroomRest) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResPlayroomRest) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// 抽奖
type ReqPlayroomDraw struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqPlayroomDraw) Reset() {
	*x = ReqPlayroomDraw{}
	mi := &file_proto_Gameapi_proto_msgTypes[337]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqPlayroomDraw) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqPlayroomDraw) ProtoMessage() {}

func (x *ReqPlayroomDraw) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[337]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqPlayroomDraw.ProtoReflect.Descriptor instead.
func (*ReqPlayroomDraw) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{337}
}

type ResPlayroomDraw struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
	Id   int32    `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 奖励Id
}

func (x *ResPlayroomDraw) Reset() {
	*x = ResPlayroomDraw{}
	mi := &file_proto_Gameapi_proto_msgTypes[338]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResPlayroomDraw) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResPlayroomDraw) ProtoMessage() {}

func (x *ResPlayroomDraw) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[338]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResPlayroomDraw.ProtoReflect.Descriptor instead.
func (*ResPlayroomDraw) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{338}
}

func (x *ResPlayroomDraw) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResPlayroomDraw) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

func (x *ResPlayroomDraw) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

// 消除 纸屑
type ReqPlayroomChip struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Num int32 `protobuf:"varint,1,opt,name=Num,proto3" json:"Num,omitempty"` // 要消除的层数
}

func (x *ReqPlayroomChip) Reset() {
	*x = ReqPlayroomChip{}
	mi := &file_proto_Gameapi_proto_msgTypes[339]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqPlayroomChip) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqPlayroomChip) ProtoMessage() {}

func (x *ReqPlayroomChip) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[339]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqPlayroomChip.ProtoReflect.Descriptor instead.
func (*ReqPlayroomChip) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{339}
}

func (x *ReqPlayroomChip) GetNum() int32 {
	if x != nil {
		return x.Num
	}
	return 0
}

type ResPlayroomChip struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResPlayroomChip) Reset() {
	*x = ResPlayroomChip{}
	mi := &file_proto_Gameapi_proto_msgTypes[340]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResPlayroomChip) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResPlayroomChip) ProtoMessage() {}

func (x *ResPlayroomChip) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[340]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResPlayroomChip.ProtoReflect.Descriptor instead.
func (*ResPlayroomChip) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{340}
}

func (x *ResPlayroomChip) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResPlayroomChip) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type ReqPlayroomBuyItem struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // Mood Id
}

func (x *ReqPlayroomBuyItem) Reset() {
	*x = ReqPlayroomBuyItem{}
	mi := &file_proto_Gameapi_proto_msgTypes[341]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqPlayroomBuyItem) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqPlayroomBuyItem) ProtoMessage() {}

func (x *ReqPlayroomBuyItem) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[341]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqPlayroomBuyItem.ProtoReflect.Descriptor instead.
func (*ReqPlayroomBuyItem) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{341}
}

func (x *ReqPlayroomBuyItem) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type ResPlayroomBuyItem struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResPlayroomBuyItem) Reset() {
	*x = ResPlayroomBuyItem{}
	mi := &file_proto_Gameapi_proto_msgTypes[342]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResPlayroomBuyItem) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResPlayroomBuyItem) ProtoMessage() {}

func (x *ResPlayroomBuyItem) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[342]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResPlayroomBuyItem.ProtoReflect.Descriptor instead.
func (*ResPlayroomBuyItem) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{342}
}

func (x *ResPlayroomBuyItem) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResPlayroomBuyItem) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// playroom商店 购买
type ReqPlayroomShop struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id  int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`   // 商店id
	Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` // 购买数量
}

func (x *ReqPlayroomShop) Reset() {
	*x = ReqPlayroomShop{}
	mi := &file_proto_Gameapi_proto_msgTypes[343]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqPlayroomShop) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqPlayroomShop) ProtoMessage() {}

func (x *ReqPlayroomShop) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[343]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqPlayroomShop.ProtoReflect.Descriptor instead.
func (*ReqPlayroomShop) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{343}
}

func (x *ReqPlayroomShop) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *ReqPlayroomShop) GetNum() int32 {
	if x != nil {
		return x.Num
	}
	return 0
}

type ResPlayroomShop struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResPlayroomShop) Reset() {
	*x = ResPlayroomShop{}
	mi := &file_proto_Gameapi_proto_msgTypes[344]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResPlayroomShop) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResPlayroomShop) ProtoMessage() {}

func (x *ResPlayroomShop) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[344]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResPlayroomShop.ProtoReflect.Descriptor instead.
func (*ResPlayroomShop) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{344}
}

func (x *ResPlayroomShop) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResPlayroomShop) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// #region 宠物宝藏
type ReqFriendTreasure struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqFriendTreasure) Reset() {
	*x = ReqFriendTreasure{}
	mi := &file_proto_Gameapi_proto_msgTypes[345]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqFriendTreasure) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqFriendTreasure) ProtoMessage() {}

func (x *ReqFriendTreasure) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[345]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqFriendTreasure.ProtoReflect.Descriptor instead.
func (*ReqFriendTreasure) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{345}
}

type ResFriendTreasure struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status int32           `protobuf:"varint,1,opt,name=Status,proto3" json:"Status,omitempty"`      // 0 未开始 1 进行中 2 已结束
	Star   int32           `protobuf:"varint,2,opt,name=Star,proto3" json:"Star,omitempty"`          // 星级
	Shift  int32           `protobuf:"varint,3,opt,name=Shift,proto3" json:"Shift,omitempty"`        // 当前挡位
	List   []*TreasureInfo `protobuf:"bytes,4,rep,name=List,proto3" json:"List,omitempty"`           // 列表
	List2  []int32         `protobuf:"varint,5,rep,packed,name=List2,proto3" json:"List2,omitempty"` // 今日已翻玩家列表
	Uids   []int64         `protobuf:"varint,6,rep,packed,name=Uids,proto3" json:"Uids,omitempty"`   // 今日已翻位置列表
}

func (x *ResFriendTreasure) Reset() {
	*x = ResFriendTreasure{}
	mi := &file_proto_Gameapi_proto_msgTypes[346]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResFriendTreasure) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResFriendTreasure) ProtoMessage() {}

func (x *ResFriendTreasure) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[346]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResFriendTreasure.ProtoReflect.Descriptor instead.
func (*ResFriendTreasure) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{346}
}

func (x *ResFriendTreasure) GetStatus() int32 {
	if x != nil {
		return x.Status
	}
	return 0
}

func (x *ResFriendTreasure) GetStar() int32 {
	if x != nil {
		return x.Star
	}
	return 0
}

func (x *ResFriendTreasure) GetShift() int32 {
	if x != nil {
		return x.Shift
	}
	return 0
}

func (x *ResFriendTreasure) GetList() []*TreasureInfo {
	if x != nil {
		return x.List
	}
	return nil
}

func (x *ResFriendTreasure) GetList2() []int32 {
	if x != nil {
		return x.List2
	}
	return nil
}

func (x *ResFriendTreasure) GetUids() []int64 {
	if x != nil {
		return x.Uids
	}
	return nil
}

type TreasureInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Pos      int32  `protobuf:"varint,1,opt,name=Pos,proto3" json:"Pos,omitempty"`          // 位置
	Type     int32  `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"`        // 类型
	Face     int32  `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"`        // 头像
	Avatar   int32  `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"`    // 头像框
	Uid      int64  `protobuf:"varint,5,opt,name=Uid,proto3" json:"Uid,omitempty"`          // Uid
	Status   int32  `protobuf:"varint,6,opt,name=Status,proto3" json:"Status,omitempty"`    // 0 未翻 1 已翻
	NickName string `protobuf:"bytes,7,opt,name=NickName,proto3" json:"NickName,omitempty"` // 昵称
}

func (x *TreasureInfo) Reset() {
	*x = TreasureInfo{}
	mi := &file_proto_Gameapi_proto_msgTypes[347]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TreasureInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TreasureInfo) ProtoMessage() {}

func (x *TreasureInfo) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[347]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TreasureInfo.ProtoReflect.Descriptor instead.
func (*TreasureInfo) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{347}
}

func (x *TreasureInfo) GetPos() int32 {
	if x != nil {
		return x.Pos
	}
	return 0
}

func (x *TreasureInfo) GetType() int32 {
	if x != nil {
		return x.Type
	}
	return 0
}

func (x *TreasureInfo) GetFace() int32 {
	if x != nil {
		return x.Face
	}
	return 0
}

func (x *TreasureInfo) GetAvatar() int32 {
	if x != nil {
		return x.Avatar
	}
	return 0
}

func (x *TreasureInfo) GetUid() int64 {
	if x != nil {
		return x.Uid
	}
	return 0
}

func (x *TreasureInfo) GetStatus() int32 {
	if x != nil {
		return x.Status
	}
	return 0
}

func (x *TreasureInfo) GetNickName() string {
	if x != nil {
		return x.NickName
	}
	return ""
}

type ReqFriendTreasureStart struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	List  []*TreasureInfo `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` // 列表
	List2 []int32         `protobuf:"varint,2,rep,packed,name=List2,proto3" json:"List2,omitempty"`
}

func (x *ReqFriendTreasureStart) Reset() {
	*x = ReqFriendTreasureStart{}
	mi := &file_proto_Gameapi_proto_msgTypes[348]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqFriendTreasureStart) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqFriendTreasureStart) ProtoMessage() {}

func (x *ReqFriendTreasureStart) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[348]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqFriendTreasureStart.ProtoReflect.Descriptor instead.
func (*ReqFriendTreasureStart) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{348}
}

func (x *ReqFriendTreasureStart) GetList() []*TreasureInfo {
	if x != nil {
		return x.List
	}
	return nil
}

func (x *ReqFriendTreasureStart) GetList2() []int32 {
	if x != nil {
		return x.List2
	}
	return nil
}

type ResFriendTreasureStart struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResFriendTreasureStart) Reset() {
	*x = ResFriendTreasureStart{}
	mi := &file_proto_Gameapi_proto_msgTypes[349]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResFriendTreasureStart) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResFriendTreasureStart) ProtoMessage() {}

func (x *ResFriendTreasureStart) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[349]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResFriendTreasureStart.ProtoReflect.Descriptor instead.
func (*ResFriendTreasureStart) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{349}
}

func (x *ResFriendTreasureStart) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResFriendTreasureStart) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type ReqFriendTreasureEnd struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqFriendTreasureEnd) Reset() {
	*x = ReqFriendTreasureEnd{}
	mi := &file_proto_Gameapi_proto_msgTypes[350]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqFriendTreasureEnd) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqFriendTreasureEnd) ProtoMessage() {}

func (x *ReqFriendTreasureEnd) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[350]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqFriendTreasureEnd.ProtoReflect.Descriptor instead.
func (*ReqFriendTreasureEnd) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{350}
}

type ResFriendTreasureEnd struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResFriendTreasureEnd) Reset() {
	*x = ResFriendTreasureEnd{}
	mi := &file_proto_Gameapi_proto_msgTypes[351]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResFriendTreasureEnd) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResFriendTreasureEnd) ProtoMessage() {}

func (x *ResFriendTreasureEnd) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[351]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResFriendTreasureEnd.ProtoReflect.Descriptor instead.
func (*ResFriendTreasureEnd) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{351}
}

func (x *ResFriendTreasureEnd) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResFriendTreasureEnd) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type ReqFriendTreasureFilp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Pos int32 `protobuf:"varint,1,opt,name=Pos,proto3" json:"Pos,omitempty"`
}

func (x *ReqFriendTreasureFilp) Reset() {
	*x = ReqFriendTreasureFilp{}
	mi := &file_proto_Gameapi_proto_msgTypes[352]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqFriendTreasureFilp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqFriendTreasureFilp) ProtoMessage() {}

func (x *ReqFriendTreasureFilp) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[352]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqFriendTreasureFilp.ProtoReflect.Descriptor instead.
func (*ReqFriendTreasureFilp) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{352}
}

func (x *ReqFriendTreasureFilp) GetPos() int32 {
	if x != nil {
		return x.Pos
	}
	return 0
}

type ResFriendTreasureFilp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResFriendTreasureFilp) Reset() {
	*x = ResFriendTreasureFilp{}
	mi := &file_proto_Gameapi_proto_msgTypes[353]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResFriendTreasureFilp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResFriendTreasureFilp) ProtoMessage() {}

func (x *ResFriendTreasureFilp) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[353]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResFriendTreasureFilp.ProtoReflect.Descriptor instead.
func (*ResFriendTreasureFilp) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{353}
}

func (x *ResFriendTreasureFilp) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResFriendTreasureFilp) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type ResFriendTreasureStar struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Star int32 `protobuf:"varint,1,opt,name=Star,proto3" json:"Star,omitempty"` // 星级
}

func (x *ResFriendTreasureStar) Reset() {
	*x = ResFriendTreasureStar{}
	mi := &file_proto_Gameapi_proto_msgTypes[354]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResFriendTreasureStar) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResFriendTreasureStar) ProtoMessage() {}

func (x *ResFriendTreasureStar) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[354]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResFriendTreasureStar.ProtoReflect.Descriptor instead.
func (*ResFriendTreasureStar) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{354}
}

func (x *ResFriendTreasureStar) GetStar() int32 {
	if x != nil {
		return x.Star
	}
	return 0
}

type ReqKafkaLog struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Event string `protobuf:"bytes,1,opt,name=Event,proto3" json:"Event,omitempty"`
	Data  string `protobuf:"bytes,2,opt,name=Data,proto3" json:"Data,omitempty"`
}

func (x *ReqKafkaLog) Reset() {
	*x = ReqKafkaLog{}
	mi := &file_proto_Gameapi_proto_msgTypes[355]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqKafkaLog) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqKafkaLog) ProtoMessage() {}

func (x *ReqKafkaLog) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[355]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqKafkaLog.ProtoReflect.Descriptor instead.
func (*ReqKafkaLog) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{355}
}

func (x *ReqKafkaLog) GetEvent() string {
	if x != nil {
		return x.Event
	}
	return ""
}

func (x *ReqKafkaLog) GetData() string {
	if x != nil {
		return x.Data
	}
	return ""
}

type ReqCollectInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqCollectInfo) Reset() {
	*x = ReqCollectInfo{}
	mi := &file_proto_Gameapi_proto_msgTypes[356]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqCollectInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqCollectInfo) ProtoMessage() {}

func (x *ReqCollectInfo) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[356]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqCollectInfo.ProtoReflect.Descriptor instead.
func (*ReqCollectInfo) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{356}
}

type ResCollectInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id    []int32        `protobuf:"varint,1,rep,packed,name=Id,proto3" json:"Id,omitempty"` //  [1,10,19]
	Items []*CollectItem `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"`   // 领奖道具
}

func (x *ResCollectInfo) Reset() {
	*x = ResCollectInfo{}
	mi := &file_proto_Gameapi_proto_msgTypes[357]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResCollectInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResCollectInfo) ProtoMessage() {}

func (x *ResCollectInfo) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[357]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResCollectInfo.ProtoReflect.Descriptor instead.
func (*ResCollectInfo) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{357}
}

func (x *ResCollectInfo) GetId() []int32 {
	if x != nil {
		return x.Id
	}
	return nil
}

func (x *ResCollectInfo) GetItems() []*CollectItem {
	if x != nil {
		return x.Items
	}
	return nil
}

type CollectItem struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id    int32       `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`      // 索引
	Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 领奖道具
}

func (x *CollectItem) Reset() {
	*x = CollectItem{}
	mi := &file_proto_Gameapi_proto_msgTypes[358]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CollectItem) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CollectItem) ProtoMessage() {}

func (x *CollectItem) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[358]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CollectItem.ProtoReflect.Descriptor instead.
func (*CollectItem) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{358}
}

func (x *CollectItem) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *CollectItem) GetItems() []*ItemInfo {
	if x != nil {
		return x.Items
	}
	return nil
}

type ReqCollect 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 *ReqCollect) Reset() {
	*x = ReqCollect{}
	mi := &file_proto_Gameapi_proto_msgTypes[359]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqCollect) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqCollect) ProtoMessage() {}

func (x *ReqCollect) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[359]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqCollect.ProtoReflect.Descriptor instead.
func (*ReqCollect) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{359}
}

func (x *ReqCollect) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type ResCollect struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
	Msg  string   `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}

func (x *ResCollect) Reset() {
	*x = ResCollect{}
	mi := &file_proto_Gameapi_proto_msgTypes[360]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResCollect) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResCollect) ProtoMessage() {}

func (x *ResCollect) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[360]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResCollect.ProtoReflect.Descriptor instead.
func (*ResCollect) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{360}
}

func (x *ResCollect) GetCode() RES_CODE {
	if x != nil {
		return x.Code
	}
	return RES_CODE_FAIL
}

func (x *ResCollect) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

// -------------------后台管理-------------------
type AdminReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Func string `protobuf:"bytes,1,opt,name=Func,proto3" json:"Func,omitempty"`
	Info []byte `protobuf:"bytes,2,opt,name=Info,proto3" json:"Info,omitempty"`
}

func (x *AdminReq) Reset() {
	*x = AdminReq{}
	mi := &file_proto_Gameapi_proto_msgTypes[361]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AdminReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AdminReq) ProtoMessage() {}

func (x *AdminReq) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[361]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AdminReq.ProtoReflect.Descriptor instead.
func (*AdminReq) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{361}
}

func (x *AdminReq) GetFunc() string {
	if x != nil {
		return x.Func
	}
	return ""
}

func (x *AdminReq) GetInfo() []byte {
	if x != nil {
		return x.Info
	}
	return nil
}

type AdminRes struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Func string `protobuf:"bytes,1,opt,name=Func,proto3" json:"Func,omitempty"`
	Info []byte `protobuf:"bytes,2,opt,name=Info,proto3" json:"Info,omitempty"`
}

func (x *AdminRes) Reset() {
	*x = AdminRes{}
	mi := &file_proto_Gameapi_proto_msgTypes[362]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AdminRes) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AdminRes) ProtoMessage() {}

func (x *AdminRes) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[362]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AdminRes.ProtoReflect.Descriptor instead.
func (*AdminRes) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{362}
}

func (x *AdminRes) GetFunc() string {
	if x != nil {
		return x.Func
	}
	return ""
}

func (x *AdminRes) GetInfo() []byte {
	if x != nil {
		return x.Info
	}
	return nil
}

type ReqAdminInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"`
}

func (x *ReqAdminInfo) Reset() {
	*x = ReqAdminInfo{}
	mi := &file_proto_Gameapi_proto_msgTypes[363]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqAdminInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqAdminInfo) ProtoMessage() {}

func (x *ReqAdminInfo) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[363]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqAdminInfo.ProtoReflect.Descriptor instead.
func (*ReqAdminInfo) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{363}
}

func (x *ReqAdminInfo) GetUid() int64 {
	if x != nil {
		return x.Uid
	}
	return 0
}

type ReqReloadServerMail struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqReloadServerMail) Reset() {
	*x = ReqReloadServerMail{}
	mi := &file_proto_Gameapi_proto_msgTypes[364]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqReloadServerMail) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqReloadServerMail) ProtoMessage() {}

func (x *ReqReloadServerMail) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[364]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqReloadServerMail.ProtoReflect.Descriptor instead.
func (*ReqReloadServerMail) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{364}
}

type ReqServerInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqServerInfo) Reset() {
	*x = ReqServerInfo{}
	mi := &file_proto_Gameapi_proto_msgTypes[365]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqServerInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqServerInfo) ProtoMessage() {}

func (x *ReqServerInfo) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[365]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqServerInfo.ProtoReflect.Descriptor instead.
func (*ReqServerInfo) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{365}
}

type ReqReload struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReqReload) Reset() {
	*x = ReqReload{}
	mi := &file_proto_Gameapi_proto_msgTypes[366]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqReload) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqReload) ProtoMessage() {}

func (x *ReqReload) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[366]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqReload.ProtoReflect.Descriptor instead.
func (*ReqReload) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{366}
}

type ReqAdminGm struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Uid     int64  `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"`        // uid
	Command string `protobuf:"bytes,2,opt,name=Command,proto3" json:"Command,omitempty"` // 命令
}

func (x *ReqAdminGm) Reset() {
	*x = ReqAdminGm{}
	mi := &file_proto_Gameapi_proto_msgTypes[367]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReqAdminGm) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqAdminGm) ProtoMessage() {}

func (x *ReqAdminGm) ProtoReflect() protoreflect.Message {
	mi := &file_proto_Gameapi_proto_msgTypes[367]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqAdminGm.ProtoReflect.Descriptor instead.
func (*ReqAdminGm) Descriptor() ([]byte, []int) {
	return file_proto_Gameapi_proto_rawDescGZIP(), []int{367}
}

func (x *ReqAdminGm) GetUid() int64 {
	if x != nil {
		return x.Uid
	}
	return 0
}

func (x *ReqAdminGm) GetCommand() string {
	if x != nil {
		return x.Command
	}
	return ""
}

var File_proto_Gameapi_proto protoreflect.FileDescriptor

var file_proto_Gameapi_proto_rawDesc = []byte{
	0x0a, 0x13, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x47, 0x61, 0x6d, 0x65, 0x61, 0x70, 0x69, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x22,
	0xb5, 0x01, 0x0a, 0x09, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a,
	0x04, 0x66, 0x75, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x75, 0x6e,
	0x63, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
	0x63, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69,
	0x6f, 0x6e, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73,
	0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
	0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61,
	0x79, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75,
	0x73, 0x65, 0x72, 0x42, 0x61, 0x73, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75,
	0x73, 0x65, 0x72, 0x42, 0x61, 0x73, 0x65, 0x22, 0x2b, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x4f, 0x66,
	0x66, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x14,
	0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64,
	0x77, 0x55, 0x69, 0x6e, 0x22, 0x43, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x4f, 0x66, 0x66, 0x6c, 0x69,
	0x6e, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64,
	0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69,
	0x6e, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x54, 0x0a, 0x16, 0x52, 0x65, 0x71,
	0x42, 0x69, 0x6e, 0x64, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x41, 0x63, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x69, 0x6e,
	0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22,
	0x74, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x42, 0x69, 0x6e, 0x64, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f,
	0x6f, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55,
	0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12,
	0x24, 0x0a, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43,
	0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c,
	0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x51, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x4f, 0x6e, 0x6c, 0x79,
	0x42, 0x69, 0x6e, 0x64, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x14, 0x0a, 0x05,
	0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55,
	0x69, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e,
	0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41,
	0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x71, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x4f,
	0x6e, 0x6c, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12,
	0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05,
	0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63,
	0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x42, 0x69,
	0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x52,
	0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x4f, 0x0a, 0x11, 0x52,
	0x65, 0x71, 0x55, 0x6e, 0x42, 0x69, 0x6e, 0x64, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b,
	0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x42,
	0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x59, 0x0a, 0x11,
	0x52, 0x65, 0x73, 0x55, 0x6e, 0x42, 0x69, 0x6e, 0x64, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f,
	0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64,
	0x65, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
	0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x40, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x53, 0x79,
	0x6e, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55,
	0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12,
	0x18, 0x0a, 0x07, 0x4e, 0x65, 0x77, 0x46, 0x42, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x07, 0x4e, 0x65, 0x77, 0x46, 0x42, 0x49, 0x64, 0x22, 0x46, 0x0a, 0x0e, 0x52, 0x65, 0x73,
	0x53, 0x79, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x64,
	0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69,
	0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64,
	0x65, 0x22, 0x0e, 0x0a, 0x0c, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x4b, 0x69, 0x63, 0x6b, 0x4f, 0x75,
	0x74, 0x22, 0x2c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x65,
	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22,
	0xb3, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x43, 0x68, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f,
	0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x5a, 0x0a, 0x0f, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x43,
	0x6f, 0x6c, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30,
	0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, 0x65,
	0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x43, 0x68, 0x65,
	0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79,
	0x52, 0x0f, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x44, 0x61, 0x74,
	0x61, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72,
	0x44, 0x61, 0x74, 0x61, 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, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x45, 0x0a, 0x09, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52,
	0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x60, 0x0a, 0x12,
	0x52, 0x65, 0x71, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18,
	0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x50, 0x77, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x07, 0x55, 0x73, 0x65, 0x72, 0x50, 0x77, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69,
	0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x22, 0x34,
	0x0a, 0x12, 0x52, 0x65, 0x73, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63,
	0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f,
	0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
	0x43, 0x6f, 0x64, 0x65, 0x22, 0x40, 0x0a, 0x08, 0x52, 0x65, 0x71, 0x4c, 0x6f, 0x67, 0x69, 0x6e,
	0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07,
	0x55, 0x73, 0x65, 0x72, 0x50, 0x77, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x55,
	0x73, 0x65, 0x72, 0x50, 0x77, 0x64, 0x22, 0x7c, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x4c, 0x6f, 0x67,
	0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f,
	0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72,
	0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72,
	0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x46, 0x61, 0x63, 0x65, 0x42, 0x6f, 0x6f, 0x6b,
	0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x46, 0x61, 0x63, 0x65, 0x42, 0x6f,
	0x6f, 0x6b, 0x49, 0x64, 0x22, 0x29, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x65,
	0x72, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55,
	0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x22,
	0xee, 0x05, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x61, 0x73,
	0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x65,
	0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x65, 0x6e, 0x65,
	0x72, 0x67, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x04, 0x73, 0x74, 0x61, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x6f, 0x76,
	0x65, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72,
	0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x69,
	0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x64, 0x69, 0x61,
	0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78,
	0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x78, 0x70, 0x12, 0x24, 0x0a, 0x0e,
	0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72,
	0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x5f, 0x63, 0x6f, 0x64, 0x65,
	0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x43, 0x6f, 0x64,
	0x65, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x61, 0x63, 0x6b, 0x5f,
	0x75, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x6f,
	0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x79,
	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6c, 0x61, 0x73,
	0x74, 0x50, 0x6c, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x65,
	0x72, 0x67, 0x79, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x0e, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e,
	0x74, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d,
	0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x09, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a,
	0x0b, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26,
	0x0a, 0x0e, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x6f, 0x6c, 0x69, 0x6e, 0x65, 0x74, 0x69, 0x6d, 0x65,
	0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x6f, 0x6c, 0x69,
	0x6e, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6c, 0x65, 0x63, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e,
	0x72, 0x6f, 0x6c, 0x65, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x22,
	0x0a, 0x0c, 0x45, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6e, 0x74, 0x18, 0x13,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x45, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43,
	0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x6f, 0x41, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x04, 0x4e, 0x6f, 0x41, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73,
	0x68, 0x69, 0x70, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x15, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x11, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x73, 0x47, 0x72, 0x6f,
	0x75, 0x70, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x4c, 0x61, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6d,
	0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10,
	0x4c, 0x61, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44,
	0x12, 0x1e, 0x0a, 0x0a, 0x46, 0x61, 0x63, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x18, 0x17,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x46, 0x61, 0x63, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x64,
	0x22, 0x10, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x73, 0x73,
	0x65, 0x74, 0x22, 0xe5, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72,
	0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x65,
	0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x65, 0x6e, 0x65,
	0x72, 0x67, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x04, 0x73, 0x74, 0x61, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x6f, 0x76,
	0x65, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72,
	0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x69,
	0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x64, 0x69, 0x61,
	0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78,
	0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x78, 0x70, 0x12, 0x14, 0x0a, 0x05,
	0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x6f, 0x67,
	0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x18, 0x09, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x06, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x22, 0xbb, 0x01, 0x0a, 0x12, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66,
	0x6f, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x74,
	0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61,
	0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4d, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x6d, 0x55, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x1a, 0x3e, 0x0a, 0x10, 0x4d, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x49, 0x74, 0x65, 0x6d, 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, 0x47, 0x0a, 0x17, 0x4e, 0x6f, 0x74, 0x69,
	0x66, 0x79, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x42, 0x75, 0x79, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79,
	0x43, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x75, 0x72,
	0x43, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x75, 0x72, 0x43, 0x6e,
	0x74, 0x22, 0x23, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x64,
	0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x22, 0x2d, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x52, 0x65, 0x6d,
	0x6f, 0x76, 0x65, 0x41, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43,
	0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c,
	0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x3f, 0x0a, 0x0f, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x41,
	0x64, 0x64, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69,
	0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x16,
	0x0a, 0x06, 0x61, 0x64, 0x64, 0x43, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06,
	0x61, 0x64, 0x64, 0x43, 0x6e, 0x74, 0x22, 0x25, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x53, 0x65, 0x72,
	0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x22, 0x2f, 0x0a,
	0x0d, 0x52, 0x65, 0x73, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e,
	0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x2a,
	0x0a, 0x12, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x65, 0x73, 0x73,
	0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x22, 0xf3, 0x01, 0x0a, 0x12, 0x52,
	0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74,
	0x61, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x4c, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73,
	0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x74, 0x75,
	0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72,
	0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73,
	0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73,
	0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x4c, 0x69,
	0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x4c,
	0x69, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x75, 0x66, 0x66,
	0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x75, 0x66,
	0x66, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 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, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
	0x22, 0xb6, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68,
	0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73,
	0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x43, 0x68, 0x65, 0x73,
	0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x75,
	0x66, 0x66, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42,
	0x75, 0x66, 0x66, 0x12, 0x2e, 0x0a, 0x08, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c,
	0x2e, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x52, 0x08, 0x43, 0x68, 0x65, 0x73, 0x73,
	0x42, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x74, 0x69, 0x72, 0x65, 0x45, 0x6d, 0x69,
	0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x52, 0x65, 0x74, 0x69, 0x72, 0x65, 0x45,
	0x6d, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x48, 0x6f, 0x6e, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x03,
	0x28, 0x05, 0x52, 0x05, 0x48, 0x6f, 0x6e, 0x6f, 0x72, 0x22, 0x90, 0x01, 0x0a, 0x0b, 0x43, 0x68,
	0x65, 0x73, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x29, 0x0a, 0x04, 0x74, 0x79, 0x70,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69,
	0x61, 0x6c, 0x2e, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x52, 0x04,
	0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x45, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x04, 0x45, 0x6d, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73,
	0x73, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73,
	0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02,
	0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20,
	0x03, 0x28, 0x05, 0x52, 0x07, 0x41, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0xf8, 0x01, 0x0a,
	0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x65,
	0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x4f, 0x0a, 0x0a,
	0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x2f, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74,
	0x61, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72,
	0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a,
	0x0c, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x03, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x43,
	0x68, 0x65, 0x73, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x0c, 0x6d, 0x43, 0x68, 0x65,
	0x73, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65,
	0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 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, 0x05, 0x52, 0x05, 0x76, 0x61,
	0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x54, 0x0a, 0x18, 0x52, 0x65, 0x73, 0x55, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44,
	0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53,
	0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d,
	0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xb7, 0x01,
	0x0a, 0x10, 0x52, 0x65, 0x71, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x43, 0x68, 0x65,
	0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x4a, 0x0a, 0x0a,
	0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x2a, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x53,
	0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x43, 0x68, 0x65, 0x73, 0x73, 0x2e, 0x4d, 0x43, 0x68,
	0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43,
	0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65,
	0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 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, 0x05, 0x52, 0x05, 0x76, 0x61,
	0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x53, 0x65,
	0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x43, 0x68, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x04, 0x63,
	0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f,
	0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x63,
	0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xb5, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x55, 0x70, 0x67,
	0x72, 0x61, 0x64, 0x65, 0x43, 0x68, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65,
	0x73, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73,
	0x73, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74,
	0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69,
	0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x43, 0x68, 0x65,
	0x73, 0x73, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74,
	0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x3d,
	0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 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, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4b, 0x0a,
	0x0f, 0x52, 0x65, 0x73, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x43, 0x68, 0x65, 0x73, 0x73,
	0x12, 0x26, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12,
	0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f,
	0x44, 0x45, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xbd, 0x01, 0x0a, 0x13, 0x52,
	0x65, 0x71, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x73, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x75,
	0x66, 0x66, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x4d, 0x0a, 0x0a,
	0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x2d, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x47,
	0x65, 0x74, 0x43, 0x68, 0x65, 0x73, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x75, 0x66, 0x66, 0x2e,
	0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
	0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d,
	0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 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, 0x05, 0x52,
	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4f, 0x0a, 0x13, 0x52, 0x65,
	0x73, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x73, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x75, 0x66,
	0x66, 0x12, 0x26, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43,
	0x4f, 0x44, 0x45, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xff, 0x01, 0x0a, 0x0a,
	0x52, 0x65, 0x71, 0x43, 0x68, 0x65, 0x73, 0x73, 0x45, 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x6c,
	0x64, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a,
	0x4f, 0x6c, 0x64, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x4e, 0x65,
	0x77, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a,
	0x4e, 0x65, 0x77, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f,
	0x73, 0x74, 0x44, 0x69, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x6f, 0x73,
	0x74, 0x44, 0x69, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65,
	0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x74,
	0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x43, 0x68, 0x65, 0x73, 0x73,
	0x45, 0x78, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74,
	0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x3d,
	0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 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, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x46, 0x0a,
	0x0a, 0x52, 0x65, 0x73, 0x43, 0x68, 0x65, 0x73, 0x73, 0x45, 0x78, 0x12, 0x26, 0x0a, 0x04, 0x63,
	0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f,
	0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x63,
	0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xb3, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x53, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x43, 0x68, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73,
	0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x74,
	0x49, 0x64, 0x12, 0x48, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61,
	0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61,
	0x6c, 0x2e, 0x52, 0x65, 0x71, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x65, 0x73, 0x74,
	0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79,
	0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x3d, 0x0a, 0x0f,
	0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 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, 0x05,
	0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4a, 0x0a, 0x0e, 0x52,
	0x65, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a,
	0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75,
	0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52,
	0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x8f, 0x02, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x50,
	0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1e,
	0x0a, 0x0a, 0x4f, 0x6c, 0x64, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x0a, 0x4f, 0x6c, 0x64, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x1e,
	0x0a, 0x0a, 0x4e, 0x65, 0x77, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x0a, 0x4e, 0x65, 0x77, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x18,
	0x0a, 0x07, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x07, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4c, 0x0a, 0x0a,
	0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x2c, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x50,
	0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x4d,
	0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a,
	0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43,
	0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 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, 0x05, 0x52, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4e, 0x0a, 0x12, 0x52, 0x65, 0x73,
	0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x12,
	0x26, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e,
	0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44,
	0x45, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x8e, 0x01, 0x0a, 0x08, 0x43, 0x68,
	0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x12, 0x3c, 0x0a, 0x0d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42,
	0x61, 0x67, 0x47, 0x72, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e,
	0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x61,
	0x67, 0x47, 0x72, 0x69, 0x64, 0x52, 0x0d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x47,
	0x72, 0x69, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x75, 0x79,
	0x43, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x68, 0x65, 0x73, 0x73,
	0x42, 0x75, 0x79, 0x43, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x68, 0x65, 0x73, 0x73, 0x46,
	0x72, 0x65, 0x65, 0x43, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x43, 0x68,
	0x65, 0x73, 0x73, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6e, 0x74, 0x22, 0x50, 0x0a, 0x0c, 0x43, 0x68,
	0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x47, 0x72, 0x69, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68,
	0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65,
	0x73, 0x73, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x6d, 0x69, 0x74, 0x49, 0x64, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x45, 0x6d, 0x69, 0x74, 0x49, 0x64, 0x22, 0xe5, 0x01, 0x0a,
	0x10, 0x52, 0x65, 0x71, 0x50, 0x75, 0x74, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x42, 0x61,
	0x67, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x42,
	0x61, 0x67, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x42, 0x61, 0x67, 0x49,
	0x64, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x6d, 0x69, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x06, 0x45, 0x6d, 0x69, 0x74, 0x49, 0x64, 0x12, 0x4a, 0x0a, 0x0a, 0x6d, 0x43, 0x68,
	0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e,
	0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x50, 0x75, 0x74, 0x43,
	0x68, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x42, 0x61, 0x67, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73,
	0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73,
	0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44,
	0x61, 0x74, 0x61, 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, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x3a, 0x02, 0x38, 0x01, 0x22, 0x4c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x50, 0x75, 0x74, 0x43, 0x68,
	0x65, 0x73, 0x73, 0x49, 0x6e, 0x42, 0x61, 0x67, 0x12, 0x26, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61,
	0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65,
	0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d,
	0x73, 0x67, 0x22, 0xb7, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x68,
	0x65, 0x73, 0x73, 0x4f, 0x75, 0x74, 0x42, 0x61, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x42, 0x61, 0x67,
	0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x42, 0x61, 0x67, 0x49, 0x64, 0x12,
	0x4c, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52,
	0x65, 0x71, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x68, 0x65, 0x73, 0x73, 0x4f, 0x75, 0x74, 0x42, 0x61,
	0x67, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72,
	0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x3d, 0x0a,
	0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 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,
	0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4e, 0x0a, 0x12,
	0x52, 0x65, 0x73, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x68, 0x65, 0x73, 0x73, 0x4f, 0x75, 0x74, 0x42,
	0x61, 0x67, 0x12, 0x26, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f,
	0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73,
	0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x14, 0x0a, 0x12,
	0x52, 0x65, 0x71, 0x42, 0x75, 0x79, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x47, 0x72,
	0x69, 0x64, 0x22, 0x4e, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x42, 0x75, 0x79, 0x43, 0x68, 0x65, 0x73,
	0x73, 0x42, 0x61, 0x67, 0x47, 0x72, 0x69, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61,
	0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65,
	0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d,
	0x73, 0x67, 0x22, 0x2c, 0x0a, 0x14, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50,
	0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77,
	0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e,
	0x22, 0xa2, 0x02, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x72,
	0x6f, 0x66, 0x69, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55,
	0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12,
	0x1e, 0x0a, 0x0a, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x0a, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12,
	0x1c, 0x0a, 0x09, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x09, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x20, 0x0a,
	0x0b, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x0b, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6e, 0x74, 0x12,
	0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50,
	0x69, 0x63, 0x55, 0x52, 0x4c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x50, 0x69, 0x63,
	0x55, 0x52, 0x4c, 0x12, 0x20, 0x0a, 0x0b, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x46, 0x72, 0x61,
	0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b,
	0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x49,
	0x63, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63,
	0x6b, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54,
	0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76,
	0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x31, 0x0a, 0x19, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79,
	0x65, 0x72, 0x42, 0x72, 0x69, 0x65, 0x66, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x44, 0x61,
	0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x22, 0xe5, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x73,
	0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x72, 0x69, 0x65, 0x66, 0x50, 0x72, 0x6f, 0x66, 0x69,
	0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a,
	0x49, 0x6d, 0x61, 0x67, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x0a, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09,
	0x49, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x09, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65,
	0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x0b, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08,
	0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
	0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x69, 0x63, 0x55,
	0x52, 0x4c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x50, 0x69, 0x63, 0x55, 0x52, 0x4c,
	0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65,
	0x22, 0x2f, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79,
	0x4d, 0x75, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x4d, 0x75, 0x6c,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x4d, 0x75,
	0x6c, 0x22, 0x57, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x65, 0x72, 0x67,
	0x79, 0x4d, 0x75, 0x6c, 0x12, 0x32, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f,
	0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72,
	0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x0a, 0x52, 0x65,
	0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x82, 0x01, 0x0a, 0x08, 0x42,
	0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x45, 0x6e, 0x65, 0x72, 0x67,
	0x79, 0x4d, 0x75, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x45, 0x6e, 0x65, 0x72,
	0x67, 0x79, 0x4d, 0x75, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x73, 0x46, 0x69, 0x72, 0x73, 0x74,
	0x42, 0x75, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x49, 0x73, 0x46, 0x69, 0x72,
	0x73, 0x74, 0x42, 0x75, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x42,
	0x75, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79,
	0x42, 0x75, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x41, 0x44, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x41, 0x44, 0x22,
	0x0d, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xca,
	0x03, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x55,
	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x1a, 0x0a,
	0x08, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x08, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61,
	0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61,
	0x72, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74,
	0x65, 0x43, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x44, 0x65, 0x63, 0x6f,
	0x72, 0x61, 0x74, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x0a, 0x41, 0x76, 0x61, 0x74, 0x61,
	0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x75,
	0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x6e, 0x66,
	0x6f, 0x52, 0x0a, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x0a,
	0x08, 0x46, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x49,
	0x6e, 0x66, 0x6f, 0x52, 0x08, 0x46, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a,
	0x05, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x6f,
	0x67, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x50, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x50, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a,
	0x09, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x13, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x45, 0x6d, 0x6f, 0x6a,
	0x69, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x4c, 0x69, 0x73, 0x74,
	0x12, 0x3c, 0x0a, 0x08, 0x53, 0x65, 0x74, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x18, 0x0b, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x55, 0x73,
	0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x65, 0x74, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x45,
	0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x53, 0x65, 0x74, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x1a, 0x3b,
	0x0a, 0x0d, 0x53, 0x65, 0x74, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 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, 0x0a, 0x52,
	0x65, 0x71, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x52, 0x0a,
	0x0a, 0x52, 0x65, 0x73, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x0a, 0x52,
	0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43,
	0x4f, 0x44, 0x45, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12,
	0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73,
	0x67, 0x22, 0x23, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x53, 0x65, 0x74, 0x50, 0x65, 0x74, 0x4e, 0x61,
	0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x55, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x53, 0x65, 0x74,
	0x50, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c,
	0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75,
	0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52,
	0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d,
	0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x26, 0x0a,
	0x0c, 0x52, 0x65, 0x71, 0x42, 0x75, 0x79, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x16, 0x0a,
	0x06, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x45,
	0x6e, 0x65, 0x72, 0x67, 0x79, 0x22, 0x48, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x42, 0x75, 0x79, 0x45,
	0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52,
	0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a,
	0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22,
	0x12, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x42,
	0x79, 0x41, 0x44, 0x22, 0x4c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x65,
	0x72, 0x67, 0x79, 0x42, 0x79, 0x41, 0x44, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c,
	0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12,
	0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73,
	0x67, 0x22, 0x30, 0x0a, 0x14, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x62,
	0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65,
	0x73, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73,
	0x73, 0x49, 0x64, 0x22, 0x50, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x48, 0x61, 0x6e,
	0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43,
	0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f,
	0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43,
	0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x40, 0x0a, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f,
	0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12,
	0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x40, 0x0a, 0x08, 0x48, 0x61, 0x6e, 0x64, 0x62,
	0x6f, 0x6f, 0x6b, 0x12, 0x34, 0x0a, 0x09, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x73,
	0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61,
	0x6c, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09,
	0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x22, 0x2a, 0x0a, 0x14, 0x52, 0x65, 0x67,
	0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72,
	0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x50, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x48, 0x61, 0x6e, 0x64,
	0x62, 0x6f, 0x6f, 0x6b, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a,
	0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75,
	0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52,
	0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0xb3, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x52,
	0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72,
	0x64, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4f, 0x72, 0x64,
	0x65, 0x72, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61,
	0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72,
	0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x72, 0x64,
	0x65, 0x72, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74,
	0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x3d,
	0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 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, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4a, 0x0a,
	0x0e, 0x52, 0x65, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12,
	0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e,
	0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44,
	0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x27, 0x0a, 0x0b, 0x52, 0x65, 0x71,
	0x44, 0x65, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65,
	0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72,
	0x49, 0x64, 0x22, 0x47, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x4f, 0x72, 0x64, 0x65,
	0x72, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43,
	0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x2b, 0x0a, 0x0f, 0x52,
	0x65, 0x71, 0x53, 0x65, 0x6c, 0x6c, 0x43, 0x68, 0x65, 0x73, 0x73, 0x4e, 0x75, 0x6d, 0x12, 0x18,
	0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x22, 0x23, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x53,
	0x65, 0x6c, 0x6c, 0x43, 0x68, 0x65, 0x73, 0x73, 0x4e, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x4e,
	0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x45, 0x0a,
	0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49,
	0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64,
	0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04,
	0x74, 0x79, 0x70, 0x65, 0x22, 0x3d, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x4f, 0x72, 0x64, 0x65, 0x72,
	0x4c, 0x69, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73,
	0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69,
	0x61, 0x6c, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c,
	0x69, 0x73, 0x74, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61,
	0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x72, 0x65, 0x61, 0x49, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x72, 0x65, 0x61, 0x49, 0x64, 0x12, 0x20,
	0x0a, 0x0b, 0x6d, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20,
	0x03, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4c, 0x69, 0x73, 0x74,
	0x22, 0x45, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x12,
	0x16, 0x0a, 0x06, 0x41, 0x72, 0x65, 0x61, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x06, 0x41, 0x72, 0x65, 0x61, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x44, 0x65, 0x63, 0x6f, 0x72,
	0x61, 0x74, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x44, 0x65, 0x63,
	0x6f, 0x72, 0x61, 0x74, 0x65, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x44, 0x65,
	0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e,
	0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10,
	0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67,
	0x22, 0x10, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x41,
	0x6c, 0x6c, 0x22, 0x4a, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74,
	0x65, 0x41, 0x6c, 0x6c, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45,
	0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03,
	0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x3c,
	0x0a, 0x0c, 0x52, 0x65, 0x71, 0x47, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x18,
	0x0a, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x22, 0x2c, 0x0a, 0x04,
	0x43, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x0d, 0x0a, 0x0b, 0x52, 0x65,
	0x71, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xd3, 0x04, 0x0a, 0x0b, 0x52, 0x65,
	0x73, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2a, 0x0a, 0x08, 0x43, 0x61, 0x72,
	0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x75,
	0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x52, 0x08, 0x43, 0x61, 0x72,
	0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x78, 0x53, 0x74, 0x61, 0x72, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x45, 0x78, 0x53, 0x74, 0x61, 0x72, 0x12, 0x16, 0x0a,
	0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,
	0x49, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63,
	0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1a, 0x0a,
	0x08, 0x52, 0x65, 0x71, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x08, 0x52, 0x65, 0x71, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x07, 0x41, 0x6c, 0x6c,
	0x43, 0x61, 0x72, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x74, 0x75, 0x74,
	0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66,
	0x6f, 0x2e, 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07,
	0x41, 0x6c, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69,
	0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d,
	0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x71, 0x55, 0x69, 0x64, 0x18, 0x09, 0x20, 0x03, 0x28,
	0x03, 0x52, 0x06, 0x52, 0x65, 0x71, 0x55, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x78, 0x55,
	0x69, 0x64, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x45, 0x78, 0x55, 0x69, 0x64, 0x12,
	0x1c, 0x0a, 0x09, 0x47, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x09, 0x47, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x14, 0x0a,
	0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x52, 0x6f,
	0x75, 0x6e, 0x64, 0x12, 0x3f, 0x0a, 0x08, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x18,
	0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c,
	0x2e, 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x48, 0x61, 0x6e,
	0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x48, 0x61, 0x6e, 0x64,
	0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x46, 0x69,
	0x72, 0x73, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x53, 0x65, 0x61, 0x73, 0x6f,
	0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x1a, 0x3a, 0x0a, 0x0c, 0x41, 0x6c, 0x6c, 0x43, 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, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
	0x38, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 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,
	0x96, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x43, 0x61, 0x72,
	0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x78, 0x54, 0x69, 0x6d, 0x65,
	0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x73,
	0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x71, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x08, 0x52, 0x65, 0x71, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06,
	0x52, 0x65, 0x71, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x52, 0x65,
	0x71, 0x55, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x78, 0x55, 0x69, 0x64, 0x18, 0x04, 0x20,
	0x03, 0x28, 0x03, 0x52, 0x05, 0x45, 0x78, 0x55, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x6f,
	0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x47,
	0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x71, 0x43,
	0x61, 0x72, 0x64, 0x53, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x52, 0x65,
	0x77, 0x61, 0x72, 0x64, 0x22, 0x54, 0x0a, 0x18, 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x53,
	0x65, 0x61, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64,
	0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12,
	0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f,
	0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x2f, 0x0a, 0x15, 0x52, 0x65,
	0x71, 0x43, 0x61, 0x72, 0x64, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x77,
	0x61, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0x69, 0x0a, 0x15, 0x52,
	0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65,
	0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45,
	0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03,
	0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x16,
	0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06,
	0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0x37, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x4d, 0x61, 0x73,
	0x74, 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49,
	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22,
	0x7d, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x43, 0x61, 0x72, 0x64,
	0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12,
	0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f,
	0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61,
	0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4d, 0x61,
	0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0x2c,
	0x0a, 0x14, 0x52, 0x65, 0x71, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,
	0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0x50, 0x0a, 0x14,
	0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65,
	0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45,
	0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03,
	0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x21,
	0x0a, 0x0f, 0x52, 0x65, 0x71, 0x45, 0x78, 0x53, 0x74, 0x61, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72,
	0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49,
	0x64, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x45, 0x78, 0x53, 0x74, 0x61, 0x72, 0x52, 0x65,
	0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45,
	0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03,
	0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x15,
	0x0a, 0x13, 0x52, 0x65, 0x71, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52,
	0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x4f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x41, 0x6c, 0x6c, 0x43,
	0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04,
	0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74,
	0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04,
	0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x37, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x43, 0x61, 0x72,
	0x64, 0x47, 0x69, 0x76, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49,
	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22,
	0x47, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x47, 0x69, 0x76, 0x65, 0x12, 0x26,
	0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74,
	0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45,
	0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x22, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x41,
	0x67, 0x72, 0x65, 0x65, 0x43, 0x61, 0x72, 0x64, 0x47, 0x69, 0x76, 0x65, 0x12, 0x0e, 0x0a, 0x02,
	0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x5c, 0x0a, 0x10,
	0x52, 0x65, 0x73, 0x41, 0x67, 0x72, 0x65, 0x65, 0x43, 0x61, 0x72, 0x64, 0x47, 0x69, 0x76, 0x65,
	0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12,
	0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f,
	0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x23, 0x0a, 0x11, 0x52, 0x65,
	0x71, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x43, 0x61, 0x72, 0x64, 0x47, 0x69, 0x76, 0x65, 0x12,
	0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22,
	0x5d, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x43, 0x61, 0x72, 0x64,
	0x47, 0x69, 0x76, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45,
	0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03,
	0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e,
	0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x37,
	0x0a, 0x0b, 0x52, 0x65, 0x71, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x10, 0x0a,
	0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x12,
	0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x43, 0x61,
	0x72, 0x64, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e,
	0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10,
	0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67,
	0x22, 0x3b, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61,
	0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0x4b, 0x0a,
	0x0f, 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
	0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12,
	0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f,
	0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x3f, 0x0a, 0x15, 0x52, 0x65,
	0x71, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61,
	0x6e, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0x61, 0x0a, 0x15, 0x52,
	0x65, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, 0x68,
	0x61, 0x6e, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45,
	0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03,
	0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e,
	0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x26,
	0x0a, 0x14, 0x52, 0x65, 0x71, 0x41, 0x67, 0x72, 0x65, 0x65, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78,
	0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x60, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x41, 0x67, 0x72,
	0x65, 0x65, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x26,
	0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74,
	0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45,
	0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x25, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x52,
	0x65, 0x66, 0x75, 0x73, 0x65, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12,
	0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22,
	0x5f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x43, 0x61, 0x72, 0x64,
	0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e,
	0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10,
	0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67,
	0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64,
	0x22, 0x27, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x43, 0x61, 0x72,
	0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x61, 0x0a, 0x15, 0x52, 0x65, 0x73,
	0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e,
	0x67, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f,
	0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73,
	0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02,
	0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x22, 0x0a, 0x10,
	0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64,
	0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64,
	0x22, 0x74, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64,
	0x43, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45,
	0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03,
	0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e,
	0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16,
	0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06,
	0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0x10, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74,
	0x47, 0x6f, 0x6c, 0x64, 0x43, 0x61, 0x72, 0x64, 0x22, 0x38, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x47,
	0x65, 0x74, 0x47, 0x6f, 0x6c, 0x64, 0x43, 0x61, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x6f,
	0x75, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x6f, 0x75, 0x72, 0x12, 0x12,
	0x0a, 0x04, 0x46, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x69,
	0x76, 0x65, 0x22, 0x20, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x47, 0x75, 0x69, 0x64, 0x65, 0x52, 0x65,
	0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x02, 0x49, 0x64, 0x22, 0x4a, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x47, 0x75, 0x69, 0x64, 0x65,
	0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e,
	0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10,
	0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67,
	0x22, 0x85, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66,
	0x6f, 0x12, 0x3a, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x22, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73,
	0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64,
	0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x1a, 0x39, 0x0a,
	0x0b, 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, 0x05, 0x52, 0x05, 0x76,
	0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8e, 0x01, 0x0a, 0x0a, 0x52, 0x65, 0x73,
	0x49, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73,
	0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61,
	0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d,
	0x73, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x61, 0x72, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x03,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e,
	0x43, 0x61, 0x72, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x52, 0x09, 0x43, 0x61, 0x72, 0x64, 0x50, 0x61,
	0x63, 0x6b, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x05, 0x4c, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x2c, 0x0a, 0x08, 0x49, 0x74, 0x65,
	0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x2e, 0x0a, 0x08, 0x43, 0x61, 0x72, 0x64, 0x50,
	0x61, 0x63, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28,
	0x05, 0x52, 0x04, 0x43, 0x61, 0x72, 0x64, 0x22, 0x8c, 0x03, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x44,
	0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x46, 0x0a, 0x0a, 0x57, 0x65, 0x65, 0x6b,
	0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x74,
	0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79,
	0x54, 0x61, 0x73, 0x6b, 0x2e, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45,
	0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64,
	0x12, 0x43, 0x0a, 0x09, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52,
	0x65, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x44, 0x61, 0x69, 0x6c,
	0x79, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x44, 0x61, 0x69, 0x6c,
	0x79, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x16, 0x0a,
	0x06, 0x44, 0x61, 0x79, 0x45, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x44,
	0x61, 0x79, 0x45, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x57, 0x65, 0x65, 0x6b, 0x45, 0x6e, 0x64,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x57, 0x65, 0x65, 0x6b, 0x45, 0x6e, 0x64, 0x1a,
	0x52, 0x0a, 0x0f, 0x57, 0x65, 0x65, 0x6b, 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, 0x29, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x44,
	0x61, 0x69, 0x6c, 0x79, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
	0x02, 0x38, 0x01, 0x1a, 0x51, 0x0a, 0x0e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b,
	0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x29, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61,
	0x6c, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x05, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x6d, 0x0a, 0x09, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x57,
	0x65, 0x65, 0x6b, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74,
	0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x16, 0x0a,
	0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x4e, 0x65, 0x65, 0x64, 0x41, 0x63, 0x74,
	0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4e, 0x65, 0x65, 0x64, 0x41,
	0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x9a, 0x01, 0x0a, 0x09, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54,
	0x61, 0x73, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x55,
	0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x55, 0x6e, 0x4c,
	0x6f, 0x63, 0x6b, 0x12, 0x33, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c,
	0x2e, 0x51, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x08,
	0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d,
	0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69,
	0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65,
	0x6d, 0x73, 0x22, 0x7d, 0x0a, 0x0d, 0x51, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72,
	0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x54,
	0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x61, 0x72,
	0x67, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x50,
	0x61, 0x72, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61,
	0x6d, 0x22, 0x27, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79,
	0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x51, 0x0a, 0x15, 0x52, 0x65,
	0x73, 0x47, 0x65, 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77,
	0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53,
	0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d,
	0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x27, 0x0a,
	0x15, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x57, 0x65, 0x65, 0x6b,
	0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x51, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74,
	0x44, 0x61, 0x69, 0x6c, 0x79, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12,
	0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e,
	0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44,
	0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x10, 0x0a, 0x0e, 0x52, 0x65, 0x71,
	0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x4a, 0x0a, 0x0e, 0x52,
	0x65, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x26, 0x0a,
	0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75,
	0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52,
	0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x53, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x46, 0x61,
	0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2e, 0x0a, 0x08, 0x46, 0x61, 0x63, 0x65, 0x4c, 0x69,
	0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72,
	0x69, 0x61, 0x6c, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x46, 0x61,
	0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x65, 0x74, 0x49, 0x64, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x65, 0x74, 0x49, 0x64, 0x22, 0x4e, 0x0a, 0x08,
	0x46, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54,
	0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69,
	0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x07, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x20, 0x0a, 0x0a,
	0x52, 0x65, 0x71, 0x53, 0x65, 0x74, 0x46, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x61,
	0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x22, 0x46,
	0x0a, 0x0a, 0x52, 0x65, 0x73, 0x53, 0x65, 0x74, 0x46, 0x61, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x04,
	0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74,
	0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04,
	0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x5b, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x41, 0x76, 0x61,
	0x74, 0x61, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x34, 0x0a, 0x0a, 0x41, 0x76, 0x61, 0x74, 0x61,
	0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x75,
	0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x6e, 0x66,
	0x6f, 0x52, 0x0a, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a,
	0x05, 0x53, 0x65, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x65,
	0x74, 0x49, 0x64, 0x22, 0x50, 0x0a, 0x0a, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x6e, 0x66,
	0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49,
	0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x41,
	0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x41, 0x64,
	0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x26, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x53, 0x65, 0x74, 0x41,
	0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x22, 0x48, 0x0a,
	0x0c, 0x52, 0x65, 0x73, 0x53, 0x65, 0x74, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x26, 0x0a,
	0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75,
	0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52,
	0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x4f, 0x0a, 0x09, 0x45, 0x6d, 0x6f, 0x6a, 0x69,
	0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18,
	0x0a, 0x07, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x07, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x31, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x53,
	0x65, 0x74, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x47, 0x0a, 0x0b, 0x52,
	0x65, 0x73, 0x53, 0x65, 0x74, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f,
	0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72,
	0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f,
	0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x03, 0x4d, 0x73, 0x67, 0x22, 0xb9, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x53, 0x65, 0x76, 0x65,
	0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x3a, 0x0a, 0x0a, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x65,
	0x77, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x75, 0x74,
	0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e,
	0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x0a, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x77, 0x61,
	0x72, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x52, 0x65, 0x77, 0x61, 0x72,
	0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69,
	0x61, 0x6c, 0x2e, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x77,
	0x61, 0x72, 0x64, 0x52, 0x0b, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64,
	0x12, 0x16, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x06, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x42, 0x61,
	0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x49, 0x73, 0x42, 0x61, 0x63, 0x6b,
	0x22, 0xb8, 0x01, 0x0a, 0x10, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52,
	0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x31, 0x18, 0x01,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e,
	0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x31, 0x12,
	0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x32, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12,
	0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e,
	0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x32, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65,
	0x6d, 0x33, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72,
	0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74,
	0x65, 0x6d, 0x33, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49,
	0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x28, 0x0a, 0x16, 0x52,
	0x65, 0x71, 0x47, 0x65, 0x74, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52,
	0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x52, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x53,
	0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12,
	0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e,
	0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44,
	0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x28, 0x0a, 0x16, 0x52, 0x65, 0x71,
	0x47, 0x65, 0x74, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x77,
	0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x02, 0x49, 0x64, 0x22, 0x52, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x6e,
	0x74, 0x68, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a,
	0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75,
	0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52,
	0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x45, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x41, 0x63,
	0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x36, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65,
	0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74,
	0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x49, 0x6e,
	0x66, 0x6f, 0x52, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xaa,
	0x01, 0x0a, 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12,
	0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12,
	0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54,
	0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65,
	0x18, 0x03, 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, 0x04, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x52, 0x65, 0x64,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x52, 0x65, 0x64, 0x22, 0x0f, 0x0a, 0x0d, 0x52,
	0x65, 0x71, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0xbd, 0x01, 0x0a,
	0x0d, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x53,
	0x0a, 0x0e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74,
	0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61,
	0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e,
	0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e,
	0x74, 0x72, 0x79, 0x52, 0x0e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c,
	0x69, 0x73, 0x74, 0x1a, 0x57, 0x0a, 0x13, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e,
	0x74, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2a, 0x0a, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x75,
	0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e,
	0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xf5, 0x01, 0x0a,
	0x15, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72,
	0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65,
	0x73, 0x73, 0x4d, 0x61, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x50, 0x72, 0x6f,
	0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67,
	0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x67,
	0x72, 0x65, 0x73, 0x73, 0x12, 0x5b, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73,
	0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x74,
	0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74,
	0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x50, 0x72,
	0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72,
	0x79, 0x52, 0x0e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72,
	0x64, 0x1a, 0x41, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 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, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x3a, 0x02, 0x38, 0x01, 0x22, 0x25, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x4c, 0x69, 0x6d, 0x69, 0x74,
	0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x4f, 0x0a, 0x13, 0x52,
	0x65, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61,
	0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f,
	0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73,
	0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x25, 0x0a, 0x13,
	0x52, 0x65, 0x71, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76,
	0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x02, 0x49, 0x64, 0x22, 0x4f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74,
	0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f,
	0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72,
	0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f,
	0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x03, 0x4d, 0x73, 0x67, 0x22, 0x66, 0x0a, 0x0a, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65,
	0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02,
	0x43, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x43, 0x64, 0x12, 0x10, 0x0a, 0x03,
	0x6d, 0x75, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x6d, 0x75, 0x6c, 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, 0x22, 0x60, 0x0a, 0x10,
	0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79,
	0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64,
	0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04,
	0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0e,
	0x0a, 0x02, 0x43, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x43, 0x64, 0x22, 0xc1,
	0x01, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74,
	0x4c, 0x75, 0x63, 0x6b, 0x79, 0x43, 0x61, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73,
	0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73,
	0x49, 0x64, 0x12, 0x4f, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61,
	0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61,
	0x6c, 0x2e, 0x52, 0x65, 0x71, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c,
	0x75, 0x63, 0x6b, 0x79, 0x43, 0x61, 0x74, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61,
	0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44,
	0x61, 0x74, 0x61, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74,
	0x61, 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, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
	0x38, 0x01, 0x22, 0x51, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76,
	0x65, 0x6e, 0x74, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x43, 0x61, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x43,
	0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f,
	0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43,
	0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x4c, 0x69, 0x6d, 0x69,
	0x74, 0x53, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x4f, 0x0a, 0x13,
	0x52, 0x65, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x53, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x77,
	0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53,
	0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d,
	0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x4e, 0x0a,
	0x12, 0x52, 0x65, 0x73, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x77,
	0x61, 0x72, 0x64, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74,
	0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x0e, 0x0a,
	0x02, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x14, 0x0a,
	0x12, 0x52, 0x65, 0x71, 0x46, 0x61, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x49,
	0x6e, 0x66, 0x6f, 0x22, 0x58, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x46, 0x61, 0x73, 0x74, 0x50, 0x72,
	0x6f, 0x64, 0x75, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x6e, 0x65,
	0x72, 0x67, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x45, 0x6e, 0x65, 0x72, 0x67,
	0x79, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03,
	0x4e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x2e, 0x0a,
	0x14, 0x52, 0x65, 0x71, 0x46, 0x61, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x52,
	0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x22, 0x7c, 0x0a,
	0x14, 0x52, 0x65, 0x73, 0x46, 0x61, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x52,
	0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52,
	0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a,
	0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12,
	0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x23, 0x0a, 0x0f, 0x52,
	0x65, 0x71, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x10,
	0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x69, 0x64,
	0x22, 0x54, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x6c, 0x61,
	0x79, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18,
	0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c,
	0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65,
	0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xd9, 0x02, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c,
	0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 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, 0x46, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04,
	0x46, 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x14, 0x0a, 0x05,
	0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76,
	0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x12, 0x14,
	0x0a, 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c,
	0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x6f, 0x75, 0x74,
	0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x6f, 0x75, 0x74,
	0x12, 0x1a, 0x0a, 0x08, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x09, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x08, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x3a, 0x0a, 0x05,
	0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x74, 0x75,
	0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72,
	0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x45, 0x6e, 0x74, 0x72,
	0x79, 0x52, 0x05, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x1a, 0x38, 0x0a, 0x0a, 0x45, 0x6d, 0x6f, 0x6a,
	0x69, 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, 0x8d, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72,
	0x52, 0x61, 0x6e, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x03, 0x55, 0x69, 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, 0x46, 0x61,
	0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x16,
	0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06,
	0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05,
	0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x63, 0x6f,
	0x72, 0x65, 0x22, 0xa7, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64,
	0x4c, 0x6f, 0x67, 0x12, 0x31, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52,
	0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x06,
	0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69,
	0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14,
	0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x50,
	0x61, 0x72, 0x61, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x70, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x55, 0x70, 0x76, 0x6f, 0x74, 0x65, 0x22, 0x3d, 0x0a, 0x0f,
	0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x12,
	0x2a, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e,
	0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65,
	0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x3f, 0x0a, 0x10, 0x4e,
	0x6f, 0x74, 0x69, 0x66, 0x79, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x12,
	0x2b, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e,
	0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65,
	0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xfb, 0x01, 0x0a,
	0x0d, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x12, 0x10,
	0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 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, 0x46, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74,
	0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72,
	0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69,
	0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16,
	0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06,
	0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x45, 0x78, 0x43, 0x61, 0x72, 0x64,
	0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x45, 0x78, 0x43, 0x61, 0x72, 0x64,
	0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64,
	0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x2f, 0x0a, 0x05, 0x52, 0x65,
	0x71, 0x4b, 0x76, 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, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x67, 0x0a, 0x05, 0x52,
	0x65, 0x73, 0x4b, 0x76, 0x12, 0x27, 0x0a, 0x02, 0x6b, 0x76, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x17, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4b,
	0x76, 0x2e, 0x4b, 0x76, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x02, 0x6b, 0x76, 0x1a, 0x35, 0x0a,
	0x07, 0x4b, 0x76, 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, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x3a, 0x02, 0x38, 0x01, 0x22, 0x14, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e,
	0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x22, 0x43, 0x0a, 0x12, 0x52, 0x65,
	0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64,
	0x12, 0x2d, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19,
	0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61,
	0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x22,
	0x23, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x67, 0x6e, 0x6f,
	0x72, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x03, 0x55, 0x69, 0x64, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e,
	0x64, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c,
	0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12,
	0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73,
	0x67, 0x22, 0x0f, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x69,
	0x73, 0x74, 0x22, 0x4a, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c,
	0x69, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73,
	0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69,
	0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70,
	0x6c, 0x65, 0x52, 0x0a, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x10,
	0x0a, 0x0e, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79,
	0x22, 0x4c, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70,
	0x6c, 0x79, 0x12, 0x3a, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c,
	0x2e, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49,
	0x6e, 0x66, 0x6f, 0x52, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x5b,
	0x0a, 0x12, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79,
	0x49, 0x6e, 0x66, 0x6f, 0x12, 0x31, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e,
	0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52,
	0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x12, 0x0a, 0x10, 0x52,
	0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4d, 0x73, 0x67, 0x22,
	0x45, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64,
	0x4d, 0x73, 0x67, 0x12, 0x31, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e,
	0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x52, 0x07, 0x4d,
	0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x13, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69,
	0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x22, 0x3d, 0x0a, 0x11, 0x52,
	0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x69, 0x6e, 0x65,
	0x12, 0x28, 0x0a, 0x03, 0x4c, 0x6f, 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e,
	0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65,
	0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x52, 0x03, 0x4c, 0x6f, 0x67, 0x22, 0x23, 0x0a, 0x11, 0x52, 0x65,
	0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x4c, 0x55, 0x70, 0x76, 0x6f, 0x74, 0x65, 0x12,
	0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22,
	0x5d, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x4c, 0x55, 0x70,
	0x76, 0x6f, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45,
	0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03,
	0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e,
	0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x71,
	0x0a, 0x14, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79,
	0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x31, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61,
	0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c,
	0x65, 0x52, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a,
	0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d,
	0x65, 0x22, 0x22, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x46, 0x72, 0x69,
	0x65, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x4a, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x41, 0x70, 0x70, 0x6c,
	0x79, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c,
	0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12,
	0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73,
	0x67, 0x22, 0x22, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x41, 0x67, 0x72, 0x65, 0x65, 0x46, 0x72, 0x69,
	0x65, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x8f, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x41, 0x67, 0x72,
	0x65, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61,
	0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65,
	0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d,
	0x73, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x03, 0x55, 0x69, 0x64, 0x12, 0x31, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e,
	0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52,
	0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x22, 0x23, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x52, 0x65,
	0x66, 0x75, 0x73, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x5d, 0x0a, 0x0f,
	0x52, 0x65, 0x73, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12,
	0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e,
	0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44,
	0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x20, 0x0a, 0x0c, 0x52,
	0x65, 0x71, 0x44, 0x65, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55,
	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x5a, 0x0a,
	0x0c, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x26, 0x0a,
	0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75,
	0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52,
	0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x1d, 0x0a, 0x07, 0x52, 0x65, 0x71,
	0x52, 0x61, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0xe4, 0x01, 0x0a, 0x07, 0x52, 0x65, 0x73,
	0x52, 0x61, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b,
	0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x75, 0x74,
	0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x2e, 0x52, 0x61,
	0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x52, 0x61, 0x6e,
	0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x4d, 0x79, 0x52, 0x61, 0x6e, 0x6b, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4d, 0x79, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x18, 0x0a,
	0x07, 0x4d, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07,
	0x4d, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x1a, 0x56, 0x0a, 0x0d, 0x52, 0x61, 0x6e, 0x6b, 0x4c,
	0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61,
	0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f,
	0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69,
	0x6d, 0x70, 0x6c, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22,
	0x0d, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x4d, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x9f,
	0x01, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x4d, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3f,
	0x0a, 0x08, 0x4d, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x23, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4d,
	0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x4d, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74,
	0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x4d, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x1a,
	0x4f, 0x0a, 0x0d, 0x4d, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79,
	0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b,
	0x65, 0x79, 0x12, 0x28, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x4d, 0x61, 0x69,
	0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
	0x22, 0xa0, 0x01, 0x0a, 0x08, 0x4d, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a,
	0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a,
	0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x69,
	0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a,
	0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d,
	0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65,
	0x6d, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72,
	0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74,
	0x65, 0x6d, 0x73, 0x22, 0x34, 0x0a, 0x0a, 0x4d, 0x61, 0x69, 0x6c, 0x4e, 0x6f, 0x74, 0x69, 0x66,
	0x79, 0x12, 0x26, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x4d, 0x61, 0x69, 0x6c, 0x49,
	0x6e, 0x66, 0x6f, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x1d, 0x0a, 0x0b, 0x52, 0x65, 0x71,
	0x52, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x57, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x52,
	0x65, 0x61, 0x64, 0x4d, 0x61, 0x69, 0x6c, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c,
	0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12,
	0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73,
	0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49,
	0x64, 0x22, 0x22, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x69, 0x6c, 0x52,
	0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x5c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x4d,
	0x61, 0x69, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69,
	0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64,
	0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
	0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x02, 0x49, 0x64, 0x22, 0x1f, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
	0x4d, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x02, 0x49, 0x64, 0x22, 0x59, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74,
	0x65, 0x4d, 0x61, 0x69, 0x6c, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52,
	0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a,
	0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12,
	0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22,
	0xa1, 0x04, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x16, 0x0a,
	0x06, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x43,
	0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x46,
	0x69, 0x72, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x46, 0x69, 0x72, 0x73,
	0x74, 0x12, 0x46, 0x0a, 0x0b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x68, 0x6f, 0x70,
	0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61,
	0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x2e, 0x53, 0x70, 0x65, 0x63,
	0x69, 0x61, 0x6c, 0x53, 0x68, 0x6f, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x53, 0x70,
	0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65,
	0x65, 0x53, 0x68, 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65,
	0x65, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x40, 0x0a, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68,
	0x6f, 0x70, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72,
	0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x2e, 0x43, 0x68,
	0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x43, 0x68,
	0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x31, 0x0a, 0x04, 0x47, 0x69, 0x66, 0x74, 0x18,
	0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c,
	0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x2e, 0x47, 0x69, 0x66, 0x74, 0x45,
	0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x47, 0x69, 0x66, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x41, 0x64,
	0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x41, 0x64, 0x1a, 0x58, 0x0a, 0x10, 0x53, 0x70,
	0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x68, 0x6f, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
	0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79,
	0x12, 0x2e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x18, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x53, 0x70,
	0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x68, 0x6f, 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x3a, 0x02, 0x38, 0x01, 0x1a, 0x54, 0x0a, 0x0e, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f,
	0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69,
	0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x52,
	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x69,
	0x66, 0x74, 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, 0x3c, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61,
	0x6c, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x43,
	0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e,
	0x74, 0x22, 0x58, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f,
	0x70, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43,
	0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e,
	0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x22, 0x0d, 0x0a, 0x0b, 0x52,
	0x65, 0x71, 0x46, 0x72, 0x65, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x22, 0x47, 0x0a, 0x0b, 0x52, 0x65,
	0x73, 0x46, 0x72, 0x65, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69,
	0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64,
	0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
	0x4d, 0x73, 0x67, 0x22, 0x21, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x42, 0x75, 0x79, 0x43, 0x68, 0x65,
	0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x42, 0x75, 0x79,
	0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69,
	0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64,
	0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
	0x4d, 0x73, 0x67, 0x22, 0xad, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x42, 0x75, 0x79, 0x43, 0x68,
	0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x32, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x4a, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65,
	0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x74,
	0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x42, 0x75, 0x79, 0x43, 0x68,
	0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x32, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44,
	0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73,
	0x44, 0x61, 0x74, 0x61, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61,
	0x74, 0x61, 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, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
	0x02, 0x38, 0x01, 0x22, 0x4c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x42, 0x75, 0x79, 0x43, 0x68, 0x65,
	0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x32, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c,
	0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12,
	0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73,
	0x67, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43,
	0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x22, 0x4f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x52,
	0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x12,
	0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e,
	0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44,
	0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x0c, 0x0a, 0x0a, 0x52, 0x65, 0x71,
	0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x22, 0xbf, 0x01, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x45,
	0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x47, 0x0a, 0x0b, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73,
	0x73, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x75,
	0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73,
	0x73, 0x2e, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74,
	0x72, 0x79, 0x52, 0x0b, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x1a,
	0x58, 0x0a, 0x10, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e,
	0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e,
	0x52, 0x65, 0x73, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x6a, 0x0a, 0x0e, 0x52, 0x65, 0x73,
	0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x43,
	0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43,
	0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x49,
	0x74, 0x65, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74,
	0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05,
	0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x12, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x45, 0x6e, 0x64, 0x6c,
	0x65, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x4c, 0x0a, 0x10, 0x52, 0x65, 0x73,
	0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a,
	0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75,
	0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52,
	0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x6c, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x50, 0x69,
	0x67, 0x67, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x44,
	0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x44, 0x69,
	0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x45,
	0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e,
	0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x50, 0x69, 0x67, 0x67,
	0x79, 0x42, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x4e, 0x0a, 0x12, 0x52,
	0x65, 0x73, 0x50, 0x69, 0x67, 0x67, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72,
	0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43,
	0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x64, 0x0a, 0x10, 0x52,
	0x65, 0x71, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x12,
	0x1a, 0x0a, 0x08, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x08, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50,
	0x6c, 0x61, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50,
	0x6c, 0x61, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e,
	0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65,
	0x6c, 0x22, 0x2c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72,
	0x64, 0x65, 0x72, 0x53, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x22,
	0x78, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x53, 0x68, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x4f, 0x72,
	0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x12, 0x1c, 0x0a,
	0x09, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x09, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x54,
	0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65,
	0x6e, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x4c, 0x0a, 0x10, 0x52, 0x65, 0x73,
	0x53, 0x68, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a,
	0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75,
	0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52,
	0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x0e, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x43, 0x68,
	0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x22, 0xba, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x43,
	0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x16,
	0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06,
	0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d,
	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65,
	0x12, 0x16, 0x0a, 0x06, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x06, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x52, 0x61, 0x6e, 0x6b,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x1e, 0x0a, 0x0a,
	0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x0a, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06,
	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x22, 0x14, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x43, 0x68, 0x61, 0x6d, 0x70,
	0x73, 0x68, 0x69, 0x70, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x4e, 0x0a, 0x12, 0x52, 0x65,
	0x73, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64,
	0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12,
	0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f,
	0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x18, 0x0a, 0x16, 0x52, 0x65,
	0x71, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65,
	0x77, 0x61, 0x72, 0x64, 0x22, 0x52, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6d, 0x70,
	0x73, 0x68, 0x69, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26,
	0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74,
	0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45,
	0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x12, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x43,
	0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x22, 0xe0, 0x01, 0x0a,
	0x10, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, 0x61, 0x6e,
	0x6b, 0x12, 0x44, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52,
	0x65, 0x73, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x2e,
	0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x52,
	0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x4d, 0x79, 0x52, 0x61, 0x6e,
	0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4d, 0x79, 0x52, 0x61, 0x6e, 0x6b, 0x12,
	0x18, 0x0a, 0x07, 0x4d, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02,
	0x52, 0x07, 0x4d, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x1a, 0x54, 0x0a, 0x0d, 0x52, 0x61, 0x6e,
	0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2d, 0x0a, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x75,
	0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72,
	0x52, 0x61, 0x6e, 0x6b, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22,
	0x15, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x50,
	0x72, 0x65, 0x52, 0x61, 0x6e, 0x6b, 0x22, 0xe6, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x43, 0x68,
	0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x50, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x47,
	0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x2b, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43,
	0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x50, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x6b, 0x2e,
	0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x52,
	0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x4d, 0x79, 0x52, 0x61, 0x6e,
	0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4d, 0x79, 0x52, 0x61, 0x6e, 0x6b, 0x12,
	0x18, 0x0a, 0x07, 0x4d, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02,
	0x52, 0x07, 0x4d, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x1a, 0x54, 0x0a, 0x0d, 0x52, 0x61, 0x6e,
	0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2d, 0x0a, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x75,
	0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72,
	0x52, 0x61, 0x6e, 0x6b, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22,
	0x8f, 0x03, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x43, 0x61, 0x72,
	0x64, 0x12, 0x35, 0x0a, 0x04, 0x43, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x21, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4e, 0x6f,
	0x74, 0x69, 0x66, 0x79, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74,
	0x72, 0x79, 0x52, 0x04, 0x43, 0x61, 0x72, 0x64, 0x12, 0x3b, 0x0a, 0x06, 0x4d, 0x61, 0x73, 0x74,
	0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72,
	0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x43, 0x61, 0x72,
	0x64, 0x2e, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x4d,
	0x61, 0x73, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x78, 0x53, 0x74, 0x61, 0x72, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x45, 0x78, 0x53, 0x74, 0x61, 0x72, 0x12, 0x41, 0x0a,
	0x08, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x25, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4e, 0x6f,
	0x74, 0x69, 0x66, 0x79, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f,
	0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b,
	0x1a, 0x37, 0x0a, 0x09, 0x43, 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, 0x05, 0x52, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x4d, 0x61, 0x73,
	0x74, 0x65, 0x72, 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, 0x1a, 0x3b, 0x0a, 0x0d, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b,
	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, 0x25, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x53, 0x65, 0x74, 0x46, 0x61, 0x63, 0x65, 0x62,
	0x6f, 0x6f, 0x6b, 0x55, 0x72, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x72, 0x6c, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x72, 0x6c, 0x22, 0x4d, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x53,
	0x65, 0x74, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x72, 0x6c, 0x12, 0x26, 0x0a,
	0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75,
	0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52,
	0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x2b, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x49, 0x6e,
	0x76, 0x69, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14,
	0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64,
	0x77, 0x55, 0x69, 0x6e, 0x22, 0x4b, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x49, 0x6e, 0x76, 0x69, 0x74,
	0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x49,
	0x64, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x49, 0x64,
	0x4c, 0x69, 0x73, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65,
	0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65,
	0x78, 0x22, 0x2e, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x53, 0x65, 0x6c, 0x66, 0x49, 0x6e, 0x76, 0x69,
	0x74, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x49, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x49,
	0x64, 0x22, 0x30, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x53, 0x65, 0x6c, 0x66, 0x49, 0x6e, 0x76, 0x69,
	0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43,
	0x6f, 0x64, 0x65, 0x22, 0x50, 0x0a, 0x14, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x49, 0x6e, 0x76,
	0x69, 0x74, 0x65, 0x64, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x52,
	0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x49,
	0x64, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x49, 0x64,
	0x4c, 0x69, 0x73, 0x74, 0x73, 0x22, 0x30, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x49,
	0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x47,
	0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47,
	0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x34, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x47, 0x65,
	0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1e, 0x0a,
	0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x28, 0x0a,
	0x16, 0x52, 0x65, 0x71, 0x41, 0x75, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74,
	0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x22, 0x38, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x41, 0x75,
	0x74, 0x6f, 0x41, 0x64, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e,
	0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64,
	0x65, 0x22, 0x29, 0x0a, 0x17, 0x52, 0x65, 0x71, 0x41, 0x75, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x49,
	0x6e, 0x76, 0x69, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x32, 0x12, 0x0e, 0x0a, 0x02,
	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x39, 0x0a, 0x17,
	0x52, 0x65, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65,
	0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c,
	0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73,
	0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x0b, 0x0a, 0x09, 0x52, 0x65, 0x71, 0x4d, 0x69,
	0x6e, 0x69, 0x6e, 0x67, 0x22, 0x8f, 0x02, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x69,
	0x6e, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02,
	0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e,
	0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64,
	0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
	0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04,
	0x50, 0x61, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x47, 0x65, 0x6d, 0x18, 0x06, 0x20, 0x03, 0x28,
	0x05, 0x52, 0x03, 0x47, 0x65, 0x6d, 0x12, 0x2e, 0x0a, 0x03, 0x4d, 0x61, 0x70, 0x18, 0x07, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52,
	0x65, 0x73, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72,
	0x79, 0x52, 0x03, 0x4d, 0x61, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67,
	0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x1a, 0x36,
	0x0a, 0x08, 0x4d, 0x61, 0x70, 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, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8d, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x4d, 0x69,
	0x6e, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x6b, 0x65, 0x12, 0x32, 0x0a, 0x03, 0x4d, 0x61, 0x70, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c,
	0x2e, 0x52, 0x65, 0x71, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x6b, 0x65, 0x2e, 0x4d,
	0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x4d, 0x61, 0x70, 0x12, 0x10, 0x0a, 0x03,
	0x47, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x47, 0x65, 0x6d, 0x1a, 0x36,
	0x0a, 0x08, 0x4d, 0x61, 0x70, 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, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x49, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x4d, 0x69, 0x6e,
	0x69, 0x6e, 0x67, 0x54, 0x61, 0x6b, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c,
	0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12,
	0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73,
	0x67, 0x22, 0x11, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65,
	0x77, 0x61, 0x72, 0x64, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x69, 0x6e,
	0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c,
	0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12,
	0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73,
	0x67, 0x22, 0x73, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x41, 0x63, 0x74, 0x52, 0x65, 0x64, 0x12, 0x2e,
	0x0a, 0x03, 0x52, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x75,
	0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x41, 0x63, 0x74, 0x52, 0x65, 0x64,
	0x2e, 0x52, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x52, 0x65, 0x64, 0x1a, 0x36,
	0x0a, 0x08, 0x52, 0x65, 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, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x30, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79,
	0x41, 0x63, 0x74, 0x52, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x52, 0x65, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x03, 0x52, 0x65, 0x64, 0x22, 0x3c, 0x0a, 0x0e, 0x41, 0x63, 0x74, 0x69,
	0x76, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x2a, 0x0a, 0x04, 0x49, 0x6e,
	0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72,
	0x69, 0x61, 0x6c, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f,
	0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x73, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x49, 0x74, 0x65,
	0x6d, 0x12, 0x2f, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x1b, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x49, 0x74,
	0x65, 0x6d, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x49, 0x74,
	0x65, 0x6d, 0x1a, 0x37, 0x0a, 0x09, 0x49, 0x74, 0x65, 0x6d, 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, 0x79, 0x0a, 0x0a, 0x49,
	0x74, 0x65, 0x6d, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x32, 0x0a, 0x04, 0x49, 0x74, 0x65,
	0x6d, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69,
	0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x49, 0x74,
	0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x1a, 0x37, 0x0a,
	0x09, 0x49, 0x74, 0x65, 0x6d, 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, 0x0f, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x47, 0x75, 0x65,
	0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0xd9, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x47,
	0x75, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54,
	0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x54,
	0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x73, 0x73, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x50, 0x61, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x43,
	0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x6c, 0x6f,
	0x72, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x03,
	0x50, 0x6f, 0x73, 0x12, 0x2e, 0x0a, 0x08, 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18,
	0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c,
	0x2e, 0x6f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x4f, 0x70, 0x70, 0x6f, 0x6e,
	0x65, 0x6e, 0x74, 0x22, 0x66, 0x0a, 0x08, 0x6f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12,
	0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e,
	0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61,
	0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12,
	0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x22, 0x83, 0x01, 0x0a, 0x11,
	0x52, 0x65, 0x71, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x61, 0x6b,
	0x65, 0x12, 0x36, 0x0a, 0x03, 0x4d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24,
	0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x47, 0x75, 0x65,
	0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x61, 0x6b, 0x65, 0x2e, 0x4d, 0x61, 0x70, 0x45,
	0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x4d, 0x61, 0x70, 0x1a, 0x36, 0x0a, 0x08, 0x4d, 0x61, 0x70,
	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, 0x4d, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c,
	0x6f, 0x72, 0x54, 0x61, 0x6b, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e,
	0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10,
	0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67,
	0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f,
	0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x4f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x47, 0x75,
	0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26,
	0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74,
	0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45,
	0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x09, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x52,
	0x61, 0x63, 0x65, 0x22, 0x93, 0x02, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x52, 0x61, 0x63, 0x65, 0x12,
	0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12,
	0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69,
	0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d,
	0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x08, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a,
	0x04, 0x50, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x50, 0x61, 0x73,
	0x73, 0x12, 0x24, 0x0a, 0x0d, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69,
	0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74,
	0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x47, 0x61, 0x6d, 0x65, 0x45,
	0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x47, 0x61,
	0x6d, 0x65, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f,
	0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x72, 0x6f,
	0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x32, 0x0a, 0x08, 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e,
	0x74, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69,
	0x61, 0x6c, 0x2e, 0x72, 0x61, 0x63, 0x65, 0x6f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x52,
	0x08, 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x22, 0x50, 0x0a, 0x0c, 0x72, 0x61, 0x63,
	0x65, 0x6f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x6d, 0x61,
	0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12,
	0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x22, 0x0e, 0x0a, 0x0c, 0x52,
	0x65, 0x71, 0x52, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x48, 0x0a, 0x0c, 0x52,
	0x65, 0x73, 0x52, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x43,
	0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f,
	0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43,
	0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x0f, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x52, 0x61, 0x63, 0x65,
	0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x49, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x52, 0x61, 0x63,
	0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c,
	0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12,
	0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73,
	0x67, 0x22, 0x0d, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d,
	0x22, 0xd4, 0x08, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d,
	0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d,
	0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69,
	0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65,
	0x6d, 0x73, 0x12, 0x32, 0x0a, 0x08, 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x03,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e,
	0x52, 0x6f, 0x6f, 0x6d, 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x4f, 0x70,
	0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x06, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64,
	0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61,
	0x6c, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x06, 0x46, 0x72,
	0x69, 0x65, 0x6e, 0x64, 0x12, 0x3f, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d,
	0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61,
	0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x2e, 0x50, 0x6c,
	0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x50, 0x6c, 0x61,
	0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,
	0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12,
	0x33, 0x0a, 0x04, 0x4d, 0x6f, 0x6f, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e,
	0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79,
	0x72, 0x6f, 0x6f, 0x6d, 0x2e, 0x4d, 0x6f, 0x6f, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04,
	0x4d, 0x6f, 0x6f, 0x64, 0x12, 0x2e, 0x0a, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d,
	0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61,
	0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x4c, 0x6f, 0x73, 0x65,
	0x49, 0x74, 0x65, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d,
	0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69,
	0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x6c, 0x6c, 0x4d, 0x6f, 0x6f, 0x64, 0x18, 0x0b, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x07, 0x41, 0x6c, 0x6c, 0x4d, 0x6f, 0x6f, 0x64, 0x12, 0x12, 0x0a, 0x04,
	0x43, 0x68, 0x69, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x68, 0x69, 0x70,
	0x12, 0x20, 0x0a, 0x0b, 0x57, 0x6f, 0x72, 0x6b, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x18,
	0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x57, 0x6f, 0x72, 0x6b, 0x4f, 0x75, 0x74, 0x6c, 0x69,
	0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x18, 0x0e, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x12, 0x45, 0x0a, 0x0a,
	0x50, 0x68, 0x79, 0x73, 0x69, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x25, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50,
	0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x2e, 0x50, 0x68, 0x79, 0x73, 0x69, 0x6f, 0x6c, 0x6f,
	0x67, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x50, 0x68, 0x79, 0x73, 0x69, 0x6f, 0x6c,
	0x6f, 0x67, 0x79, 0x12, 0x36, 0x0a, 0x05, 0x44, 0x72, 0x65, 0x73, 0x73, 0x18, 0x10, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65,
	0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x2e, 0x44, 0x72, 0x65, 0x73, 0x73, 0x45,
	0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x44, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3f, 0x0a, 0x08, 0x44,
	0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e,
	0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79,
	0x72, 0x6f, 0x6f, 0x6d, 0x2e, 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x74,
	0x72, 0x79, 0x52, 0x08, 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06,
	0x50, 0x65, 0x74, 0x41, 0x69, 0x72, 0x18, 0x12, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x50, 0x65,
	0x74, 0x41, 0x69, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x65, 0x74, 0x41, 0x69, 0x72, 0x53, 0x65,
	0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x50, 0x65, 0x74, 0x41, 0x69, 0x72, 0x53,
	0x65, 0x74, 0x1a, 0x3b, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 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, 0x1a,
	0x37, 0x0a, 0x09, 0x4d, 0x6f, 0x6f, 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, 0x05, 0x52, 0x05, 0x76,
	0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x68, 0x79, 0x73,
	0x69, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 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, 0x1a, 0x51, 0x0a, 0x0a, 0x44, 0x72, 0x65, 0x73, 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, 0x2d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61,
	0x6c, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x44, 0x72, 0x65, 0x73, 0x73, 0x52,
	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x44, 0x72,
	0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 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, 0x23, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x79, 0x72,
	0x6f, 0x6f, 0x6d, 0x44, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74,
	0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x9b, 0x01, 0x0a,
	0x13, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x44, 0x72, 0x65, 0x73,
	0x73, 0x53, 0x65, 0x74, 0x12, 0x47, 0x0a, 0x08, 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74,
	0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61,
	0x6c, 0x2e, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x44, 0x72, 0x65,
	0x73, 0x73, 0x53, 0x65, 0x74, 0x2e, 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 0x45, 0x6e,
	0x74, 0x72, 0x79, 0x52, 0x08, 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 0x1a, 0x3b, 0x0a,
	0x0d, 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 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, 0x4f, 0x0a, 0x13, 0x52, 0x65,
	0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65,
	0x74, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43,
	0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x34, 0x0a, 0x14, 0x52,
	0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x50, 0x65, 0x74, 0x41, 0x69, 0x72,
	0x53, 0x65, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x65, 0x74, 0x41, 0x69, 0x72, 0x53, 0x65, 0x74,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x50, 0x65, 0x74, 0x41, 0x69, 0x72, 0x53, 0x65,
	0x74, 0x22, 0x50, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d,
	0x50, 0x65, 0x74, 0x41, 0x69, 0x72, 0x53, 0x65, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69,
	0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64,
	0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
	0x4d, 0x73, 0x67, 0x22, 0x18, 0x0a, 0x16, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f,
	0x6f, 0x6d, 0x57, 0x72, 0x6f, 0x6b, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x52, 0x0a,
	0x16, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x57, 0x72, 0x6f, 0x6b,
	0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c,
	0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12,
	0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73,
	0x67, 0x22, 0x36, 0x0a, 0x12, 0x4e, 0x6f, 0x66, 0x69, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f,
	0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x57, 0x6f, 0x72, 0x6b, 0x4f,
	0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x57, 0x6f,
	0x72, 0x6b, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x52, 0x0a, 0x12, 0x4e, 0x6f, 0x74,
	0x69, 0x66, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x12,
	0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a,
	0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x58, 0x0a,
	0x12, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x4c,
	0x6f, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c,
	0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x49,
	0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x68, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x04, 0x43, 0x68, 0x69, 0x70, 0x22, 0xb0, 0x02, 0x0a, 0x12, 0x4e, 0x6f, 0x74, 0x69,
	0x66, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f, 0x6f, 0x64, 0x12, 0x18,
	0x0a, 0x07, 0x41, 0x6c, 0x6c, 0x4d, 0x6f, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x07, 0x41, 0x6c, 0x6c, 0x4d, 0x6f, 0x6f, 0x64, 0x12, 0x3a, 0x0a, 0x04, 0x4d, 0x6f, 0x6f, 0x64,
	0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61,
	0x6c, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d,
	0x4d, 0x6f, 0x6f, 0x64, 0x2e, 0x4d, 0x6f, 0x6f, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04,
	0x4d, 0x6f, 0x6f, 0x64, 0x12, 0x4c, 0x0a, 0x0a, 0x50, 0x68, 0x79, 0x73, 0x69, 0x6f, 0x6c, 0x6f,
	0x67, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72,
	0x69, 0x61, 0x6c, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f,
	0x6f, 0x6d, 0x4d, 0x6f, 0x6f, 0x64, 0x2e, 0x50, 0x68, 0x79, 0x73, 0x69, 0x6f, 0x6c, 0x6f, 0x67,
	0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x50, 0x68, 0x79, 0x73, 0x69, 0x6f, 0x6c, 0x6f,
	0x67, 0x79, 0x1a, 0x37, 0x0a, 0x09, 0x4d, 0x6f, 0x6f, 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, 0x05,
	0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x50,
	0x68, 0x79, 0x73, 0x69, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 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, 0x74, 0x0a, 0x0a, 0x46, 0x72,
	0x69, 0x65, 0x6e, 0x64, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 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, 0x46, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x61,
	0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69,
	0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x69, 0x6d, 0x65, 0x73,
	0x22, 0x7c, 0x0a, 0x0c, 0x52, 0x6f, 0x6f, 0x6d, 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74,
	0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55,
	0x69, 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, 0x46, 0x61, 0x63, 0x65, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76,
	0x61, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74,
	0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x23,
	0x0a, 0x0f, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66,
	0x6f, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03,
	0x55, 0x69, 0x64, 0x22, 0xcf, 0x05, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72,
	0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a,
	0x04, 0x46, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x61, 0x63,
	0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x43, 0x0a, 0x08, 0x50, 0x6c, 0x61,
	0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x74, 0x75,
	0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f,
	0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x45,
	0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x16,
	0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06,
	0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18,
	0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c,
	0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f,
	0x2e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x49, 0x74, 0x65,
	0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65,
	0x66, 0x65, 0x6e, 0x73, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x66,
	0x65, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x04, 0x66, 0x6c, 0x69, 0x70, 0x18, 0x0a, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x23, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65,
	0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x6c,
	0x69, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x66, 0x6c, 0x69, 0x70, 0x12, 0x12, 0x0a,
	0x04, 0x43, 0x68, 0x69, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x68, 0x69,
	0x70, 0x12, 0x18, 0x0a, 0x07, 0x50, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x07, 0x50, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x05, 0x45,
	0x6d, 0x6f, 0x6a, 0x69, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x74, 0x75, 0x74,
	0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f,
	0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x45, 0x6e, 0x74, 0x72, 0x79,
	0x52, 0x05, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x1a, 0x3b, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x79, 0x72,
	0x6f, 0x6f, 0x6d, 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, 0x1a, 0x4c, 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, 0x28, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49,
	0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
	0x38, 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x46, 0x6c, 0x69, 0x70, 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, 0x1a, 0x38, 0x0a, 0x0a, 0x45,
	0x6d, 0x6f, 0x6a, 0x69, 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, 0x21, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79,
	0x72, 0x6f, 0x6f, 0x6d, 0x46, 0x6c, 0x69, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x73, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50,
	0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x46, 0x6c, 0x69, 0x70, 0x12, 0x26, 0x0a, 0x04, 0x43,
	0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f,
	0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43,
	0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0x17, 0x0a,
	0x15, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x46, 0x6c, 0x69, 0x70,
	0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x51, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61,
	0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x46, 0x6c, 0x69, 0x70, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12,
	0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e,
	0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44,
	0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x25, 0x0a, 0x0f, 0x52, 0x65, 0x71,
	0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04,
	0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65,
	0x22, 0xe9, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d,
	0x47, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45,
	0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03,
	0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x12,
	0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79,
	0x70, 0x65, 0x12, 0x3a, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x24, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73,
	0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x2e, 0x49, 0x74, 0x65,
	0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x4c,
	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, 0x28,
	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e,
	0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66,
	0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x39, 0x0a, 0x13,
	0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x74, 0x65, 0x72,
	0x61, 0x63, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x4f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x50, 0x6c,
	0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x12, 0x26,
	0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74,
	0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45,
	0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x99, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x71,
	0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x12,
	0x46, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x2a, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71,
	0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x2e,
	0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x50,
	0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x1a, 0x3b, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x79, 0x72,
	0x6f, 0x6f, 0x6d, 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, 0x4e, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72,
	0x6f, 0x6f, 0x6d, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f,
	0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72,
	0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f,
	0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x03, 0x4d, 0x73, 0x67, 0x22, 0x29, 0x0a, 0x17, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72,
	0x6f, 0x6f, 0x6d, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12,
	0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22,
	0x53, 0x0a, 0x17, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x53, 0x65,
	0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f,
	0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72,
	0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f,
	0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x03, 0x4d, 0x73, 0x67, 0x22, 0x11, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72,
	0x6f, 0x6f, 0x6d, 0x4c, 0x6f, 0x73, 0x65, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c,
	0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x4c, 0x6f, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f,
	0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72,
	0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f,
	0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x03, 0x4d, 0x73, 0x67, 0x22, 0x11, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72,
	0x6f, 0x6f, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c,
	0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f,
	0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72,
	0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f,
	0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x03, 0x4d, 0x73, 0x67, 0x22, 0x11, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72,
	0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x74, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c,
	0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f,
	0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72,
	0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f,
	0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x03, 0x4d, 0x73, 0x67, 0x22, 0x11, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72,
	0x6f, 0x6f, 0x6d, 0x44, 0x72, 0x61, 0x77, 0x22, 0x5b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c,
	0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x44, 0x72, 0x61, 0x77, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f,
	0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72,
	0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f,
	0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x02, 0x49, 0x64, 0x22, 0x23, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72,
	0x6f, 0x6f, 0x6d, 0x43, 0x68, 0x69, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73,
	0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x43, 0x68, 0x69, 0x70, 0x12, 0x26, 0x0a, 0x04,
	0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74,
	0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04,
	0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x24, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61,
	0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x75, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02,
	0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x4e, 0x0a, 0x12,
	0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x75, 0x79, 0x49, 0x74,
	0x65, 0x6d, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f,
	0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73,
	0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x33, 0x0a, 0x0f,
	0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x53, 0x68, 0x6f, 0x70, 0x12,
	0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12,
	0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75,
	0x6d, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d,
	0x53, 0x68, 0x6f, 0x70, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45,
	0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03,
	0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x13,
	0x0a, 0x11, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x72, 0x65, 0x61, 0x73,
	0x75, 0x72, 0x65, 0x22, 0xab, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e,
	0x64, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x74, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x04, 0x53, 0x74, 0x61, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x68, 0x69, 0x66, 0x74, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x68, 0x69, 0x66, 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x4c,
	0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f,
	0x72, 0x69, 0x61, 0x6c, 0x2e, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x49, 0x6e, 0x66,
	0x6f, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x69, 0x73, 0x74, 0x32,
	0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x69, 0x73, 0x74, 0x32, 0x12, 0x12, 0x0a,
	0x04, 0x55, 0x69, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x03, 0x52, 0x04, 0x55, 0x69, 0x64,
	0x73, 0x22, 0xa6, 0x01, 0x0a, 0x0c, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x49, 0x6e,
	0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x03, 0x50, 0x6f, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x61, 0x63, 0x65,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06,
	0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x76,
	0x61, 0x74, 0x61, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a,
	0x0a, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x5a, 0x0a, 0x16, 0x52, 0x65,
	0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x53,
	0x74, 0x61, 0x72, 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x54, 0x72,
	0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74,
	0x12, 0x14, 0x0a, 0x05, 0x4c, 0x69, 0x73, 0x74, 0x32, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52,
	0x05, 0x4c, 0x69, 0x73, 0x74, 0x32, 0x22, 0x52, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69,
	0x65, 0x6e, 0x64, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74,
	0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12,
	0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f,
	0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x16, 0x0a, 0x14, 0x52, 0x65,
	0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x45,
	0x6e, 0x64, 0x22, 0x50, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54,
	0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f,
	0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72,
	0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f,
	0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x03, 0x4d, 0x73, 0x67, 0x22, 0x29, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e,
	0x64, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x70, 0x12, 0x10, 0x0a,
	0x03, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x22,
	0x51, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x72, 0x65, 0x61,
	0x73, 0x75, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x70, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61,
	0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65,
	0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d,
	0x73, 0x67, 0x22, 0x2b, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54,
	0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x53,
	0x74, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x74, 0x61, 0x72, 0x22,
	0x37, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x4b, 0x61, 0x66, 0x6b, 0x61, 0x4c, 0x6f, 0x67, 0x12, 0x14,
	0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x45,
	0x76, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x10, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x43,
	0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x4d, 0x0a, 0x0e, 0x52, 0x65,
	0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02,
	0x49, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x05,
	0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x75,
	0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x74,
	0x65, 0x6d, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x47, 0x0a, 0x0b, 0x43, 0x6f, 0x6c,
	0x6c, 0x65, 0x63, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d,
	0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69,
	0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65,
	0x6d, 0x73, 0x22, 0x1c, 0x0a, 0x0a, 0x52, 0x65, 0x71, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,
	0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64,
	0x22, 0x46, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x26,
	0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74,
	0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45,
	0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x32, 0x0a, 0x08, 0x41, 0x64, 0x6d, 0x69,
	0x6e, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x75, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x04, 0x46, 0x75, 0x6e, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x32, 0x0a, 0x08,
	0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x75, 0x6e, 0x63,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x46, 0x75, 0x6e, 0x63, 0x12, 0x12, 0x0a, 0x04,
	0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f,
	0x22, 0x20, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f,
	0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55,
	0x69, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53,
	0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x61, 0x69, 0x6c, 0x22, 0x0f, 0x0a, 0x0d, 0x52, 0x65, 0x71,
	0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x0b, 0x0a, 0x09, 0x52, 0x65,
	0x71, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x38, 0x0a, 0x0a, 0x52, 0x65, 0x71, 0x41, 0x64,
	0x6d, 0x69, 0x6e, 0x47, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x61,
	0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e,
	0x64, 0x2a, 0xe8, 0x08, 0x0a, 0x0e, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4f, 0x50, 0x5f, 0x4c,
	0x41, 0x42, 0x45, 0x4c, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d,
	0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x69, 0x67, 0x67, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x10,
	0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x10, 0x02, 0x12, 0x0b, 0x0a,
	0x07, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x4c, 0x65,
	0x76, 0x55, 0x70, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x48,
	0x61, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x68, 0x65, 0x73, 0x73, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e,
	0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x06,
	0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10,
	0x07, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x73,
	0x74, 0x10, 0x08, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x41,
	0x64, 0x64, 0x10, 0x09, 0x12, 0x13, 0x0a, 0x0f, 0x42, 0x75, 0x79, 0x43, 0x68, 0x65, 0x73, 0x73,
	0x42, 0x61, 0x67, 0x47, 0x72, 0x69, 0x64, 0x10, 0x0a, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x68, 0x65,
	0x73, 0x73, 0x45, 0x78, 0x10, 0x0b, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f,
	0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x0c, 0x12, 0x10, 0x0a,
	0x0c, 0x45, 0x78, 0x53, 0x74, 0x61, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x0d, 0x12,
	0x14, 0x0a, 0x10, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x77,
	0x61, 0x72, 0x64, 0x10, 0x0e, 0x12, 0x0f, 0x0a, 0x0b, 0x47, 0x75, 0x69, 0x64, 0x65, 0x52, 0x65,
	0x77, 0x61, 0x72, 0x64, 0x10, 0x0f, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54,
	0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x10, 0x12, 0x13, 0x0a, 0x0f, 0x44,
	0x61, 0x69, 0x6c, 0x79, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x11,
	0x12, 0x0d, 0x0a, 0x09, 0x42, 0x75, 0x79, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x10, 0x12, 0x12,
	0x19, 0x0a, 0x15, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x77,
	0x61, 0x72, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x10, 0x13, 0x12, 0x14, 0x0a, 0x10, 0x4d, 0x6f,
	0x6e, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x14,
	0x12, 0x15, 0x0a, 0x11, 0x46, 0x61, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x52,
	0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x15, 0x12, 0x14, 0x0a, 0x10, 0x4c, 0x69, 0x6d, 0x69, 0x74,
	0x53, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x16, 0x12, 0x0e, 0x0a,
	0x0a, 0x4d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x17, 0x12, 0x0c, 0x0a,
	0x08, 0x46, 0x72, 0x65, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x10, 0x18, 0x12, 0x0d, 0x0a, 0x09, 0x43,
	0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x10, 0x19, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x65,
	0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x10, 0x1a,
	0x12, 0x11, 0x0a, 0x0d, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72,
	0x64, 0x10, 0x1b, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x69, 0x67, 0x67, 0x79, 0x42, 0x61, 0x6e, 0x6b,
	0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x1c, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6d,
	0x70, 0x73, 0x68, 0x69, 0x70, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x1d, 0x12, 0x14, 0x0a,
	0x10, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72,
	0x64, 0x10, 0x1e, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70,
	0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x1f, 0x12, 0x0a, 0x0a, 0x06,
	0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, 0x20, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x65, 0x6c, 0x65,
	0x63, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0x21, 0x12, 0x0e,
	0x0a, 0x0a, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x6b, 0x65, 0x10, 0x22, 0x12, 0x10,
	0x0a, 0x0c, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x23,
	0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x10, 0x24,
	0x12, 0x14, 0x0a, 0x10, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x65,
	0x77, 0x61, 0x72, 0x64, 0x10, 0x25, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x61, 0x63, 0x65, 0x52, 0x65,
	0x77, 0x61, 0x72, 0x64, 0x10, 0x26, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f,
	0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x10, 0x27, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x79,
	0x72, 0x6f, 0x6f, 0x6d, 0x44, 0x72, 0x61, 0x77, 0x10, 0x28, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x6c,
	0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x43, 0x68, 0x69, 0x70, 0x10, 0x29, 0x12, 0x10, 0x0a, 0x0c,
	0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x46, 0x6c, 0x69, 0x70, 0x10, 0x2a, 0x12, 0x16,
	0x0a, 0x12, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x74, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65,
	0x46, 0x69, 0x6c, 0x70, 0x10, 0x2b, 0x12, 0x15, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64,
	0x74, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x45, 0x6e, 0x64, 0x10, 0x2c, 0x12, 0x06, 0x0a,
	0x02, 0x47, 0x4d, 0x10, 0x2d, 0x12, 0x12, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x74,
	0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x10, 0x2e, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x61, 0x72,
	0x64, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10,
	0x2f, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43,
	0x68, 0x65, 0x73, 0x74, 0x52, 0x61, 0x69, 0x6e, 0x10, 0x30, 0x12, 0x11, 0x0a, 0x0d, 0x47, 0x65,
	0x74, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x42, 0x79, 0x41, 0x44, 0x10, 0x31, 0x12, 0x0f, 0x0a,
	0x0b, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x65, 0x73, 0x74, 0x10, 0x32, 0x12, 0x13,
	0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x75, 0x79, 0x49, 0x74, 0x65,
	0x6d, 0x10, 0x33, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x61, 0x73, 0x6f,
	0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x34, 0x12, 0x16,
	0x0a, 0x12, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x77, 0x61,
	0x72, 0x64, 0x48, 0x42, 0x10, 0x35, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f,
	0x6f, 0x6d, 0x53, 0x68, 0x6f, 0x70, 0x10, 0x36, 0x12, 0x15, 0x0a, 0x11, 0x48, 0x61, 0x6e, 0x64,
	0x62, 0x6f, 0x6f, 0x6b, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x37, 0x12,
	0x0c, 0x0a, 0x08, 0x54, 0x4c, 0x55, 0x70, 0x76, 0x6f, 0x74, 0x65, 0x10, 0x38, 0x12, 0x0b, 0x0a,
	0x07, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x10, 0x39, 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x63,
	0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x47, 0x69, 0x66, 0x74, 0x10, 0x3a, 0x2a, 0x42, 0x0a, 0x0b,
	0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x12, 0x07, 0x0a, 0x03, 0x41,
	0x44, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x53, 0x45, 0x10,
	0x01, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x55, 0x59, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x45,
	0x4c, 0x4c, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x04,
	0x2a, 0x21, 0x0a, 0x08, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x12, 0x08, 0x0a, 0x04,
	0x46, 0x41, 0x49, 0x4c, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53,
	0x53, 0x10, 0x01, 0x2a, 0x2e, 0x0a, 0x09, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45,
	0x12, 0x0a, 0x0a, 0x06, 0x45, 0x4e, 0x45, 0x52, 0x47, 0x59, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04,
	0x53, 0x54, 0x41, 0x52, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x49, 0x41, 0x4d, 0x4f, 0x4e,
	0x44, 0x10, 0x02, 0x42, 0x08, 0x5a, 0x06, 0x2e, 0x2e, 0x2f, 0x6d, 0x73, 0x67, 0x62, 0x06, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_proto_Gameapi_proto_rawDescOnce sync.Once
	file_proto_Gameapi_proto_rawDescData = file_proto_Gameapi_proto_rawDesc
)

func file_proto_Gameapi_proto_rawDescGZIP() []byte {
	file_proto_Gameapi_proto_rawDescOnce.Do(func() {
		file_proto_Gameapi_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_Gameapi_proto_rawDescData)
	})
	return file_proto_Gameapi_proto_rawDescData
}

var file_proto_Gameapi_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
var file_proto_Gameapi_proto_msgTypes = make([]protoimpl.MessageInfo, 424)
var file_proto_Gameapi_proto_goTypes = []any{
	(ITEM_POP_LABEL)(0),               // 0: tutorial.ITEM_POP_LABEL
	(HANDLE_TYPE)(0),                  // 1: tutorial.HANDLE_TYPE
	(RES_CODE)(0),                     // 2: tutorial.RES_CODE
	(ITEM_TYPE)(0),                    // 3: tutorial.ITEM_TYPE
	(*ClientReq)(nil),                 // 4: tutorial.ClientReq
	(*ReqOfflineReconnect)(nil),       // 5: tutorial.ReqOfflineReconnect
	(*ResOfflineReconnect)(nil),       // 6: tutorial.ResOfflineReconnect
	(*ReqBindFacebookAccount)(nil),    // 7: tutorial.ReqBindFacebookAccount
	(*ResBindFacebookAccount)(nil),    // 8: tutorial.ResBindFacebookAccount
	(*ReqOnlyBindFacebook)(nil),       // 9: tutorial.ReqOnlyBindFacebook
	(*ResOnlyBindFacebook)(nil),       // 10: tutorial.ResOnlyBindFacebook
	(*ReqUnBindFacebook)(nil),         // 11: tutorial.ReqUnBindFacebook
	(*ResUnBindFacebook)(nil),         // 12: tutorial.ResUnBindFacebook
	(*ReqSynGameData)(nil),            // 13: tutorial.ReqSynGameData
	(*ResSynGameData)(nil),            // 14: tutorial.ResSynGameData
	(*ForceKickOut)(nil),              // 15: tutorial.ForceKickOut
	(*ResServerVersion)(nil),          // 16: tutorial.ResServerVersion
	(*ResChessColorData)(nil),         // 17: tutorial.ResChessColorData
	(*ClientRes)(nil),                 // 18: tutorial.ClientRes
	(*ReqRegisterAccount)(nil),        // 19: tutorial.ReqRegisterAccount
	(*ResRegisterAccount)(nil),        // 20: tutorial.ResRegisterAccount
	(*ReqLogin)(nil),                  // 21: tutorial.ReqLogin
	(*ResLogin)(nil),                  // 22: tutorial.ResLogin
	(*ReqPlayerBaseInfo)(nil),         // 23: tutorial.ReqPlayerBaseInfo
	(*ResPlayerBaseInfo)(nil),         // 24: tutorial.ResPlayerBaseInfo
	(*ReqPlayerAsset)(nil),            // 25: tutorial.ReqPlayerAsset
	(*ResPlayerAsset)(nil),            // 26: tutorial.ResPlayerAsset
	(*UpdateBaseItemInfo)(nil),        // 27: tutorial.UpdateBaseItemInfo
	(*NotifyRenewBuyEnergyCnt)(nil),   // 28: tutorial.NotifyRenewBuyEnergyCnt
	(*ReqRemoveAd)(nil),               // 29: tutorial.ReqRemoveAd
	(*ResRemoveAd)(nil),               // 30: tutorial.ResRemoveAd
	(*NotifyAddEnergy)(nil),           // 31: tutorial.NotifyAddEnergy
	(*ReqServerTime)(nil),             // 32: tutorial.ReqServerTime
	(*ResServerTime)(nil),             // 33: tutorial.ResServerTime
	(*ReqPlayerChessData)(nil),        // 34: tutorial.ReqPlayerChessData
	(*ResPlayerChessData)(nil),        // 35: tutorial.ResPlayerChessData
	(*ResPlayerChessInfo)(nil),        // 36: tutorial.ResPlayerChessInfo
	(*ChessHandle)(nil),               // 37: tutorial.ChessHandle
	(*UpdatePlayerChessData)(nil),     // 38: tutorial.UpdatePlayerChessData
	(*ResUpdatePlayerChessData)(nil),  // 39: tutorial.ResUpdatePlayerChessData
	(*ReqSeparateChess)(nil),          // 40: tutorial.ReqSeparateChess
	(*ResSeparateChess)(nil),          // 41: tutorial.ResSeparateChess
	(*ReqUpgradeChess)(nil),           // 42: tutorial.ReqUpgradeChess
	(*ResUpgradeChess)(nil),           // 43: tutorial.ResUpgradeChess
	(*ReqGetChessFromBuff)(nil),       // 44: tutorial.ReqGetChessFromBuff
	(*ResGetChessFromBuff)(nil),       // 45: tutorial.ResGetChessFromBuff
	(*ReqChessEx)(nil),                // 46: tutorial.ReqChessEx
	(*ResChessEx)(nil),                // 47: tutorial.ResChessEx
	(*ReqSourceChest)(nil),            // 48: tutorial.ReqSourceChest
	(*ResSourceChest)(nil),            // 49: tutorial.ResSourceChest
	(*ReqPlayroomOutline)(nil),        // 50: tutorial.ReqPlayroomOutline
	(*ResPlayroomOutline)(nil),        // 51: tutorial.ResPlayroomOutline
	(*ChessBag)(nil),                  // 52: tutorial.ChessBag
	(*ChessBagGrid)(nil),              // 53: tutorial.ChessBagGrid
	(*ReqPutChessInBag)(nil),          // 54: tutorial.ReqPutChessInBag
	(*ResPutChessInBag)(nil),          // 55: tutorial.ResPutChessInBag
	(*ReqTakeChessOutBag)(nil),        // 56: tutorial.ReqTakeChessOutBag
	(*ResTakeChessOutBag)(nil),        // 57: tutorial.ResTakeChessOutBag
	(*ReqBuyChessBagGrid)(nil),        // 58: tutorial.ReqBuyChessBagGrid
	(*ResBuyChessBagGrid)(nil),        // 59: tutorial.ResBuyChessBagGrid
	(*ReqPlayerProfileData)(nil),      // 60: tutorial.ReqPlayerProfileData
	(*ResPlayerProfileData)(nil),      // 61: tutorial.ResPlayerProfileData
	(*ReqPlayerBriefProfileData)(nil), // 62: tutorial.ReqPlayerBriefProfileData
	(*ResPlayerBriefProfileData)(nil), // 63: tutorial.ResPlayerBriefProfileData
	(*ReqSetEnergyMul)(nil),           // 64: tutorial.ReqSetEnergyMul
	(*ResSetEnergyMul)(nil),           // 65: tutorial.ResSetEnergyMul
	(*BaseInfo)(nil),                  // 66: tutorial.BaseInfo
	(*ReqUserInfo)(nil),               // 67: tutorial.ReqUserInfo
	(*UserInfo)(nil),                  // 68: tutorial.UserInfo
	(*ReqSetName)(nil),                // 69: tutorial.ReqSetName
	(*ResSetName)(nil),                // 70: tutorial.ResSetName
	(*ReqSetPetName)(nil),             // 71: tutorial.ReqSetPetName
	(*ResSetPetName)(nil),             // 72: tutorial.ResSetPetName
	(*ReqBuyEnergy)(nil),              // 73: tutorial.ReqBuyEnergy
	(*ResBuyEnergy)(nil),              // 74: tutorial.ResBuyEnergy
	(*ReqGetEnergyByAD)(nil),          // 75: tutorial.ReqGetEnergyByAD
	(*ResGetEnergyByAD)(nil),          // 76: tutorial.ResGetEnergyByAD
	(*ReqGetHandbookReward)(nil),      // 77: tutorial.ReqGetHandbookReward
	(*ResGetHandbookReward)(nil),      // 78: tutorial.ResGetHandbookReward
	(*HandbookInfo)(nil),              // 79: tutorial.HandbookInfo
	(*Handbook)(nil),                  // 80: tutorial.Handbook
	(*RegHandbookAllReward)(nil),      // 81: tutorial.RegHandbookAllReward
	(*ResHandbookAllReward)(nil),      // 82: tutorial.ResHandbookAllReward
	(*ReqRewardOrder)(nil),            // 83: tutorial.ReqRewardOrder
	(*ResRewardOrder)(nil),            // 84: tutorial.ResRewardOrder
	(*ReqDelOrder)(nil),               // 85: tutorial.ReqDelOrder
	(*ResDelOrder)(nil),               // 86: tutorial.ResDelOrder
	(*ReqSellChessNum)(nil),           // 87: tutorial.ReqSellChessNum
	(*ResSellChessNum)(nil),           // 88: tutorial.ResSellChessNum
	(*Order)(nil),                     // 89: tutorial.Order
	(*ResOrderList)(nil),              // 90: tutorial.ResOrderList
	(*ResDecorateInfo)(nil),           // 91: tutorial.ResDecorateInfo
	(*ReqDecorate)(nil),               // 92: tutorial.ReqDecorate
	(*ResDecorate)(nil),               // 93: tutorial.ResDecorate
	(*ReqDecorateAll)(nil),            // 94: tutorial.ReqDecorateAll
	(*ResDecorateAll)(nil),            // 95: tutorial.ResDecorateAll
	(*ReqGmCommand)(nil),              // 96: tutorial.ReqGmCommand
	(*Card)(nil),                      // 97: tutorial.Card
	(*ReqCardInfo)(nil),               // 98: tutorial.ReqCardInfo
	(*ResCardInfo)(nil),               // 99: tutorial.ResCardInfo
	(*ResNotifyCardTimes)(nil),        // 100: tutorial.ResNotifyCardTimes
	(*ReqCardSeasonFirstReward)(nil),  // 101: tutorial.ReqCardSeasonFirstReward
	(*ResCardSeasonFirstReward)(nil),  // 102: tutorial.ResCardSeasonFirstReward
	(*ReqCardHandbookReward)(nil),     // 103: tutorial.ReqCardHandbookReward
	(*ResCardHandbookReward)(nil),     // 104: tutorial.ResCardHandbookReward
	(*ReqMasterCard)(nil),             // 105: tutorial.ReqMasterCard
	(*ResMasterCard)(nil),             // 106: tutorial.ResMasterCard
	(*ReqCardCollectReward)(nil),      // 107: tutorial.ReqCardCollectReward
	(*ResCardCollectReward)(nil),      // 108: tutorial.ResCardCollectReward
	(*ReqExStarReward)(nil),           // 109: tutorial.ReqExStarReward
	(*ResExStarReward)(nil),           // 110: tutorial.ResExStarReward
	(*ReqAllCollectReward)(nil),       // 111: tutorial.ReqAllCollectReward
	(*ResAllCollectReward)(nil),       // 112: tutorial.ResAllCollectReward
	(*ReqCardGive)(nil),               // 113: tutorial.ReqCardGive
	(*ResCardGive)(nil),               // 114: tutorial.ResCardGive
	(*ReqAgreeCardGive)(nil),          // 115: tutorial.ReqAgreeCardGive
	(*ResAgreeCardGive)(nil),          // 116: tutorial.ResAgreeCardGive
	(*ReqRefuseCardGive)(nil),         // 117: tutorial.ReqRefuseCardGive
	(*ResRefuseCardGive)(nil),         // 118: tutorial.ResRefuseCardGive
	(*ReqCardSend)(nil),               // 119: tutorial.ReqCardSend
	(*ResCardSend)(nil),               // 120: tutorial.ResCardSend
	(*ReqCardExchange)(nil),           // 121: tutorial.ReqCardExchange
	(*ResCardExchange)(nil),           // 122: tutorial.ResCardExchange
	(*ReqSelectCardExchange)(nil),     // 123: tutorial.ReqSelectCardExchange
	(*ResSelectCardExchange)(nil),     // 124: tutorial.ResSelectCardExchange
	(*ReqAgreeCardExchange)(nil),      // 125: tutorial.ReqAgreeCardExchange
	(*ResAgreeCardExchange)(nil),      // 126: tutorial.ResAgreeCardExchange
	(*ReqRefuseCardSelect)(nil),       // 127: tutorial.ReqRefuseCardSelect
	(*ResRefuseCardSelect)(nil),       // 128: tutorial.ResRefuseCardSelect
	(*ReqRefuseCardExchange)(nil),     // 129: tutorial.ReqRefuseCardExchange
	(*ResRefuseCardExchange)(nil),     // 130: tutorial.ResRefuseCardExchange
	(*ReqGetFriendCard)(nil),          // 131: tutorial.ReqGetFriendCard
	(*ResGetFriendCard)(nil),          // 132: tutorial.ResGetFriendCard
	(*ReqGetGoldCard)(nil),            // 133: tutorial.ReqGetGoldCard
	(*ResGetGoldCard)(nil),            // 134: tutorial.ResGetGoldCard
	(*ReqGuideReward)(nil),            // 135: tutorial.ReqGuideReward
	(*ResGuideReward)(nil),            // 136: tutorial.ResGuideReward
	(*ResGuildInfo)(nil),              // 137: tutorial.ResGuildInfo
	(*ResItemPop)(nil),                // 138: tutorial.ResItemPop
	(*ItemInfo)(nil),                  // 139: tutorial.ItemInfo
	(*CardPack)(nil),                  // 140: tutorial.CardPack
	(*ResDailyTask)(nil),              // 141: tutorial.ResDailyTask
	(*DailyWeek)(nil),                 // 142: tutorial.DailyWeek
	(*DailyTask)(nil),                 // 143: tutorial.DailyTask
	(*QuestProgress)(nil),             // 144: tutorial.QuestProgress
	(*ReqGetDailyTaskReward)(nil),     // 145: tutorial.ReqGetDailyTaskReward
	(*ResGetDailyTaskReward)(nil),     // 146: tutorial.ResGetDailyTaskReward
	(*ReqGetDailyWeekReward)(nil),     // 147: tutorial.ReqGetDailyWeekReward
	(*ResGetDailyWeekReward)(nil),     // 148: tutorial.ResGetDailyWeekReward
	(*ReqDailyUnlock)(nil),            // 149: tutorial.ReqDailyUnlock
	(*ResDailyUnlock)(nil),            // 150: tutorial.ResDailyUnlock
	(*ResFaceInfo)(nil),               // 151: tutorial.ResFaceInfo
	(*FaceInfo)(nil),                  // 152: tutorial.FaceInfo
	(*ReqSetFace)(nil),                // 153: tutorial.ReqSetFace
	(*ResSetFace)(nil),                // 154: tutorial.ResSetFace
	(*ResAvatarInfo)(nil),             // 155: tutorial.ResAvatarInfo
	(*AvatarInfo)(nil),                // 156: tutorial.AvatarInfo
	(*ReqSetAvatar)(nil),              // 157: tutorial.ReqSetAvatar
	(*ResSetAvatar)(nil),              // 158: tutorial.ResSetAvatar
	(*EmojiInfo)(nil),                 // 159: tutorial.EmojiInfo
	(*ReqSetEmoji)(nil),               // 160: tutorial.ReqSetEmoji
	(*ResSetEmoji)(nil),               // 161: tutorial.ResSetEmoji
	(*ResSevenLogin)(nil),             // 162: tutorial.ResSevenLogin
	(*SevenLoginReward)(nil),          // 163: tutorial.SevenLoginReward
	(*ReqGetSevenLoginReward)(nil),    // 164: tutorial.ReqGetSevenLoginReward
	(*ResGetSevenLoginReward)(nil),    // 165: tutorial.ResGetSevenLoginReward
	(*ReqGetMonthLoginReward)(nil),    // 166: tutorial.ReqGetMonthLoginReward
	(*ResGetMonthLoginReward)(nil),    // 167: tutorial.ResGetMonthLoginReward
	(*ResActivity)(nil),               // 168: tutorial.ResActivity
	(*ActivityInfo)(nil),              // 169: tutorial.ActivityInfo
	(*ReqLimitEvent)(nil),             // 170: tutorial.ReqLimitEvent
	(*ResLimitEvent)(nil),             // 171: tutorial.ResLimitEvent
	(*ResLimitEventProgress)(nil),     // 172: tutorial.ResLimitEventProgress
	(*ReqLimitEventReward)(nil),       // 173: tutorial.ReqLimitEventReward
	(*ResLimitEventReward)(nil),       // 174: tutorial.ResLimitEventReward
	(*ReqSelectLimitEvent)(nil),       // 175: tutorial.ReqSelectLimitEvent
	(*ResSelectLimitEvent)(nil),       // 176: tutorial.ResSelectLimitEvent
	(*LimitEvent)(nil),                // 177: tutorial.LimitEvent
	(*LimitEventNotify)(nil),          // 178: tutorial.LimitEventNotify
	(*ReqLimitEventLuckyCat)(nil),     // 179: tutorial.ReqLimitEventLuckyCat
	(*ResLimitEventLuckyCat)(nil),     // 180: tutorial.ResLimitEventLuckyCat
	(*ReqLimitSenceReward)(nil),       // 181: tutorial.ReqLimitSenceReward
	(*ResLimitSenceReward)(nil),       // 182: tutorial.ResLimitSenceReward
	(*ResChessRainReward)(nil),        // 183: tutorial.ResChessRainReward
	(*ReqFastProduceInfo)(nil),        // 184: tutorial.ReqFastProduceInfo
	(*ResFastProduceInfo)(nil),        // 185: tutorial.ResFastProduceInfo
	(*ReqFastProduceReward)(nil),      // 186: tutorial.ReqFastProduceReward
	(*ResFastProduceReward)(nil),      // 187: tutorial.ResFastProduceReward
	(*ReqSearchPlayer)(nil),           // 188: tutorial.ReqSearchPlayer
	(*ResSearchPlayer)(nil),           // 189: tutorial.ResSearchPlayer
	(*ResPlayerSimple)(nil),           // 190: tutorial.ResPlayerSimple
	(*ResPlayerRank)(nil),             // 191: tutorial.ResPlayerRank
	(*ResFriendLog)(nil),              // 192: tutorial.ResFriendLog
	(*NotifyFriendLog)(nil),           // 193: tutorial.NotifyFriendLog
	(*NotifyFriendCard)(nil),          // 194: tutorial.NotifyFriendCard
	(*ResFriendCard)(nil),             // 195: tutorial.ResFriendCard
	(*ReqKv)(nil),                     // 196: tutorial.ReqKv
	(*ResKv)(nil),                     // 197: tutorial.ResKv
	(*ReqFriendRecommend)(nil),        // 198: tutorial.ReqFriendRecommend
	(*ResFriendRecommend)(nil),        // 199: tutorial.ResFriendRecommend
	(*ReqFriendIgnore)(nil),           // 200: tutorial.ReqFriendIgnore
	(*ResFriendIgnore)(nil),           // 201: tutorial.ResFriendIgnore
	(*ReqFriendList)(nil),             // 202: tutorial.ReqFriendList
	(*ResFriendList)(nil),             // 203: tutorial.ResFriendList
	(*ReqFriendApply)(nil),            // 204: tutorial.ReqFriendApply
	(*ResFriendApply)(nil),            // 205: tutorial.ResFriendApply
	(*ResFriendApplyInfo)(nil),        // 206: tutorial.ResFriendApplyInfo
	(*ReqFriendCardMsg)(nil),          // 207: tutorial.ReqFriendCardMsg
	(*ResFriendCardMsg)(nil),          // 208: tutorial.ResFriendCardMsg
	(*ReqFriendTimeLine)(nil),         // 209: tutorial.ReqFriendTimeLine
	(*ResFriendTimeLine)(nil),         // 210: tutorial.ResFriendTimeLine
	(*ReqFriendTLUpvote)(nil),         // 211: tutorial.ReqFriendTLUpvote
	(*ResFriendTLUpvote)(nil),         // 212: tutorial.ResFriendTLUpvote
	(*ResFriendApplyNotify)(nil),      // 213: tutorial.ResFriendApplyNotify
	(*ReqApplyFriend)(nil),            // 214: tutorial.ReqApplyFriend
	(*ResApplyFriend)(nil),            // 215: tutorial.ResApplyFriend
	(*ReqAgreeFriend)(nil),            // 216: tutorial.ReqAgreeFriend
	(*ResAgreeFriend)(nil),            // 217: tutorial.ResAgreeFriend
	(*ReqRefuseFriend)(nil),           // 218: tutorial.ReqRefuseFriend
	(*ResRefuseFriend)(nil),           // 219: tutorial.ResRefuseFriend
	(*ReqDelFriend)(nil),              // 220: tutorial.ReqDelFriend
	(*ResDelFriend)(nil),              // 221: tutorial.ResDelFriend
	(*ReqRank)(nil),                   // 222: tutorial.ReqRank
	(*ResRank)(nil),                   // 223: tutorial.ResRank
	(*ReqMailList)(nil),               // 224: tutorial.ReqMailList
	(*ResMailList)(nil),               // 225: tutorial.ResMailList
	(*MailInfo)(nil),                  // 226: tutorial.MailInfo
	(*MailNotify)(nil),                // 227: tutorial.MailNotify
	(*ReqReadMail)(nil),               // 228: tutorial.ReqReadMail
	(*ResReadMail)(nil),               // 229: tutorial.ResReadMail
	(*ReqGetMailReward)(nil),          // 230: tutorial.ReqGetMailReward
	(*ResGetMailReward)(nil),          // 231: tutorial.ResGetMailReward
	(*ReqDeleteMail)(nil),             // 232: tutorial.ReqDeleteMail
	(*ResDeleteMail)(nil),             // 233: tutorial.ResDeleteMail
	(*ResCharge)(nil),                 // 234: tutorial.ResCharge
	(*ResSpecialShop)(nil),            // 235: tutorial.ResSpecialShop
	(*ResChessShop)(nil),              // 236: tutorial.ResChessShop
	(*ReqFreeShop)(nil),               // 237: tutorial.ReqFreeShop
	(*ResFreeShop)(nil),               // 238: tutorial.ResFreeShop
	(*ReqBuyChessShop)(nil),           // 239: tutorial.ReqBuyChessShop
	(*ResBuyChessShop)(nil),           // 240: tutorial.ResBuyChessShop
	(*ReqBuyChessShop2)(nil),          // 241: tutorial.ReqBuyChessShop2
	(*ResBuyChessShop2)(nil),          // 242: tutorial.ResBuyChessShop2
	(*ReqRefreshChessShop)(nil),       // 243: tutorial.ReqRefreshChessShop
	(*ResRefreshChessShop)(nil),       // 244: tutorial.ResRefreshChessShop
	(*ReqEndless)(nil),                // 245: tutorial.ReqEndless
	(*ResEndless)(nil),                // 246: tutorial.ResEndless
	(*ResEndlessInfo)(nil),            // 247: tutorial.ResEndlessInfo
	(*ReqEndlessReward)(nil),          // 248: tutorial.ReqEndlessReward
	(*ResEndlessReward)(nil),          // 249: tutorial.ResEndlessReward
	(*ResPiggyBank)(nil),              // 250: tutorial.ResPiggyBank
	(*ReqPiggyBankReward)(nil),        // 251: tutorial.ReqPiggyBankReward
	(*ResPiggyBankReward)(nil),        // 252: tutorial.ResPiggyBankReward
	(*ReqCreateOrderSn)(nil),          // 253: tutorial.ReqCreateOrderSn
	(*ResCreateOrderSn)(nil),          // 254: tutorial.ResCreateOrderSn
	(*ReqShippingOrder)(nil),          // 255: tutorial.ReqShippingOrder
	(*ResShippingOrder)(nil),          // 256: tutorial.ResShippingOrder
	(*ReqChampship)(nil),              // 257: tutorial.ReqChampship
	(*ResChampship)(nil),              // 258: tutorial.ResChampship
	(*ReqChampshipReward)(nil),        // 259: tutorial.ReqChampshipReward
	(*ResChampshipReward)(nil),        // 260: tutorial.ResChampshipReward
	(*ReqChampshipRankReward)(nil),    // 261: tutorial.ReqChampshipRankReward
	(*ResChampshipRankReward)(nil),    // 262: tutorial.ResChampshipRankReward
	(*ReqChampshipRank)(nil),          // 263: tutorial.ReqChampshipRank
	(*ResChampshipRank)(nil),          // 264: tutorial.ResChampshipRank
	(*ReqChampshipPreRank)(nil),       // 265: tutorial.ReqChampshipPreRank
	(*ResChampshipPreRank)(nil),       // 266: tutorial.ResChampshipPreRank
	(*ResNotifyCard)(nil),             // 267: tutorial.ResNotifyCard
	(*ReqSetFacebookUrl)(nil),         // 268: tutorial.ReqSetFacebookUrl
	(*ResSetFacebookUrl)(nil),         // 269: tutorial.ResSetFacebookUrl
	(*ReqInviteFriendData)(nil),       // 270: tutorial.ReqInviteFriendData
	(*ResInviteFriendData)(nil),       // 271: tutorial.ResInviteFriendData
	(*ReqSelfInvited)(nil),            // 272: tutorial.ReqSelfInvited
	(*ResSelfInvited)(nil),            // 273: tutorial.ResSelfInvited
	(*NotifyInvitedSuccess)(nil),      // 274: tutorial.NotifyInvitedSuccess
	(*ReqGetInviteReward)(nil),        // 275: tutorial.ReqGetInviteReward
	(*ResGetInviteReward)(nil),        // 276: tutorial.ResGetInviteReward
	(*ReqAutoAddInviteFriend)(nil),    // 277: tutorial.ReqAutoAddInviteFriend
	(*ResAutoAddInviteFriend)(nil),    // 278: tutorial.ResAutoAddInviteFriend
	(*ReqAutoAddInviteFriend2)(nil),   // 279: tutorial.ReqAutoAddInviteFriend2
	(*ResAutoAddInviteFriend2)(nil),   // 280: tutorial.ResAutoAddInviteFriend2
	(*ReqMining)(nil),                 // 281: tutorial.ReqMining
	(*ResMining)(nil),                 // 282: tutorial.ResMining
	(*ReqMiningTake)(nil),             // 283: tutorial.ReqMiningTake
	(*ResMiningTake)(nil),             // 284: tutorial.ResMiningTake
	(*ReqMiningReward)(nil),           // 285: tutorial.ReqMiningReward
	(*ResMiningReward)(nil),           // 286: tutorial.ResMiningReward
	(*ResActRed)(nil),                 // 287: tutorial.ResActRed
	(*NotifyActRed)(nil),              // 288: tutorial.NotifyActRed
	(*ActivityNotify)(nil),            // 289: tutorial.ActivityNotify
	(*ResItem)(nil),                   // 290: tutorial.ResItem
	(*ItemNotify)(nil),                // 291: tutorial.ItemNotify
	(*ReqGuessColor)(nil),             // 292: tutorial.ReqGuessColor
	(*ResGuessColor)(nil),             // 293: tutorial.ResGuessColor
	(*Opponent)(nil),                  // 294: tutorial.opponent
	(*ReqGuessColorTake)(nil),         // 295: tutorial.ReqGuessColorTake
	(*ResGuessColorTake)(nil),         // 296: tutorial.ResGuessColorTake
	(*ReqGuessColorReward)(nil),       // 297: tutorial.ReqGuessColorReward
	(*ResGuessColorReward)(nil),       // 298: tutorial.ResGuessColorReward
	(*ReqRace)(nil),                   // 299: tutorial.ReqRace
	(*ResRace)(nil),                   // 300: tutorial.ResRace
	(*Raceopponent)(nil),              // 301: tutorial.raceopponent
	(*ReqRaceStart)(nil),              // 302: tutorial.ReqRaceStart
	(*ResRaceStart)(nil),              // 303: tutorial.ResRaceStart
	(*ReqRaceReward)(nil),             // 304: tutorial.ReqRaceReward
	(*ResRaceReward)(nil),             // 305: tutorial.ResRaceReward
	(*ReqPlayroom)(nil),               // 306: tutorial.ReqPlayroom
	(*ResPlayroom)(nil),               // 307: tutorial.ResPlayroom
	(*PlayroomDress)(nil),             // 308: tutorial.PlayroomDress
	(*ReqPlayroomDressSet)(nil),       // 309: tutorial.ReqPlayroomDressSet
	(*ResPlayroomDressSet)(nil),       // 310: tutorial.ResPlayroomDressSet
	(*ReqPlayroomPetAirSet)(nil),      // 311: tutorial.ReqPlayroomPetAirSet
	(*ResPlayroomPetAirSet)(nil),      // 312: tutorial.ResPlayroomPetAirSet
	(*ReqPlayroomWrokOutline)(nil),    // 313: tutorial.ReqPlayroomWrokOutline
	(*ResPlayroomWrokOutline)(nil),    // 314: tutorial.ResPlayroomWrokOutline
	(*NofiPlayroomStatus)(nil),        // 315: tutorial.NofiPlayroomStatus
	(*NotifyPlayroomWork)(nil),        // 316: tutorial.NotifyPlayroomWork
	(*NotifyPlayroomLose)(nil),        // 317: tutorial.NotifyPlayroomLose
	(*NotifyPlayroomMood)(nil),        // 318: tutorial.NotifyPlayroomMood
	(*FriendRoom)(nil),                // 319: tutorial.FriendRoom
	(*RoomOpponent)(nil),              // 320: tutorial.RoomOpponent
	(*ReqPlayroomInfo)(nil),           // 321: tutorial.ReqPlayroomInfo
	(*ResPlayroomInfo)(nil),           // 322: tutorial.ResPlayroomInfo
	(*ReqPlayroomFlip)(nil),           // 323: tutorial.ReqPlayroomFlip
	(*ResPlayroomFlip)(nil),           // 324: tutorial.ResPlayroomFlip
	(*ReqPlayroomFlipReward)(nil),     // 325: tutorial.ReqPlayroomFlipReward
	(*ResPlayroomFlipReward)(nil),     // 326: tutorial.ResPlayroomFlipReward
	(*ReqPlayroomGame)(nil),           // 327: tutorial.ReqPlayroomGame
	(*ResPlayroomGame)(nil),           // 328: tutorial.ResPlayroomGame
	(*ReqPlayroomInteract)(nil),       // 329: tutorial.ReqPlayroomInteract
	(*ResPlayroomInteract)(nil),       // 330: tutorial.ResPlayroomInteract
	(*ReqPlayroomSetRoom)(nil),        // 331: tutorial.ReqPlayroomSetRoom
	(*ResPlayroomSetRoom)(nil),        // 332: tutorial.ResPlayroomSetRoom
	(*ReqPlayroomSelectReward)(nil),   // 333: tutorial.ReqPlayroomSelectReward
	(*ResPlayroomSelectReward)(nil),   // 334: tutorial.ResPlayroomSelectReward
	(*ReqPlayroomLose)(nil),           // 335: tutorial.ReqPlayroomLose
	(*ResPlayroomLose)(nil),           // 336: tutorial.ResPlayroomLose
	(*ReqPlayroomWork)(nil),           // 337: tutorial.ReqPlayroomWork
	(*ResPlayroomWork)(nil),           // 338: tutorial.ResPlayroomWork
	(*ReqPlayroomRest)(nil),           // 339: tutorial.ReqPlayroomRest
	(*ResPlayroomRest)(nil),           // 340: tutorial.ResPlayroomRest
	(*ReqPlayroomDraw)(nil),           // 341: tutorial.ReqPlayroomDraw
	(*ResPlayroomDraw)(nil),           // 342: tutorial.ResPlayroomDraw
	(*ReqPlayroomChip)(nil),           // 343: tutorial.ReqPlayroomChip
	(*ResPlayroomChip)(nil),           // 344: tutorial.ResPlayroomChip
	(*ReqPlayroomBuyItem)(nil),        // 345: tutorial.ReqPlayroomBuyItem
	(*ResPlayroomBuyItem)(nil),        // 346: tutorial.ResPlayroomBuyItem
	(*ReqPlayroomShop)(nil),           // 347: tutorial.ReqPlayroomShop
	(*ResPlayroomShop)(nil),           // 348: tutorial.ResPlayroomShop
	(*ReqFriendTreasure)(nil),         // 349: tutorial.ReqFriendTreasure
	(*ResFriendTreasure)(nil),         // 350: tutorial.ResFriendTreasure
	(*TreasureInfo)(nil),              // 351: tutorial.TreasureInfo
	(*ReqFriendTreasureStart)(nil),    // 352: tutorial.ReqFriendTreasureStart
	(*ResFriendTreasureStart)(nil),    // 353: tutorial.ResFriendTreasureStart
	(*ReqFriendTreasureEnd)(nil),      // 354: tutorial.ReqFriendTreasureEnd
	(*ResFriendTreasureEnd)(nil),      // 355: tutorial.ResFriendTreasureEnd
	(*ReqFriendTreasureFilp)(nil),     // 356: tutorial.ReqFriendTreasureFilp
	(*ResFriendTreasureFilp)(nil),     // 357: tutorial.ResFriendTreasureFilp
	(*ResFriendTreasureStar)(nil),     // 358: tutorial.ResFriendTreasureStar
	(*ReqKafkaLog)(nil),               // 359: tutorial.ReqKafkaLog
	(*ReqCollectInfo)(nil),            // 360: tutorial.ReqCollectInfo
	(*ResCollectInfo)(nil),            // 361: tutorial.ResCollectInfo
	(*CollectItem)(nil),               // 362: tutorial.CollectItem
	(*ReqCollect)(nil),                // 363: tutorial.ReqCollect
	(*ResCollect)(nil),                // 364: tutorial.ResCollect
	(*AdminReq)(nil),                  // 365: tutorial.AdminReq
	(*AdminRes)(nil),                  // 366: tutorial.AdminRes
	(*ReqAdminInfo)(nil),              // 367: tutorial.ReqAdminInfo
	(*ReqReloadServerMail)(nil),       // 368: tutorial.ReqReloadServerMail
	(*ReqServerInfo)(nil),             // 369: tutorial.ReqServerInfo
	(*ReqReload)(nil),                 // 370: tutorial.ReqReload
	(*ReqAdminGm)(nil),                // 371: tutorial.ReqAdminGm
	nil,                               // 372: tutorial.ResChessColorData.MChessColorDataEntry
	nil,                               // 373: tutorial.UpdateBaseItemInfo.MUpdateItemEntry
	nil,                               // 374: tutorial.ResPlayerChessData.MChessDataEntry
	nil,                               // 375: tutorial.UpdatePlayerChessData.MChessDataEntry
	nil,                               // 376: tutorial.ReqSeparateChess.MChessDataEntry
	nil,                               // 377: tutorial.ReqUpgradeChess.MChessDataEntry
	nil,                               // 378: tutorial.ReqGetChessFromBuff.MChessDataEntry
	nil,                               // 379: tutorial.ReqChessEx.MChessDataEntry
	nil,                               // 380: tutorial.ReqSourceChest.MChessDataEntry
	nil,                               // 381: tutorial.ReqPlayroomOutline.MChessDataEntry
	nil,                               // 382: tutorial.ReqPutChessInBag.MChessDataEntry
	nil,                               // 383: tutorial.ReqTakeChessOutBag.MChessDataEntry
	nil,                               // 384: tutorial.UserInfo.SetEmojiEntry
	nil,                               // 385: tutorial.ReqRewardOrder.MChessDataEntry
	nil,                               // 386: tutorial.ResCardInfo.AllCardEntry
	nil,                               // 387: tutorial.ResCardInfo.HandbookEntry
	nil,                               // 388: tutorial.ResGuildInfo.RewardEntry
	nil,                               // 389: tutorial.ResDailyTask.WeekRewardEntry
	nil,                               // 390: tutorial.ResDailyTask.DailyTaskEntry
	nil,                               // 391: tutorial.ResLimitEvent.LimitEventListEntry
	nil,                               // 392: tutorial.ResLimitEventProgress.ProgressRewardEntry
	nil,                               // 393: tutorial.ReqLimitEventLuckyCat.MChessDataEntry
	nil,                               // 394: tutorial.ResPlayerSimple.EmojiEntry
	nil,                               // 395: tutorial.ResKv.KvEntry
	nil,                               // 396: tutorial.ResRank.RankListEntry
	nil,                               // 397: tutorial.ResMailList.MailListEntry
	nil,                               // 398: tutorial.ResCharge.SpecialShopEntry
	nil,                               // 399: tutorial.ResCharge.ChessShopEntry
	nil,                               // 400: tutorial.ResCharge.GiftEntry
	nil,                               // 401: tutorial.ReqBuyChessShop2.MChessDataEntry
	nil,                               // 402: tutorial.ResEndless.EndlessListEntry
	nil,                               // 403: tutorial.ResChampshipRank.RankListEntry
	nil,                               // 404: tutorial.ResChampshipPreRank.RankListEntry
	nil,                               // 405: tutorial.ResNotifyCard.CardEntry
	nil,                               // 406: tutorial.ResNotifyCard.MasterEntry
	nil,                               // 407: tutorial.ResNotifyCard.HandbookEntry
	nil,                               // 408: tutorial.ResMining.MapEntry
	nil,                               // 409: tutorial.ReqMiningTake.MapEntry
	nil,                               // 410: tutorial.ResActRed.RedEntry
	nil,                               // 411: tutorial.ResItem.ItemEntry
	nil,                               // 412: tutorial.ItemNotify.ItemEntry
	nil,                               // 413: tutorial.ReqGuessColorTake.MapEntry
	nil,                               // 414: tutorial.ResPlayroom.PlayroomEntry
	nil,                               // 415: tutorial.ResPlayroom.MoodEntry
	nil,                               // 416: tutorial.ResPlayroom.PhysiologyEntry
	nil,                               // 417: tutorial.ResPlayroom.DressEntry
	nil,                               // 418: tutorial.ResPlayroom.DressSetEntry
	nil,                               // 419: tutorial.ReqPlayroomDressSet.DressSetEntry
	nil,                               // 420: tutorial.NotifyPlayroomMood.MoodEntry
	nil,                               // 421: tutorial.NotifyPlayroomMood.PhysiologyEntry
	nil,                               // 422: tutorial.ResPlayroomInfo.PlayroomEntry
	nil,                               // 423: tutorial.ResPlayroomInfo.ItemsEntry
	nil,                               // 424: tutorial.ResPlayroomInfo.FlipEntry
	nil,                               // 425: tutorial.ResPlayroomInfo.EmojiEntry
	nil,                               // 426: tutorial.ResPlayroomGame.ItemsEntry
	nil,                               // 427: tutorial.ReqPlayroomSetRoom.PlayroomEntry
}
var file_proto_Gameapi_proto_depIdxs = []int32{
	372, // 0: tutorial.ResChessColorData.mChessColorData:type_name -> tutorial.ResChessColorData.MChessColorDataEntry
	373, // 1: tutorial.UpdateBaseItemInfo.mUpdateItem:type_name -> tutorial.UpdateBaseItemInfo.MUpdateItemEntry
	374, // 2: tutorial.ResPlayerChessData.mChessData:type_name -> tutorial.ResPlayerChessData.MChessDataEntry
	52,  // 3: tutorial.ResPlayerChessInfo.ChessBag:type_name -> tutorial.ChessBag
	1,   // 4: tutorial.ChessHandle.type:type_name -> tutorial.HANDLE_TYPE
	375, // 5: tutorial.UpdatePlayerChessData.mChessData:type_name -> tutorial.UpdatePlayerChessData.MChessDataEntry
	37,  // 6: tutorial.UpdatePlayerChessData.mChessHandle:type_name -> tutorial.ChessHandle
	2,   // 7: tutorial.ResUpdatePlayerChessData.code:type_name -> tutorial.RES_CODE
	376, // 8: tutorial.ReqSeparateChess.mChessData:type_name -> tutorial.ReqSeparateChess.MChessDataEntry
	2,   // 9: tutorial.ResSeparateChess.code:type_name -> tutorial.RES_CODE
	377, // 10: tutorial.ReqUpgradeChess.mChessData:type_name -> tutorial.ReqUpgradeChess.MChessDataEntry
	2,   // 11: tutorial.ResUpgradeChess.code:type_name -> tutorial.RES_CODE
	378, // 12: tutorial.ReqGetChessFromBuff.mChessData:type_name -> tutorial.ReqGetChessFromBuff.MChessDataEntry
	2,   // 13: tutorial.ResGetChessFromBuff.code:type_name -> tutorial.RES_CODE
	379, // 14: tutorial.ReqChessEx.mChessData:type_name -> tutorial.ReqChessEx.MChessDataEntry
	2,   // 15: tutorial.ResChessEx.code:type_name -> tutorial.RES_CODE
	380, // 16: tutorial.ReqSourceChest.mChessData:type_name -> tutorial.ReqSourceChest.MChessDataEntry
	2,   // 17: tutorial.ResSourceChest.code:type_name -> tutorial.RES_CODE
	381, // 18: tutorial.ReqPlayroomOutline.mChessData:type_name -> tutorial.ReqPlayroomOutline.MChessDataEntry
	2,   // 19: tutorial.ResPlayroomOutline.code:type_name -> tutorial.RES_CODE
	53,  // 20: tutorial.ChessBag.ChessBagGrids:type_name -> tutorial.ChessBagGrid
	382, // 21: tutorial.ReqPutChessInBag.mChessData:type_name -> tutorial.ReqPutChessInBag.MChessDataEntry
	2,   // 22: tutorial.ResPutChessInBag.code:type_name -> tutorial.RES_CODE
	383, // 23: tutorial.ReqTakeChessOutBag.mChessData:type_name -> tutorial.ReqTakeChessOutBag.MChessDataEntry
	2,   // 24: tutorial.ResTakeChessOutBag.code:type_name -> tutorial.RES_CODE
	2,   // 25: tutorial.ResBuyChessBagGrid.code:type_name -> tutorial.RES_CODE
	2,   // 26: tutorial.ResSetEnergyMul.ResultCode:type_name -> tutorial.RES_CODE
	156, // 27: tutorial.UserInfo.AvatarList:type_name -> tutorial.AvatarInfo
	152, // 28: tutorial.UserInfo.FaceList:type_name -> tutorial.FaceInfo
	159, // 29: tutorial.UserInfo.EmojiList:type_name -> tutorial.EmojiInfo
	384, // 30: tutorial.UserInfo.SetEmoji:type_name -> tutorial.UserInfo.SetEmojiEntry
	2,   // 31: tutorial.ResSetName.ResultCode:type_name -> tutorial.RES_CODE
	2,   // 32: tutorial.ResSetPetName.ResultCode:type_name -> tutorial.RES_CODE
	2,   // 33: tutorial.ResBuyEnergy.Code:type_name -> tutorial.RES_CODE
	2,   // 34: tutorial.ResGetEnergyByAD.Code:type_name -> tutorial.RES_CODE
	2,   // 35: tutorial.ResGetHandbookReward.Code:type_name -> tutorial.RES_CODE
	79,  // 36: tutorial.Handbook.Handbooks:type_name -> tutorial.HandbookInfo
	2,   // 37: tutorial.ResHandbookAllReward.Code:type_name -> tutorial.RES_CODE
	385, // 38: tutorial.ReqRewardOrder.mChessData:type_name -> tutorial.ReqRewardOrder.MChessDataEntry
	2,   // 39: tutorial.ResRewardOrder.Code:type_name -> tutorial.RES_CODE
	2,   // 40: tutorial.ResDelOrder.Code:type_name -> tutorial.RES_CODE
	89,  // 41: tutorial.ResOrderList.OrderList:type_name -> tutorial.Order
	2,   // 42: tutorial.ResDecorate.Code:type_name -> tutorial.RES_CODE
	2,   // 43: tutorial.ResDecorateAll.Code:type_name -> tutorial.RES_CODE
	97,  // 44: tutorial.ResCardInfo.CardList:type_name -> tutorial.Card
	386, // 45: tutorial.ResCardInfo.AllCard:type_name -> tutorial.ResCardInfo.AllCardEntry
	387, // 46: tutorial.ResCardInfo.Handbook:type_name -> tutorial.ResCardInfo.HandbookEntry
	2,   // 47: tutorial.ResCardSeasonFirstReward.Code:type_name -> tutorial.RES_CODE
	2,   // 48: tutorial.ResCardHandbookReward.Code:type_name -> tutorial.RES_CODE
	2,   // 49: tutorial.ResMasterCard.Code:type_name -> tutorial.RES_CODE
	2,   // 50: tutorial.ResCardCollectReward.Code:type_name -> tutorial.RES_CODE
	2,   // 51: tutorial.ResExStarReward.Code:type_name -> tutorial.RES_CODE
	2,   // 52: tutorial.ResAllCollectReward.Code:type_name -> tutorial.RES_CODE
	2,   // 53: tutorial.ResCardGive.Code:type_name -> tutorial.RES_CODE
	2,   // 54: tutorial.ResAgreeCardGive.Code:type_name -> tutorial.RES_CODE
	2,   // 55: tutorial.ResRefuseCardGive.Code:type_name -> tutorial.RES_CODE
	2,   // 56: tutorial.ResCardSend.Code:type_name -> tutorial.RES_CODE
	2,   // 57: tutorial.ResCardExchange.Code:type_name -> tutorial.RES_CODE
	2,   // 58: tutorial.ResSelectCardExchange.Code:type_name -> tutorial.RES_CODE
	2,   // 59: tutorial.ResAgreeCardExchange.Code:type_name -> tutorial.RES_CODE
	2,   // 60: tutorial.ResRefuseCardSelect.Code:type_name -> tutorial.RES_CODE
	2,   // 61: tutorial.ResRefuseCardExchange.Code:type_name -> tutorial.RES_CODE
	2,   // 62: tutorial.ResGetFriendCard.Code:type_name -> tutorial.RES_CODE
	2,   // 63: tutorial.ResGuideReward.Code:type_name -> tutorial.RES_CODE
	388, // 64: tutorial.ResGuildInfo.Reward:type_name -> tutorial.ResGuildInfo.RewardEntry
	139, // 65: tutorial.ResItemPop.Items:type_name -> tutorial.ItemInfo
	140, // 66: tutorial.ResItemPop.CardPacks:type_name -> tutorial.CardPack
	389, // 67: tutorial.ResDailyTask.WeekReward:type_name -> tutorial.ResDailyTask.WeekRewardEntry
	390, // 68: tutorial.ResDailyTask.DailyTask:type_name -> tutorial.ResDailyTask.DailyTaskEntry
	139, // 69: tutorial.DailyWeek.Items:type_name -> tutorial.ItemInfo
	144, // 70: tutorial.DailyTask.Progress:type_name -> tutorial.QuestProgress
	139, // 71: tutorial.DailyTask.Items:type_name -> tutorial.ItemInfo
	2,   // 72: tutorial.ResGetDailyTaskReward.Code:type_name -> tutorial.RES_CODE
	2,   // 73: tutorial.ResGetDailyWeekReward.Code:type_name -> tutorial.RES_CODE
	2,   // 74: tutorial.ResDailyUnlock.Code:type_name -> tutorial.RES_CODE
	152, // 75: tutorial.ResFaceInfo.FaceList:type_name -> tutorial.FaceInfo
	2,   // 76: tutorial.ResSetFace.Code:type_name -> tutorial.RES_CODE
	156, // 77: tutorial.ResAvatarInfo.AvatarList:type_name -> tutorial.AvatarInfo
	2,   // 78: tutorial.ResSetAvatar.Code:type_name -> tutorial.RES_CODE
	2,   // 79: tutorial.ResSetEmoji.Code:type_name -> tutorial.RES_CODE
	163, // 80: tutorial.ResSevenLogin.WeekReward:type_name -> tutorial.SevenLoginReward
	163, // 81: tutorial.ResSevenLogin.MonthReward:type_name -> tutorial.SevenLoginReward
	139, // 82: tutorial.SevenLoginReward.Item1:type_name -> tutorial.ItemInfo
	139, // 83: tutorial.SevenLoginReward.Item2:type_name -> tutorial.ItemInfo
	139, // 84: tutorial.SevenLoginReward.Item3:type_name -> tutorial.ItemInfo
	2,   // 85: tutorial.ResGetSevenLoginReward.Code:type_name -> tutorial.RES_CODE
	2,   // 86: tutorial.ResGetMonthLoginReward.Code:type_name -> tutorial.RES_CODE
	169, // 87: tutorial.ResActivity.ActiveList:type_name -> tutorial.ActivityInfo
	391, // 88: tutorial.ResLimitEvent.LimitEventList:type_name -> tutorial.ResLimitEvent.LimitEventListEntry
	392, // 89: tutorial.ResLimitEventProgress.ProgressReward:type_name -> tutorial.ResLimitEventProgress.ProgressRewardEntry
	2,   // 90: tutorial.ResLimitEventReward.Code:type_name -> tutorial.RES_CODE
	2,   // 91: tutorial.ResSelectLimitEvent.Code:type_name -> tutorial.RES_CODE
	393, // 92: tutorial.ReqLimitEventLuckyCat.mChessData:type_name -> tutorial.ReqLimitEventLuckyCat.MChessDataEntry
	2,   // 93: tutorial.ResLimitEventLuckyCat.Code:type_name -> tutorial.RES_CODE
	2,   // 94: tutorial.ResLimitSenceReward.Code:type_name -> tutorial.RES_CODE
	139, // 95: tutorial.ResChessRainReward.Items:type_name -> tutorial.ItemInfo
	2,   // 96: tutorial.ResFastProduceReward.Code:type_name -> tutorial.RES_CODE
	190, // 97: tutorial.ResSearchPlayer.List:type_name -> tutorial.ResPlayerSimple
	394, // 98: tutorial.ResPlayerSimple.Emoji:type_name -> tutorial.ResPlayerSimple.EmojiEntry
	190, // 99: tutorial.ResFriendLog.Player:type_name -> tutorial.ResPlayerSimple
	192, // 100: tutorial.NotifyFriendLog.info:type_name -> tutorial.ResFriendLog
	195, // 101: tutorial.NotifyFriendCard.Info:type_name -> tutorial.ResFriendCard
	395, // 102: tutorial.ResKv.kv:type_name -> tutorial.ResKv.KvEntry
	190, // 103: tutorial.ResFriendRecommend.List:type_name -> tutorial.ResPlayerSimple
	2,   // 104: tutorial.ResFriendIgnore.Code:type_name -> tutorial.RES_CODE
	190, // 105: tutorial.ResFriendList.FriendList:type_name -> tutorial.ResPlayerSimple
	206, // 106: tutorial.ResFriendApply.ApplyList:type_name -> tutorial.ResFriendApplyInfo
	190, // 107: tutorial.ResFriendApplyInfo.Player:type_name -> tutorial.ResPlayerSimple
	195, // 108: tutorial.ResFriendCardMsg.MsgList:type_name -> tutorial.ResFriendCard
	192, // 109: tutorial.ResFriendTimeLine.Log:type_name -> tutorial.ResFriendLog
	2,   // 110: tutorial.ResFriendTLUpvote.Code:type_name -> tutorial.RES_CODE
	190, // 111: tutorial.ResFriendApplyNotify.Player:type_name -> tutorial.ResPlayerSimple
	2,   // 112: tutorial.ResApplyFriend.Code:type_name -> tutorial.RES_CODE
	2,   // 113: tutorial.ResAgreeFriend.Code:type_name -> tutorial.RES_CODE
	190, // 114: tutorial.ResAgreeFriend.Player:type_name -> tutorial.ResPlayerSimple
	2,   // 115: tutorial.ResRefuseFriend.Code:type_name -> tutorial.RES_CODE
	2,   // 116: tutorial.ResDelFriend.Code:type_name -> tutorial.RES_CODE
	396, // 117: tutorial.ResRank.RankList:type_name -> tutorial.ResRank.RankListEntry
	397, // 118: tutorial.ResMailList.MailList:type_name -> tutorial.ResMailList.MailListEntry
	139, // 119: tutorial.MailInfo.Items:type_name -> tutorial.ItemInfo
	226, // 120: tutorial.MailNotify.Info:type_name -> tutorial.MailInfo
	2,   // 121: tutorial.ResReadMail.Code:type_name -> tutorial.RES_CODE
	2,   // 122: tutorial.ResGetMailReward.Code:type_name -> tutorial.RES_CODE
	2,   // 123: tutorial.ResDeleteMail.Code:type_name -> tutorial.RES_CODE
	398, // 124: tutorial.ResCharge.SpecialShop:type_name -> tutorial.ResCharge.SpecialShopEntry
	399, // 125: tutorial.ResCharge.ChessShop:type_name -> tutorial.ResCharge.ChessShopEntry
	400, // 126: tutorial.ResCharge.Gift:type_name -> tutorial.ResCharge.GiftEntry
	2,   // 127: tutorial.ResFreeShop.Code:type_name -> tutorial.RES_CODE
	2,   // 128: tutorial.ResBuyChessShop.Code:type_name -> tutorial.RES_CODE
	401, // 129: tutorial.ReqBuyChessShop2.mChessData:type_name -> tutorial.ReqBuyChessShop2.MChessDataEntry
	2,   // 130: tutorial.ResBuyChessShop2.Code:type_name -> tutorial.RES_CODE
	2,   // 131: tutorial.ResRefreshChessShop.Code:type_name -> tutorial.RES_CODE
	402, // 132: tutorial.ResEndless.EndlessList:type_name -> tutorial.ResEndless.EndlessListEntry
	139, // 133: tutorial.ResEndlessInfo.Items:type_name -> tutorial.ItemInfo
	2,   // 134: tutorial.ResEndlessReward.Code:type_name -> tutorial.RES_CODE
	2,   // 135: tutorial.ResPiggyBankReward.Code:type_name -> tutorial.RES_CODE
	2,   // 136: tutorial.ResShippingOrder.Code:type_name -> tutorial.RES_CODE
	2,   // 137: tutorial.ResChampshipReward.Code:type_name -> tutorial.RES_CODE
	2,   // 138: tutorial.ResChampshipRankReward.Code:type_name -> tutorial.RES_CODE
	403, // 139: tutorial.ResChampshipRank.RankList:type_name -> tutorial.ResChampshipRank.RankListEntry
	404, // 140: tutorial.ResChampshipPreRank.RankList:type_name -> tutorial.ResChampshipPreRank.RankListEntry
	405, // 141: tutorial.ResNotifyCard.Card:type_name -> tutorial.ResNotifyCard.CardEntry
	406, // 142: tutorial.ResNotifyCard.Master:type_name -> tutorial.ResNotifyCard.MasterEntry
	407, // 143: tutorial.ResNotifyCard.Handbook:type_name -> tutorial.ResNotifyCard.HandbookEntry
	2,   // 144: tutorial.ResSetFacebookUrl.Code:type_name -> tutorial.RES_CODE
	408, // 145: tutorial.ResMining.Map:type_name -> tutorial.ResMining.MapEntry
	409, // 146: tutorial.ReqMiningTake.Map:type_name -> tutorial.ReqMiningTake.MapEntry
	2,   // 147: tutorial.ResMiningTake.Code:type_name -> tutorial.RES_CODE
	2,   // 148: tutorial.ResMiningReward.Code:type_name -> tutorial.RES_CODE
	410, // 149: tutorial.ResActRed.Red:type_name -> tutorial.ResActRed.RedEntry
	169, // 150: tutorial.ActivityNotify.Info:type_name -> tutorial.ActivityInfo
	411, // 151: tutorial.ResItem.Item:type_name -> tutorial.ResItem.ItemEntry
	412, // 152: tutorial.ItemNotify.Item:type_name -> tutorial.ItemNotify.ItemEntry
	294, // 153: tutorial.ResGuessColor.Opponent:type_name -> tutorial.opponent
	413, // 154: tutorial.ReqGuessColorTake.Map:type_name -> tutorial.ReqGuessColorTake.MapEntry
	2,   // 155: tutorial.ResGuessColorTake.Code:type_name -> tutorial.RES_CODE
	2,   // 156: tutorial.ResGuessColorReward.Code:type_name -> tutorial.RES_CODE
	301, // 157: tutorial.ResRace.Opponent:type_name -> tutorial.raceopponent
	2,   // 158: tutorial.ResRaceStart.Code:type_name -> tutorial.RES_CODE
	2,   // 159: tutorial.ResRaceReward.Code:type_name -> tutorial.RES_CODE
	139, // 160: tutorial.ResPlayroom.Items:type_name -> tutorial.ItemInfo
	320, // 161: tutorial.ResPlayroom.Opponent:type_name -> tutorial.RoomOpponent
	319, // 162: tutorial.ResPlayroom.Friend:type_name -> tutorial.FriendRoom
	414, // 163: tutorial.ResPlayroom.Playroom:type_name -> tutorial.ResPlayroom.PlayroomEntry
	415, // 164: tutorial.ResPlayroom.Mood:type_name -> tutorial.ResPlayroom.MoodEntry
	139, // 165: tutorial.ResPlayroom.LoseItem:type_name -> tutorial.ItemInfo
	416, // 166: tutorial.ResPlayroom.Physiology:type_name -> tutorial.ResPlayroom.PhysiologyEntry
	417, // 167: tutorial.ResPlayroom.Dress:type_name -> tutorial.ResPlayroom.DressEntry
	418, // 168: tutorial.ResPlayroom.DressSet:type_name -> tutorial.ResPlayroom.DressSetEntry
	419, // 169: tutorial.ReqPlayroomDressSet.DressSet:type_name -> tutorial.ReqPlayroomDressSet.DressSetEntry
	2,   // 170: tutorial.ResPlayroomDressSet.Code:type_name -> tutorial.RES_CODE
	2,   // 171: tutorial.ResPlayroomPetAirSet.Code:type_name -> tutorial.RES_CODE
	2,   // 172: tutorial.ResPlayroomWrokOutline.Code:type_name -> tutorial.RES_CODE
	139, // 173: tutorial.NotifyPlayroomLose.LoseItem:type_name -> tutorial.ItemInfo
	420, // 174: tutorial.NotifyPlayroomMood.Mood:type_name -> tutorial.NotifyPlayroomMood.MoodEntry
	421, // 175: tutorial.NotifyPlayroomMood.Physiology:type_name -> tutorial.NotifyPlayroomMood.PhysiologyEntry
	422, // 176: tutorial.ResPlayroomInfo.Playroom:type_name -> tutorial.ResPlayroomInfo.PlayroomEntry
	423, // 177: tutorial.ResPlayroomInfo.Items:type_name -> tutorial.ResPlayroomInfo.ItemsEntry
	424, // 178: tutorial.ResPlayroomInfo.flip:type_name -> tutorial.ResPlayroomInfo.FlipEntry
	425, // 179: tutorial.ResPlayroomInfo.Emoji:type_name -> tutorial.ResPlayroomInfo.EmojiEntry
	2,   // 180: tutorial.ResPlayroomFlip.Code:type_name -> tutorial.RES_CODE
	2,   // 181: tutorial.ResPlayroomFlipReward.Code:type_name -> tutorial.RES_CODE
	2,   // 182: tutorial.ResPlayroomGame.Code:type_name -> tutorial.RES_CODE
	426, // 183: tutorial.ResPlayroomGame.Items:type_name -> tutorial.ResPlayroomGame.ItemsEntry
	2,   // 184: tutorial.ResPlayroomInteract.Code:type_name -> tutorial.RES_CODE
	427, // 185: tutorial.ReqPlayroomSetRoom.Playroom:type_name -> tutorial.ReqPlayroomSetRoom.PlayroomEntry
	2,   // 186: tutorial.ResPlayroomSetRoom.Code:type_name -> tutorial.RES_CODE
	2,   // 187: tutorial.ResPlayroomSelectReward.Code:type_name -> tutorial.RES_CODE
	2,   // 188: tutorial.ResPlayroomLose.Code:type_name -> tutorial.RES_CODE
	2,   // 189: tutorial.ResPlayroomWork.Code:type_name -> tutorial.RES_CODE
	2,   // 190: tutorial.ResPlayroomRest.Code:type_name -> tutorial.RES_CODE
	2,   // 191: tutorial.ResPlayroomDraw.Code:type_name -> tutorial.RES_CODE
	2,   // 192: tutorial.ResPlayroomChip.Code:type_name -> tutorial.RES_CODE
	2,   // 193: tutorial.ResPlayroomBuyItem.Code:type_name -> tutorial.RES_CODE
	2,   // 194: tutorial.ResPlayroomShop.Code:type_name -> tutorial.RES_CODE
	351, // 195: tutorial.ResFriendTreasure.List:type_name -> tutorial.TreasureInfo
	351, // 196: tutorial.ReqFriendTreasureStart.List:type_name -> tutorial.TreasureInfo
	2,   // 197: tutorial.ResFriendTreasureStart.Code:type_name -> tutorial.RES_CODE
	2,   // 198: tutorial.ResFriendTreasureEnd.Code:type_name -> tutorial.RES_CODE
	2,   // 199: tutorial.ResFriendTreasureFilp.Code:type_name -> tutorial.RES_CODE
	362, // 200: tutorial.ResCollectInfo.Items:type_name -> tutorial.CollectItem
	139, // 201: tutorial.CollectItem.Items:type_name -> tutorial.ItemInfo
	2,   // 202: tutorial.ResCollect.Code:type_name -> tutorial.RES_CODE
	142, // 203: tutorial.ResDailyTask.WeekRewardEntry.value:type_name -> tutorial.DailyWeek
	143, // 204: tutorial.ResDailyTask.DailyTaskEntry.value:type_name -> tutorial.DailyTask
	177, // 205: tutorial.ResLimitEvent.LimitEventListEntry.value:type_name -> tutorial.LimitEvent
	190, // 206: tutorial.ResRank.RankListEntry.value:type_name -> tutorial.ResPlayerSimple
	226, // 207: tutorial.ResMailList.MailListEntry.value:type_name -> tutorial.MailInfo
	235, // 208: tutorial.ResCharge.SpecialShopEntry.value:type_name -> tutorial.ResSpecialShop
	236, // 209: tutorial.ResCharge.ChessShopEntry.value:type_name -> tutorial.ResChessShop
	247, // 210: tutorial.ResEndless.EndlessListEntry.value:type_name -> tutorial.ResEndlessInfo
	191, // 211: tutorial.ResChampshipRank.RankListEntry.value:type_name -> tutorial.ResPlayerRank
	191, // 212: tutorial.ResChampshipPreRank.RankListEntry.value:type_name -> tutorial.ResPlayerRank
	308, // 213: tutorial.ResPlayroom.DressEntry.value:type_name -> tutorial.PlayroomDress
	139, // 214: tutorial.ResPlayroomInfo.ItemsEntry.value:type_name -> tutorial.ItemInfo
	139, // 215: tutorial.ResPlayroomGame.ItemsEntry.value:type_name -> tutorial.ItemInfo
	216, // [216:216] is the sub-list for method output_type
	216, // [216:216] is the sub-list for method input_type
	216, // [216:216] is the sub-list for extension type_name
	216, // [216:216] is the sub-list for extension extendee
	0,   // [0:216] is the sub-list for field type_name
}

func init() { file_proto_Gameapi_proto_init() }
func file_proto_Gameapi_proto_init() {
	if File_proto_Gameapi_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_proto_Gameapi_proto_rawDesc,
			NumEnums:      4,
			NumMessages:   424,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_proto_Gameapi_proto_goTypes,
		DependencyIndexes: file_proto_Gameapi_proto_depIdxs,
		EnumInfos:         file_proto_Gameapi_proto_enumTypes,
		MessageInfos:      file_proto_Gameapi_proto_msgTypes,
	}.Build()
	File_proto_Gameapi_proto = out.File
	file_proto_Gameapi_proto_rawDesc = nil
	file_proto_Gameapi_proto_goTypes = nil
	file_proto_Gameapi_proto_depIdxs = nil
}
