// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.26.0
// 	protoc        v3.9.1
// source: pokerbull.proto

package types

import (
	reflect "reflect"
	sync "sync"

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

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 PokerBull struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	GameId      string      `protobuf:"bytes,1,opt,name=gameId,proto3" json:"gameId,omitempty"`           //默认是由创建这局游戏的txHash作为gameId
	Status      int32       `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"`          // Start 1 -> Continue 2 -> Quit 3
	StartTime   int64       `protobuf:"varint,3,opt,name=startTime,proto3" json:"startTime,omitempty"`    //开始时间
	StartTxHash string      `protobuf:"bytes,4,opt,name=startTxHash,proto3" json:"startTxHash,omitempty"` //游戏启动交易hash
	Value       int64       `protobuf:"varint,5,opt,name=value,proto3" json:"value,omitempty"`            //赌注
	Poker       *PBPoker    `protobuf:"bytes,6,opt,name=poker,proto3" json:"poker,omitempty"`             //扑克牌
	Players     []*PBPlayer `protobuf:"bytes,7,rep,name=players,proto3" json:"players,omitempty"`         //玩家历史牌和结果集
	PlayerNum   int32       `protobuf:"varint,8,opt,name=playerNum,proto3" json:"playerNum,omitempty"`    //玩家数
	Results     []*PBResult `protobuf:"bytes,9,rep,name=results,proto3" json:"results,omitempty"`         //游戏结果集
	Index       int64       `protobuf:"varint,10,opt,name=index,proto3" json:"index,omitempty"`           //索引
	PrevIndex   int64       `protobuf:"varint,11,opt,name=prevIndex,proto3" json:"prevIndex,omitempty"`   //上级索引
	QuitTime    int64       `protobuf:"varint,12,opt,name=quitTime,proto3" json:"quitTime,omitempty"`     //游戏结束时间
	QuitTxHash  string      `protobuf:"bytes,13,opt,name=quitTxHash,proto3" json:"quitTxHash,omitempty"`  //游戏结束交易hash
	DealerAddr  string      `protobuf:"bytes,14,opt,name=dealerAddr,proto3" json:"dealerAddr,omitempty"`  //下局庄家地址
	IsWaiting   bool        `protobuf:"varint,15,opt,name=isWaiting,proto3" json:"isWaiting,omitempty"`   //游戏是否处于等待状态
	PreStatus   int32       `protobuf:"varint,16,opt,name=preStatus,proto3" json:"preStatus,omitempty"`   //上一index的状态
	Round       int32       `protobuf:"varint,17,opt,name=round,proto3" json:"round,omitempty"`           //当前游戏回合数
}

func (x *PokerBull) Reset() {
	*x = PokerBull{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pokerbull_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PokerBull) ProtoMessage() {}

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

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

func (x *PokerBull) GetGameId() string {
	if x != nil {
		return x.GameId
	}
	return ""
}

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

func (x *PokerBull) GetStartTime() int64 {
	if x != nil {
		return x.StartTime
	}
	return 0
}

func (x *PokerBull) GetStartTxHash() string {
	if x != nil {
		return x.StartTxHash
	}
	return ""
}

func (x *PokerBull) GetValue() int64 {
	if x != nil {
		return x.Value
	}
	return 0
}

func (x *PokerBull) GetPoker() *PBPoker {
	if x != nil {
		return x.Poker
	}
	return nil
}

func (x *PokerBull) GetPlayers() []*PBPlayer {
	if x != nil {
		return x.Players
	}
	return nil
}

func (x *PokerBull) GetPlayerNum() int32 {
	if x != nil {
		return x.PlayerNum
	}
	return 0
}

func (x *PokerBull) GetResults() []*PBResult {
	if x != nil {
		return x.Results
	}
	return nil
}

func (x *PokerBull) GetIndex() int64 {
	if x != nil {
		return x.Index
	}
	return 0
}

func (x *PokerBull) GetPrevIndex() int64 {
	if x != nil {
		return x.PrevIndex
	}
	return 0
}

func (x *PokerBull) GetQuitTime() int64 {
	if x != nil {
		return x.QuitTime
	}
	return 0
}

func (x *PokerBull) GetQuitTxHash() string {
	if x != nil {
		return x.QuitTxHash
	}
	return ""
}

func (x *PokerBull) GetDealerAddr() string {
	if x != nil {
		return x.DealerAddr
	}
	return ""
}

func (x *PokerBull) GetIsWaiting() bool {
	if x != nil {
		return x.IsWaiting
	}
	return false
}

func (x *PokerBull) GetPreStatus() int32 {
	if x != nil {
		return x.PreStatus
	}
	return 0
}

func (x *PokerBull) GetRound() int32 {
	if x != nil {
		return x.Round
	}
	return 0
}

//一把牌
type PBHand struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Cards    []int32 `protobuf:"varint,1,rep,packed,name=cards,proto3" json:"cards,omitempty"` //一把牌，五张
	Result   int32   `protobuf:"varint,2,opt,name=result,proto3" json:"result,omitempty"`      //斗牛结果 (没牛：0， 牛1-9：1-9， 牛牛：10)
	Address  string  `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"`     //玩家地址
	IsWin    bool    `protobuf:"varint,4,opt,name=isWin,proto3" json:"isWin,omitempty"`        //是否赢庄家
	Leverage int32   `protobuf:"varint,5,opt,name=leverage,proto3" json:"leverage,omitempty"`  //赌注倍数
}

func (x *PBHand) Reset() {
	*x = PBHand{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pokerbull_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PBHand) ProtoMessage() {}

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

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

func (x *PBHand) GetCards() []int32 {
	if x != nil {
		return x.Cards
	}
	return nil
}

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

func (x *PBHand) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

func (x *PBHand) GetIsWin() bool {
	if x != nil {
		return x.IsWin
	}
	return false
}

func (x *PBHand) GetLeverage() int32 {
	if x != nil {
		return x.Leverage
	}
	return 0
}

//玩家
type PBPlayer struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Hands   []*PBHand `protobuf:"bytes,1,rep,name=hands,proto3" json:"hands,omitempty"`     //历史发牌和斗牛结果
	Address string    `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` //玩家地址
	TxHash  int64     `protobuf:"varint,3,opt,name=txHash,proto3" json:"txHash,omitempty"`  //发牌随机数因子txhash的整数格式
	Ready   bool      `protobuf:"varint,4,opt,name=ready,proto3" json:"ready,omitempty"`    // continue状态下，是否ready
}

func (x *PBPlayer) Reset() {
	*x = PBPlayer{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pokerbull_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PBPlayer) ProtoMessage() {}

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

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

func (x *PBPlayer) GetHands() []*PBHand {
	if x != nil {
		return x.Hands
	}
	return nil
}

func (x *PBPlayer) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

func (x *PBPlayer) GetTxHash() int64 {
	if x != nil {
		return x.TxHash
	}
	return 0
}

func (x *PBPlayer) GetReady() bool {
	if x != nil {
		return x.Ready
	}
	return false
}

//本局游戏结果
type PBResult struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Hands          []*PBHand `protobuf:"bytes,1,rep,name=hands,proto3" json:"hands,omitempty"`                    //本局所有玩家的牌和结果，按牛大小升序排序
	Winner         string    `protobuf:"bytes,2,opt,name=winner,proto3" json:"winner,omitempty"`                  //赢家地址
	Leverage       int32     `protobuf:"varint,3,opt,name=leverage,proto3" json:"leverage,omitempty"`             //赢得赌注倍数
	Dealer         string    `protobuf:"bytes,4,opt,name=dealer,proto3" json:"dealer,omitempty"`                  //庄家
	DealerLeverage int32     `protobuf:"varint,5,opt,name=dealerLeverage,proto3" json:"dealerLeverage,omitempty"` //庄家赌注倍数
}

func (x *PBResult) Reset() {
	*x = PBResult{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pokerbull_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PBResult) ProtoMessage() {}

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

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

func (x *PBResult) GetHands() []*PBHand {
	if x != nil {
		return x.Hands
	}
	return nil
}

func (x *PBResult) GetWinner() string {
	if x != nil {
		return x.Winner
	}
	return ""
}

func (x *PBResult) GetLeverage() int32 {
	if x != nil {
		return x.Leverage
	}
	return 0
}

func (x *PBResult) GetDealer() string {
	if x != nil {
		return x.Dealer
	}
	return ""
}

func (x *PBResult) GetDealerLeverage() int32 {
	if x != nil {
		return x.DealerLeverage
	}
	return 0
}

//扑克牌
type PBPoker struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Cards   []int32 `protobuf:"varint,1,rep,packed,name=cards,proto3" json:"cards,omitempty"` // 52张牌
	Pointer int32   `protobuf:"varint,2,opt,name=pointer,proto3" json:"pointer,omitempty"`    //已发牌偏移
}

func (x *PBPoker) Reset() {
	*x = PBPoker{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pokerbull_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PBPoker) ProtoMessage() {}

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

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

func (x *PBPoker) GetCards() []int32 {
	if x != nil {
		return x.Cards
	}
	return nil
}

func (x *PBPoker) GetPointer() int32 {
	if x != nil {
		return x.Pointer
	}
	return 0
}

//游戏状态
type PBGameAction struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Value:
	//	*PBGameAction_Start
	//	*PBGameAction_Continue
	//	*PBGameAction_Quit
	//	*PBGameAction_Query
	//	*PBGameAction_Play
	Value isPBGameAction_Value `protobuf_oneof:"value"`
	Ty    int32                `protobuf:"varint,10,opt,name=ty,proto3" json:"ty,omitempty"`
}

func (x *PBGameAction) Reset() {
	*x = PBGameAction{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pokerbull_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PBGameAction) ProtoMessage() {}

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

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

func (m *PBGameAction) GetValue() isPBGameAction_Value {
	if m != nil {
		return m.Value
	}
	return nil
}

func (x *PBGameAction) GetStart() *PBGameStart {
	if x, ok := x.GetValue().(*PBGameAction_Start); ok {
		return x.Start
	}
	return nil
}

func (x *PBGameAction) GetContinue() *PBGameContinue {
	if x, ok := x.GetValue().(*PBGameAction_Continue); ok {
		return x.Continue
	}
	return nil
}

func (x *PBGameAction) GetQuit() *PBGameQuit {
	if x, ok := x.GetValue().(*PBGameAction_Quit); ok {
		return x.Quit
	}
	return nil
}

func (x *PBGameAction) GetQuery() *PBGameQuery {
	if x, ok := x.GetValue().(*PBGameAction_Query); ok {
		return x.Query
	}
	return nil
}

func (x *PBGameAction) GetPlay() *PBGamePlay {
	if x, ok := x.GetValue().(*PBGameAction_Play); ok {
		return x.Play
	}
	return nil
}

func (x *PBGameAction) GetTy() int32 {
	if x != nil {
		return x.Ty
	}
	return 0
}

type isPBGameAction_Value interface {
	isPBGameAction_Value()
}

type PBGameAction_Start struct {
	Start *PBGameStart `protobuf:"bytes,1,opt,name=start,proto3,oneof"`
}

type PBGameAction_Continue struct {
	Continue *PBGameContinue `protobuf:"bytes,2,opt,name=continue,proto3,oneof"`
}

type PBGameAction_Quit struct {
	Quit *PBGameQuit `protobuf:"bytes,3,opt,name=quit,proto3,oneof"`
}

type PBGameAction_Query struct {
	Query *PBGameQuery `protobuf:"bytes,4,opt,name=query,proto3,oneof"`
}

type PBGameAction_Play struct {
	Play *PBGamePlay `protobuf:"bytes,5,opt,name=play,proto3,oneof"`
}

func (*PBGameAction_Start) isPBGameAction_Value() {}

func (*PBGameAction_Continue) isPBGameAction_Value() {}

func (*PBGameAction_Quit) isPBGameAction_Value() {}

func (*PBGameAction_Query) isPBGameAction_Value() {}

func (*PBGameAction_Play) isPBGameAction_Value() {}

//游戏启动
type PBGameStart struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Value     int64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"`
	PlayerNum int32 `protobuf:"varint,2,opt,name=playerNum,proto3" json:"playerNum,omitempty"`
}

func (x *PBGameStart) Reset() {
	*x = PBGameStart{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pokerbull_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PBGameStart) ProtoMessage() {}

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

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

func (x *PBGameStart) GetValue() int64 {
	if x != nil {
		return x.Value
	}
	return 0
}

func (x *PBGameStart) GetPlayerNum() int32 {
	if x != nil {
		return x.PlayerNum
	}
	return 0
}

//游戏继续
type PBGameContinue struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

func (x *PBGameContinue) Reset() {
	*x = PBGameContinue{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pokerbull_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PBGameContinue) ProtoMessage() {}

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

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

func (x *PBGameContinue) GetGameId() string {
	if x != nil {
		return x.GameId
	}
	return ""
}

//游戏结束
type PBGameQuit struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

func (x *PBGameQuit) Reset() {
	*x = PBGameQuit{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pokerbull_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PBGameQuit) ProtoMessage() {}

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

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

func (x *PBGameQuit) GetGameId() string {
	if x != nil {
		return x.GameId
	}
	return ""
}

//查询游戏结果
type PBGameQuery struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

func (x *PBGameQuery) Reset() {
	*x = PBGameQuery{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pokerbull_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PBGameQuery) ProtoMessage() {}

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

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

func (x *PBGameQuery) GetGameId() string {
	if x != nil {
		return x.GameId
	}
	return ""
}

//已匹配玩家直接游戏
type PBGamePlay struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	GameId  string   `protobuf:"bytes,1,opt,name=gameId,proto3" json:"gameId,omitempty"`   //游戏id
	Round   int32    `protobuf:"varint,2,opt,name=round,proto3" json:"round,omitempty"`    //当前游戏回合数
	Value   int64    `protobuf:"varint,3,opt,name=value,proto3" json:"value,omitempty"`    //当前游戏赌注
	Address []string `protobuf:"bytes,4,rep,name=address,proto3" json:"address,omitempty"` //玩家地址
}

func (x *PBGamePlay) Reset() {
	*x = PBGamePlay{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pokerbull_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PBGamePlay) ProtoMessage() {}

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

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

func (x *PBGamePlay) GetGameId() string {
	if x != nil {
		return x.GameId
	}
	return ""
}

func (x *PBGamePlay) GetRound() int32 {
	if x != nil {
		return x.Round
	}
	return 0
}

func (x *PBGamePlay) GetValue() int64 {
	if x != nil {
		return x.Value
	}
	return 0
}

func (x *PBGamePlay) GetAddress() []string {
	if x != nil {
		return x.Address
	}
	return nil
}

//根据状态和游戏人数查找
type QueryPBGameListByStatusAndPlayerNum struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status    int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"`
	PlayerNum int32 `protobuf:"varint,2,opt,name=playerNum,proto3" json:"playerNum,omitempty"`
	Index     int64 `protobuf:"varint,3,opt,name=index,proto3" json:"index,omitempty"`
}

func (x *QueryPBGameListByStatusAndPlayerNum) Reset() {
	*x = QueryPBGameListByStatusAndPlayerNum{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pokerbull_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*QueryPBGameListByStatusAndPlayerNum) ProtoMessage() {}

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

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

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

func (x *QueryPBGameListByStatusAndPlayerNum) GetPlayerNum() int32 {
	if x != nil {
		return x.PlayerNum
	}
	return 0
}

func (x *QueryPBGameListByStatusAndPlayerNum) GetIndex() int64 {
	if x != nil {
		return x.Index
	}
	return 0
}

// 索引value值
type PBGameRecord struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	GameId string `protobuf:"bytes,1,opt,name=gameId,proto3" json:"gameId,omitempty"`
	Status int32  `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"`
	Index  int64  `protobuf:"varint,3,opt,name=index,proto3" json:"index,omitempty"`
}

func (x *PBGameRecord) Reset() {
	*x = PBGameRecord{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pokerbull_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PBGameRecord) ProtoMessage() {}

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

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

func (x *PBGameRecord) GetGameId() string {
	if x != nil {
		return x.GameId
	}
	return ""
}

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

func (x *PBGameRecord) GetIndex() int64 {
	if x != nil {
		return x.Index
	}
	return 0
}

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

	GameId string `protobuf:"bytes,1,opt,name=gameId,proto3" json:"gameId,omitempty"`
	Index  int64  `protobuf:"varint,2,opt,name=index,proto3" json:"index,omitempty"`
}

func (x *PBGameIndexRecord) Reset() {
	*x = PBGameIndexRecord{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pokerbull_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PBGameIndexRecord) ProtoMessage() {}

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

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

func (x *PBGameIndexRecord) GetGameId() string {
	if x != nil {
		return x.GameId
	}
	return ""
}

func (x *PBGameIndexRecord) GetIndex() int64 {
	if x != nil {
		return x.Index
	}
	return 0
}

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

	Records []*PBGameRecord `protobuf:"bytes,1,rep,name=records,proto3" json:"records,omitempty"`
}

func (x *PBGameRecords) Reset() {
	*x = PBGameRecords{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pokerbull_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PBGameRecords) ProtoMessage() {}

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

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

func (x *PBGameRecords) GetRecords() []*PBGameRecord {
	if x != nil {
		return x.Records
	}
	return nil
}

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

	Records []*PBGameIndexRecord `protobuf:"bytes,1,rep,name=records,proto3" json:"records,omitempty"`
}

func (x *PBGameIndexRecords) Reset() {
	*x = PBGameIndexRecords{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pokerbull_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PBGameIndexRecords) ProtoMessage() {}

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

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

func (x *PBGameIndexRecords) GetRecords() []*PBGameIndexRecord {
	if x != nil {
		return x.Records
	}
	return nil
}

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

	GameId string `protobuf:"bytes,1,opt,name=gameId,proto3" json:"gameId,omitempty"`
	Addr   string `protobuf:"bytes,2,opt,name=addr,proto3" json:"addr,omitempty"`
	Status int32  `protobuf:"varint,3,opt,name=status,proto3" json:"status,omitempty"`
	Index  int64  `protobuf:"varint,4,opt,name=index,proto3" json:"index,omitempty"`
}

func (x *QueryPBGameInfo) Reset() {
	*x = QueryPBGameInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pokerbull_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*QueryPBGameInfo) ProtoMessage() {}

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

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

func (x *QueryPBGameInfo) GetGameId() string {
	if x != nil {
		return x.GameId
	}
	return ""
}

func (x *QueryPBGameInfo) GetAddr() string {
	if x != nil {
		return x.Addr
	}
	return ""
}

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

func (x *QueryPBGameInfo) GetIndex() int64 {
	if x != nil {
		return x.Index
	}
	return 0
}

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

	Game *PokerBull `protobuf:"bytes,1,opt,name=game,proto3" json:"game,omitempty"`
}

func (x *ReplyPBGame) Reset() {
	*x = ReplyPBGame{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pokerbull_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ReplyPBGame) ProtoMessage() {}

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

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

func (x *ReplyPBGame) GetGame() *PokerBull {
	if x != nil {
		return x.Game
	}
	return nil
}

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

	GameIds []string `protobuf:"bytes,1,rep,name=gameIds,proto3" json:"gameIds,omitempty"`
}

func (x *QueryPBGameInfos) Reset() {
	*x = QueryPBGameInfos{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pokerbull_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*QueryPBGameInfos) ProtoMessage() {}

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

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

func (x *QueryPBGameInfos) GetGameIds() []string {
	if x != nil {
		return x.GameIds
	}
	return nil
}

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

	Games []*PokerBull `protobuf:"bytes,1,rep,name=games,proto3" json:"games,omitempty"`
}

func (x *ReplyPBGameList) Reset() {
	*x = ReplyPBGameList{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pokerbull_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ReplyPBGameList) ProtoMessage() {}

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

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

func (x *ReplyPBGameList) GetGames() []*PokerBull {
	if x != nil {
		return x.Games
	}
	return nil
}

// QueryPBGameByRound 根据gameId和回合数查询某回合的游戏结果
type QueryPBGameByRound struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	GameId string `protobuf:"bytes,1,opt,name=gameId,proto3" json:"gameId,omitempty"`
	Round  int32  `protobuf:"varint,2,opt,name=round,proto3" json:"round,omitempty"`
}

func (x *QueryPBGameByRound) Reset() {
	*x = QueryPBGameByRound{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pokerbull_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*QueryPBGameByRound) ProtoMessage() {}

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

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

func (x *QueryPBGameByRound) GetGameId() string {
	if x != nil {
		return x.GameId
	}
	return ""
}

func (x *QueryPBGameByRound) GetRound() int32 {
	if x != nil {
		return x.Round
	}
	return 0
}

// ReplyPBGameByRound 某一回合游戏结果
type ReplyPBGameByRound struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	GameId    string      `protobuf:"bytes,1,opt,name=gameId,proto3" json:"gameId,omitempty"`
	Status    int32       `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"`
	Result    *PBResult   `protobuf:"bytes,3,opt,name=result,proto3" json:"result,omitempty"`
	IsWaiting bool        `protobuf:"varint,4,opt,name=isWaiting,proto3" json:"isWaiting,omitempty"`
	Value     int64       `protobuf:"varint,5,opt,name=value,proto3" json:"value,omitempty"`
	Players   []*PBPlayer `protobuf:"bytes,6,rep,name=players,proto3" json:"players,omitempty"`
	Return    int64       `protobuf:"varint,7,opt,name=return,proto3" json:"return,omitempty"`
}

func (x *ReplyPBGameByRound) Reset() {
	*x = ReplyPBGameByRound{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pokerbull_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ReplyPBGameByRound) ProtoMessage() {}

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

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

func (x *ReplyPBGameByRound) GetGameId() string {
	if x != nil {
		return x.GameId
	}
	return ""
}

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

func (x *ReplyPBGameByRound) GetResult() *PBResult {
	if x != nil {
		return x.Result
	}
	return nil
}

func (x *ReplyPBGameByRound) GetIsWaiting() bool {
	if x != nil {
		return x.IsWaiting
	}
	return false
}

func (x *ReplyPBGameByRound) GetValue() int64 {
	if x != nil {
		return x.Value
	}
	return 0
}

func (x *ReplyPBGameByRound) GetPlayers() []*PBPlayer {
	if x != nil {
		return x.Players
	}
	return nil
}

func (x *ReplyPBGameByRound) GetReturn() int64 {
	if x != nil {
		return x.Return
	}
	return 0
}

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

	GameId    string   `protobuf:"bytes,1,opt,name=gameId,proto3" json:"gameId,omitempty"`
	Status    int32    `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"`
	Addr      string   `protobuf:"bytes,3,opt,name=addr,proto3" json:"addr,omitempty"`
	Index     int64    `protobuf:"varint,4,opt,name=index,proto3" json:"index,omitempty"`
	PrevIndex int64    `protobuf:"varint,5,opt,name=prevIndex,proto3" json:"prevIndex,omitempty"`
	PlayerNum int32    `protobuf:"varint,6,opt,name=playerNum,proto3" json:"playerNum,omitempty"`
	Value     int64    `protobuf:"varint,7,opt,name=value,proto3" json:"value,omitempty"`
	IsWaiting bool     `protobuf:"varint,8,opt,name=isWaiting,proto3" json:"isWaiting,omitempty"`
	Players   []string `protobuf:"bytes,9,rep,name=players,proto3" json:"players,omitempty"`
	PreStatus int32    `protobuf:"varint,10,opt,name=preStatus,proto3" json:"preStatus,omitempty"`
	Round     int32    `protobuf:"varint,11,opt,name=round,proto3" json:"round,omitempty"`
}

func (x *ReceiptPBGame) Reset() {
	*x = ReceiptPBGame{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pokerbull_proto_msgTypes[22]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ReceiptPBGame) ProtoMessage() {}

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

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

func (x *ReceiptPBGame) GetGameId() string {
	if x != nil {
		return x.GameId
	}
	return ""
}

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

func (x *ReceiptPBGame) GetAddr() string {
	if x != nil {
		return x.Addr
	}
	return ""
}

func (x *ReceiptPBGame) GetIndex() int64 {
	if x != nil {
		return x.Index
	}
	return 0
}

func (x *ReceiptPBGame) GetPrevIndex() int64 {
	if x != nil {
		return x.PrevIndex
	}
	return 0
}

func (x *ReceiptPBGame) GetPlayerNum() int32 {
	if x != nil {
		return x.PlayerNum
	}
	return 0
}

func (x *ReceiptPBGame) GetValue() int64 {
	if x != nil {
		return x.Value
	}
	return 0
}

func (x *ReceiptPBGame) GetIsWaiting() bool {
	if x != nil {
		return x.IsWaiting
	}
	return false
}

func (x *ReceiptPBGame) GetPlayers() []string {
	if x != nil {
		return x.Players
	}
	return nil
}

func (x *ReceiptPBGame) GetPreStatus() int32 {
	if x != nil {
		return x.PreStatus
	}
	return 0
}

func (x *ReceiptPBGame) GetRound() int32 {
	if x != nil {
		return x.Round
	}
	return 0
}

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

	Value     int64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"`
	PlayerNum int32 `protobuf:"varint,2,opt,name=playerNum,proto3" json:"playerNum,omitempty"`
	Fee       int64 `protobuf:"varint,3,opt,name=fee,proto3" json:"fee,omitempty"`
}

func (x *PBStartTxReq) Reset() {
	*x = PBStartTxReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pokerbull_proto_msgTypes[23]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PBStartTxReq) ProtoMessage() {}

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

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

func (x *PBStartTxReq) GetValue() int64 {
	if x != nil {
		return x.Value
	}
	return 0
}

func (x *PBStartTxReq) GetPlayerNum() int32 {
	if x != nil {
		return x.PlayerNum
	}
	return 0
}

func (x *PBStartTxReq) GetFee() int64 {
	if x != nil {
		return x.Fee
	}
	return 0
}

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

	GameId string `protobuf:"bytes,1,opt,name=gameId,proto3" json:"gameId,omitempty"`
	Fee    int64  `protobuf:"varint,2,opt,name=fee,proto3" json:"fee,omitempty"`
}

func (x *PBContinueTxReq) Reset() {
	*x = PBContinueTxReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pokerbull_proto_msgTypes[24]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PBContinueTxReq) ProtoMessage() {}

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

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

func (x *PBContinueTxReq) GetGameId() string {
	if x != nil {
		return x.GameId
	}
	return ""
}

func (x *PBContinueTxReq) GetFee() int64 {
	if x != nil {
		return x.Fee
	}
	return 0
}

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

	GameId string `protobuf:"bytes,1,opt,name=gameId,proto3" json:"gameId,omitempty"`
	Fee    int64  `protobuf:"varint,2,opt,name=fee,proto3" json:"fee,omitempty"`
}

func (x *PBQuitTxReq) Reset() {
	*x = PBQuitTxReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pokerbull_proto_msgTypes[25]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PBQuitTxReq) ProtoMessage() {}

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

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

func (x *PBQuitTxReq) GetGameId() string {
	if x != nil {
		return x.GameId
	}
	return ""
}

func (x *PBQuitTxReq) GetFee() int64 {
	if x != nil {
		return x.Fee
	}
	return 0
}

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

	GameId string `protobuf:"bytes,1,opt,name=gameId,proto3" json:"gameId,omitempty"`
	Fee    int64  `protobuf:"varint,2,opt,name=fee,proto3" json:"fee,omitempty"`
}

func (x *PBQueryReq) Reset() {
	*x = PBQueryReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pokerbull_proto_msgTypes[26]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PBQueryReq) ProtoMessage() {}

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

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

func (x *PBQueryReq) GetGameId() string {
	if x != nil {
		return x.GameId
	}
	return ""
}

func (x *PBQueryReq) GetFee() int64 {
	if x != nil {
		return x.Fee
	}
	return 0
}

var File_pokerbull_proto protoreflect.FileDescriptor

var file_pokerbull_proto_rawDesc = []byte{
	0x0a, 0x0f, 0x70, 0x6f, 0x6b, 0x65, 0x72, 0x62, 0x75, 0x6c, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x12, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x22, 0x8d, 0x04, 0x0a, 0x09, 0x50, 0x6f, 0x6b,
	0x65, 0x72, 0x42, 0x75, 0x6c, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x16,
	0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06,
	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54,
	0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74,
	0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x78, 0x48,
	0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74,
	0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x24, 0x0a, 0x05,
	0x70, 0x6f, 0x6b, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x50, 0x42, 0x50, 0x6f, 0x6b, 0x65, 0x72, 0x52, 0x05, 0x70, 0x6f, 0x6b,
	0x65, 0x72, 0x12, 0x29, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x42, 0x50, 0x6c,
	0x61, 0x79, 0x65, 0x72, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x1c, 0x0a,
	0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x29, 0x0a, 0x07, 0x72,
	0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x42, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72,
	0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18,
	0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09,
	0x70, 0x72, 0x65, 0x76, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x09, 0x70, 0x72, 0x65, 0x76, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75,
	0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x71, 0x75,
	0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x71, 0x75, 0x69, 0x74, 0x54, 0x78,
	0x48, 0x61, 0x73, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x71, 0x75, 0x69, 0x74,
	0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x61, 0x6c, 0x65, 0x72,
	0x41, 0x64, 0x64, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x61, 0x6c,
	0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x57, 0x61, 0x69, 0x74,
	0x69, 0x6e, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x57, 0x61, 0x69,
	0x74, 0x69, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x82, 0x01, 0x0a, 0x06, 0x50, 0x42, 0x48,
	0x61, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x61, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x05, 0x52, 0x05, 0x63, 0x61, 0x72, 0x64, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73,
	0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c,
	0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69,
	0x73, 0x57, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x57, 0x69,
	0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x08, 0x6c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x22, 0x77, 0x0a,
	0x08, 0x50, 0x42, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x05, 0x68, 0x61, 0x6e,
	0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x50, 0x42, 0x48, 0x61, 0x6e, 0x64, 0x52, 0x05, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x12, 0x18,
	0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x78, 0x48, 0x61,
	0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68,
	0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x22, 0xa3, 0x01, 0x0a, 0x08, 0x50, 0x42, 0x52, 0x65, 0x73,
	0x75, 0x6c, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x42, 0x48, 0x61, 0x6e,
	0x64, 0x52, 0x05, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x69, 0x6e, 0x6e,
	0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72,
	0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x08, 0x6c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06,
	0x64, 0x65, 0x61, 0x6c, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65,
	0x61, 0x6c, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x65, 0x61, 0x6c, 0x65, 0x72, 0x4c, 0x65,
	0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x64, 0x65,
	0x61, 0x6c, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x22, 0x39, 0x0a, 0x07,
	0x50, 0x42, 0x50, 0x6f, 0x6b, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x61, 0x72, 0x64, 0x73,
	0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x63, 0x61, 0x72, 0x64, 0x73, 0x12, 0x18, 0x0a,
	0x07, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07,
	0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x86, 0x02, 0x0a, 0x0c, 0x50, 0x42, 0x47, 0x61,
	0x6d, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72,
	0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x50, 0x42, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x00, 0x52, 0x05, 0x73,
	0x74, 0x61, 0x72, 0x74, 0x12, 0x33, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50,
	0x42, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x48, 0x00, 0x52,
	0x08, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x71, 0x75, 0x69,
	0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x50, 0x42, 0x47, 0x61, 0x6d, 0x65, 0x51, 0x75, 0x69, 0x74, 0x48, 0x00, 0x52, 0x04, 0x71, 0x75,
	0x69, 0x74, 0x12, 0x2a, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x42, 0x47, 0x61, 0x6d, 0x65,
	0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x00, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x27,
	0x0a, 0x04, 0x70, 0x6c, 0x61, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x42, 0x47, 0x61, 0x6d, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x48,
	0x00, 0x52, 0x04, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x79, 0x18, 0x0a, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x02, 0x74, 0x79, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x22, 0x41, 0x0a, 0x0b, 0x50, 0x42, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12,
	0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e,
	0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72,
	0x4e, 0x75, 0x6d, 0x22, 0x28, 0x0a, 0x0e, 0x50, 0x42, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x6e,
	0x74, 0x69, 0x6e, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x22, 0x24, 0x0a,
	0x0a, 0x50, 0x42, 0x47, 0x61, 0x6d, 0x65, 0x51, 0x75, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x67,
	0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x61, 0x6d,
	0x65, 0x49, 0x64, 0x22, 0x25, 0x0a, 0x0b, 0x50, 0x42, 0x47, 0x61, 0x6d, 0x65, 0x51, 0x75, 0x65,
	0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x22, 0x6a, 0x0a, 0x0a, 0x50, 0x42,
	0x47, 0x61, 0x6d, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x61, 0x6d, 0x65,
	0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x64,
	0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07,
	0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x61,
	0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x71, 0x0a, 0x23, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50,
	0x42, 0x47, 0x61, 0x6d, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x41, 0x6e, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 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, 0x1c, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e,
	0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72,
	0x4e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x54, 0x0a, 0x0c, 0x50, 0x42, 0x47,
	0x61, 0x6d, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x61, 0x6d,
	0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49,
	0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64,
	0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22,
	0x41, 0x0a, 0x11, 0x50, 0x42, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65,
	0x63, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05,
	0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x69, 0x6e, 0x64,
	0x65, 0x78, 0x22, 0x3e, 0x0a, 0x0d, 0x50, 0x42, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x63, 0x6f,
	0x72, 0x64, 0x73, 0x12, 0x2d, 0x0a, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x01,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x42, 0x47,
	0x61, 0x6d, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72,
	0x64, 0x73, 0x22, 0x48, 0x0a, 0x12, 0x50, 0x42, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x64, 0x65,
	0x78, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x72, 0x65, 0x63, 0x6f,
	0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x79, 0x70, 0x65,
	0x73, 0x2e, 0x50, 0x42, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x63,
	0x6f, 0x72, 0x64, 0x52, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x22, 0x6b, 0x0a, 0x0f,
	0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x42, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12,
	0x16, 0x0a, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64, 0x72, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x33, 0x0a, 0x0b, 0x52, 0x65, 0x70,
	0x6c, 0x79, 0x50, 0x42, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x04, 0x67, 0x61, 0x6d, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50,
	0x6f, 0x6b, 0x65, 0x72, 0x42, 0x75, 0x6c, 0x6c, 0x52, 0x04, 0x67, 0x61, 0x6d, 0x65, 0x22, 0x2c,
	0x0a, 0x10, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x42, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66,
	0x6f, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20,
	0x03, 0x28, 0x09, 0x52, 0x07, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x73, 0x22, 0x39, 0x0a, 0x0f,
	0x52, 0x65, 0x70, 0x6c, 0x79, 0x50, 0x42, 0x47, 0x61, 0x6d, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12,
	0x26, 0x0a, 0x05, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10,
	0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x6f, 0x6b, 0x65, 0x72, 0x42, 0x75, 0x6c, 0x6c,
	0x52, 0x05, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x42, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79,
	0x50, 0x42, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x79, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x16, 0x0a,
	0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67,
	0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0xe4, 0x01, 0x0a, 0x12,
	0x52, 0x65, 0x70, 0x6c, 0x79, 0x50, 0x42, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x79, 0x52, 0x6f, 0x75,
	0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x12, 0x27, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x42, 0x52, 0x65, 0x73,
	0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x69,
	0x73, 0x57, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09,
	0x69, 0x73, 0x57, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12,
	0x29, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x0f, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x42, 0x50, 0x6c, 0x61, 0x79, 0x65,
	0x72, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65,
	0x74, 0x75, 0x72, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x72, 0x65, 0x74, 0x75,
	0x72, 0x6e, 0x22, 0xa7, 0x02, 0x0a, 0x0d, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x50, 0x42,
	0x47, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06,
	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65,
	0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c,
	0x0a, 0x09, 0x70, 0x72, 0x65, 0x76, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x09, 0x70, 0x72, 0x65, 0x76, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09,
	0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
	0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x57, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x57, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x18,
	0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52,
	0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x72, 0x65,
	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18,
	0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x54, 0x0a, 0x0c,
	0x50, 0x42, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x78, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d,
	0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x66,
	0x65, 0x65, 0x22, 0x3b, 0x0a, 0x0f, 0x50, 0x42, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65,
	0x54, 0x78, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a,
	0x03, 0x66, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x66, 0x65, 0x65, 0x22,
	0x37, 0x0a, 0x0b, 0x50, 0x42, 0x51, 0x75, 0x69, 0x74, 0x54, 0x78, 0x52, 0x65, 0x71, 0x12, 0x16,
	0x0a, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x03, 0x66, 0x65, 0x65, 0x22, 0x36, 0x0a, 0x0a, 0x50, 0x42, 0x51, 0x75,
	0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x10,
	0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x66, 0x65, 0x65,
	0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2e, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_pokerbull_proto_rawDescOnce sync.Once
	file_pokerbull_proto_rawDescData = file_pokerbull_proto_rawDesc
)

func file_pokerbull_proto_rawDescGZIP() []byte {
	file_pokerbull_proto_rawDescOnce.Do(func() {
		file_pokerbull_proto_rawDescData = protoimpl.X.CompressGZIP(file_pokerbull_proto_rawDescData)
	})
	return file_pokerbull_proto_rawDescData
}

var file_pokerbull_proto_msgTypes = make([]protoimpl.MessageInfo, 27)
var file_pokerbull_proto_goTypes = []interface{}{
	(*PokerBull)(nil),                           // 0: types.PokerBull
	(*PBHand)(nil),                              // 1: types.PBHand
	(*PBPlayer)(nil),                            // 2: types.PBPlayer
	(*PBResult)(nil),                            // 3: types.PBResult
	(*PBPoker)(nil),                             // 4: types.PBPoker
	(*PBGameAction)(nil),                        // 5: types.PBGameAction
	(*PBGameStart)(nil),                         // 6: types.PBGameStart
	(*PBGameContinue)(nil),                      // 7: types.PBGameContinue
	(*PBGameQuit)(nil),                          // 8: types.PBGameQuit
	(*PBGameQuery)(nil),                         // 9: types.PBGameQuery
	(*PBGamePlay)(nil),                          // 10: types.PBGamePlay
	(*QueryPBGameListByStatusAndPlayerNum)(nil), // 11: types.QueryPBGameListByStatusAndPlayerNum
	(*PBGameRecord)(nil),                        // 12: types.PBGameRecord
	(*PBGameIndexRecord)(nil),                   // 13: types.PBGameIndexRecord
	(*PBGameRecords)(nil),                       // 14: types.PBGameRecords
	(*PBGameIndexRecords)(nil),                  // 15: types.PBGameIndexRecords
	(*QueryPBGameInfo)(nil),                     // 16: types.QueryPBGameInfo
	(*ReplyPBGame)(nil),                         // 17: types.ReplyPBGame
	(*QueryPBGameInfos)(nil),                    // 18: types.QueryPBGameInfos
	(*ReplyPBGameList)(nil),                     // 19: types.ReplyPBGameList
	(*QueryPBGameByRound)(nil),                  // 20: types.QueryPBGameByRound
	(*ReplyPBGameByRound)(nil),                  // 21: types.ReplyPBGameByRound
	(*ReceiptPBGame)(nil),                       // 22: types.ReceiptPBGame
	(*PBStartTxReq)(nil),                        // 23: types.PBStartTxReq
	(*PBContinueTxReq)(nil),                     // 24: types.PBContinueTxReq
	(*PBQuitTxReq)(nil),                         // 25: types.PBQuitTxReq
	(*PBQueryReq)(nil),                          // 26: types.PBQueryReq
}
var file_pokerbull_proto_depIdxs = []int32{
	4,  // 0: types.PokerBull.poker:type_name -> types.PBPoker
	2,  // 1: types.PokerBull.players:type_name -> types.PBPlayer
	3,  // 2: types.PokerBull.results:type_name -> types.PBResult
	1,  // 3: types.PBPlayer.hands:type_name -> types.PBHand
	1,  // 4: types.PBResult.hands:type_name -> types.PBHand
	6,  // 5: types.PBGameAction.start:type_name -> types.PBGameStart
	7,  // 6: types.PBGameAction.continue:type_name -> types.PBGameContinue
	8,  // 7: types.PBGameAction.quit:type_name -> types.PBGameQuit
	9,  // 8: types.PBGameAction.query:type_name -> types.PBGameQuery
	10, // 9: types.PBGameAction.play:type_name -> types.PBGamePlay
	12, // 10: types.PBGameRecords.records:type_name -> types.PBGameRecord
	13, // 11: types.PBGameIndexRecords.records:type_name -> types.PBGameIndexRecord
	0,  // 12: types.ReplyPBGame.game:type_name -> types.PokerBull
	0,  // 13: types.ReplyPBGameList.games:type_name -> types.PokerBull
	3,  // 14: types.ReplyPBGameByRound.result:type_name -> types.PBResult
	2,  // 15: types.ReplyPBGameByRound.players:type_name -> types.PBPlayer
	16, // [16:16] is the sub-list for method output_type
	16, // [16:16] is the sub-list for method input_type
	16, // [16:16] is the sub-list for extension type_name
	16, // [16:16] is the sub-list for extension extendee
	0,  // [0:16] is the sub-list for field type_name
}

func init() { file_pokerbull_proto_init() }
func file_pokerbull_proto_init() {
	if File_pokerbull_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_pokerbull_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PokerBull); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pokerbull_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PBHand); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pokerbull_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PBPlayer); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pokerbull_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PBResult); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pokerbull_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PBPoker); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pokerbull_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PBGameAction); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pokerbull_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PBGameStart); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pokerbull_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PBGameContinue); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pokerbull_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PBGameQuit); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pokerbull_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PBGameQuery); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pokerbull_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PBGamePlay); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pokerbull_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QueryPBGameListByStatusAndPlayerNum); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pokerbull_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PBGameRecord); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pokerbull_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PBGameIndexRecord); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pokerbull_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PBGameRecords); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pokerbull_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PBGameIndexRecords); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pokerbull_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QueryPBGameInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pokerbull_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReplyPBGame); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pokerbull_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QueryPBGameInfos); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pokerbull_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReplyPBGameList); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pokerbull_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QueryPBGameByRound); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pokerbull_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReplyPBGameByRound); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pokerbull_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReceiptPBGame); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pokerbull_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PBStartTxReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pokerbull_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PBContinueTxReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pokerbull_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PBQuitTxReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pokerbull_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PBQueryReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_pokerbull_proto_msgTypes[5].OneofWrappers = []interface{}{
		(*PBGameAction_Start)(nil),
		(*PBGameAction_Continue)(nil),
		(*PBGameAction_Quit)(nil),
		(*PBGameAction_Query)(nil),
		(*PBGameAction_Play)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_pokerbull_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   27,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_pokerbull_proto_goTypes,
		DependencyIndexes: file_pokerbull_proto_depIdxs,
		MessageInfos:      file_pokerbull_proto_msgTypes,
	}.Build()
	File_pokerbull_proto = out.File
	file_pokerbull_proto_rawDesc = nil
	file_pokerbull_proto_goTypes = nil
	file_pokerbull_proto_depIdxs = nil
}
