From 65710a75b2bc39d1e899c49492db6b9978ab52e9 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Tue, 2 Jul 2024 14:29:36 +0800 Subject: [PATCH] update --- data/DB_PropExchange.dat | Bin 384 -> 384 bytes data/DB_Task.dat | Bin 2161 -> 2441 bytes data/DB_Task.json | 142 +++ protocol/rank/rank.pb.go | 370 +++++++- protocol/rank/rank.proto | 26 + protocol/server/pbdata.pb.go | 1382 +++++++++++++++------------- protocol/server/pbdata.proto | 16 + protocol/task/task.pb.go | 119 +-- protocol/task/task.proto | 5 +- protocol/webapi/common.pb.go | 564 +++++++++++- protocol/webapi/common.proto | 42 + protocol/welfare/welfare.pb.go | 1578 ++++++++++++++++++++++++++++++-- protocol/welfare/welfare.proto | 126 ++- xlsx/DB_Task.xlsx | Bin 20513 -> 21800 bytes 14 files changed, 3534 insertions(+), 836 deletions(-) diff --git a/data/DB_PropExchange.dat b/data/DB_PropExchange.dat index e2e5ac4d763f1fce921a1306a5dbd96c70b82502..3380e58ac4e0ac74e689abcbc37cf50700cb970a 100644 GIT binary patch literal 384 zcmd-w<6snElw#w!*2WB`uS4m}Q2Gj#z6zq1I5-yevI!h$vE|a^U;?YZ0hPZArEfv$ z+i2>;IUwf4Eh6c3;q0JHE8)L}4-VFtq- TfNB9d$0DFdzc6z#&=vv!Wr{pC literal 384 zcmd-w<6snElw#w!+Qtl~uR-bSQ2H{Iz5=3^I5-yevI!h$vE|a^U;?YZ0hPZArEfv$ z+i2>;IUwevmPtP>^DLtqOupoxQ9s(#gfurL~ICq0n-hE?NY^ zqJ#MYMR4~cIEtI2_4R3z)=US_@Bi{V_s$#BE!QCQx=FZMqVx*h%O+{>xNbOP(eU|9 z*+R^w8rLjjYYr=-e|ag?=GwPixvdzog6`!mPRKbtFHM~AE4YB5qyynfKyqTd2Ok5uiHqm0s);fNId5uAX5#K1}beg)S7Sh1wl w0MtBA0ij> z0V7mg&I+!5;;PjsW-S7m#W*>Qaoyw)CZWk{OnQ?=n1nW`F=;bGl|5K41T+PtjCt}R z=3jykHY?1;LvoYXvcyl`#3;h8%(3YeqX4G_s{+ep9~K$T%|ISMm{-UmvpI)V1ZWSt b;O2>J%8Zjs83iXFWuFZ-O$2IMLuVBL1!Fxk diff --git a/data/DB_Task.json b/data/DB_Task.json index 998d30a..a2d04c9 100644 --- a/data/DB_Task.json +++ b/data/DB_Task.json @@ -798,6 +798,148 @@ "100001": 2000000, "100002": 20 } + }, + { + "Id": 11001, + "Order": 1, + "ActivityType": 6, + "TaskType": 17, + "TargetTimes": 1, + "FinishTimes": 1, + "Award": { + "100011": 50 + } + }, + { + "Id": 11002, + "Order": 2, + "ActivityType": 6, + "TaskType": 21, + "TargetTimes": 3600, + "FinishTimes": 1, + "Award": { + "100011": 51 + }, + "Position": [ + 1, + 1 + ] + }, + { + "Id": 11003, + "Order": 3, + "ActivityType": 6, + "TaskType": 2, + "TargetTimes": 1, + "FinishTimes": 1, + "Award": { + "100011": 52 + }, + "Position": [ + 0, + 1 + ] + }, + { + "Id": 11004, + "Order": 4, + "ActivityType": 6, + "TaskType": 22, + "TargetTimes": 1, + "FinishTimes": 1, + "Award": { + "100011": 53 + } + }, + { + "Id": 11005, + "Order": 5, + "ActivityType": 6, + "TaskType": 23, + "TargetTimes": 3, + "FinishTimes": 1, + "Award": { + "100011": 54 + }, + "GameType": 1 + }, + { + "Id": 11006, + "Order": 6, + "ActivityType": 6, + "TaskType": 6, + "TargetTimes": 3, + "FinishTimes": 1, + "Award": { + "100011": 55 + }, + "GameType": 1 + }, + { + "Id": 11007, + "Order": 7, + "ActivityType": 6, + "TaskType": 24, + "TargetTimes": 1, + "FinishTimes": 1, + "Award": { + "100011": 56 + }, + "GameType": 1 + }, + { + "Id": 11008, + "Order": 8, + "ActivityType": 6, + "TaskType": 25, + "TargetTimes": 3, + "FinishTimes": 1, + "Award": { + "100011": 57 + }, + "GameType": 1 + }, + { + "Id": 11009, + "Order": 9, + "ActivityType": 6, + "TaskType": 26, + "TargetTimes": 1, + "FinishTimes": 1, + "Award": { + "100011": 58 + }, + "GameType": 1 + }, + { + "Id": 11010, + "Order": 10, + "ActivityType": 6, + "TaskType": 27, + "TargetTimes": 100, + "FinishTimes": 1, + "Award": { + "100011": 59 + }, + "Position": [ + 1, + 1 + ] + }, + { + "Id": 11011, + "Order": 11, + "ActivityType": 6, + "TaskType": 7, + "TargetTimes": 1, + "FinishTimes": 1, + "Award": { + "100011": 60 + }, + "Position": [ + 1, + 1 + ] } ] } \ No newline at end of file diff --git a/protocol/rank/rank.pb.go b/protocol/rank/rank.pb.go index 00a0c60..74f50d1 100644 --- a/protocol/rank/rank.pb.go +++ b/protocol/rank/rank.pb.go @@ -42,6 +42,9 @@ const ( //等级榜 Rank_PACKET_RANK_CSLevel Rank = 10010 Rank_PACKET_RANK_SCLevel Rank = 10011 + //赛季通行证排行榜 + Rank_PACKET_RANK_CSPermit Rank = 10012 + Rank_PACKET_RANK_SCPermit Rank = 10013 ) // Enum value maps for Rank. @@ -60,6 +63,8 @@ var ( 10009: "PACKET_RANK_SCWinCoin", 10010: "PACKET_RANK_CSLevel", 10011: "PACKET_RANK_SCLevel", + 10012: "PACKET_RANK_CSPermit", + 10013: "PACKET_RANK_SCPermit", } Rank_value = map[string]int32{ "PACKET_RANK_ZERO": 0, @@ -75,6 +80,8 @@ var ( "PACKET_RANK_SCWinCoin": 10009, "PACKET_RANK_CSLevel": 10010, "PACKET_RANK_SCLevel": 10011, + "PACKET_RANK_CSPermit": 10012, + "PACKET_RANK_SCPermit": 10013, } ) @@ -1567,6 +1574,221 @@ func (x *SCPlayerLevelRank) GetLimit() int32 { return 0 } +//PACKET_RANK_CSPermit +type CSPermit struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Skip int32 `protobuf:"varint,1,opt,name=Skip,proto3" json:"Skip,omitempty"` // 偏移量 + Limit int32 `protobuf:"varint,2,opt,name=Limit,proto3" json:"Limit,omitempty"` // 请求数量 +} + +func (x *CSPermit) Reset() { + *x = CSPermit{} + if protoimpl.UnsafeEnabled { + mi := &file_rank_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSPermit) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSPermit) ProtoMessage() {} + +func (x *CSPermit) ProtoReflect() protoreflect.Message { + mi := &file_rank_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 CSPermit.ProtoReflect.Descriptor instead. +func (*CSPermit) Descriptor() ([]byte, []int) { + return file_rank_proto_rawDescGZIP(), []int{19} +} + +func (x *CSPermit) GetSkip() int32 { + if x != nil { + return x.Skip + } + return 0 +} + +func (x *CSPermit) GetLimit() int32 { + if x != nil { + return x.Limit + } + return 0 +} + +type PermitRank struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Snid int32 `protobuf:"varint,1,opt,name=Snid,proto3" json:"Snid,omitempty"` // 玩家id + Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` // 昵称 + Rank int32 `protobuf:"varint,3,opt,name=Rank,proto3" json:"Rank,omitempty"` //段位排名 + Score int64 `protobuf:"varint,4,opt,name=Score,proto3" json:"Score,omitempty"` // 积分 + ModId int32 `protobuf:"varint,5,opt,name=ModId,proto3" json:"ModId,omitempty"` // 头像模型 +} + +func (x *PermitRank) Reset() { + *x = PermitRank{} + if protoimpl.UnsafeEnabled { + mi := &file_rank_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PermitRank) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PermitRank) ProtoMessage() {} + +func (x *PermitRank) ProtoReflect() protoreflect.Message { + mi := &file_rank_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 PermitRank.ProtoReflect.Descriptor instead. +func (*PermitRank) Descriptor() ([]byte, []int) { + return file_rank_proto_rawDescGZIP(), []int{20} +} + +func (x *PermitRank) GetSnid() int32 { + if x != nil { + return x.Snid + } + return 0 +} + +func (x *PermitRank) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *PermitRank) GetRank() int32 { + if x != nil { + return x.Rank + } + return 0 +} + +func (x *PermitRank) GetScore() int64 { + if x != nil { + return x.Score + } + return 0 +} + +func (x *PermitRank) GetModId() int32 { + if x != nil { + return x.ModId + } + return 0 +} + +// PACKET_RANK_SCPermit +type SCPermit struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ranks []*PermitRank `protobuf:"bytes,1,rep,name=Ranks,proto3" json:"Ranks,omitempty"` // 排行榜 + Me *PermitRank `protobuf:"bytes,2,opt,name=Me,proto3" json:"Me,omitempty"` // 玩家自己的排行信息 + Skip int32 `protobuf:"varint,3,opt,name=Skip,proto3" json:"Skip,omitempty"` // 偏移量 + IsEndNum bool `protobuf:"varint,4,opt,name=IsEndNum,proto3" json:"IsEndNum,omitempty"` + RankMaxNum int32 `protobuf:"varint,5,opt,name=RankMaxNum,proto3" json:"RankMaxNum,omitempty"` // 排行榜最大上限 +} + +func (x *SCPermit) Reset() { + *x = SCPermit{} + if protoimpl.UnsafeEnabled { + mi := &file_rank_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCPermit) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCPermit) ProtoMessage() {} + +func (x *SCPermit) ProtoReflect() protoreflect.Message { + mi := &file_rank_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 SCPermit.ProtoReflect.Descriptor instead. +func (*SCPermit) Descriptor() ([]byte, []int) { + return file_rank_proto_rawDescGZIP(), []int{21} +} + +func (x *SCPermit) GetRanks() []*PermitRank { + if x != nil { + return x.Ranks + } + return nil +} + +func (x *SCPermit) GetMe() *PermitRank { + if x != nil { + return x.Me + } + return nil +} + +func (x *SCPermit) GetSkip() int32 { + if x != nil { + return x.Skip + } + return 0 +} + +func (x *SCPermit) GetIsEndNum() bool { + if x != nil { + return x.IsEndNum + } + return false +} + +func (x *SCPermit) GetRankMaxNum() int32 { + if x != nil { + return x.RankMaxNum + } + return 0 +} + var File_rank_proto protoreflect.FileDescriptor var file_rank_proto_rawDesc = []byte{ @@ -1711,40 +1933,65 @@ var file_rank_proto_rawDesc = []byte{ 0x66, 0x6f, 0x52, 0x02, 0x4d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x2a, 0xde, 0x02, 0x0a, 0x04, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, - 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, - 0x53, 0x52, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x10, 0x90, 0x4e, 0x12, 0x1c, 0x0a, - 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x52, - 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x10, 0x91, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x43, 0x6f, 0x69, - 0x6e, 0x10, 0x92, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, - 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x93, 0x4e, 0x12, 0x19, 0x0a, - 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x49, - 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, 0x94, 0x4e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x10, 0x95, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, - 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x10, 0x96, 0x4e, 0x12, 0x17, 0x0a, 0x12, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4c, - 0x6f, 0x67, 0x10, 0x97, 0x4e, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x98, - 0x4e, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, - 0x5f, 0x53, 0x43, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x99, 0x4e, 0x12, 0x18, 0x0a, - 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x10, 0x9a, 0x4e, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x10, 0x9b, - 0x4e, 0x2a, 0x8d, 0x01, 0x0a, 0x0a, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4e, - 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x5f, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x49, - 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x57, 0x65, 0x65, 0x6b, 0x10, 0x02, - 0x12, 0x14, 0x0a, 0x10, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4d, - 0x6f, 0x6e, 0x74, 0x68, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x5f, 0x55, 0x70, 0x57, 0x65, 0x65, 0x6b, 0x10, 0x04, 0x12, 0x12, 0x0a, - 0x0e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4d, 0x61, 0x78, 0x10, - 0x05, 0x42, 0x24, 0x5a, 0x22, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x2f, 0x72, 0x61, 0x6e, 0x6b, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x22, 0x34, 0x0a, 0x08, 0x43, 0x53, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x53, 0x6b, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6b, 0x69, 0x70, + 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x74, 0x0a, 0x0a, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, + 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x52, 0x61, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, 0x6e, 0x6b, + 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x6f, 0x64, 0x49, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4d, 0x6f, 0x64, 0x49, 0x64, 0x22, 0xa4, 0x01, 0x0a, + 0x08, 0x53, 0x43, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x05, 0x52, 0x61, 0x6e, + 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x72, 0x61, 0x6e, 0x6b, 0x2e, + 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x05, 0x52, 0x61, 0x6e, 0x6b, + 0x73, 0x12, 0x20, 0x0a, 0x02, 0x4d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x72, 0x61, 0x6e, 0x6b, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x52, + 0x02, 0x4d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x53, 0x6b, 0x69, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x45, 0x6e, 0x64, + 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x49, 0x73, 0x45, 0x6e, 0x64, + 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x78, 0x4e, 0x75, + 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x78, + 0x4e, 0x75, 0x6d, 0x2a, 0x94, 0x03, 0x0a, 0x04, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x14, 0x0a, 0x10, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x5a, 0x45, 0x52, 0x4f, + 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, + 0x4b, 0x5f, 0x43, 0x53, 0x52, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x10, 0x90, 0x4e, + 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, + 0x53, 0x43, 0x52, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x10, 0x91, 0x4e, 0x12, 0x17, + 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, + 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x92, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x93, 0x4e, + 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, + 0x43, 0x53, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, 0x94, 0x4e, 0x12, 0x19, 0x0a, 0x14, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x49, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x10, 0x95, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x43, 0x53, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x10, 0x96, 0x4e, 0x12, + 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x49, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x10, 0x97, 0x4e, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, + 0x6e, 0x10, 0x98, 0x4e, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, + 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x99, 0x4e, + 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, + 0x43, 0x53, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x10, 0x9a, 0x4e, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x10, 0x9b, 0x4e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, + 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x10, 0x9c, 0x4e, 0x12, + 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, + 0x43, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x10, 0x9d, 0x4e, 0x2a, 0x8d, 0x01, 0x0a, 0x0a, 0x52, + 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x14, + 0x0a, 0x10, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x5f, 0x57, 0x65, 0x65, 0x6b, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x10, 0x03, 0x12, + 0x15, 0x0a, 0x11, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x55, 0x70, + 0x57, 0x65, 0x65, 0x6b, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4d, 0x61, 0x78, 0x10, 0x05, 0x42, 0x24, 0x5a, 0x22, 0x6d, 0x6f, + 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, + 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x72, 0x61, 0x6e, 0x6b, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1760,7 +2007,7 @@ func file_rank_proto_rawDescGZIP() []byte { } var file_rank_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_rank_proto_msgTypes = make([]protoimpl.MessageInfo, 19) +var file_rank_proto_msgTypes = make([]protoimpl.MessageInfo, 22) var file_rank_proto_goTypes = []interface{}{ (Rank)(0), // 0: rank.Rank (RankInvite)(0), // 1: rank.RankInvite @@ -1783,6 +2030,9 @@ var file_rank_proto_goTypes = []interface{}{ (*CSPlayerLevelRank)(nil), // 18: rank.CSPlayerLevelRank (*PlayerLevelRankInfo)(nil), // 19: rank.PlayerLevelRankInfo (*SCPlayerLevelRank)(nil), // 20: rank.SCPlayerLevelRank + (*CSPermit)(nil), // 21: rank.CSPermit + (*PermitRank)(nil), // 22: rank.PermitRank + (*SCPermit)(nil), // 23: rank.SCPermit } var file_rank_proto_depIdxs = []int32{ 3, // 0: rank.SCRankMatch.Ranks:type_name -> rank.SeasonRank @@ -1796,11 +2046,13 @@ var file_rank_proto_depIdxs = []int32{ 16, // 8: rank.SCWinCoin.Me:type_name -> rank.WinCoinInfo 19, // 9: rank.SCPlayerLevelRank.Ranks:type_name -> rank.PlayerLevelRankInfo 19, // 10: rank.SCPlayerLevelRank.Me:type_name -> rank.PlayerLevelRankInfo - 11, // [11:11] is the sub-list for method output_type - 11, // [11:11] is the sub-list for method input_type - 11, // [11:11] is the sub-list for extension type_name - 11, // [11:11] is the sub-list for extension extendee - 0, // [0:11] is the sub-list for field type_name + 22, // 11: rank.SCPermit.Ranks:type_name -> rank.PermitRank + 22, // 12: rank.SCPermit.Me:type_name -> rank.PermitRank + 13, // [13:13] is the sub-list for method output_type + 13, // [13:13] is the sub-list for method input_type + 13, // [13:13] is the sub-list for extension type_name + 13, // [13:13] is the sub-list for extension extendee + 0, // [0:13] is the sub-list for field type_name } func init() { file_rank_proto_init() } @@ -2037,6 +2289,42 @@ func file_rank_proto_init() { return nil } } + file_rank_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSPermit); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_rank_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PermitRank); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_rank_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCPermit); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -2044,7 +2332,7 @@ func file_rank_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_rank_proto_rawDesc, NumEnums: 2, - NumMessages: 19, + NumMessages: 22, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/rank/rank.proto b/protocol/rank/rank.proto index f879d5d..2793184 100644 --- a/protocol/rank/rank.proto +++ b/protocol/rank/rank.proto @@ -22,6 +22,9 @@ enum Rank{ //等级榜 PACKET_RANK_CSLevel = 10010; PACKET_RANK_SCLevel = 10011; + //赛季通行证排行榜 + PACKET_RANK_CSPermit = 10012; + PACKET_RANK_SCPermit = 10013; } // 排位榜 @@ -181,4 +184,27 @@ message SCPlayerLevelRank{ PlayerLevelRankInfo Me = 2; // 玩家自己的排行信息 int32 Skip = 3; // 页数 int32 Limit = 4; // 每页数量 +} + +//PACKET_RANK_CSPermit +message CSPermit{ + int32 Skip = 1; // 偏移量 + int32 Limit = 2; // 请求数量 +} + +message PermitRank { + int32 Snid = 1; // 玩家id + string Name = 2; // 昵称 + int32 Rank = 3;//段位排名 + int64 Score = 4; // 积分 + int32 ModId = 5; // 头像模型 +} + +// PACKET_RANK_SCPermit +message SCPermit{ + repeated PermitRank Ranks = 1; // 排行榜 + PermitRank Me = 2; // 玩家自己的排行信息 + int32 Skip = 3; // 偏移量 + bool IsEndNum = 4; + int32 RankMaxNum = 5; // 排行榜最大上限 } \ No newline at end of file diff --git a/protocol/server/pbdata.pb.go b/protocol/server/pbdata.pb.go index ef2be5c..d0929cd 100644 --- a/protocol/server/pbdata.pb.go +++ b/protocol/server/pbdata.pb.go @@ -7543,6 +7543,124 @@ func (x *DB_NewPlayerArray) GetArr() []*DB_NewPlayer { return nil } +type DB_PassShow struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + ShowType int32 `protobuf:"varint,2,opt,name=ShowType,proto3" json:"ShowType,omitempty"` + ShowVolume int32 `protobuf:"varint,3,opt,name=ShowVolume,proto3" json:"ShowVolume,omitempty"` + Location int32 `protobuf:"varint,4,opt,name=Location,proto3" json:"Location,omitempty"` +} + +func (x *DB_PassShow) Reset() { + *x = DB_PassShow{} + if protoimpl.UnsafeEnabled { + mi := &file_pbdata_proto_msgTypes[96] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DB_PassShow) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DB_PassShow) ProtoMessage() {} + +func (x *DB_PassShow) ProtoReflect() protoreflect.Message { + mi := &file_pbdata_proto_msgTypes[96] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DB_PassShow.ProtoReflect.Descriptor instead. +func (*DB_PassShow) Descriptor() ([]byte, []int) { + return file_pbdata_proto_rawDescGZIP(), []int{96} +} + +func (x *DB_PassShow) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *DB_PassShow) GetShowType() int32 { + if x != nil { + return x.ShowType + } + return 0 +} + +func (x *DB_PassShow) GetShowVolume() int32 { + if x != nil { + return x.ShowVolume + } + return 0 +} + +func (x *DB_PassShow) GetLocation() int32 { + if x != nil { + return x.Location + } + return 0 +} + +type DB_PassShowArray struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Arr []*DB_PassShow `protobuf:"bytes,1,rep,name=Arr,proto3" json:"Arr,omitempty"` +} + +func (x *DB_PassShowArray) Reset() { + *x = DB_PassShowArray{} + if protoimpl.UnsafeEnabled { + mi := &file_pbdata_proto_msgTypes[97] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DB_PassShowArray) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DB_PassShowArray) ProtoMessage() {} + +func (x *DB_PassShowArray) ProtoReflect() protoreflect.Message { + mi := &file_pbdata_proto_msgTypes[97] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DB_PassShowArray.ProtoReflect.Descriptor instead. +func (*DB_PassShowArray) Descriptor() ([]byte, []int) { + return file_pbdata_proto_rawDescGZIP(), []int{97} +} + +func (x *DB_PassShowArray) GetArr() []*DB_PassShow { + if x != nil { + return x.Arr + } + return nil +} + type DB_PetSkill struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -7562,7 +7680,7 @@ type DB_PetSkill struct { func (x *DB_PetSkill) Reset() { *x = DB_PetSkill{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[96] + mi := &file_pbdata_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7575,7 +7693,7 @@ func (x *DB_PetSkill) String() string { func (*DB_PetSkill) ProtoMessage() {} func (x *DB_PetSkill) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[96] + mi := &file_pbdata_proto_msgTypes[98] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7588,7 +7706,7 @@ func (x *DB_PetSkill) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PetSkill.ProtoReflect.Descriptor instead. func (*DB_PetSkill) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{96} + return file_pbdata_proto_rawDescGZIP(), []int{98} } func (x *DB_PetSkill) GetId() int32 { @@ -7665,7 +7783,7 @@ type DB_PetSkillArray struct { func (x *DB_PetSkillArray) Reset() { *x = DB_PetSkillArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[97] + mi := &file_pbdata_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7678,7 +7796,7 @@ func (x *DB_PetSkillArray) String() string { func (*DB_PetSkillArray) ProtoMessage() {} func (x *DB_PetSkillArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[97] + mi := &file_pbdata_proto_msgTypes[99] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7691,7 +7809,7 @@ func (x *DB_PetSkillArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PetSkillArray.ProtoReflect.Descriptor instead. func (*DB_PetSkillArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{97} + return file_pbdata_proto_rawDescGZIP(), []int{99} } func (x *DB_PetSkillArray) GetArr() []*DB_PetSkill { @@ -7723,7 +7841,7 @@ type DB_PhoneLottery struct { func (x *DB_PhoneLottery) Reset() { *x = DB_PhoneLottery{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[98] + mi := &file_pbdata_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7736,7 +7854,7 @@ func (x *DB_PhoneLottery) String() string { func (*DB_PhoneLottery) ProtoMessage() {} func (x *DB_PhoneLottery) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[98] + mi := &file_pbdata_proto_msgTypes[100] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7749,7 +7867,7 @@ func (x *DB_PhoneLottery) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PhoneLottery.ProtoReflect.Descriptor instead. func (*DB_PhoneLottery) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{98} + return file_pbdata_proto_rawDescGZIP(), []int{100} } func (x *DB_PhoneLottery) GetId() int32 { @@ -7847,7 +7965,7 @@ type DB_PhoneLotteryArray struct { func (x *DB_PhoneLotteryArray) Reset() { *x = DB_PhoneLotteryArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[99] + mi := &file_pbdata_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7860,7 +7978,7 @@ func (x *DB_PhoneLotteryArray) String() string { func (*DB_PhoneLotteryArray) ProtoMessage() {} func (x *DB_PhoneLotteryArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[99] + mi := &file_pbdata_proto_msgTypes[101] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7873,7 +7991,7 @@ func (x *DB_PhoneLotteryArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PhoneLotteryArray.ProtoReflect.Descriptor instead. func (*DB_PhoneLotteryArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{99} + return file_pbdata_proto_rawDescGZIP(), []int{101} } func (x *DB_PhoneLotteryArray) GetArr() []*DB_PhoneLottery { @@ -7903,7 +8021,7 @@ type DB_PigBank_Diamond struct { func (x *DB_PigBank_Diamond) Reset() { *x = DB_PigBank_Diamond{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[100] + mi := &file_pbdata_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7916,7 +8034,7 @@ func (x *DB_PigBank_Diamond) String() string { func (*DB_PigBank_Diamond) ProtoMessage() {} func (x *DB_PigBank_Diamond) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[100] + mi := &file_pbdata_proto_msgTypes[102] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7929,7 +8047,7 @@ func (x *DB_PigBank_Diamond) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PigBank_Diamond.ProtoReflect.Descriptor instead. func (*DB_PigBank_Diamond) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{100} + return file_pbdata_proto_rawDescGZIP(), []int{102} } func (x *DB_PigBank_Diamond) GetId() int32 { @@ -8013,7 +8131,7 @@ type DB_PigBank_DiamondArray struct { func (x *DB_PigBank_DiamondArray) Reset() { *x = DB_PigBank_DiamondArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[101] + mi := &file_pbdata_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8026,7 +8144,7 @@ func (x *DB_PigBank_DiamondArray) String() string { func (*DB_PigBank_DiamondArray) ProtoMessage() {} func (x *DB_PigBank_DiamondArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[101] + mi := &file_pbdata_proto_msgTypes[103] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8039,7 +8157,7 @@ func (x *DB_PigBank_DiamondArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PigBank_DiamondArray.ProtoReflect.Descriptor instead. func (*DB_PigBank_DiamondArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{101} + return file_pbdata_proto_rawDescGZIP(), []int{103} } func (x *DB_PigBank_DiamondArray) GetArr() []*DB_PigBank_Diamond { @@ -8062,7 +8180,7 @@ type DB_Pigbank_Prop struct { func (x *DB_Pigbank_Prop) Reset() { *x = DB_Pigbank_Prop{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[102] + mi := &file_pbdata_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8075,7 +8193,7 @@ func (x *DB_Pigbank_Prop) String() string { func (*DB_Pigbank_Prop) ProtoMessage() {} func (x *DB_Pigbank_Prop) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[102] + mi := &file_pbdata_proto_msgTypes[104] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8088,7 +8206,7 @@ func (x *DB_Pigbank_Prop) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Pigbank_Prop.ProtoReflect.Descriptor instead. func (*DB_Pigbank_Prop) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{102} + return file_pbdata_proto_rawDescGZIP(), []int{104} } func (x *DB_Pigbank_Prop) GetId() int32 { @@ -8123,7 +8241,7 @@ type DB_Pigbank_PropArray struct { func (x *DB_Pigbank_PropArray) Reset() { *x = DB_Pigbank_PropArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[103] + mi := &file_pbdata_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8136,7 +8254,7 @@ func (x *DB_Pigbank_PropArray) String() string { func (*DB_Pigbank_PropArray) ProtoMessage() {} func (x *DB_Pigbank_PropArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[103] + mi := &file_pbdata_proto_msgTypes[105] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8149,7 +8267,7 @@ func (x *DB_Pigbank_PropArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Pigbank_PropArray.ProtoReflect.Descriptor instead. func (*DB_Pigbank_PropArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{103} + return file_pbdata_proto_rawDescGZIP(), []int{105} } func (x *DB_Pigbank_PropArray) GetArr() []*DB_Pigbank_Prop { @@ -8171,7 +8289,7 @@ type DB_PlayerExp struct { func (x *DB_PlayerExp) Reset() { *x = DB_PlayerExp{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[104] + mi := &file_pbdata_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8184,7 +8302,7 @@ func (x *DB_PlayerExp) String() string { func (*DB_PlayerExp) ProtoMessage() {} func (x *DB_PlayerExp) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[104] + mi := &file_pbdata_proto_msgTypes[106] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8197,7 +8315,7 @@ func (x *DB_PlayerExp) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PlayerExp.ProtoReflect.Descriptor instead. func (*DB_PlayerExp) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{104} + return file_pbdata_proto_rawDescGZIP(), []int{106} } func (x *DB_PlayerExp) GetId() int32 { @@ -8225,7 +8343,7 @@ type DB_PlayerExpArray struct { func (x *DB_PlayerExpArray) Reset() { *x = DB_PlayerExpArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[105] + mi := &file_pbdata_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8238,7 +8356,7 @@ func (x *DB_PlayerExpArray) String() string { func (*DB_PlayerExpArray) ProtoMessage() {} func (x *DB_PlayerExpArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[105] + mi := &file_pbdata_proto_msgTypes[107] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8251,7 +8369,7 @@ func (x *DB_PlayerExpArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PlayerExpArray.ProtoReflect.Descriptor instead. func (*DB_PlayerExpArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{105} + return file_pbdata_proto_rawDescGZIP(), []int{107} } func (x *DB_PlayerExpArray) GetArr() []*DB_PlayerExp { @@ -8276,7 +8394,7 @@ type DB_PlayerInfo struct { func (x *DB_PlayerInfo) Reset() { *x = DB_PlayerInfo{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[106] + mi := &file_pbdata_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8289,7 +8407,7 @@ func (x *DB_PlayerInfo) String() string { func (*DB_PlayerInfo) ProtoMessage() {} func (x *DB_PlayerInfo) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[106] + mi := &file_pbdata_proto_msgTypes[108] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8302,7 +8420,7 @@ func (x *DB_PlayerInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PlayerInfo.ProtoReflect.Descriptor instead. func (*DB_PlayerInfo) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{106} + return file_pbdata_proto_rawDescGZIP(), []int{108} } func (x *DB_PlayerInfo) GetCity() string { @@ -8351,7 +8469,7 @@ type DB_PlayerInfoArray struct { func (x *DB_PlayerInfoArray) Reset() { *x = DB_PlayerInfoArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[107] + mi := &file_pbdata_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8364,7 +8482,7 @@ func (x *DB_PlayerInfoArray) String() string { func (*DB_PlayerInfoArray) ProtoMessage() {} func (x *DB_PlayerInfoArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[107] + mi := &file_pbdata_proto_msgTypes[109] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8377,7 +8495,7 @@ func (x *DB_PlayerInfoArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PlayerInfoArray.ProtoReflect.Descriptor instead. func (*DB_PlayerInfoArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{107} + return file_pbdata_proto_rawDescGZIP(), []int{109} } func (x *DB_PlayerInfoArray) GetArr() []*DB_PlayerInfo { @@ -8415,7 +8533,7 @@ type DB_PlayerType struct { func (x *DB_PlayerType) Reset() { *x = DB_PlayerType{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[108] + mi := &file_pbdata_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8428,7 +8546,7 @@ func (x *DB_PlayerType) String() string { func (*DB_PlayerType) ProtoMessage() {} func (x *DB_PlayerType) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[108] + mi := &file_pbdata_proto_msgTypes[110] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8441,7 +8559,7 @@ func (x *DB_PlayerType) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PlayerType.ProtoReflect.Descriptor instead. func (*DB_PlayerType) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{108} + return file_pbdata_proto_rawDescGZIP(), []int{110} } func (x *DB_PlayerType) GetId() int32 { @@ -8581,7 +8699,7 @@ type DB_PlayerTypeArray struct { func (x *DB_PlayerTypeArray) Reset() { *x = DB_PlayerTypeArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[109] + mi := &file_pbdata_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8594,7 +8712,7 @@ func (x *DB_PlayerTypeArray) String() string { func (*DB_PlayerTypeArray) ProtoMessage() {} func (x *DB_PlayerTypeArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[109] + mi := &file_pbdata_proto_msgTypes[111] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8607,7 +8725,7 @@ func (x *DB_PlayerTypeArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PlayerTypeArray.ProtoReflect.Descriptor instead. func (*DB_PlayerTypeArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{109} + return file_pbdata_proto_rawDescGZIP(), []int{111} } func (x *DB_PlayerTypeArray) GetArr() []*DB_PlayerType { @@ -8631,7 +8749,7 @@ type DB_PotOdd struct { func (x *DB_PotOdd) Reset() { *x = DB_PotOdd{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[110] + mi := &file_pbdata_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8644,7 +8762,7 @@ func (x *DB_PotOdd) String() string { func (*DB_PotOdd) ProtoMessage() {} func (x *DB_PotOdd) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[110] + mi := &file_pbdata_proto_msgTypes[112] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8657,7 +8775,7 @@ func (x *DB_PotOdd) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PotOdd.ProtoReflect.Descriptor instead. func (*DB_PotOdd) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{110} + return file_pbdata_proto_rawDescGZIP(), []int{112} } func (x *DB_PotOdd) GetId() int32 { @@ -8699,7 +8817,7 @@ type DB_PotOddArray struct { func (x *DB_PotOddArray) Reset() { *x = DB_PotOddArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[111] + mi := &file_pbdata_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8712,7 +8830,7 @@ func (x *DB_PotOddArray) String() string { func (*DB_PotOddArray) ProtoMessage() {} func (x *DB_PotOddArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[111] + mi := &file_pbdata_proto_msgTypes[113] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8725,7 +8843,7 @@ func (x *DB_PotOddArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PotOddArray.ProtoReflect.Descriptor instead. func (*DB_PotOddArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{111} + return file_pbdata_proto_rawDescGZIP(), []int{113} } func (x *DB_PotOddArray) GetArr() []*DB_PotOdd { @@ -8749,7 +8867,7 @@ type DB_PropExchange struct { func (x *DB_PropExchange) Reset() { *x = DB_PropExchange{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[112] + mi := &file_pbdata_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8762,7 +8880,7 @@ func (x *DB_PropExchange) String() string { func (*DB_PropExchange) ProtoMessage() {} func (x *DB_PropExchange) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[112] + mi := &file_pbdata_proto_msgTypes[114] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8775,7 +8893,7 @@ func (x *DB_PropExchange) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PropExchange.ProtoReflect.Descriptor instead. func (*DB_PropExchange) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{112} + return file_pbdata_proto_rawDescGZIP(), []int{114} } func (x *DB_PropExchange) GetId() int32 { @@ -8817,7 +8935,7 @@ type DB_PropExchangeArray struct { func (x *DB_PropExchangeArray) Reset() { *x = DB_PropExchangeArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[113] + mi := &file_pbdata_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8830,7 +8948,7 @@ func (x *DB_PropExchangeArray) String() string { func (*DB_PropExchangeArray) ProtoMessage() {} func (x *DB_PropExchangeArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[113] + mi := &file_pbdata_proto_msgTypes[115] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8843,7 +8961,7 @@ func (x *DB_PropExchangeArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PropExchangeArray.ProtoReflect.Descriptor instead. func (*DB_PropExchangeArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{113} + return file_pbdata_proto_rawDescGZIP(), []int{115} } func (x *DB_PropExchangeArray) GetArr() []*DB_PropExchange { @@ -8866,7 +8984,7 @@ type DB_RankCycle struct { func (x *DB_RankCycle) Reset() { *x = DB_RankCycle{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[114] + mi := &file_pbdata_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8879,7 +8997,7 @@ func (x *DB_RankCycle) String() string { func (*DB_RankCycle) ProtoMessage() {} func (x *DB_RankCycle) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[114] + mi := &file_pbdata_proto_msgTypes[116] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8892,7 +9010,7 @@ func (x *DB_RankCycle) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_RankCycle.ProtoReflect.Descriptor instead. func (*DB_RankCycle) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{114} + return file_pbdata_proto_rawDescGZIP(), []int{116} } func (x *DB_RankCycle) GetId() int32 { @@ -8927,7 +9045,7 @@ type DB_RankCycleArray struct { func (x *DB_RankCycleArray) Reset() { *x = DB_RankCycleArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[115] + mi := &file_pbdata_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8940,7 +9058,7 @@ func (x *DB_RankCycleArray) String() string { func (*DB_RankCycleArray) ProtoMessage() {} func (x *DB_RankCycleArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[115] + mi := &file_pbdata_proto_msgTypes[117] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8953,7 +9071,7 @@ func (x *DB_RankCycleArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_RankCycleArray.ProtoReflect.Descriptor instead. func (*DB_RankCycleArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{115} + return file_pbdata_proto_rawDescGZIP(), []int{117} } func (x *DB_RankCycleArray) GetArr() []*DB_RankCycle { @@ -8978,7 +9096,7 @@ type DB_RankLevel struct { func (x *DB_RankLevel) Reset() { *x = DB_RankLevel{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[116] + mi := &file_pbdata_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8991,7 +9109,7 @@ func (x *DB_RankLevel) String() string { func (*DB_RankLevel) ProtoMessage() {} func (x *DB_RankLevel) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[116] + mi := &file_pbdata_proto_msgTypes[118] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9004,7 +9122,7 @@ func (x *DB_RankLevel) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_RankLevel.ProtoReflect.Descriptor instead. func (*DB_RankLevel) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{116} + return file_pbdata_proto_rawDescGZIP(), []int{118} } func (x *DB_RankLevel) GetId() int32 { @@ -9053,7 +9171,7 @@ type DB_RankLevelArray struct { func (x *DB_RankLevelArray) Reset() { *x = DB_RankLevelArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[117] + mi := &file_pbdata_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9066,7 +9184,7 @@ func (x *DB_RankLevelArray) String() string { func (*DB_RankLevelArray) ProtoMessage() {} func (x *DB_RankLevelArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[117] + mi := &file_pbdata_proto_msgTypes[119] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9079,7 +9197,7 @@ func (x *DB_RankLevelArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_RankLevelArray.ProtoReflect.Descriptor instead. func (*DB_RankLevelArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{117} + return file_pbdata_proto_rawDescGZIP(), []int{119} } func (x *DB_RankLevelArray) GetArr() []*DB_RankLevel { @@ -9108,7 +9226,7 @@ type DB_RankReward struct { func (x *DB_RankReward) Reset() { *x = DB_RankReward{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[118] + mi := &file_pbdata_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9121,7 +9239,7 @@ func (x *DB_RankReward) String() string { func (*DB_RankReward) ProtoMessage() {} func (x *DB_RankReward) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[118] + mi := &file_pbdata_proto_msgTypes[120] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9134,7 +9252,7 @@ func (x *DB_RankReward) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_RankReward.ProtoReflect.Descriptor instead. func (*DB_RankReward) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{118} + return file_pbdata_proto_rawDescGZIP(), []int{120} } func (x *DB_RankReward) GetId() int32 { @@ -9211,7 +9329,7 @@ type DB_RankRewardArray struct { func (x *DB_RankRewardArray) Reset() { *x = DB_RankRewardArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[119] + mi := &file_pbdata_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9224,7 +9342,7 @@ func (x *DB_RankRewardArray) String() string { func (*DB_RankRewardArray) ProtoMessage() {} func (x *DB_RankRewardArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[119] + mi := &file_pbdata_proto_msgTypes[121] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9237,7 +9355,7 @@ func (x *DB_RankRewardArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_RankRewardArray.ProtoReflect.Descriptor instead. func (*DB_RankRewardArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{119} + return file_pbdata_proto_rawDescGZIP(), []int{121} } func (x *DB_RankRewardArray) GetArr() []*DB_RankReward { @@ -9259,7 +9377,7 @@ type DB_Sensitive_Words struct { func (x *DB_Sensitive_Words) Reset() { *x = DB_Sensitive_Words{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[120] + mi := &file_pbdata_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9272,7 +9390,7 @@ func (x *DB_Sensitive_Words) String() string { func (*DB_Sensitive_Words) ProtoMessage() {} func (x *DB_Sensitive_Words) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[120] + mi := &file_pbdata_proto_msgTypes[122] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9285,7 +9403,7 @@ func (x *DB_Sensitive_Words) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Sensitive_Words.ProtoReflect.Descriptor instead. func (*DB_Sensitive_Words) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{120} + return file_pbdata_proto_rawDescGZIP(), []int{122} } func (x *DB_Sensitive_Words) GetId() int32 { @@ -9313,7 +9431,7 @@ type DB_Sensitive_WordsArray struct { func (x *DB_Sensitive_WordsArray) Reset() { *x = DB_Sensitive_WordsArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[121] + mi := &file_pbdata_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9326,7 +9444,7 @@ func (x *DB_Sensitive_WordsArray) String() string { func (*DB_Sensitive_WordsArray) ProtoMessage() {} func (x *DB_Sensitive_WordsArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[121] + mi := &file_pbdata_proto_msgTypes[123] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9339,7 +9457,7 @@ func (x *DB_Sensitive_WordsArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Sensitive_WordsArray.ProtoReflect.Descriptor instead. func (*DB_Sensitive_WordsArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{121} + return file_pbdata_proto_rawDescGZIP(), []int{123} } func (x *DB_Sensitive_WordsArray) GetArr() []*DB_Sensitive_Words { @@ -9375,7 +9493,7 @@ type DB_SlotRateWeight struct { func (x *DB_SlotRateWeight) Reset() { *x = DB_SlotRateWeight{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[122] + mi := &file_pbdata_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9388,7 +9506,7 @@ func (x *DB_SlotRateWeight) String() string { func (*DB_SlotRateWeight) ProtoMessage() {} func (x *DB_SlotRateWeight) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[122] + mi := &file_pbdata_proto_msgTypes[124] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9401,7 +9519,7 @@ func (x *DB_SlotRateWeight) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_SlotRateWeight.ProtoReflect.Descriptor instead. func (*DB_SlotRateWeight) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{122} + return file_pbdata_proto_rawDescGZIP(), []int{124} } func (x *DB_SlotRateWeight) GetId() int32 { @@ -9527,7 +9645,7 @@ type DB_SlotRateWeightArray struct { func (x *DB_SlotRateWeightArray) Reset() { *x = DB_SlotRateWeightArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[123] + mi := &file_pbdata_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9540,7 +9658,7 @@ func (x *DB_SlotRateWeightArray) String() string { func (*DB_SlotRateWeightArray) ProtoMessage() {} func (x *DB_SlotRateWeightArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[123] + mi := &file_pbdata_proto_msgTypes[125] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9553,7 +9671,7 @@ func (x *DB_SlotRateWeightArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_SlotRateWeightArray.ProtoReflect.Descriptor instead. func (*DB_SlotRateWeightArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{123} + return file_pbdata_proto_rawDescGZIP(), []int{125} } func (x *DB_SlotRateWeightArray) GetArr() []*DB_SlotRateWeight { @@ -9578,7 +9696,7 @@ type DB_SystemChance struct { func (x *DB_SystemChance) Reset() { *x = DB_SystemChance{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[124] + mi := &file_pbdata_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9591,7 +9709,7 @@ func (x *DB_SystemChance) String() string { func (*DB_SystemChance) ProtoMessage() {} func (x *DB_SystemChance) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[124] + mi := &file_pbdata_proto_msgTypes[126] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9604,7 +9722,7 @@ func (x *DB_SystemChance) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_SystemChance.ProtoReflect.Descriptor instead. func (*DB_SystemChance) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{124} + return file_pbdata_proto_rawDescGZIP(), []int{126} } func (x *DB_SystemChance) GetId() int32 { @@ -9653,7 +9771,7 @@ type DB_SystemChanceArray struct { func (x *DB_SystemChanceArray) Reset() { *x = DB_SystemChanceArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[125] + mi := &file_pbdata_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9666,7 +9784,7 @@ func (x *DB_SystemChanceArray) String() string { func (*DB_SystemChanceArray) ProtoMessage() {} func (x *DB_SystemChanceArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[125] + mi := &file_pbdata_proto_msgTypes[127] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9679,7 +9797,7 @@ func (x *DB_SystemChanceArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_SystemChanceArray.ProtoReflect.Descriptor instead. func (*DB_SystemChanceArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{125} + return file_pbdata_proto_rawDescGZIP(), []int{127} } func (x *DB_SystemChanceArray) GetArr() []*DB_SystemChance { @@ -9708,7 +9826,7 @@ type DB_Task struct { func (x *DB_Task) Reset() { *x = DB_Task{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[126] + mi := &file_pbdata_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9721,7 +9839,7 @@ func (x *DB_Task) String() string { func (*DB_Task) ProtoMessage() {} func (x *DB_Task) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[126] + mi := &file_pbdata_proto_msgTypes[128] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9734,7 +9852,7 @@ func (x *DB_Task) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Task.ProtoReflect.Descriptor instead. func (*DB_Task) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{126} + return file_pbdata_proto_rawDescGZIP(), []int{128} } func (x *DB_Task) GetId() int32 { @@ -9811,7 +9929,7 @@ type DB_TaskArray struct { func (x *DB_TaskArray) Reset() { *x = DB_TaskArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[127] + mi := &file_pbdata_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9824,7 +9942,7 @@ func (x *DB_TaskArray) String() string { func (*DB_TaskArray) ProtoMessage() {} func (x *DB_TaskArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[127] + mi := &file_pbdata_proto_msgTypes[129] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9837,7 +9955,7 @@ func (x *DB_TaskArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_TaskArray.ProtoReflect.Descriptor instead. func (*DB_TaskArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{127} + return file_pbdata_proto_rawDescGZIP(), []int{129} } func (x *DB_TaskArray) GetArr() []*DB_Task { @@ -9864,7 +9982,7 @@ type DB_ThirdPlatformGameMapping struct { func (x *DB_ThirdPlatformGameMapping) Reset() { *x = DB_ThirdPlatformGameMapping{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[128] + mi := &file_pbdata_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9877,7 +9995,7 @@ func (x *DB_ThirdPlatformGameMapping) String() string { func (*DB_ThirdPlatformGameMapping) ProtoMessage() {} func (x *DB_ThirdPlatformGameMapping) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[128] + mi := &file_pbdata_proto_msgTypes[130] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9890,7 +10008,7 @@ func (x *DB_ThirdPlatformGameMapping) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_ThirdPlatformGameMapping.ProtoReflect.Descriptor instead. func (*DB_ThirdPlatformGameMapping) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{128} + return file_pbdata_proto_rawDescGZIP(), []int{130} } func (x *DB_ThirdPlatformGameMapping) GetId() int32 { @@ -9953,7 +10071,7 @@ type DB_ThirdPlatformGameMappingArray struct { func (x *DB_ThirdPlatformGameMappingArray) Reset() { *x = DB_ThirdPlatformGameMappingArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[129] + mi := &file_pbdata_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9966,7 +10084,7 @@ func (x *DB_ThirdPlatformGameMappingArray) String() string { func (*DB_ThirdPlatformGameMappingArray) ProtoMessage() {} func (x *DB_ThirdPlatformGameMappingArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[129] + mi := &file_pbdata_proto_msgTypes[131] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9979,7 +10097,7 @@ func (x *DB_ThirdPlatformGameMappingArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_ThirdPlatformGameMappingArray.ProtoReflect.Descriptor instead. func (*DB_ThirdPlatformGameMappingArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{129} + return file_pbdata_proto_rawDescGZIP(), []int{131} } func (x *DB_ThirdPlatformGameMappingArray) GetArr() []*DB_ThirdPlatformGameMapping { @@ -10002,7 +10120,7 @@ type DB_Tips struct { func (x *DB_Tips) Reset() { *x = DB_Tips{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[130] + mi := &file_pbdata_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10015,7 +10133,7 @@ func (x *DB_Tips) String() string { func (*DB_Tips) ProtoMessage() {} func (x *DB_Tips) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[130] + mi := &file_pbdata_proto_msgTypes[132] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10028,7 +10146,7 @@ func (x *DB_Tips) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Tips.ProtoReflect.Descriptor instead. func (*DB_Tips) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{130} + return file_pbdata_proto_rawDescGZIP(), []int{132} } func (x *DB_Tips) GetId() int32 { @@ -10063,7 +10181,7 @@ type DB_TipsArray struct { func (x *DB_TipsArray) Reset() { *x = DB_TipsArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[131] + mi := &file_pbdata_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10076,7 +10194,7 @@ func (x *DB_TipsArray) String() string { func (*DB_TipsArray) ProtoMessage() {} func (x *DB_TipsArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[131] + mi := &file_pbdata_proto_msgTypes[133] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10089,7 +10207,7 @@ func (x *DB_TipsArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_TipsArray.ProtoReflect.Descriptor instead. func (*DB_TipsArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{131} + return file_pbdata_proto_rawDescGZIP(), []int{133} } func (x *DB_TipsArray) GetArr() []*DB_Tips { @@ -10128,7 +10246,7 @@ type DB_VIP struct { func (x *DB_VIP) Reset() { *x = DB_VIP{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[132] + mi := &file_pbdata_proto_msgTypes[134] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10141,7 +10259,7 @@ func (x *DB_VIP) String() string { func (*DB_VIP) ProtoMessage() {} func (x *DB_VIP) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[132] + mi := &file_pbdata_proto_msgTypes[134] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10154,7 +10272,7 @@ func (x *DB_VIP) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_VIP.ProtoReflect.Descriptor instead. func (*DB_VIP) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{132} + return file_pbdata_proto_rawDescGZIP(), []int{134} } func (x *DB_VIP) GetId() int32 { @@ -10301,7 +10419,7 @@ type DB_VIPArray struct { func (x *DB_VIPArray) Reset() { *x = DB_VIPArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[133] + mi := &file_pbdata_proto_msgTypes[135] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10314,7 +10432,7 @@ func (x *DB_VIPArray) String() string { func (*DB_VIPArray) ProtoMessage() {} func (x *DB_VIPArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[133] + mi := &file_pbdata_proto_msgTypes[135] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10327,7 +10445,7 @@ func (x *DB_VIPArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_VIPArray.ProtoReflect.Descriptor instead. func (*DB_VIPArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{133} + return file_pbdata_proto_rawDescGZIP(), []int{135} } func (x *DB_VIPArray) GetArr() []*DB_VIP { @@ -11319,388 +11437,399 @@ var file_pbdata_proto_rawDesc = []byte{ 0x5f, 0x4e, 0x65, 0x77, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x4e, 0x65, 0x77, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xe9, 0x02, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x50, - 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6b, 0x69, 0x6c, 0x6c, - 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, - 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x50, 0x65, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x50, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x12, - 0x1e, 0x0a, 0x0a, 0x53, 0x4b, 0x69, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x4b, 0x69, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, - 0x43, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x18, 0x09, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, - 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6e, - 0x73, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, - 0x6e, 0x73, 0x75, 0x6d, 0x1a, 0x3d, 0x0a, 0x0f, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6e, 0x73, - 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, - 0x6c, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, - 0x5f, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xa2, - 0x02, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, - 0x72, 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, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x49, 0x74, - 0x65, 0x6d, 0x5f, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, - 0x6d, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4f, 0x64, 0x64, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4f, 0x64, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4f, - 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, - 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x31, 0x12, 0x12, 0x0a, 0x04, 0x4f, 0x64, 0x64, 0x32, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4f, 0x64, 0x64, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x4f, - 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, - 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x4f, 0x64, 0x64, 0x33, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4f, 0x64, 0x64, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x4f, - 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x33, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, - 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, - 0x74, 0x65, 0x34, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, - 0x74, 0x65, 0x34, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, - 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, - 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, - 0x79, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xce, 0x02, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x50, 0x69, - 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x20, 0x0a, - 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x12, - 0x20, 0x0a, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, - 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x6d, - 0x6f, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x78, 0x47, 0x6f, 0x6c, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x78, 0x47, 0x6f, 0x6c, 0x64, 0x12, 0x1e, 0x0a, - 0x0a, 0x4d, 0x61, 0x78, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x78, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x1c, 0x0a, - 0x09, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x09, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x43, - 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, - 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x44, 0x69, 0x61, - 0x6d, 0x6f, 0x6e, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0c, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x28, 0x0a, - 0x0f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4e, - 0x6f, 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, 0x5f, 0x50, 0x69, - 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x41, 0x72, 0x72, - 0x61, 0x79, 0x12, 0x2c, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x42, - 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, - 0x22, 0x5b, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x50, - 0x72, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6f, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6f, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1c, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x09, 0x50, 0x72, 0x6f, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x41, 0x0a, - 0x14, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x72, 0x6f, 0x70, - 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, - 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x03, 0x41, 0x72, 0x72, - 0x22, 0x30, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x78, 0x70, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, - 0x12, 0x10, 0x0a, 0x03, 0x45, 0x78, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x45, - 0x78, 0x70, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, - 0x78, 0x70, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, - 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x78, 0x70, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, - 0x6d, 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x12, 0x0a, 0x04, 0x43, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x43, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x65, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x04, 0x48, 0x65, 0x61, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x53, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x53, 0x65, 0x78, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x3d, - 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x41, - 0x72, 0x72, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xa5, 0x05, - 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x65, 0x72, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x75, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x50, 0x61, + 0x73, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x39, + 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x50, 0x61, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x72, 0x72, + 0x61, 0x79, 0x12, 0x25, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x61, 0x73, 0x73, + 0x53, 0x68, 0x6f, 0x77, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xe9, 0x02, 0x0a, 0x0b, 0x44, 0x42, + 0x5f, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6b, 0x69, + 0x6c, 0x6c, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x6b, 0x69, 0x6c, + 0x6c, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x65, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x50, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x6b, 0x69, + 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x53, 0x6b, 0x69, 0x6c, + 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, + 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, + 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x4b, 0x69, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x4b, 0x69, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x43, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x18, + 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, + 0x42, 0x5f, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x43, + 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x49, 0x74, 0x65, 0x6d, + 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x1a, 0x3d, 0x0a, 0x0f, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, + 0x6e, 0x73, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x50, 0x65, 0x74, 0x53, + 0x6b, 0x69, 0x6c, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x03, 0x41, 0x72, 0x72, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, + 0x44, 0x42, 0x5f, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, + 0x22, 0xa2, 0x02, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, + 0x74, 0x65, 0x72, 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, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, + 0x49, 0x74, 0x65, 0x6d, 0x5f, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, + 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4f, + 0x64, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4f, 0x64, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x31, 0x12, 0x12, 0x0a, 0x04, 0x4f, 0x64, 0x64, + 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4f, 0x64, 0x64, 0x32, 0x12, 0x1a, 0x0a, + 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x4f, 0x64, 0x64, + 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4f, 0x64, 0x64, 0x33, 0x12, 0x1a, 0x0a, + 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x33, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x64, 0x64, + 0x72, 0x61, 0x74, 0x65, 0x34, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, 0x64, 0x64, + 0x72, 0x61, 0x74, 0x65, 0x34, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x50, 0x68, 0x6f, 0x6e, + 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, + 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, + 0x65, 0x72, 0x79, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xce, 0x02, 0x0a, 0x12, 0x44, 0x42, 0x5f, + 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, - 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x50, 0x61, 0x79, 0x4c, - 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, - 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0d, 0x50, 0x61, 0x79, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, - 0x2e, 0x0a, 0x12, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x6f, 0x77, 0x65, 0x72, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x47, 0x61, 0x6d, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, - 0x2e, 0x0a, 0x12, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x70, 0x70, 0x65, 0x72, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x47, 0x61, 0x6d, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, - 0x2c, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x49, 0x6e, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2c, 0x0a, - 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, - 0x6e, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x4f, - 0x64, 0x64, 0x73, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x55, 0x70, 0x70, 0x65, 0x72, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4f, 0x64, 0x64, - 0x73, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x4c, - 0x75, 0x63, 0x6b, 0x79, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, - 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x52, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x43, 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, - 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, - 0x6e, 0x67, 0x65, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x43, 0x61, 0x72, 0x64, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, - 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x18, - 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x62, 0x52, 0x61, - 0x74, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, - 0x62, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x62, - 0x41, 0x72, 0x72, 0x18, 0x12, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x4c, - 0x69, 0x62, 0x41, 0x72, 0x72, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x03, 0x41, - 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x03, 0x41, 0x72, 0x72, 0x22, 0x5d, 0x0a, 0x09, 0x44, 0x42, 0x5f, 0x50, 0x6f, 0x74, 0x4f, 0x64, - 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, + 0x20, 0x0a, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x69, + 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x4d, 0x61, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x6d, 0x6f, + 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, + 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x78, 0x47, 0x6f, 0x6c, 0x64, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x78, 0x47, 0x6f, 0x6c, 0x64, 0x12, + 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x78, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x78, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, + 0x1c, 0x0a, 0x09, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x1c, 0x0a, + 0x09, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x44, + 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0c, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, + 0x28, 0x0a, 0x0f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, + 0x64, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, 0x5f, + 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x41, + 0x72, 0x72, 0x61, 0x79, 0x12, 0x2c, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x69, + 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x52, 0x03, 0x41, + 0x72, 0x72, 0x22, 0x5b, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, + 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6f, 0x72, 0x70, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6f, 0x72, 0x70, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x50, 0x72, 0x6f, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x72, + 0x6f, 0x70, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, + 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x03, 0x41, + 0x72, 0x72, 0x22, 0x30, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, + 0x78, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x78, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x45, 0x78, 0x70, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x45, 0x78, 0x70, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, + 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x78, 0x70, 0x52, 0x03, 0x41, 0x72, + 0x72, 0x22, 0x6d, 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x43, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x65, 0x61, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x48, 0x65, 0x61, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x53, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x53, 0x65, 0x78, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, + 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, + 0xa5, 0x05, 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x56, - 0x69, 0x70, 0x4f, 0x64, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x56, 0x69, 0x70, - 0x4f, 0x64, 0x64, 0x22, 0x35, 0x0a, 0x0e, 0x44, 0x42, 0x5f, 0x50, 0x6f, 0x74, 0x4f, 0x64, 0x64, - 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x23, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, - 0x6f, 0x74, 0x4f, 0x64, 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x97, 0x02, 0x0a, 0x0f, 0x44, - 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, - 0x0a, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x12, 0x35, 0x0a, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, - 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x43, 0x6f, 0x73, 0x74, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x47, - 0x61, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x2e, 0x47, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x47, 0x61, - 0x69, 0x6e, 0x1a, 0x37, 0x0a, 0x09, 0x43, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x47, - 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, - 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x46, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x52, 0x61, - 0x6e, 0x6b, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x45, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x45, 0x6e, 0x64, 0x22, - 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x41, - 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x52, 0x61, - 0x6e, 0x6b, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x7a, 0x0a, 0x0c, - 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, - 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x12, - 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x52, - 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, - 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xff, 0x01, 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, - 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, - 0x72, 0x64, 0x31, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, - 0x72, 0x64, 0x31, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, 0x4e, - 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, - 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x49, 0x64, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x49, 0x64, 0x12, - 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x4e, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, - 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, - 0x72, 0x64, 0x33, 0x4e, 0x75, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, - 0x61, 0x72, 0x64, 0x33, 0x4e, 0x75, 0x6d, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x52, 0x61, - 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x27, 0x0a, + 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, + 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, + 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x4c, 0x6f, 0x77, 0x65, + 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x50, 0x61, + 0x79, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x50, + 0x61, 0x79, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0d, 0x50, 0x61, 0x79, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x6f, 0x77, + 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x47, + 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x70, 0x70, + 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x47, + 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x4c, 0x6f, 0x77, 0x65, + 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x54, 0x6f, + 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, + 0x2c, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x49, 0x6e, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, + 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x4c, 0x6f, 0x77, 0x65, 0x72, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x55, 0x70, 0x70, + 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4f, + 0x64, 0x64, 0x73, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1c, 0x0a, + 0x09, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x52, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x61, 0x72, 0x64, 0x52, + 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x43, 0x61, 0x72, + 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0f, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x62, + 0x52, 0x61, 0x74, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x61, 0x72, 0x64, + 0x4c, 0x69, 0x62, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x4c, + 0x69, 0x62, 0x41, 0x72, 0x72, 0x18, 0x12, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, + 0x64, 0x4c, 0x69, 0x62, 0x41, 0x72, 0x72, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x4d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x53, 0x65, 0x6e, - 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, - 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, - 0x57, 0x6f, 0x72, 0x64, 0x73, 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, 0x5f, 0x53, 0x65, 0x6e, 0x73, - 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, - 0x12, 0x2c, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xbb, - 0x03, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x02, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, - 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, - 0x65, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, - 0x6c, 0x31, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, - 0x6c, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x32, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x32, 0x12, 0x1a, - 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x33, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, - 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x34, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, - 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, - 0x6c, 0x35, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, - 0x6c, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x31, 0x18, 0x09, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x31, 0x12, 0x1a, - 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x32, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, - 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x33, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, - 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, - 0x6c, 0x34, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, - 0x6c, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x35, 0x18, 0x0d, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x35, 0x12, 0x18, - 0x0a, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, - 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x72, 0x79, - 0x4d, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4d, - 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x74, 0x18, 0x10, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x74, 0x22, 0x45, 0x0a, 0x16, - 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2b, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, - 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x03, - 0x41, 0x72, 0x72, 0x22, 0x7d, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x68, - 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, - 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, - 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x12, - 0x0a, 0x04, 0x52, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, - 0x74, 0x65, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, - 0x68, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, - 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, - 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xd7, 0x02, 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, - 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, - 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, - 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x41, - 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54, - 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x54, - 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x46, 0x69, 0x6e, - 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, - 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x05, 0x41, - 0x77, 0x61, 0x72, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x41, 0x77, 0x61, 0x72, - 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, - 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x50, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, - 0x31, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, - 0x21, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x03, 0x41, - 0x72, 0x72, 0x22, 0x85, 0x02, 0x0a, 0x1b, 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x61, 0x6d, 0x65, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x11, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, 0x61, 0x6d, - 0x65, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x54, 0x68, 0x69, 0x72, 0x64, - 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, 0x12, 0x34, 0x0a, 0x15, 0x53, 0x63, - 0x72, 0x65, 0x65, 0x6e, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x53, 0x63, 0x72, 0x65, 0x65, - 0x6e, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x54, 0x68, 0x69, 0x72, 0x64, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x54, 0x68, 0x69, 0x72, 0x64, 0x49, 0x44, 0x22, 0x59, 0x0a, 0x20, 0x44, 0x42, - 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, - 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x35, - 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x43, 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, + 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x5d, 0x0a, 0x09, 0x44, 0x42, 0x5f, 0x50, 0x6f, 0x74, + 0x4f, 0x64, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x56, 0x69, 0x70, 0x4f, 0x64, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x56, + 0x69, 0x70, 0x4f, 0x64, 0x64, 0x22, 0x35, 0x0a, 0x0e, 0x44, 0x42, 0x5f, 0x50, 0x6f, 0x74, 0x4f, + 0x64, 0x64, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x23, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, + 0x5f, 0x50, 0x6f, 0x74, 0x4f, 0x64, 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x97, 0x02, 0x0a, + 0x0f, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, - 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x44, 0x65, 0x73, 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, - 0x5f, 0x54, 0x69, 0x70, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x21, 0x0a, 0x03, 0x41, 0x72, - 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xea, 0x05, - 0x0a, 0x06, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x56, 0x69, 0x70, 0x45, 0x78, 0x70, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x56, 0x69, 0x70, 0x45, 0x78, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, - 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, - 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, - 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, - 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, - 0x6f, 0x70, 0x49, 0x64, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, - 0x70, 0x49, 0x64, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, - 0x65, 0x33, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, - 0x65, 0x34, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, - 0x65, 0x35, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, - 0x65, 0x36, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x36, 0x12, 0x3e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, - 0x65, 0x37, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, - 0x67, 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x37, 0x12, 0x28, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, - 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x50, - 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, - 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, - 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x28, - 0x0a, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, - 0x44, 0x18, 0x11, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, - 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x12, 0x2f, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, - 0x64, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x2f, 0x0a, 0x0b, 0x44, 0x42, - 0x5f, 0x56, 0x49, 0x50, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x20, 0x0a, 0x03, 0x41, 0x72, 0x72, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x52, 0x03, 0x41, 0x72, 0x72, 0x42, 0x26, 0x5a, 0x24, 0x6d, - 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, - 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x35, 0x0a, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, + 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x43, 0x6f, + 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x35, 0x0a, + 0x04, 0x47, 0x61, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x47, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, + 0x47, 0x61, 0x69, 0x6e, 0x1a, 0x37, 0x0a, 0x09, 0x43, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, 0x0a, + 0x09, 0x47, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, + 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, + 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x46, 0x0a, 0x0c, 0x44, 0x42, 0x5f, + 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x45, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x45, 0x6e, + 0x64, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x79, 0x63, 0x6c, + 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, + 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x7a, + 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, + 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, + 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, + 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xff, 0x01, 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x52, + 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, + 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, 0x6e, + 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x41, + 0x77, 0x61, 0x72, 0x64, 0x31, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, + 0x77, 0x61, 0x72, 0x64, 0x31, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, + 0x31, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, + 0x64, 0x31, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x49, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x49, + 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x4e, 0x75, 0x6d, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x4e, 0x75, 0x6d, 0x12, + 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, + 0x77, 0x61, 0x72, 0x64, 0x33, 0x4e, 0x75, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, + 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x4e, 0x75, 0x6d, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, + 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, + 0x27, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x4d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x53, + 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x27, + 0x0a, 0x0f, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x76, 0x65, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, 0x5f, 0x53, 0x65, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x41, 0x72, 0x72, + 0x61, 0x79, 0x12, 0x2c, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x65, 0x6e, 0x73, + 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, + 0x22, 0xbb, 0x03, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, + 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, + 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, + 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, + 0x43, 0x6f, 0x6c, 0x31, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, + 0x43, 0x6f, 0x6c, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x32, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x32, + 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x33, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x33, 0x12, 0x1a, 0x0a, 0x08, + 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x34, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, + 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, + 0x43, 0x6f, 0x6c, 0x35, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, + 0x43, 0x6f, 0x6c, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x31, + 0x18, 0x09, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x31, + 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x32, 0x18, 0x0a, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x32, 0x12, 0x1a, 0x0a, 0x08, + 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x33, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, + 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, + 0x43, 0x6f, 0x6c, 0x34, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, + 0x43, 0x6f, 0x6c, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x35, + 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x35, + 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x18, 0x0e, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, + 0x72, 0x79, 0x4d, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x72, + 0x79, 0x4d, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x74, 0x18, + 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x74, 0x22, 0x45, + 0x0a, 0x16, 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2b, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, + 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x7d, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, 0x12, 0x1e, 0x0a, 0x0a, + 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, + 0x12, 0x12, 0x0a, 0x04, 0x52, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x52, 0x61, 0x74, 0x65, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, + 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, + 0x63, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xd7, 0x02, 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x54, + 0x61, 0x73, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x63, 0x74, + 0x69, 0x76, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x46, + 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x30, 0x0a, + 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x41, 0x77, + 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, + 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x50, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x72, 0x72, 0x61, + 0x79, 0x12, 0x21, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x52, + 0x03, 0x41, 0x72, 0x72, 0x22, 0x85, 0x02, 0x0a, 0x1b, 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, + 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x61, + 0x6d, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x53, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x68, 0x69, 0x72, + 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x11, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, + 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x54, 0x68, 0x69, + 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, 0x12, 0x34, 0x0a, 0x15, + 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x53, 0x63, 0x72, + 0x65, 0x65, 0x6e, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x68, 0x69, 0x72, 0x64, 0x49, 0x44, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x54, 0x68, 0x69, 0x72, 0x64, 0x49, 0x44, 0x22, 0x59, 0x0a, 0x20, + 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, + 0x12, 0x35, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x43, 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x54, 0x69, + 0x70, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x44, 0x65, 0x73, 0x22, 0x31, 0x0a, 0x0c, + 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x21, 0x0a, 0x03, + 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, + 0xea, 0x05, 0x0a, 0x06, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x56, 0x69, 0x70, 0x45, 0x78, 0x70, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x56, 0x69, 0x70, 0x45, 0x78, 0x70, 0x12, 0x1e, 0x0a, 0x0a, + 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x12, 0x1e, 0x0a, 0x0a, + 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x12, 0x18, 0x0a, 0x07, + 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, + 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, + 0x65, 0x67, 0x65, 0x33, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, + 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, + 0x65, 0x67, 0x65, 0x34, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, + 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, + 0x65, 0x67, 0x65, 0x35, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, + 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, + 0x65, 0x67, 0x65, 0x36, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, + 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x12, 0x3e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, + 0x65, 0x67, 0x65, 0x37, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x69, + 0x6c, 0x65, 0x67, 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, + 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x12, 0x28, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, + 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, + 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, + 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, + 0x65, 0x49, 0x44, 0x18, 0x11, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x12, 0x2f, 0x0a, 0x05, 0x41, 0x77, + 0x61, 0x72, 0x64, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x13, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, + 0x37, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x2f, 0x0a, 0x0b, + 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x20, 0x0a, 0x03, 0x41, + 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x52, 0x03, 0x41, 0x72, 0x72, 0x42, 0x26, 0x5a, + 0x24, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -11715,7 +11844,7 @@ func file_pbdata_proto_rawDescGZIP() []byte { return file_pbdata_proto_rawDescData } -var file_pbdata_proto_msgTypes = make([]protoimpl.MessageInfo, 144) +var file_pbdata_proto_msgTypes = make([]protoimpl.MessageInfo, 146) var file_pbdata_proto_goTypes = []interface{}{ (*DB_ActSign)(nil), // 0: server.DB_ActSign (*DB_ActSignArray)(nil), // 1: server.DB_ActSignArray @@ -11813,54 +11942,56 @@ var file_pbdata_proto_goTypes = []interface{}{ (*DB_NameGirlArray)(nil), // 93: server.DB_NameGirlArray (*DB_NewPlayer)(nil), // 94: server.DB_NewPlayer (*DB_NewPlayerArray)(nil), // 95: server.DB_NewPlayerArray - (*DB_PetSkill)(nil), // 96: server.DB_PetSkill - (*DB_PetSkillArray)(nil), // 97: server.DB_PetSkillArray - (*DB_PhoneLottery)(nil), // 98: server.DB_PhoneLottery - (*DB_PhoneLotteryArray)(nil), // 99: server.DB_PhoneLotteryArray - (*DB_PigBank_Diamond)(nil), // 100: server.DB_PigBank_Diamond - (*DB_PigBank_DiamondArray)(nil), // 101: server.DB_PigBank_DiamondArray - (*DB_Pigbank_Prop)(nil), // 102: server.DB_Pigbank_Prop - (*DB_Pigbank_PropArray)(nil), // 103: server.DB_Pigbank_PropArray - (*DB_PlayerExp)(nil), // 104: server.DB_PlayerExp - (*DB_PlayerExpArray)(nil), // 105: server.DB_PlayerExpArray - (*DB_PlayerInfo)(nil), // 106: server.DB_PlayerInfo - (*DB_PlayerInfoArray)(nil), // 107: server.DB_PlayerInfoArray - (*DB_PlayerType)(nil), // 108: server.DB_PlayerType - (*DB_PlayerTypeArray)(nil), // 109: server.DB_PlayerTypeArray - (*DB_PotOdd)(nil), // 110: server.DB_PotOdd - (*DB_PotOddArray)(nil), // 111: server.DB_PotOddArray - (*DB_PropExchange)(nil), // 112: server.DB_PropExchange - (*DB_PropExchangeArray)(nil), // 113: server.DB_PropExchangeArray - (*DB_RankCycle)(nil), // 114: server.DB_RankCycle - (*DB_RankCycleArray)(nil), // 115: server.DB_RankCycleArray - (*DB_RankLevel)(nil), // 116: server.DB_RankLevel - (*DB_RankLevelArray)(nil), // 117: server.DB_RankLevelArray - (*DB_RankReward)(nil), // 118: server.DB_RankReward - (*DB_RankRewardArray)(nil), // 119: server.DB_RankRewardArray - (*DB_Sensitive_Words)(nil), // 120: server.DB_Sensitive_Words - (*DB_Sensitive_WordsArray)(nil), // 121: server.DB_Sensitive_WordsArray - (*DB_SlotRateWeight)(nil), // 122: server.DB_SlotRateWeight - (*DB_SlotRateWeightArray)(nil), // 123: server.DB_SlotRateWeightArray - (*DB_SystemChance)(nil), // 124: server.DB_SystemChance - (*DB_SystemChanceArray)(nil), // 125: server.DB_SystemChanceArray - (*DB_Task)(nil), // 126: server.DB_Task - (*DB_TaskArray)(nil), // 127: server.DB_TaskArray - (*DB_ThirdPlatformGameMapping)(nil), // 128: server.DB_ThirdPlatformGameMapping - (*DB_ThirdPlatformGameMappingArray)(nil), // 129: server.DB_ThirdPlatformGameMappingArray - (*DB_Tips)(nil), // 130: server.DB_Tips - (*DB_TipsArray)(nil), // 131: server.DB_TipsArray - (*DB_VIP)(nil), // 132: server.DB_VIP - (*DB_VIPArray)(nil), // 133: server.DB_VIPArray - nil, // 134: server.DB_CollectBox.ItemIDEntry - nil, // 135: server.DB_GiftBox.ItemIDEntry - nil, // 136: server.DB_GiftCard.RewardsEntry - nil, // 137: server.DB_GiftCard.DayRewardsEntry - nil, // 138: server.DB_PetSkill.ItemConsumEntry - nil, // 139: server.DB_PropExchange.CostEntry - nil, // 140: server.DB_PropExchange.GainEntry - nil, // 141: server.DB_Task.AwardEntry - nil, // 142: server.DB_VIP.Privilege7Entry - nil, // 143: server.DB_VIP.AwardEntry + (*DB_PassShow)(nil), // 96: server.DB_PassShow + (*DB_PassShowArray)(nil), // 97: server.DB_PassShowArray + (*DB_PetSkill)(nil), // 98: server.DB_PetSkill + (*DB_PetSkillArray)(nil), // 99: server.DB_PetSkillArray + (*DB_PhoneLottery)(nil), // 100: server.DB_PhoneLottery + (*DB_PhoneLotteryArray)(nil), // 101: server.DB_PhoneLotteryArray + (*DB_PigBank_Diamond)(nil), // 102: server.DB_PigBank_Diamond + (*DB_PigBank_DiamondArray)(nil), // 103: server.DB_PigBank_DiamondArray + (*DB_Pigbank_Prop)(nil), // 104: server.DB_Pigbank_Prop + (*DB_Pigbank_PropArray)(nil), // 105: server.DB_Pigbank_PropArray + (*DB_PlayerExp)(nil), // 106: server.DB_PlayerExp + (*DB_PlayerExpArray)(nil), // 107: server.DB_PlayerExpArray + (*DB_PlayerInfo)(nil), // 108: server.DB_PlayerInfo + (*DB_PlayerInfoArray)(nil), // 109: server.DB_PlayerInfoArray + (*DB_PlayerType)(nil), // 110: server.DB_PlayerType + (*DB_PlayerTypeArray)(nil), // 111: server.DB_PlayerTypeArray + (*DB_PotOdd)(nil), // 112: server.DB_PotOdd + (*DB_PotOddArray)(nil), // 113: server.DB_PotOddArray + (*DB_PropExchange)(nil), // 114: server.DB_PropExchange + (*DB_PropExchangeArray)(nil), // 115: server.DB_PropExchangeArray + (*DB_RankCycle)(nil), // 116: server.DB_RankCycle + (*DB_RankCycleArray)(nil), // 117: server.DB_RankCycleArray + (*DB_RankLevel)(nil), // 118: server.DB_RankLevel + (*DB_RankLevelArray)(nil), // 119: server.DB_RankLevelArray + (*DB_RankReward)(nil), // 120: server.DB_RankReward + (*DB_RankRewardArray)(nil), // 121: server.DB_RankRewardArray + (*DB_Sensitive_Words)(nil), // 122: server.DB_Sensitive_Words + (*DB_Sensitive_WordsArray)(nil), // 123: server.DB_Sensitive_WordsArray + (*DB_SlotRateWeight)(nil), // 124: server.DB_SlotRateWeight + (*DB_SlotRateWeightArray)(nil), // 125: server.DB_SlotRateWeightArray + (*DB_SystemChance)(nil), // 126: server.DB_SystemChance + (*DB_SystemChanceArray)(nil), // 127: server.DB_SystemChanceArray + (*DB_Task)(nil), // 128: server.DB_Task + (*DB_TaskArray)(nil), // 129: server.DB_TaskArray + (*DB_ThirdPlatformGameMapping)(nil), // 130: server.DB_ThirdPlatformGameMapping + (*DB_ThirdPlatformGameMappingArray)(nil), // 131: server.DB_ThirdPlatformGameMappingArray + (*DB_Tips)(nil), // 132: server.DB_Tips + (*DB_TipsArray)(nil), // 133: server.DB_TipsArray + (*DB_VIP)(nil), // 134: server.DB_VIP + (*DB_VIPArray)(nil), // 135: server.DB_VIPArray + nil, // 136: server.DB_CollectBox.ItemIDEntry + nil, // 137: server.DB_GiftBox.ItemIDEntry + nil, // 138: server.DB_GiftCard.RewardsEntry + nil, // 139: server.DB_GiftCard.DayRewardsEntry + nil, // 140: server.DB_PetSkill.ItemConsumEntry + nil, // 141: server.DB_PropExchange.CostEntry + nil, // 142: server.DB_PropExchange.GainEntry + nil, // 143: server.DB_Task.AwardEntry + nil, // 144: server.DB_VIP.Privilege7Entry + nil, // 145: server.DB_VIP.AwardEntry } var file_pbdata_proto_depIdxs = []int32{ 0, // 0: server.DB_ActSignArray.Arr:type_name -> server.DB_ActSign @@ -11875,7 +12006,7 @@ var file_pbdata_proto_depIdxs = []int32{ 18, // 9: server.DB_ChessMatchRulesArray.Arr:type_name -> server.DB_ChessMatchRules 20, // 10: server.DB_ChessRankArray.Arr:type_name -> server.DB_ChessRank 22, // 11: server.DB_ClientVerArray.Arr:type_name -> server.DB_ClientVer - 134, // 12: server.DB_CollectBox.ItemID:type_name -> server.DB_CollectBox.ItemIDEntry + 136, // 12: server.DB_CollectBox.ItemID:type_name -> server.DB_CollectBox.ItemIDEntry 24, // 13: server.DB_CollectBoxArray.Arr:type_name -> server.DB_CollectBox 26, // 14: server.DB_CollectBoxGainArray.Arr:type_name -> server.DB_CollectBoxGain 28, // 15: server.DB_CrashSearchArray.Arr:type_name -> server.DB_CrashSearch @@ -11900,10 +12031,10 @@ var file_pbdata_proto_depIdxs = []int32{ 66, // 34: server.DB_Game_IntroductionArray.Arr:type_name -> server.DB_Game_Introduction 68, // 35: server.DB_Game_PetArray.Arr:type_name -> server.DB_Game_Pet 70, // 36: server.DB_Game_RoleArray.Arr:type_name -> server.DB_Game_Role - 135, // 37: server.DB_GiftBox.ItemID:type_name -> server.DB_GiftBox.ItemIDEntry + 137, // 37: server.DB_GiftBox.ItemID:type_name -> server.DB_GiftBox.ItemIDEntry 72, // 38: server.DB_GiftBoxArray.Arr:type_name -> server.DB_GiftBox - 136, // 39: server.DB_GiftCard.Rewards:type_name -> server.DB_GiftCard.RewardsEntry - 137, // 40: server.DB_GiftCard.DayRewards:type_name -> server.DB_GiftCard.DayRewardsEntry + 138, // 39: server.DB_GiftCard.Rewards:type_name -> server.DB_GiftCard.RewardsEntry + 139, // 40: server.DB_GiftCard.DayRewards:type_name -> server.DB_GiftCard.DayRewardsEntry 74, // 41: server.DB_GiftCardArray.Arr:type_name -> server.DB_GiftCard 76, // 42: server.DB_IceAgeElementRateArray.Arr:type_name -> server.DB_IceAgeElementRate 78, // 43: server.DB_Legend_OddsArray.Arr:type_name -> server.DB_Legend_Odds @@ -11915,36 +12046,37 @@ var file_pbdata_proto_depIdxs = []int32{ 90, // 49: server.DB_NameBoyArray.Arr:type_name -> server.DB_NameBoy 92, // 50: server.DB_NameGirlArray.Arr:type_name -> server.DB_NameGirl 94, // 51: server.DB_NewPlayerArray.Arr:type_name -> server.DB_NewPlayer - 138, // 52: server.DB_PetSkill.ItemConsum:type_name -> server.DB_PetSkill.ItemConsumEntry - 96, // 53: server.DB_PetSkillArray.Arr:type_name -> server.DB_PetSkill - 98, // 54: server.DB_PhoneLotteryArray.Arr:type_name -> server.DB_PhoneLottery - 100, // 55: server.DB_PigBank_DiamondArray.Arr:type_name -> server.DB_PigBank_Diamond - 102, // 56: server.DB_Pigbank_PropArray.Arr:type_name -> server.DB_Pigbank_Prop - 104, // 57: server.DB_PlayerExpArray.Arr:type_name -> server.DB_PlayerExp - 106, // 58: server.DB_PlayerInfoArray.Arr:type_name -> server.DB_PlayerInfo - 108, // 59: server.DB_PlayerTypeArray.Arr:type_name -> server.DB_PlayerType - 110, // 60: server.DB_PotOddArray.Arr:type_name -> server.DB_PotOdd - 139, // 61: server.DB_PropExchange.Cost:type_name -> server.DB_PropExchange.CostEntry - 140, // 62: server.DB_PropExchange.Gain:type_name -> server.DB_PropExchange.GainEntry - 112, // 63: server.DB_PropExchangeArray.Arr:type_name -> server.DB_PropExchange - 114, // 64: server.DB_RankCycleArray.Arr:type_name -> server.DB_RankCycle - 116, // 65: server.DB_RankLevelArray.Arr:type_name -> server.DB_RankLevel - 118, // 66: server.DB_RankRewardArray.Arr:type_name -> server.DB_RankReward - 120, // 67: server.DB_Sensitive_WordsArray.Arr:type_name -> server.DB_Sensitive_Words - 122, // 68: server.DB_SlotRateWeightArray.Arr:type_name -> server.DB_SlotRateWeight - 124, // 69: server.DB_SystemChanceArray.Arr:type_name -> server.DB_SystemChance - 141, // 70: server.DB_Task.Award:type_name -> server.DB_Task.AwardEntry - 126, // 71: server.DB_TaskArray.Arr:type_name -> server.DB_Task - 128, // 72: server.DB_ThirdPlatformGameMappingArray.Arr:type_name -> server.DB_ThirdPlatformGameMapping - 130, // 73: server.DB_TipsArray.Arr:type_name -> server.DB_Tips - 142, // 74: server.DB_VIP.Privilege7:type_name -> server.DB_VIP.Privilege7Entry - 143, // 75: server.DB_VIP.Award:type_name -> server.DB_VIP.AwardEntry - 132, // 76: server.DB_VIPArray.Arr:type_name -> server.DB_VIP - 77, // [77:77] is the sub-list for method output_type - 77, // [77:77] is the sub-list for method input_type - 77, // [77:77] is the sub-list for extension type_name - 77, // [77:77] is the sub-list for extension extendee - 0, // [0:77] is the sub-list for field type_name + 96, // 52: server.DB_PassShowArray.Arr:type_name -> server.DB_PassShow + 140, // 53: server.DB_PetSkill.ItemConsum:type_name -> server.DB_PetSkill.ItemConsumEntry + 98, // 54: server.DB_PetSkillArray.Arr:type_name -> server.DB_PetSkill + 100, // 55: server.DB_PhoneLotteryArray.Arr:type_name -> server.DB_PhoneLottery + 102, // 56: server.DB_PigBank_DiamondArray.Arr:type_name -> server.DB_PigBank_Diamond + 104, // 57: server.DB_Pigbank_PropArray.Arr:type_name -> server.DB_Pigbank_Prop + 106, // 58: server.DB_PlayerExpArray.Arr:type_name -> server.DB_PlayerExp + 108, // 59: server.DB_PlayerInfoArray.Arr:type_name -> server.DB_PlayerInfo + 110, // 60: server.DB_PlayerTypeArray.Arr:type_name -> server.DB_PlayerType + 112, // 61: server.DB_PotOddArray.Arr:type_name -> server.DB_PotOdd + 141, // 62: server.DB_PropExchange.Cost:type_name -> server.DB_PropExchange.CostEntry + 142, // 63: server.DB_PropExchange.Gain:type_name -> server.DB_PropExchange.GainEntry + 114, // 64: server.DB_PropExchangeArray.Arr:type_name -> server.DB_PropExchange + 116, // 65: server.DB_RankCycleArray.Arr:type_name -> server.DB_RankCycle + 118, // 66: server.DB_RankLevelArray.Arr:type_name -> server.DB_RankLevel + 120, // 67: server.DB_RankRewardArray.Arr:type_name -> server.DB_RankReward + 122, // 68: server.DB_Sensitive_WordsArray.Arr:type_name -> server.DB_Sensitive_Words + 124, // 69: server.DB_SlotRateWeightArray.Arr:type_name -> server.DB_SlotRateWeight + 126, // 70: server.DB_SystemChanceArray.Arr:type_name -> server.DB_SystemChance + 143, // 71: server.DB_Task.Award:type_name -> server.DB_Task.AwardEntry + 128, // 72: server.DB_TaskArray.Arr:type_name -> server.DB_Task + 130, // 73: server.DB_ThirdPlatformGameMappingArray.Arr:type_name -> server.DB_ThirdPlatformGameMapping + 132, // 74: server.DB_TipsArray.Arr:type_name -> server.DB_Tips + 144, // 75: server.DB_VIP.Privilege7:type_name -> server.DB_VIP.Privilege7Entry + 145, // 76: server.DB_VIP.Award:type_name -> server.DB_VIP.AwardEntry + 134, // 77: server.DB_VIPArray.Arr:type_name -> server.DB_VIP + 78, // [78:78] is the sub-list for method output_type + 78, // [78:78] is the sub-list for method input_type + 78, // [78:78] is the sub-list for extension type_name + 78, // [78:78] is the sub-list for extension extendee + 0, // [0:78] is the sub-list for field type_name } func init() { file_pbdata_proto_init() } @@ -13106,7 +13238,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PetSkill); i { + switch v := v.(*DB_PassShow); i { case 0: return &v.state case 1: @@ -13118,7 +13250,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PetSkillArray); i { + switch v := v.(*DB_PassShowArray); i { case 0: return &v.state case 1: @@ -13130,7 +13262,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PhoneLottery); i { + switch v := v.(*DB_PetSkill); i { case 0: return &v.state case 1: @@ -13142,7 +13274,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PhoneLotteryArray); i { + switch v := v.(*DB_PetSkillArray); i { case 0: return &v.state case 1: @@ -13154,7 +13286,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PigBank_Diamond); i { + switch v := v.(*DB_PhoneLottery); i { case 0: return &v.state case 1: @@ -13166,7 +13298,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PigBank_DiamondArray); i { + switch v := v.(*DB_PhoneLotteryArray); i { case 0: return &v.state case 1: @@ -13178,7 +13310,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Pigbank_Prop); i { + switch v := v.(*DB_PigBank_Diamond); i { case 0: return &v.state case 1: @@ -13190,7 +13322,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Pigbank_PropArray); i { + switch v := v.(*DB_PigBank_DiamondArray); i { case 0: return &v.state case 1: @@ -13202,7 +13334,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PlayerExp); i { + switch v := v.(*DB_Pigbank_Prop); i { case 0: return &v.state case 1: @@ -13214,7 +13346,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PlayerExpArray); i { + switch v := v.(*DB_Pigbank_PropArray); i { case 0: return &v.state case 1: @@ -13226,7 +13358,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PlayerInfo); i { + switch v := v.(*DB_PlayerExp); i { case 0: return &v.state case 1: @@ -13238,7 +13370,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PlayerInfoArray); i { + switch v := v.(*DB_PlayerExpArray); i { case 0: return &v.state case 1: @@ -13250,7 +13382,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PlayerType); i { + switch v := v.(*DB_PlayerInfo); i { case 0: return &v.state case 1: @@ -13262,7 +13394,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PlayerTypeArray); i { + switch v := v.(*DB_PlayerInfoArray); i { case 0: return &v.state case 1: @@ -13274,7 +13406,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PotOdd); i { + switch v := v.(*DB_PlayerType); i { case 0: return &v.state case 1: @@ -13286,7 +13418,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PotOddArray); i { + switch v := v.(*DB_PlayerTypeArray); i { case 0: return &v.state case 1: @@ -13298,7 +13430,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PropExchange); i { + switch v := v.(*DB_PotOdd); i { case 0: return &v.state case 1: @@ -13310,7 +13442,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PropExchangeArray); i { + switch v := v.(*DB_PotOddArray); i { case 0: return &v.state case 1: @@ -13322,7 +13454,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_RankCycle); i { + switch v := v.(*DB_PropExchange); i { case 0: return &v.state case 1: @@ -13334,7 +13466,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_RankCycleArray); i { + switch v := v.(*DB_PropExchangeArray); i { case 0: return &v.state case 1: @@ -13346,7 +13478,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_RankLevel); i { + switch v := v.(*DB_RankCycle); i { case 0: return &v.state case 1: @@ -13358,7 +13490,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_RankLevelArray); i { + switch v := v.(*DB_RankCycleArray); i { case 0: return &v.state case 1: @@ -13370,7 +13502,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_RankReward); i { + switch v := v.(*DB_RankLevel); i { case 0: return &v.state case 1: @@ -13382,7 +13514,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_RankRewardArray); i { + switch v := v.(*DB_RankLevelArray); i { case 0: return &v.state case 1: @@ -13394,7 +13526,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Sensitive_Words); i { + switch v := v.(*DB_RankReward); i { case 0: return &v.state case 1: @@ -13406,7 +13538,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Sensitive_WordsArray); i { + switch v := v.(*DB_RankRewardArray); i { case 0: return &v.state case 1: @@ -13418,7 +13550,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_SlotRateWeight); i { + switch v := v.(*DB_Sensitive_Words); i { case 0: return &v.state case 1: @@ -13430,7 +13562,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_SlotRateWeightArray); i { + switch v := v.(*DB_Sensitive_WordsArray); i { case 0: return &v.state case 1: @@ -13442,7 +13574,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_SystemChance); i { + switch v := v.(*DB_SlotRateWeight); i { case 0: return &v.state case 1: @@ -13454,7 +13586,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_SystemChanceArray); i { + switch v := v.(*DB_SlotRateWeightArray); i { case 0: return &v.state case 1: @@ -13466,7 +13598,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Task); i { + switch v := v.(*DB_SystemChance); i { case 0: return &v.state case 1: @@ -13478,7 +13610,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_TaskArray); i { + switch v := v.(*DB_SystemChanceArray); i { case 0: return &v.state case 1: @@ -13490,7 +13622,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_ThirdPlatformGameMapping); i { + switch v := v.(*DB_Task); i { case 0: return &v.state case 1: @@ -13502,7 +13634,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_ThirdPlatformGameMappingArray); i { + switch v := v.(*DB_TaskArray); i { case 0: return &v.state case 1: @@ -13514,7 +13646,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Tips); i { + switch v := v.(*DB_ThirdPlatformGameMapping); i { case 0: return &v.state case 1: @@ -13526,7 +13658,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_TipsArray); i { + switch v := v.(*DB_ThirdPlatformGameMappingArray); i { case 0: return &v.state case 1: @@ -13538,7 +13670,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_VIP); i { + switch v := v.(*DB_Tips); i { case 0: return &v.state case 1: @@ -13550,6 +13682,30 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DB_TipsArray); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbdata_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DB_VIP); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbdata_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_VIPArray); i { case 0: return &v.state @@ -13568,7 +13724,7 @@ func file_pbdata_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pbdata_proto_rawDesc, NumEnums: 0, - NumMessages: 144, + NumMessages: 146, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/server/pbdata.proto b/protocol/server/pbdata.proto index 4a59eef..aacd311 100644 --- a/protocol/server/pbdata.proto +++ b/protocol/server/pbdata.proto @@ -1237,6 +1237,22 @@ message DB_NewPlayerArray { repeated DB_NewPlayer Arr = 1; } +message DB_PassShow { + + int32 Id = 1; + + int32 ShowType = 2; + + int32 ShowVolume = 3; + + int32 Location = 4; + +} + +message DB_PassShowArray { + repeated DB_PassShow Arr = 1; +} + message DB_PetSkill { int32 Id = 1; diff --git a/protocol/task/task.pb.go b/protocol/task/task.pb.go index ccf4eb6..519d21e 100644 --- a/protocol/task/task.pb.go +++ b/protocol/task/task.pb.go @@ -332,8 +332,8 @@ type CSTaskReward struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Tp int32 `protobuf:"varint,1,opt,name=Tp,proto3" json:"Tp,omitempty"` // 任务类型 1:日常任务 2:周活跃任务 3:新手任务 4:邀请任务 5:成就系统 - Id int32 `protobuf:"varint,2,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id + Tp int32 `protobuf:"varint,1,opt,name=Tp,proto3" json:"Tp,omitempty"` // 任务类型 1:日常任务 2:周活跃任务 3:新手任务 4:邀请任务 5:成就系统 6:赛季通行证任务 + Id int32 `protobuf:"varint,2,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id; 0 表示一键领取 } func (x *CSTaskReward) Reset() { @@ -388,9 +388,10 @@ type SCTaskReward struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - OpCode OpResultCode `protobuf:"varint,1,opt,name=OpCode,proto3,enum=task.OpResultCode" json:"OpCode,omitempty"` // 操作码 - Tp int32 `protobuf:"varint,2,opt,name=Tp,proto3" json:"Tp,omitempty"` // 任务类型 - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id + OpCode OpResultCode `protobuf:"varint,1,opt,name=OpCode,proto3,enum=task.OpResultCode" json:"OpCode,omitempty"` // 操作码 + Tp int32 `protobuf:"varint,2,opt,name=Tp,proto3" json:"Tp,omitempty"` // 任务类型 + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id + Reward map[int64]int64 `protobuf:"bytes,5,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 *SCTaskReward) Reset() { @@ -446,6 +447,13 @@ func (x *SCTaskReward) GetId() int32 { return 0 } +func (x *SCTaskReward) GetReward() map[int64]int64 { + if x != nil { + return x.Reward + } + return nil +} + // 任务变更通知 // PACKET_SCTaskChange type SCTaskChange struct { @@ -640,45 +648,52 @@ var file_task_proto_rawDesc = []byte{ 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x2e, 0x0a, 0x0c, 0x43, 0x53, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x54, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x5a, 0x0a, 0x0c, 0x53, 0x43, - 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x2a, 0x0a, 0x06, 0x4f, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0xcd, 0x01, 0x0a, 0x0c, 0x53, + 0x43, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x2a, 0x0a, 0x06, 0x4f, + 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x61, + 0x73, 0x6b, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, + 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x54, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x2e, 0x53, + 0x43, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 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, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x42, 0x0a, 0x0c, 0x53, 0x43, + 0x54, 0x61, 0x73, 0x6b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x70, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x54, 0x70, 0x12, 0x22, 0x0a, 0x04, 0x4c, 0x69, + 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x2e, + 0x54, 0x61, 0x73, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x48, + 0x0a, 0x0e, 0x43, 0x53, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x62, 0x75, 0x67, 0x49, 0x6e, 0x63, + 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x54, 0x70, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, + 0x12, 0x16, 0x0a, 0x06, 0x41, 0x64, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x41, 0x64, 0x64, 0x4e, 0x75, 0x6d, 0x22, 0x3c, 0x0a, 0x0e, 0x53, 0x43, 0x54, 0x61, + 0x73, 0x6b, 0x44, 0x65, 0x62, 0x75, 0x67, 0x49, 0x6e, 0x63, 0x12, 0x2a, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x06, - 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x54, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x42, 0x0a, 0x0c, 0x53, 0x43, 0x54, 0x61, 0x73, 0x6b, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x70, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x54, 0x70, 0x12, 0x22, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x2e, 0x54, 0x61, 0x73, 0x6b, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x48, 0x0a, 0x0e, 0x43, 0x53, - 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x62, 0x75, 0x67, 0x49, 0x6e, 0x63, 0x12, 0x0e, 0x0a, 0x02, - 0x54, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x54, 0x70, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, - 0x41, 0x64, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x64, - 0x64, 0x4e, 0x75, 0x6d, 0x22, 0x3c, 0x0a, 0x0e, 0x53, 0x43, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, - 0x62, 0x75, 0x67, 0x49, 0x6e, 0x63, 0x12, 0x2a, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x2e, 0x4f, 0x70, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x06, 0x4f, 0x70, 0x43, 0x6f, - 0x64, 0x65, 0x2a, 0x30, 0x0a, 0x0c, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x75, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x10, 0x01, 0x2a, 0xd2, 0x01, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x54, 0x61, 0x73, 0x6b, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x11, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x69, 0x73, 0x74, - 0x10, 0xe0, 0x12, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, - 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x10, 0xe1, 0x12, 0x12, 0x18, 0x0a, 0x13, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x10, 0xe2, 0x12, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x53, 0x43, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xe3, 0x12, 0x12, - 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x61, 0x73, 0x6b, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0xe4, 0x12, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x44, 0x65, 0x62, 0x75, 0x67, 0x49, 0x6e, 0x63, 0x10, 0xe5, - 0x12, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x44, 0x65, - 0x62, 0x75, 0x67, 0x49, 0x6e, 0x63, 0x10, 0xe6, 0x12, 0x42, 0x24, 0x5a, 0x22, 0x6d, 0x6f, 0x6e, - 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, - 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x2a, 0x30, 0x0a, 0x0c, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, + 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x2a, 0xd2, 0x01, 0x0a, 0x0c, 0x54, 0x61, 0x73, + 0x6b, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, + 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x54, 0x61, 0x73, 0x6b, + 0x4c, 0x69, 0x73, 0x74, 0x10, 0xe0, 0x12, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x53, 0x43, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x10, 0xe1, 0x12, 0x12, + 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x54, 0x61, 0x73, 0x6b, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xe2, 0x12, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x10, 0xe3, 0x12, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x54, 0x61, 0x73, 0x6b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0xe4, 0x12, 0x12, 0x16, 0x0a, + 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x44, 0x65, 0x62, 0x75, 0x67, 0x49, + 0x6e, 0x63, 0x10, 0xe5, 0x12, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x53, 0x43, 0x44, 0x65, 0x62, 0x75, 0x67, 0x49, 0x6e, 0x63, 0x10, 0xe6, 0x12, 0x42, 0x24, 0x5a, + 0x22, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x74, + 0x61, 0x73, 0x6b, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -694,7 +709,7 @@ func file_task_proto_rawDescGZIP() []byte { } var file_task_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_task_proto_msgTypes = make([]protoimpl.MessageInfo, 9) +var file_task_proto_msgTypes = make([]protoimpl.MessageInfo, 10) var file_task_proto_goTypes = []interface{}{ (OpResultCode)(0), // 0: task.OpResultCode (TaskPacketID)(0), // 1: task.TaskPacketID @@ -707,18 +722,20 @@ var file_task_proto_goTypes = []interface{}{ (*CSTaskDebugInc)(nil), // 8: task.CSTaskDebugInc (*SCTaskDebugInc)(nil), // 9: task.SCTaskDebugInc nil, // 10: task.TaskData.RewardEntry + nil, // 11: task.SCTaskReward.RewardEntry } var file_task_proto_depIdxs = []int32{ 10, // 0: task.TaskData.Reward:type_name -> task.TaskData.RewardEntry 2, // 1: task.SCTaskList.List:type_name -> task.TaskData 0, // 2: task.SCTaskReward.OpCode:type_name -> task.OpResultCode - 2, // 3: task.SCTaskChange.List:type_name -> task.TaskData - 0, // 4: task.SCTaskDebugInc.OpCode:type_name -> task.OpResultCode - 5, // [5:5] is the sub-list for method output_type - 5, // [5:5] is the sub-list for method input_type - 5, // [5:5] is the sub-list for extension type_name - 5, // [5:5] is the sub-list for extension extendee - 0, // [0:5] is the sub-list for field type_name + 11, // 3: task.SCTaskReward.Reward:type_name -> task.SCTaskReward.RewardEntry + 2, // 4: task.SCTaskChange.List:type_name -> task.TaskData + 0, // 5: task.SCTaskDebugInc.OpCode:type_name -> task.OpResultCode + 6, // [6:6] is the sub-list for method output_type + 6, // [6:6] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 6, // [6:6] is the sub-list for extension extendee + 0, // [0:6] is the sub-list for field type_name } func init() { file_task_proto_init() } @@ -830,7 +847,7 @@ func file_task_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_task_proto_rawDesc, NumEnums: 2, - NumMessages: 9, + NumMessages: 10, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/task/task.proto b/protocol/task/task.proto index 4246c53..2f7f359 100644 --- a/protocol/task/task.proto +++ b/protocol/task/task.proto @@ -44,14 +44,15 @@ message SCTaskList{ // 领取任务奖励 // PACKET_CSTaskReward message CSTaskReward{ - int32 Tp = 1; // 任务类型 1:日常任务 2:周活跃任务 3:新手任务 4:邀请任务 5:成就系统 - int32 Id = 2; // 任务id + int32 Tp = 1; // 任务类型 1:日常任务 2:周活跃任务 3:新手任务 4:邀请任务 5:成就系统 6:赛季通行证任务 + int32 Id = 2; // 任务id; 0 表示一键领取 } // PACKET_SCTaskReward message SCTaskReward{ OpResultCode OpCode = 1; // 操作码 int32 Tp = 2; // 任务类型 int32 Id = 3; // 任务id + map Reward = 5; // 奖励 } // 任务变更通知 diff --git a/protocol/webapi/common.pb.go b/protocol/webapi/common.pb.go index 24cd963..a3316c0 100644 --- a/protocol/webapi/common.pb.go +++ b/protocol/webapi/common.pb.go @@ -6214,6 +6214,389 @@ func (x *ActInviteConfig) GetAwards3() []*RankAward { return nil } +// 等级奖励 +type PermitLevelConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Rank int32 `protobuf:"varint,1,opt,name=Rank,proto3" json:"Rank,omitempty"` // 等级 + Score int64 `protobuf:"varint,2,opt,name=Score,proto3" json:"Score,omitempty"` // 积分 + Award1 []*ItemInfo `protobuf:"bytes,3,rep,name=Award1,proto3" json:"Award1,omitempty"` // 普通奖励 + Award2 []*ItemInfo `protobuf:"bytes,4,rep,name=Award2,proto3" json:"Award2,omitempty"` // 典藏奖励 +} + +func (x *PermitLevelConfig) Reset() { + *x = PermitLevelConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_common_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PermitLevelConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PermitLevelConfig) ProtoMessage() {} + +func (x *PermitLevelConfig) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[61] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PermitLevelConfig.ProtoReflect.Descriptor instead. +func (*PermitLevelConfig) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{61} +} + +func (x *PermitLevelConfig) GetRank() int32 { + if x != nil { + return x.Rank + } + return 0 +} + +func (x *PermitLevelConfig) GetScore() int64 { + if x != nil { + return x.Score + } + return 0 +} + +func (x *PermitLevelConfig) GetAward1() []*ItemInfo { + if x != nil { + return x.Award1 + } + return nil +} + +func (x *PermitLevelConfig) GetAward2() []*ItemInfo { + if x != nil { + return x.Award2 + } + return nil +} + +// 兑换配置 +type PermitExchangeConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 商品id + SortId int32 `protobuf:"varint,2,opt,name=SortId,proto3" json:"SortId,omitempty"` // 排序序号 + Gain []*ItemInfo `protobuf:"bytes,3,rep,name=Gain,proto3" json:"Gain,omitempty"` // 获得商品 + Cost []*ItemInfo `protobuf:"bytes,4,rep,name=Cost,proto3" json:"Cost,omitempty"` // 消耗 + IsPermit bool `protobuf:"varint,5,opt,name=IsPermit,proto3" json:"IsPermit,omitempty"` // 是否需要典藏通行证 + Level int64 `protobuf:"varint,6,opt,name=Level,proto3" json:"Level,omitempty"` // 达到等级 + Times int64 `protobuf:"varint,7,opt,name=Times,proto3" json:"Times,omitempty"` // 最大兑换次数 + IsShow bool `protobuf:"varint,8,opt,name=IsShow,proto3" json:"IsShow,omitempty"` // 开关,true 开启, false 关闭 +} + +func (x *PermitExchangeConfig) Reset() { + *x = PermitExchangeConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_common_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PermitExchangeConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PermitExchangeConfig) ProtoMessage() {} + +func (x *PermitExchangeConfig) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[62] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PermitExchangeConfig.ProtoReflect.Descriptor instead. +func (*PermitExchangeConfig) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{62} +} + +func (x *PermitExchangeConfig) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *PermitExchangeConfig) GetSortId() int32 { + if x != nil { + return x.SortId + } + return 0 +} + +func (x *PermitExchangeConfig) GetGain() []*ItemInfo { + if x != nil { + return x.Gain + } + return nil +} + +func (x *PermitExchangeConfig) GetCost() []*ItemInfo { + if x != nil { + return x.Cost + } + return nil +} + +func (x *PermitExchangeConfig) GetIsPermit() bool { + if x != nil { + return x.IsPermit + } + return false +} + +func (x *PermitExchangeConfig) GetLevel() int64 { + if x != nil { + return x.Level + } + return 0 +} + +func (x *PermitExchangeConfig) GetTimes() int64 { + if x != nil { + return x.Times + } + return 0 +} + +func (x *PermitExchangeConfig) GetIsShow() bool { + if x != nil { + return x.IsShow + } + return false +} + +// 排行配置 +type PermitRankConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Start int32 `protobuf:"varint,1,opt,name=Start,proto3" json:"Start,omitempty"` // 开始排名;第一名为0 + End int32 `protobuf:"varint,2,opt,name=End,proto3" json:"End,omitempty"` // 结束排名 + ItemId []*ItemInfo `protobuf:"bytes,3,rep,name=ItemId,proto3" json:"ItemId,omitempty"` // 奖励 +} + +func (x *PermitRankConfig) Reset() { + *x = PermitRankConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_common_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PermitRankConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PermitRankConfig) ProtoMessage() {} + +func (x *PermitRankConfig) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[63] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PermitRankConfig.ProtoReflect.Descriptor instead. +func (*PermitRankConfig) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{63} +} + +func (x *PermitRankConfig) GetStart() int32 { + if x != nil { + return x.Start + } + return 0 +} + +func (x *PermitRankConfig) GetEnd() int32 { + if x != nil { + return x.End + } + return 0 +} + +func (x *PermitRankConfig) GetItemId() []*ItemInfo { + if x != nil { + return x.ItemId + } + return nil +} + +type PermitChannelConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Channel string `protobuf:"bytes,1,opt,name=Channel,proto3" json:"Channel,omitempty"` // 渠道 + LevelConfig []*PermitLevelConfig `protobuf:"bytes,2,rep,name=LevelConfig,proto3" json:"LevelConfig,omitempty"` // 等级奖励 + ExchangeConfig []*PermitExchangeConfig `protobuf:"bytes,3,rep,name=ExchangeConfig,proto3" json:"ExchangeConfig,omitempty"` // 兑换配置 + RankConfig []*PermitRankConfig `protobuf:"bytes,4,rep,name=RankConfig,proto3" json:"RankConfig,omitempty"` // 排行配置 +} + +func (x *PermitChannelConfig) Reset() { + *x = PermitChannelConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_common_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PermitChannelConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PermitChannelConfig) ProtoMessage() {} + +func (x *PermitChannelConfig) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[64] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PermitChannelConfig.ProtoReflect.Descriptor instead. +func (*PermitChannelConfig) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{64} +} + +func (x *PermitChannelConfig) GetChannel() string { + if x != nil { + return x.Channel + } + return "" +} + +func (x *PermitChannelConfig) GetLevelConfig() []*PermitLevelConfig { + if x != nil { + return x.LevelConfig + } + return nil +} + +func (x *PermitChannelConfig) GetExchangeConfig() []*PermitExchangeConfig { + if x != nil { + return x.ExchangeConfig + } + return nil +} + +func (x *PermitChannelConfig) GetRankConfig() []*PermitRankConfig { + if x != nil { + return x.RankConfig + } + return nil +} + +// etcd /game/act_permit +type ActPermitConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` // 平台 + StartTs int64 `protobuf:"varint,2,opt,name=StartTs,proto3" json:"StartTs,omitempty"` // 开始日期 + Days int32 `protobuf:"varint,3,opt,name=Days,proto3" json:"Days,omitempty"` // 持续天数 + Configs []*PermitChannelConfig `protobuf:"bytes,4,rep,name=Configs,proto3" json:"Configs,omitempty"` // 渠道配置 +} + +func (x *ActPermitConfig) Reset() { + *x = ActPermitConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_common_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ActPermitConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ActPermitConfig) ProtoMessage() {} + +func (x *ActPermitConfig) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[65] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ActPermitConfig.ProtoReflect.Descriptor instead. +func (*ActPermitConfig) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{65} +} + +func (x *ActPermitConfig) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *ActPermitConfig) GetStartTs() int64 { + if x != nil { + return x.StartTs + } + return 0 +} + +func (x *ActPermitConfig) GetDays() int32 { + if x != nil { + return x.Days + } + return 0 +} + +func (x *ActPermitConfig) GetConfigs() []*PermitChannelConfig { + if x != nil { + return x.Configs + } + return nil +} + var File_common_proto protoreflect.FileDescriptor var file_common_proto_rawDesc = []byte{ @@ -7223,10 +7606,65 @@ var file_common_proto_rawDesc = []byte{ 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x26, 0x5a, 0x24, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, - 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x91, 0x01, 0x0a, 0x11, 0x50, 0x65, 0x72, 0x6d, 0x69, + 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, + 0x52, 0x61, 0x6e, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, 0x6e, 0x6b, + 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x28, 0x0a, 0x06, 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, + 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, + 0x12, 0x28, 0x0a, 0x06, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x10, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x06, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x22, 0xea, 0x01, 0x0a, 0x14, 0x50, + 0x65, 0x72, 0x6d, 0x69, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x04, 0x47, + 0x61, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x65, 0x62, 0x61, + 0x70, 0x69, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x47, 0x61, 0x69, + 0x6e, 0x12, 0x24, 0x0a, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x50, 0x65, 0x72, + 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x49, 0x73, 0x50, 0x65, 0x72, + 0x6d, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, + 0x16, 0x0a, 0x06, 0x49, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x06, 0x49, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x22, 0x64, 0x0a, 0x10, 0x50, 0x65, 0x72, 0x6d, 0x69, + 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x45, 0x6e, 0x64, 0x12, 0x28, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x74, 0x65, + 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x22, 0xec, 0x01, + 0x0a, 0x13, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, + 0x3b, 0x0a, 0x0b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x65, + 0x72, 0x6d, 0x69, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x0b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x44, 0x0a, 0x0e, + 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x65, + 0x72, 0x6d, 0x69, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x0e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x38, 0x0a, 0x0a, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, + 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x0a, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x92, 0x01, 0x0a, + 0x0f, 0x41, 0x63, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x54, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x79, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x44, 0x61, 0x79, 0x73, 0x12, 0x35, 0x0a, 0x07, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x77, 0x65, + 0x62, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x73, 0x42, 0x26, 0x5a, 0x24, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x2f, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -7241,7 +7679,7 @@ func file_common_proto_rawDescGZIP() []byte { return file_common_proto_rawDescData } -var file_common_proto_msgTypes = make([]protoimpl.MessageInfo, 67) +var file_common_proto_msgTypes = make([]protoimpl.MessageInfo, 72) var file_common_proto_goTypes = []interface{}{ (*MysqlDbSetting)(nil), // 0: webapi.MysqlDbSetting (*MongoDbSetting)(nil), // 1: webapi.MongoDbSetting @@ -7304,33 +7742,38 @@ var file_common_proto_goTypes = []interface{}{ (*ChannelSwitchConfig)(nil), // 58: webapi.ChannelSwitchConfig (*RankAward)(nil), // 59: webapi.RankAward (*ActInviteConfig)(nil), // 60: webapi.ActInviteConfig - nil, // 61: webapi.Platform.BindTelRewardEntry - nil, // 62: webapi.PlayerData.RankScoreEntry - nil, // 63: webapi.ItemShop.AwardEntry - nil, // 64: webapi.VIPcfg.AwardEntry - nil, // 65: webapi.VIPcfg.Privilege7Entry - nil, // 66: webapi.ActInviteConfig.PayScoreEntry - (*server.DB_GameFree)(nil), // 67: server.DB_GameFree + (*PermitLevelConfig)(nil), // 61: webapi.PermitLevelConfig + (*PermitExchangeConfig)(nil), // 62: webapi.PermitExchangeConfig + (*PermitRankConfig)(nil), // 63: webapi.PermitRankConfig + (*PermitChannelConfig)(nil), // 64: webapi.PermitChannelConfig + (*ActPermitConfig)(nil), // 65: webapi.ActPermitConfig + nil, // 66: webapi.Platform.BindTelRewardEntry + nil, // 67: webapi.PlayerData.RankScoreEntry + nil, // 68: webapi.ItemShop.AwardEntry + nil, // 69: webapi.VIPcfg.AwardEntry + nil, // 70: webapi.VIPcfg.Privilege7Entry + nil, // 71: webapi.ActInviteConfig.PayScoreEntry + (*server.DB_GameFree)(nil), // 72: server.DB_GameFree } var file_common_proto_depIdxs = []int32{ 2, // 0: webapi.Platform.Leaderboard:type_name -> webapi.RankSwitch 3, // 1: webapi.Platform.ClubConfig:type_name -> webapi.ClubConfig 4, // 2: webapi.Platform.ThirdGameMerchant:type_name -> webapi.ThirdGame - 61, // 3: webapi.Platform.BindTelReward:type_name -> webapi.Platform.BindTelRewardEntry + 66, // 3: webapi.Platform.BindTelReward:type_name -> webapi.Platform.BindTelRewardEntry 6, // 4: webapi.GameConfigGlobal.GameStatus:type_name -> webapi.GameStatus - 67, // 5: webapi.GameFree.DbGameFree:type_name -> server.DB_GameFree + 72, // 5: webapi.GameFree.DbGameFree:type_name -> server.DB_GameFree 8, // 6: webapi.PlatformGameConfig.DbGameFrees:type_name -> webapi.GameFree 0, // 7: webapi.PlatformDbConfig.Mysql:type_name -> webapi.MysqlDbSetting 1, // 8: webapi.PlatformDbConfig.MongoDb:type_name -> webapi.MongoDbSetting 1, // 9: webapi.PlatformDbConfig.MongoDbLog:type_name -> webapi.MongoDbSetting - 67, // 10: webapi.GameConfigGroup.DbGameFree:type_name -> server.DB_GameFree - 62, // 11: webapi.PlayerData.RankScore:type_name -> webapi.PlayerData.RankScoreEntry + 72, // 10: webapi.GameConfigGroup.DbGameFree:type_name -> server.DB_GameFree + 67, // 11: webapi.PlayerData.RankScore:type_name -> webapi.PlayerData.RankScoreEntry 29, // 12: webapi.PlayerData.Items:type_name -> webapi.ItemInfo 20, // 13: webapi.OnlineReport.GameCount:type_name -> webapi.OnlineGameCnt 22, // 14: webapi.CommonNoticeList.List:type_name -> webapi.CommonNotice 25, // 15: webapi.ExchangeShop.ExType:type_name -> webapi.ExchangeType 24, // 16: webapi.ExchangeShopList.List:type_name -> webapi.ExchangeShop - 63, // 17: webapi.ItemShop.Award:type_name -> webapi.ItemShop.AwardEntry + 68, // 17: webapi.ItemShop.Award:type_name -> webapi.ItemShop.AwardEntry 27, // 18: webapi.ItemShopList.List:type_name -> webapi.ItemShop 29, // 19: webapi.MatchInfoAward.ItemId:type_name -> webapi.ItemInfo 30, // 20: webapi.GameMatchDate.Award:type_name -> webapi.MatchInfoAward @@ -7351,20 +7794,29 @@ var file_common_proto_depIdxs = []int32{ 35, // 35: webapi.WelfareSpree.Item:type_name -> webapi.WelfareDate 45, // 36: webapi.WelfareFirstPayDataList.List:type_name -> webapi.WelfareSpree 45, // 37: webapi.WelfareContinuousPayDataList.List:type_name -> webapi.WelfareSpree - 64, // 38: webapi.VIPcfg.Award:type_name -> webapi.VIPcfg.AwardEntry - 65, // 39: webapi.VIPcfg.Privilege7:type_name -> webapi.VIPcfg.Privilege7Entry + 69, // 38: webapi.VIPcfg.Award:type_name -> webapi.VIPcfg.AwardEntry + 70, // 39: webapi.VIPcfg.Privilege7:type_name -> webapi.VIPcfg.Privilege7Entry 48, // 40: webapi.VIPcfgDataList.List:type_name -> webapi.VIPcfg 35, // 41: webapi.ChessRankConfig.Item:type_name -> webapi.WelfareDate 52, // 42: webapi.ChessRankcfgData.Datas:type_name -> webapi.ChessRankConfig - 66, // 43: webapi.ActInviteConfig.PayScore:type_name -> webapi.ActInviteConfig.PayScoreEntry + 71, // 43: webapi.ActInviteConfig.PayScore:type_name -> webapi.ActInviteConfig.PayScoreEntry 59, // 44: webapi.ActInviteConfig.Awards1:type_name -> webapi.RankAward 59, // 45: webapi.ActInviteConfig.Awards2:type_name -> webapi.RankAward 59, // 46: webapi.ActInviteConfig.Awards3:type_name -> webapi.RankAward - 47, // [47:47] is the sub-list for method output_type - 47, // [47:47] is the sub-list for method input_type - 47, // [47:47] is the sub-list for extension type_name - 47, // [47:47] is the sub-list for extension extendee - 0, // [0:47] is the sub-list for field type_name + 29, // 47: webapi.PermitLevelConfig.Award1:type_name -> webapi.ItemInfo + 29, // 48: webapi.PermitLevelConfig.Award2:type_name -> webapi.ItemInfo + 29, // 49: webapi.PermitExchangeConfig.Gain:type_name -> webapi.ItemInfo + 29, // 50: webapi.PermitExchangeConfig.Cost:type_name -> webapi.ItemInfo + 29, // 51: webapi.PermitRankConfig.ItemId:type_name -> webapi.ItemInfo + 61, // 52: webapi.PermitChannelConfig.LevelConfig:type_name -> webapi.PermitLevelConfig + 62, // 53: webapi.PermitChannelConfig.ExchangeConfig:type_name -> webapi.PermitExchangeConfig + 63, // 54: webapi.PermitChannelConfig.RankConfig:type_name -> webapi.PermitRankConfig + 64, // 55: webapi.ActPermitConfig.Configs:type_name -> webapi.PermitChannelConfig + 56, // [56:56] is the sub-list for method output_type + 56, // [56:56] is the sub-list for method input_type + 56, // [56:56] is the sub-list for extension type_name + 56, // [56:56] is the sub-list for extension extendee + 0, // [0:56] is the sub-list for field type_name } func init() { file_common_proto_init() } @@ -8105,6 +8557,66 @@ func file_common_proto_init() { return nil } } + file_common_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PermitLevelConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_common_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PermitExchangeConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_common_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PermitRankConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_common_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PermitChannelConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_common_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ActPermitConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -8112,7 +8624,7 @@ func file_common_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_common_proto_rawDesc, NumEnums: 0, - NumMessages: 67, + NumMessages: 72, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/webapi/common.proto b/protocol/webapi/common.proto index 622cdad..bff1b6d 100644 --- a/protocol/webapi/common.proto +++ b/protocol/webapi/common.proto @@ -689,4 +689,46 @@ message ActInviteConfig { repeated RankAward Awards1 = 6; // 周榜奖励列表 repeated RankAward Awards2 = 7; // 周榜奖励列表 repeated RankAward Awards3 = 8; // 周榜奖励列表 +} + +// 等级奖励 +message PermitLevelConfig{ + int32 Rank = 1; // 等级 + int64 Score = 2; // 积分 + repeated ItemInfo Award1 = 3; // 普通奖励 + repeated ItemInfo Award2 = 4; // 典藏奖励 +} + +// 兑换配置 +message PermitExchangeConfig{ + int32 Id = 1; // 商品id + int32 SortId = 2; // 排序序号 + repeated ItemInfo Gain = 3; // 获得商品 + repeated ItemInfo Cost = 4; // 消耗 + bool IsPermit = 5; // 是否需要典藏通行证 + int64 Level = 6; // 达到等级 + int64 Times = 7; // 最大兑换次数 + bool IsShow = 8; // 开关,true 开启, false 关闭 +} + +// 排行配置 +message PermitRankConfig{ + int32 Start = 1; // 开始排名;第一名为0 + int32 End = 2; // 结束排名 + repeated ItemInfo ItemId = 3; // 奖励 +} + +message PermitChannelConfig{ + string Channel = 1; // 渠道 + repeated PermitLevelConfig LevelConfig = 2; // 等级奖励 + repeated PermitExchangeConfig ExchangeConfig = 3; // 兑换配置 + repeated PermitRankConfig RankConfig = 4; // 排行配置 +} + +// etcd /game/act_permit +message ActPermitConfig{ + string Platform = 1; // 平台 + int64 StartTs = 2; // 开始日期 + int32 Days = 3; // 持续天数 + repeated PermitChannelConfig Configs = 4; // 渠道配置 } \ No newline at end of file diff --git a/protocol/welfare/welfare.pb.go b/protocol/welfare/welfare.pb.go index 651f6f1..8606f7c 100644 --- a/protocol/welfare/welfare.pb.go +++ b/protocol/welfare/welfare.pb.go @@ -36,6 +36,11 @@ const ( OpResultCode_OPRC_DiamondLess OpResultCode = 9 // 钻石不足 OpResultCode_OPRC_PigbankNotFull OpResultCode = 10 // 存钱罐未满 OpResultCode_OPRC_PigbankOverTakeTimes OpResultCode = 11 // 存钱罐超过每日领取次数 + OpResultCode_OPRC_ExchangeLimit OpResultCode = 12 // 兑换次数不足 + OpResultCode_OPRC_ExchangeLevelLimit OpResultCode = 13 // 兑换等级不足 + OpResultCode_OPRC_NeedPermit OpResultCode = 14 // 需要典藏通行证 + OpResultCode_OPRC_ErrCost OpResultCode = 15 // 消耗道具不足 + OpResultCode_OPRC_NotFound OpResultCode = 16 // 商品没找到 ) // Enum value maps for OpResultCode. @@ -53,6 +58,11 @@ var ( 9: "OPRC_DiamondLess", 10: "OPRC_PigbankNotFull", 11: "OPRC_PigbankOverTakeTimes", + 12: "OPRC_ExchangeLimit", + 13: "OPRC_ExchangeLevelLimit", + 14: "OPRC_NeedPermit", + 15: "OPRC_ErrCost", + 16: "OPRC_NotFound", } OpResultCode_value = map[string]int32{ "OPRC_Sucess": 0, @@ -67,6 +77,11 @@ var ( "OPRC_DiamondLess": 9, "OPRC_PigbankNotFull": 10, "OPRC_PigbankOverTakeTimes": 11, + "OPRC_ExchangeLimit": 12, + "OPRC_ExchangeLevelLimit": 13, + "OPRC_NeedPermit": 14, + "OPRC_ErrCost": 15, + "OPRC_NotFound": 16, } ) @@ -139,6 +154,16 @@ const ( SPacketID_PACKET_CSDiamondBankGetInfo SPacketID = 2914 //钻石存钱罐信息获取 SPacketID_PACKET_SCDiamondBankGetInfo SPacketID = 2915 //钻石存钱罐信息返回 SPacketID_PACKET_SCDiamondBankTakeDiamond SPacketID = 2916 //钻石存钱罐领取返回 + SPacketID_PACKET_CSPermitInfo SPacketID = 2917 // 通行证奖励 + SPacketID_PACKET_SCPermitInfo SPacketID = 2918 // 通行证奖励 + SPacketID_PACKET_CSPermitExchangeList SPacketID = 2919 // 通行证兑换列表 + SPacketID_PACKET_SCPermitExchangeList SPacketID = 2920 // 通行证兑换列表 + SPacketID_PACKET_CSPermitAward SPacketID = 2921 // 领取通行证奖励 + SPacketID_PACKET_SCPermitAward SPacketID = 2922 // 领取通行证奖励 + SPacketID_PACKET_CSPermitExchange SPacketID = 2923 // 通行证兑换 + SPacketID_PACKET_SCPermitExchange SPacketID = 2924 // 通行证兑换 + SPacketID_PACKET_CSPermitShop SPacketID = 2925 // 典藏通行证商品信息 + SPacketID_PACKET_SCPermitShop SPacketID = 2956 // 典藏通行证商品信息 ) // Enum value maps for SPacketID. @@ -180,6 +205,16 @@ var ( 2914: "PACKET_CSDiamondBankGetInfo", 2915: "PACKET_SCDiamondBankGetInfo", 2916: "PACKET_SCDiamondBankTakeDiamond", + 2917: "PACKET_CSPermitInfo", + 2918: "PACKET_SCPermitInfo", + 2919: "PACKET_CSPermitExchangeList", + 2920: "PACKET_SCPermitExchangeList", + 2921: "PACKET_CSPermitAward", + 2922: "PACKET_SCPermitAward", + 2923: "PACKET_CSPermitExchange", + 2924: "PACKET_SCPermitExchange", + 2925: "PACKET_CSPermitShop", + 2956: "PACKET_SCPermitShop", } SPacketID_value = map[string]int32{ "PACKET_SHOP_ZERO": 0, @@ -218,6 +253,16 @@ var ( "PACKET_CSDiamondBankGetInfo": 2914, "PACKET_SCDiamondBankGetInfo": 2915, "PACKET_SCDiamondBankTakeDiamond": 2916, + "PACKET_CSPermitInfo": 2917, + "PACKET_SCPermitInfo": 2918, + "PACKET_CSPermitExchangeList": 2919, + "PACKET_SCPermitExchangeList": 2920, + "PACKET_CSPermitAward": 2921, + "PACKET_SCPermitAward": 2922, + "PACKET_CSPermitExchange": 2923, + "PACKET_SCPermitExchange": 2924, + "PACKET_CSPermitShop": 2925, + "PACKET_SCPermitShop": 2956, } ) @@ -3062,6 +3107,993 @@ func (x *SCDiamondBankTakeDiamond) GetShopId() int32 { return 0 } +// 赛季通行证信息 +//PACKET_CSPermitInfo +type CSPermitInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CSPermitInfo) Reset() { + *x = CSPermitInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_welfare_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSPermitInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSPermitInfo) ProtoMessage() {} + +func (x *CSPermitInfo) ProtoReflect() protoreflect.Message { + mi := &file_welfare_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSPermitInfo.ProtoReflect.Descriptor instead. +func (*CSPermitInfo) Descriptor() ([]byte, []int) { + return file_welfare_proto_rawDescGZIP(), []int{44} +} + +type PropInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ItemId int32 `protobuf:"varint,1,opt,name=ItemId,proto3" json:"ItemId,omitempty"` //物品ID + ItemNum int64 `protobuf:"varint,2,opt,name=ItemNum,proto3" json:"ItemNum,omitempty"` //物品数量 +} + +func (x *PropInfo) Reset() { + *x = PropInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_welfare_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PropInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PropInfo) ProtoMessage() {} + +func (x *PropInfo) ProtoReflect() protoreflect.Message { + mi := &file_welfare_proto_msgTypes[45] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PropInfo.ProtoReflect.Descriptor instead. +func (*PropInfo) Descriptor() ([]byte, []int) { + return file_welfare_proto_rawDescGZIP(), []int{45} +} + +func (x *PropInfo) GetItemId() int32 { + if x != nil { + return x.ItemId + } + return 0 +} + +func (x *PropInfo) GetItemNum() int64 { + if x != nil { + return x.ItemNum + } + return 0 +} + +type PropItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Award []*PropInfo `protobuf:"bytes,1,rep,name=Award,proto3" json:"Award,omitempty"` // 奖励 + Status int64 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 奖励状态 0默认 1可领取 2已领取 + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 奖励id; 领奖时使用 +} + +func (x *PropItem) Reset() { + *x = PropItem{} + if protoimpl.UnsafeEnabled { + mi := &file_welfare_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PropItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PropItem) ProtoMessage() {} + +func (x *PropItem) ProtoReflect() protoreflect.Message { + mi := &file_welfare_proto_msgTypes[46] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PropItem.ProtoReflect.Descriptor instead. +func (*PropItem) Descriptor() ([]byte, []int) { + return file_welfare_proto_rawDescGZIP(), []int{46} +} + +func (x *PropItem) GetAward() []*PropInfo { + if x != nil { + return x.Award + } + return nil +} + +func (x *PropItem) GetStatus() int64 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *PropItem) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +type PermitAward struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Exp int64 `protobuf:"varint,1,opt,name=Exp,proto3" json:"Exp,omitempty"` // 赛季经验 + Level int64 `protobuf:"varint,2,opt,name=Level,proto3" json:"Level,omitempty"` // 等级 + Award1 *PropItem `protobuf:"bytes,3,opt,name=Award1,proto3" json:"Award1,omitempty"` // 普通奖励 + Award2 *PropItem `protobuf:"bytes,4,opt,name=Award2,proto3" json:"Award2,omitempty"` // 典藏奖励 +} + +func (x *PermitAward) Reset() { + *x = PermitAward{} + if protoimpl.UnsafeEnabled { + mi := &file_welfare_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PermitAward) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PermitAward) ProtoMessage() {} + +func (x *PermitAward) ProtoReflect() protoreflect.Message { + mi := &file_welfare_proto_msgTypes[47] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PermitAward.ProtoReflect.Descriptor instead. +func (*PermitAward) Descriptor() ([]byte, []int) { + return file_welfare_proto_rawDescGZIP(), []int{47} +} + +func (x *PermitAward) GetExp() int64 { + if x != nil { + return x.Exp + } + return 0 +} + +func (x *PermitAward) GetLevel() int64 { + if x != nil { + return x.Level + } + return 0 +} + +func (x *PermitAward) GetAward1() *PropItem { + if x != nil { + return x.Award1 + } + return nil +} + +func (x *PermitAward) GetAward2() *PropItem { + if x != nil { + return x.Award2 + } + return nil +} + +type PermitShow struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ShowType int32 `protobuf:"varint,1,opt,name=ShowType,proto3" json:"ShowType,omitempty"` // 类型 + ShowVolume int32 `protobuf:"varint,2,opt,name=ShowVolume,proto3" json:"ShowVolume,omitempty"` // id + Location int32 `protobuf:"varint,3,opt,name=Location,proto3" json:"Location,omitempty"` // 跳转界面 +} + +func (x *PermitShow) Reset() { + *x = PermitShow{} + if protoimpl.UnsafeEnabled { + mi := &file_welfare_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PermitShow) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PermitShow) ProtoMessage() {} + +func (x *PermitShow) ProtoReflect() protoreflect.Message { + mi := &file_welfare_proto_msgTypes[48] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PermitShow.ProtoReflect.Descriptor instead. +func (*PermitShow) Descriptor() ([]byte, []int) { + return file_welfare_proto_rawDescGZIP(), []int{48} +} + +func (x *PermitShow) GetShowType() int32 { + if x != nil { + return x.ShowType + } + return 0 +} + +func (x *PermitShow) GetShowVolume() int32 { + if x != nil { + return x.ShowVolume + } + return 0 +} + +func (x *PermitShow) GetLocation() int32 { + if x != nil { + return x.Location + } + return 0 +} + +type PermitRankAward struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Start int32 `protobuf:"varint,1,opt,name=Start,proto3" json:"Start,omitempty"` // 开始排名;第一名为0 + End int32 `protobuf:"varint,2,opt,name=End,proto3" json:"End,omitempty"` // 结束排名 + ItemId []*PropInfo `protobuf:"bytes,3,rep,name=ItemId,proto3" json:"ItemId,omitempty"` // 奖励 +} + +func (x *PermitRankAward) Reset() { + *x = PermitRankAward{} + if protoimpl.UnsafeEnabled { + mi := &file_welfare_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PermitRankAward) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PermitRankAward) ProtoMessage() {} + +func (x *PermitRankAward) ProtoReflect() protoreflect.Message { + mi := &file_welfare_proto_msgTypes[49] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PermitRankAward.ProtoReflect.Descriptor instead. +func (*PermitRankAward) Descriptor() ([]byte, []int) { + return file_welfare_proto_rawDescGZIP(), []int{49} +} + +func (x *PermitRankAward) GetStart() int32 { + if x != nil { + return x.Start + } + return 0 +} + +func (x *PermitRankAward) GetEnd() int32 { + if x != nil { + return x.End + } + return 0 +} + +func (x *PermitRankAward) GetItemId() []*PropInfo { + if x != nil { + return x.ItemId + } + return nil +} + +//PACKET_SCPermitInfo +type SCPermitInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Exp int64 `protobuf:"varint,1,opt,name=Exp,proto3" json:"Exp,omitempty"` // 玩家赛季经验 + Level int64 `protobuf:"varint,2,opt,name=Level,proto3" json:"Level,omitempty"` // 玩家等级 + Award []*PermitAward `protobuf:"bytes,3,rep,name=Award,proto3" json:"Award,omitempty"` // 奖励列表 + Timestamp []int64 `protobuf:"varint,4,rep,packed,name=Timestamp,proto3" json:"Timestamp,omitempty"` // 赛季开始和结束时间戳 [开始时间戳,结束时间戳] + ShowList []*PermitShow `protobuf:"bytes,5,rep,name=ShowList,proto3" json:"ShowList,omitempty"` // 展示列表 + IsPermit bool `protobuf:"varint,6,opt,name=IsPermit,proto3" json:"IsPermit,omitempty"` // 是否已购买典藏通行证 + RankAward []*PermitRankAward `protobuf:"bytes,7,rep,name=RankAward,proto3" json:"RankAward,omitempty"` // 排行榜奖励 +} + +func (x *SCPermitInfo) Reset() { + *x = SCPermitInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_welfare_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCPermitInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCPermitInfo) ProtoMessage() {} + +func (x *SCPermitInfo) ProtoReflect() protoreflect.Message { + mi := &file_welfare_proto_msgTypes[50] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SCPermitInfo.ProtoReflect.Descriptor instead. +func (*SCPermitInfo) Descriptor() ([]byte, []int) { + return file_welfare_proto_rawDescGZIP(), []int{50} +} + +func (x *SCPermitInfo) GetExp() int64 { + if x != nil { + return x.Exp + } + return 0 +} + +func (x *SCPermitInfo) GetLevel() int64 { + if x != nil { + return x.Level + } + return 0 +} + +func (x *SCPermitInfo) GetAward() []*PermitAward { + if x != nil { + return x.Award + } + return nil +} + +func (x *SCPermitInfo) GetTimestamp() []int64 { + if x != nil { + return x.Timestamp + } + return nil +} + +func (x *SCPermitInfo) GetShowList() []*PermitShow { + if x != nil { + return x.ShowList + } + return nil +} + +func (x *SCPermitInfo) GetIsPermit() bool { + if x != nil { + return x.IsPermit + } + return false +} + +func (x *SCPermitInfo) GetRankAward() []*PermitRankAward { + if x != nil { + return x.RankAward + } + return nil +} + +// 领取赛季通行证奖励 +//PACKET_CSPermitAward +type CSPermitAward struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Tp int32 `protobuf:"varint,1,opt,name=Tp,proto3" json:"Tp,omitempty"` // 0奖励 1普通奖励 2典藏奖励 + Id int32 `protobuf:"varint,2,opt,name=Id,proto3" json:"Id,omitempty"` // 奖励id; 0:一键领取 +} + +func (x *CSPermitAward) Reset() { + *x = CSPermitAward{} + if protoimpl.UnsafeEnabled { + mi := &file_welfare_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSPermitAward) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSPermitAward) ProtoMessage() {} + +func (x *CSPermitAward) ProtoReflect() protoreflect.Message { + mi := &file_welfare_proto_msgTypes[51] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSPermitAward.ProtoReflect.Descriptor instead. +func (*CSPermitAward) Descriptor() ([]byte, []int) { + return file_welfare_proto_rawDescGZIP(), []int{51} +} + +func (x *CSPermitAward) GetTp() int32 { + if x != nil { + return x.Tp + } + return 0 +} + +func (x *CSPermitAward) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +//PACKET_SCPermitAward +type SCPermitAward struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=welfare.OpResultCode" json:"OpRetCode,omitempty"` // 错误码 + Award1 []*PropInfo `protobuf:"bytes,2,rep,name=Award1,proto3" json:"Award1,omitempty"` // 普通奖励 + Award2 []*PropInfo `protobuf:"bytes,3,rep,name=Award2,proto3" json:"Award2,omitempty"` // 典藏奖励 + Id int32 `protobuf:"varint,4,opt,name=Id,proto3" json:"Id,omitempty"` // 奖励id; 0:一键领取 + Tp int32 `protobuf:"varint,5,opt,name=Tp,proto3" json:"Tp,omitempty"` // 0奖励 1普通奖励 2典藏奖励 +} + +func (x *SCPermitAward) Reset() { + *x = SCPermitAward{} + if protoimpl.UnsafeEnabled { + mi := &file_welfare_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCPermitAward) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCPermitAward) ProtoMessage() {} + +func (x *SCPermitAward) ProtoReflect() protoreflect.Message { + mi := &file_welfare_proto_msgTypes[52] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SCPermitAward.ProtoReflect.Descriptor instead. +func (*SCPermitAward) Descriptor() ([]byte, []int) { + return file_welfare_proto_rawDescGZIP(), []int{52} +} + +func (x *SCPermitAward) GetOpRetCode() OpResultCode { + if x != nil { + return x.OpRetCode + } + return OpResultCode_OPRC_Sucess +} + +func (x *SCPermitAward) GetAward1() []*PropInfo { + if x != nil { + return x.Award1 + } + return nil +} + +func (x *SCPermitAward) GetAward2() []*PropInfo { + if x != nil { + return x.Award2 + } + return nil +} + +func (x *SCPermitAward) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *SCPermitAward) GetTp() int32 { + if x != nil { + return x.Tp + } + return 0 +} + +// 赛季通行证兑换商城 +//PACKET_CSPermitExchangeList +type CSPermitExchangeList struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CSPermitExchangeList) Reset() { + *x = CSPermitExchangeList{} + if protoimpl.UnsafeEnabled { + mi := &file_welfare_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSPermitExchangeList) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSPermitExchangeList) ProtoMessage() {} + +func (x *CSPermitExchangeList) ProtoReflect() protoreflect.Message { + mi := &file_welfare_proto_msgTypes[53] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSPermitExchangeList.ProtoReflect.Descriptor instead. +func (*CSPermitExchangeList) Descriptor() ([]byte, []int) { + return file_welfare_proto_rawDescGZIP(), []int{53} +} + +type ShopInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 商品id + Gain []*PropInfo `protobuf:"bytes,2,rep,name=Gain,proto3" json:"Gain,omitempty"` // 获得商品 + Cost []*PropInfo `protobuf:"bytes,3,rep,name=Cost,proto3" json:"Cost,omitempty"` // 消耗商品 + ExchangeTimes int32 `protobuf:"varint,4,opt,name=ExchangeTimes,proto3" json:"ExchangeTimes,omitempty"` // 最大兑换次数 + RemainTimes int32 `protobuf:"varint,5,opt,name=RemainTimes,proto3" json:"RemainTimes,omitempty"` // 剩余兑换次数 + Level int64 `protobuf:"varint,6,opt,name=Level,proto3" json:"Level,omitempty"` // 兑换所需等级 + NeedPermit bool `protobuf:"varint,7,opt,name=NeedPermit,proto3" json:"NeedPermit,omitempty"` // 需要典藏通行证 + SortId int32 `protobuf:"varint,8,opt,name=SortId,proto3" json:"SortId,omitempty"` // 序号 +} + +func (x *ShopInfo) Reset() { + *x = ShopInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_welfare_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ShopInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ShopInfo) ProtoMessage() {} + +func (x *ShopInfo) ProtoReflect() protoreflect.Message { + mi := &file_welfare_proto_msgTypes[54] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ShopInfo.ProtoReflect.Descriptor instead. +func (*ShopInfo) Descriptor() ([]byte, []int) { + return file_welfare_proto_rawDescGZIP(), []int{54} +} + +func (x *ShopInfo) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *ShopInfo) GetGain() []*PropInfo { + if x != nil { + return x.Gain + } + return nil +} + +func (x *ShopInfo) GetCost() []*PropInfo { + if x != nil { + return x.Cost + } + return nil +} + +func (x *ShopInfo) GetExchangeTimes() int32 { + if x != nil { + return x.ExchangeTimes + } + return 0 +} + +func (x *ShopInfo) GetRemainTimes() int32 { + if x != nil { + return x.RemainTimes + } + return 0 +} + +func (x *ShopInfo) GetLevel() int64 { + if x != nil { + return x.Level + } + return 0 +} + +func (x *ShopInfo) GetNeedPermit() bool { + if x != nil { + return x.NeedPermit + } + return false +} + +func (x *ShopInfo) GetSortId() int32 { + if x != nil { + return x.SortId + } + return 0 +} + +//PACKET_SCPermitExchangeList +type SCPermitExchangeList struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + List []*ShopInfo `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` // 兑换列表 +} + +func (x *SCPermitExchangeList) Reset() { + *x = SCPermitExchangeList{} + if protoimpl.UnsafeEnabled { + mi := &file_welfare_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCPermitExchangeList) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCPermitExchangeList) ProtoMessage() {} + +func (x *SCPermitExchangeList) ProtoReflect() protoreflect.Message { + mi := &file_welfare_proto_msgTypes[55] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SCPermitExchangeList.ProtoReflect.Descriptor instead. +func (*SCPermitExchangeList) Descriptor() ([]byte, []int) { + return file_welfare_proto_rawDescGZIP(), []int{55} +} + +func (x *SCPermitExchangeList) GetList() []*ShopInfo { + if x != nil { + return x.List + } + return nil +} + +// 赛季通行证商城兑换 +//PACKET_CSPermitExchange +type CSPermitExchange 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 *CSPermitExchange) Reset() { + *x = CSPermitExchange{} + if protoimpl.UnsafeEnabled { + mi := &file_welfare_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSPermitExchange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSPermitExchange) ProtoMessage() {} + +func (x *CSPermitExchange) ProtoReflect() protoreflect.Message { + mi := &file_welfare_proto_msgTypes[56] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSPermitExchange.ProtoReflect.Descriptor instead. +func (*CSPermitExchange) Descriptor() ([]byte, []int) { + return file_welfare_proto_rawDescGZIP(), []int{56} +} + +func (x *CSPermitExchange) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +//PACKET_SCPermitExchange +type SCPermitExchange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=welfare.OpResultCode" json:"OpRetCode,omitempty"` // 错误码 +} + +func (x *SCPermitExchange) Reset() { + *x = SCPermitExchange{} + if protoimpl.UnsafeEnabled { + mi := &file_welfare_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCPermitExchange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCPermitExchange) ProtoMessage() {} + +func (x *SCPermitExchange) ProtoReflect() protoreflect.Message { + mi := &file_welfare_proto_msgTypes[57] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SCPermitExchange.ProtoReflect.Descriptor instead. +func (*SCPermitExchange) Descriptor() ([]byte, []int) { + return file_welfare_proto_rawDescGZIP(), []int{57} +} + +func (x *SCPermitExchange) GetOpRetCode() OpResultCode { + if x != nil { + return x.OpRetCode + } + return OpResultCode_OPRC_Sucess +} + +//PACKET_CSPermitShop +type CSPermitShop struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CSPermitShop) Reset() { + *x = CSPermitShop{} + if protoimpl.UnsafeEnabled { + mi := &file_welfare_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSPermitShop) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSPermitShop) ProtoMessage() {} + +func (x *CSPermitShop) ProtoReflect() protoreflect.Message { + mi := &file_welfare_proto_msgTypes[58] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSPermitShop.ProtoReflect.Descriptor instead. +func (*CSPermitShop) Descriptor() ([]byte, []int) { + return file_welfare_proto_rawDescGZIP(), []int{58} +} + +//PACKET_SCPermitShop +type SCPermitShop struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 序号 + Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` // 名称 + Consume int32 `protobuf:"varint,3,opt,name=Consume,proto3" json:"Consume,omitempty"` // 购买消耗类型 1金币 2钻石 + Price int64 `protobuf:"varint,4,opt,name=price,proto3" json:"price,omitempty"` // 价格 +} + +func (x *SCPermitShop) Reset() { + *x = SCPermitShop{} + if protoimpl.UnsafeEnabled { + mi := &file_welfare_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCPermitShop) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCPermitShop) ProtoMessage() {} + +func (x *SCPermitShop) ProtoReflect() protoreflect.Message { + mi := &file_welfare_proto_msgTypes[59] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SCPermitShop.ProtoReflect.Descriptor instead. +func (*SCPermitShop) Descriptor() ([]byte, []int) { + return file_welfare_proto_rawDescGZIP(), []int{59} +} + +func (x *SCPermitShop) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *SCPermitShop) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *SCPermitShop) GetConsume() int32 { + if x != nil { + return x.Consume + } + return 0 +} + +func (x *SCPermitShop) GetPrice() int64 { + if x != nil { + return x.Price + } + return 0 +} + var File_welfare_proto protoreflect.FileDescriptor var file_welfare_proto_rawDesc = []byte{ @@ -3385,98 +4417,222 @@ var file_welfare_proto_rawDesc = []byte{ 0x0a, 0x08, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x68, 0x6f, 0x70, - 0x49, 0x64, 0x2a, 0x86, 0x02, 0x0a, 0x0c, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x75, 0x63, 0x65, - 0x73, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x6f, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x43, - 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x6f, 0x4d, 0x6f, 0x72, 0x65, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, - 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x04, 0x12, 0x14, - 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x42, 0x69, - 0x6e, 0x64, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, - 0x64, 0x53, 0x65, 0x6c, 0x66, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x50, 0x52, 0x43, 0x5f, - 0x4d, 0x79, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x50, - 0x52, 0x43, 0x5f, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x10, 0x08, 0x12, 0x14, 0x0a, - 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4c, 0x65, 0x73, - 0x73, 0x10, 0x09, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x69, 0x67, 0x62, - 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x10, 0x0a, 0x12, 0x1d, 0x0a, 0x19, - 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x4f, 0x76, 0x65, 0x72, - 0x54, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x10, 0x0b, 0x2a, 0xff, 0x08, 0x0a, 0x09, - 0x53, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x48, 0x4f, 0x50, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, - 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, - 0x46, 0x5f, 0x47, 0x45, 0x54, 0x52, 0x45, 0x4c, 0x49, 0x45, 0x46, 0x46, 0x55, 0x4e, 0x44, 0x10, - 0x94, 0x14, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, + 0x49, 0x64, 0x22, 0x0e, 0x0a, 0x0c, 0x43, 0x53, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x22, 0x3c, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, + 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, + 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, + 0x22, 0x5b, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x27, 0x0a, 0x05, + 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x77, 0x65, + 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, + 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x8b, 0x01, + 0x0a, 0x0b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x10, 0x0a, + 0x03, 0x45, 0x78, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x45, 0x78, 0x70, 0x12, + 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x29, 0x0a, 0x06, 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, + 0x50, 0x72, 0x6f, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x06, 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, + 0x12, 0x29, 0x0a, 0x06, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x11, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x49, + 0x74, 0x65, 0x6d, 0x52, 0x06, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x22, 0x64, 0x0a, 0x0a, 0x50, + 0x65, 0x72, 0x6d, 0x69, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, + 0x77, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x68, 0x6f, + 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x56, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x64, 0x0a, 0x0f, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x41, + 0x77, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x6e, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x45, 0x6e, 0x64, 0x12, 0x29, 0x0a, 0x06, + 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x77, + 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x22, 0x85, 0x02, 0x0a, 0x0c, 0x53, 0x43, 0x50, 0x65, + 0x72, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x78, 0x70, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x45, 0x78, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x12, 0x2a, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, + 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x03, 0x28, 0x03, 0x52, + 0x09, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2f, 0x0a, 0x08, 0x53, 0x68, + 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, + 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x53, 0x68, 0x6f, + 0x77, 0x52, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x49, + 0x73, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x49, + 0x73, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x12, 0x36, 0x0a, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x41, + 0x77, 0x61, 0x72, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x65, 0x6c, + 0x66, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x41, + 0x77, 0x61, 0x72, 0x64, 0x52, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, + 0x2f, 0x0a, 0x0d, 0x43, 0x53, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x41, 0x77, 0x61, 0x72, 0x64, + 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x54, 0x70, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, + 0x22, 0xba, 0x01, 0x0a, 0x0d, 0x53, 0x43, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x41, 0x77, 0x61, + 0x72, 0x64, 0x12, 0x33, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, + 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, + 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x41, 0x77, 0x61, 0x72, 0x64, + 0x31, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, + 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x41, 0x77, 0x61, 0x72, + 0x64, 0x31, 0x12, 0x29, 0x0a, 0x06, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x72, 0x6f, + 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x0e, 0x0a, + 0x02, 0x54, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x54, 0x70, 0x22, 0x16, 0x0a, + 0x14, 0x43, 0x53, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xfe, 0x01, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x49, 0x64, 0x12, 0x25, 0x0a, 0x04, 0x47, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x11, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x47, 0x61, 0x69, 0x6e, 0x12, 0x25, 0x0a, 0x04, 0x43, 0x6f, 0x73, + 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, + 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x43, 0x6f, 0x73, 0x74, + 0x12, 0x24, 0x0a, 0x0d, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x52, 0x65, 0x6d, + 0x61, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1e, + 0x0a, 0x0a, 0x4e, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0a, 0x4e, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x53, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x53, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x22, 0x3d, 0x0a, 0x14, 0x53, 0x43, 0x50, 0x65, 0x72, 0x6d, + 0x69, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, + 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x77, + 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x04, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x22, 0x0a, 0x10, 0x43, 0x53, 0x50, 0x65, 0x72, 0x6d, 0x69, + 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x10, 0x53, 0x43, 0x50, + 0x65, 0x72, 0x6d, 0x69, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x33, 0x0a, + 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x15, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, + 0x64, 0x65, 0x22, 0x0e, 0x0a, 0x0c, 0x43, 0x53, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x53, 0x68, + 0x6f, 0x70, 0x22, 0x62, 0x0a, 0x0c, 0x53, 0x43, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x53, 0x68, + 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x2a, 0xf5, 0x02, 0x0a, 0x0c, 0x4f, 0x70, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x52, 0x43, 0x5f, + 0x53, 0x75, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, + 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, 0x43, + 0x5f, 0x4e, 0x6f, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, + 0x52, 0x43, 0x5f, 0x43, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x6f, 0x4d, 0x6f, 0x72, 0x65, 0x10, 0x03, + 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x69, 0x6e, + 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x41, 0x6c, 0x72, 0x65, 0x61, + 0x64, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x50, 0x52, 0x43, + 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x4f, + 0x50, 0x52, 0x43, 0x5f, 0x4d, 0x79, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, 0x07, 0x12, 0x11, + 0x0a, 0x0d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x10, + 0x08, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, + 0x64, 0x4c, 0x65, 0x73, 0x73, 0x10, 0x09, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x50, 0x52, 0x43, 0x5f, + 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x10, 0x0a, + 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, + 0x4f, 0x76, 0x65, 0x72, 0x54, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x10, 0x0b, 0x12, + 0x16, 0x0a, 0x12, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0x0c, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x50, 0x52, 0x43, 0x5f, + 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x10, 0x0d, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x65, 0x65, + 0x64, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x10, 0x0e, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, + 0x43, 0x5f, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x73, 0x74, 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x4f, + 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x10, 0x2a, 0x9d, + 0x0b, 0x0a, 0x09, 0x53, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x10, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x48, 0x4f, 0x50, 0x5f, 0x5a, 0x45, 0x52, 0x4f, + 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x52, 0x45, 0x4c, 0x49, 0x45, 0x46, 0x46, 0x55, - 0x4e, 0x44, 0x10, 0x95, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x54, 0x55, 0x52, 0x4e, 0x50, - 0x4c, 0x41, 0x54, 0x45, 0x10, 0x96, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x54, 0x55, 0x52, - 0x4e, 0x50, 0x4c, 0x41, 0x54, 0x45, 0x10, 0x97, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x41, - 0x44, 0x44, 0x55, 0x50, 0x53, 0x49, 0x47, 0x4e, 0x10, 0x98, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, - 0x54, 0x41, 0x44, 0x44, 0x55, 0x50, 0x53, 0x49, 0x47, 0x4e, 0x10, 0x99, 0x14, 0x12, 0x1f, 0x0a, - 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, - 0x57, 0x45, 0x4c, 0x46, 0x41, 0x52, 0x45, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x9a, 0x14, 0x12, 0x1f, - 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, - 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x41, 0x52, 0x45, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x9b, 0x14, 0x12, - 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, - 0x46, 0x5f, 0x42, 0x4c, 0x49, 0x4e, 0x42, 0x4f, 0x58, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x9c, 0x14, - 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, - 0x4c, 0x46, 0x5f, 0x42, 0x4c, 0x49, 0x4e, 0x42, 0x4f, 0x58, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x9d, - 0x14, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, - 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x42, 0x4c, 0x49, 0x4e, 0x42, 0x4f, 0x58, 0x10, 0x9e, - 0x14, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, - 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x42, 0x4c, 0x49, 0x4e, 0x42, 0x4f, 0x58, 0x10, 0x9f, - 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, - 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x50, 0x41, 0x59, 0x49, 0x4e, 0x46, 0x4f, - 0x10, 0xa0, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, - 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x50, 0x41, 0x59, 0x49, 0x4e, - 0x46, 0x4f, 0x10, 0xa1, 0x14, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x50, 0x41, 0x59, - 0x10, 0xa2, 0x14, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, - 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x50, 0x41, 0x59, 0x10, 0xa3, - 0x14, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, - 0x45, 0x4c, 0x46, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x49, 0x4e, 0x50, 0x41, 0x59, 0x49, 0x4e, 0x46, - 0x4f, 0x10, 0xa4, 0x14, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x49, 0x4e, 0x50, 0x41, 0x59, - 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xa5, 0x14, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x49, 0x4e, - 0x50, 0x41, 0x59, 0x10, 0xa6, 0x14, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x49, 0x4e, 0x50, - 0x41, 0x59, 0x10, 0xa7, 0x14, 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x43, 0x53, 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x5f, 0x41, 0x64, 0x64, 0x75, 0x70, - 0x32, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xa8, 0x14, 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x5f, 0x41, - 0x64, 0x64, 0x75, 0x70, 0x32, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xa9, 0x14, 0x12, 0x18, 0x0a, - 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x57, 0x65, 0x6c, 0x66, 0x52, 0x65, - 0x6c, 0x69, 0x65, 0x66, 0x10, 0xd4, 0x16, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x53, 0x43, 0x57, 0x65, 0x6c, 0x66, 0x52, 0x65, 0x6c, 0x69, 0x65, 0x66, 0x10, 0xd5, - 0x16, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x49, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xd6, 0x16, 0x12, 0x18, 0x0a, 0x13, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x10, 0xd7, 0x16, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x43, 0x53, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, 0xd8, 0x16, 0x12, - 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x42, 0x69, 0x6e, 0x64, - 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, 0xd9, 0x16, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x47, 0x65, 0x74, - 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xde, 0x16, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x53, 0x43, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x47, 0x65, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x10, 0xdf, 0x16, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x43, 0x53, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, - 0x6e, 0x10, 0xe0, 0x16, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x43, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, - 0x10, 0xe1, 0x16, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, - 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x47, 0x65, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x10, 0xe2, 0x16, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x53, 0x43, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x47, 0x65, 0x74, - 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xe3, 0x16, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x53, 0x43, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x54, - 0x61, 0x6b, 0x65, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x10, 0xe4, 0x16, 0x42, 0x27, 0x5a, - 0x25, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x77, - 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x4e, 0x44, 0x10, 0x94, 0x14, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x52, 0x45, 0x4c, 0x49, 0x45, + 0x46, 0x46, 0x55, 0x4e, 0x44, 0x10, 0x95, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x54, 0x55, + 0x52, 0x4e, 0x50, 0x4c, 0x41, 0x54, 0x45, 0x10, 0x96, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, + 0x54, 0x55, 0x52, 0x4e, 0x50, 0x4c, 0x41, 0x54, 0x45, 0x10, 0x97, 0x14, 0x12, 0x20, 0x0a, 0x1b, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, + 0x45, 0x54, 0x41, 0x44, 0x44, 0x55, 0x50, 0x53, 0x49, 0x47, 0x4e, 0x10, 0x98, 0x14, 0x12, 0x20, + 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, + 0x5f, 0x47, 0x45, 0x54, 0x41, 0x44, 0x44, 0x55, 0x50, 0x53, 0x49, 0x47, 0x4e, 0x10, 0x99, 0x14, + 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, + 0x4c, 0x46, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x41, 0x52, 0x45, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x9a, + 0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, + 0x45, 0x4c, 0x46, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x41, 0x52, 0x45, 0x49, 0x4e, 0x46, 0x4f, 0x10, + 0x9b, 0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, + 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x42, 0x4c, 0x49, 0x4e, 0x42, 0x4f, 0x58, 0x49, 0x4e, 0x46, 0x4f, + 0x10, 0x9c, 0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x42, 0x4c, 0x49, 0x4e, 0x42, 0x4f, 0x58, 0x49, 0x4e, 0x46, + 0x4f, 0x10, 0x9d, 0x14, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, + 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x42, 0x4c, 0x49, 0x4e, 0x42, 0x4f, + 0x58, 0x10, 0x9e, 0x14, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, + 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x42, 0x4c, 0x49, 0x4e, 0x42, 0x4f, + 0x58, 0x10, 0x9f, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, + 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x50, 0x41, 0x59, 0x49, + 0x4e, 0x46, 0x4f, 0x10, 0xa0, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x50, 0x41, + 0x59, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xa1, 0x14, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, + 0x50, 0x41, 0x59, 0x10, 0xa2, 0x14, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x50, 0x41, + 0x59, 0x10, 0xa3, 0x14, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, + 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x49, 0x4e, 0x50, 0x41, 0x59, + 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xa4, 0x14, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x49, 0x4e, + 0x50, 0x41, 0x59, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xa5, 0x14, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x43, 0x4f, 0x4e, + 0x54, 0x49, 0x4e, 0x50, 0x41, 0x59, 0x10, 0xa6, 0x14, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x43, 0x4f, 0x4e, 0x54, + 0x49, 0x4e, 0x50, 0x41, 0x59, 0x10, 0xa7, 0x14, 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x5f, 0x41, 0x64, + 0x64, 0x75, 0x70, 0x32, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xa8, 0x14, 0x12, 0x22, 0x0a, 0x1d, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, + 0x79, 0x5f, 0x41, 0x64, 0x64, 0x75, 0x70, 0x32, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xa9, 0x14, + 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x57, 0x65, 0x6c, + 0x66, 0x52, 0x65, 0x6c, 0x69, 0x65, 0x66, 0x10, 0xd4, 0x16, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x57, 0x65, 0x6c, 0x66, 0x52, 0x65, 0x6c, 0x69, 0x65, + 0x66, 0x10, 0xd5, 0x16, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, + 0x53, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xd6, 0x16, 0x12, 0x18, + 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x49, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xd7, 0x16, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x43, 0x53, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, + 0xd8, 0x16, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x42, + 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, 0xd9, 0x16, 0x12, 0x1c, 0x0a, 0x17, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, + 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xde, 0x16, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x47, 0x65, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xdf, 0x16, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x43, 0x53, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x6b, 0x65, + 0x43, 0x6f, 0x69, 0x6e, 0x10, 0xe0, 0x16, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x53, 0x43, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x6b, 0x65, 0x43, + 0x6f, 0x69, 0x6e, 0x10, 0xe1, 0x16, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x43, 0x53, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x47, 0x65, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xe2, 0x16, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x53, 0x43, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, + 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xe3, 0x16, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x42, 0x61, + 0x6e, 0x6b, 0x54, 0x61, 0x6b, 0x65, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x10, 0xe4, 0x16, + 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x50, 0x65, 0x72, + 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xe5, 0x16, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, + 0x6f, 0x10, 0xe6, 0x16, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, + 0x53, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, + 0x69, 0x73, 0x74, 0x10, 0xe7, 0x16, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x53, 0x43, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x4c, 0x69, 0x73, 0x74, 0x10, 0xe8, 0x16, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x43, 0x53, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x41, 0x77, 0x61, 0x72, 0x64, + 0x10, 0xe9, 0x16, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xea, 0x16, 0x12, 0x1c, + 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x50, 0x65, 0x72, 0x6d, 0x69, + 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0xeb, 0x16, 0x12, 0x1c, 0x0a, 0x17, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x45, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0xec, 0x16, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x53, 0x68, 0x6f, + 0x70, 0x10, 0xed, 0x16, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, + 0x43, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x53, 0x68, 0x6f, 0x70, 0x10, 0x8c, 0x17, 0x42, 0x27, + 0x5a, 0x25, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, + 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3492,7 +4648,7 @@ func file_welfare_proto_rawDescGZIP() []byte { } var file_welfare_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_welfare_proto_msgTypes = make([]protoimpl.MessageInfo, 45) +var file_welfare_proto_msgTypes = make([]protoimpl.MessageInfo, 61) var file_welfare_proto_goTypes = []interface{}{ (OpResultCode)(0), // 0: welfare.OpResultCode (SPacketID)(0), // 1: welfare.SPacketID @@ -3540,7 +4696,23 @@ var file_welfare_proto_goTypes = []interface{}{ (*CSDiamondBankGetInfo)(nil), // 43: welfare.CSDiamondBankGetInfo (*SCDiamondBankGetInfo)(nil), // 44: welfare.SCDiamondBankGetInfo (*SCDiamondBankTakeDiamond)(nil), // 45: welfare.SCDiamondBankTakeDiamond - nil, // 46: welfare.SCInviteInfo.PayScoreEntry + (*CSPermitInfo)(nil), // 46: welfare.CSPermitInfo + (*PropInfo)(nil), // 47: welfare.PropInfo + (*PropItem)(nil), // 48: welfare.PropItem + (*PermitAward)(nil), // 49: welfare.PermitAward + (*PermitShow)(nil), // 50: welfare.PermitShow + (*PermitRankAward)(nil), // 51: welfare.PermitRankAward + (*SCPermitInfo)(nil), // 52: welfare.SCPermitInfo + (*CSPermitAward)(nil), // 53: welfare.CSPermitAward + (*SCPermitAward)(nil), // 54: welfare.SCPermitAward + (*CSPermitExchangeList)(nil), // 55: welfare.CSPermitExchangeList + (*ShopInfo)(nil), // 56: welfare.ShopInfo + (*SCPermitExchangeList)(nil), // 57: welfare.SCPermitExchangeList + (*CSPermitExchange)(nil), // 58: welfare.CSPermitExchange + (*SCPermitExchange)(nil), // 59: welfare.SCPermitExchange + (*CSPermitShop)(nil), // 60: welfare.CSPermitShop + (*SCPermitShop)(nil), // 61: welfare.SCPermitShop + nil, // 62: welfare.SCInviteInfo.PayScoreEntry } var file_welfare_proto_depIdxs = []int32{ 0, // 0: welfare.SCGetReliefFund.OpRetCode:type_name -> welfare.OpResultCode @@ -3567,7 +4739,7 @@ var file_welfare_proto_depIdxs = []int32{ 0, // 21: welfare.SCWelfareContinuousPayData.OpRetCode:type_name -> welfare.OpResultCode 23, // 22: welfare.SCWelfareContinuousPayData.List:type_name -> welfare.WelfareSpree 0, // 23: welfare.SCWelfareContinuousPay.OpRetCode:type_name -> welfare.OpResultCode - 46, // 24: welfare.SCInviteInfo.PayScore:type_name -> welfare.SCInviteInfo.PayScoreEntry + 62, // 24: welfare.SCInviteInfo.PayScore:type_name -> welfare.SCInviteInfo.PayScoreEntry 35, // 25: welfare.SCInviteInfo.Awards1:type_name -> welfare.RankAward 35, // 26: welfare.SCInviteInfo.Awards2:type_name -> welfare.RankAward 35, // 27: welfare.SCInviteInfo.Awards3:type_name -> welfare.RankAward @@ -3576,11 +4748,25 @@ var file_welfare_proto_depIdxs = []int32{ 0, // 30: welfare.SCPigbankTakeCoin.OpRetCode:type_name -> welfare.OpResultCode 0, // 31: welfare.SCDiamondBankGetInfo.OpRetCode:type_name -> welfare.OpResultCode 0, // 32: welfare.SCDiamondBankTakeDiamond.OpRetCode:type_name -> welfare.OpResultCode - 33, // [33:33] is the sub-list for method output_type - 33, // [33:33] is the sub-list for method input_type - 33, // [33:33] is the sub-list for extension type_name - 33, // [33:33] is the sub-list for extension extendee - 0, // [0:33] is the sub-list for field type_name + 47, // 33: welfare.PropItem.Award:type_name -> welfare.PropInfo + 48, // 34: welfare.PermitAward.Award1:type_name -> welfare.PropItem + 48, // 35: welfare.PermitAward.Award2:type_name -> welfare.PropItem + 47, // 36: welfare.PermitRankAward.ItemId:type_name -> welfare.PropInfo + 49, // 37: welfare.SCPermitInfo.Award:type_name -> welfare.PermitAward + 50, // 38: welfare.SCPermitInfo.ShowList:type_name -> welfare.PermitShow + 51, // 39: welfare.SCPermitInfo.RankAward:type_name -> welfare.PermitRankAward + 0, // 40: welfare.SCPermitAward.OpRetCode:type_name -> welfare.OpResultCode + 47, // 41: welfare.SCPermitAward.Award1:type_name -> welfare.PropInfo + 47, // 42: welfare.SCPermitAward.Award2:type_name -> welfare.PropInfo + 47, // 43: welfare.ShopInfo.Gain:type_name -> welfare.PropInfo + 47, // 44: welfare.ShopInfo.Cost:type_name -> welfare.PropInfo + 56, // 45: welfare.SCPermitExchangeList.List:type_name -> welfare.ShopInfo + 0, // 46: welfare.SCPermitExchange.OpRetCode:type_name -> welfare.OpResultCode + 47, // [47:47] is the sub-list for method output_type + 47, // [47:47] is the sub-list for method input_type + 47, // [47:47] is the sub-list for extension type_name + 47, // [47:47] is the sub-list for extension extendee + 0, // [0:47] is the sub-list for field type_name } func init() { file_welfare_proto_init() } @@ -4117,6 +5303,198 @@ func file_welfare_proto_init() { return nil } } + file_welfare_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSPermitInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_welfare_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PropInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_welfare_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PropItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_welfare_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PermitAward); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_welfare_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PermitShow); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_welfare_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PermitRankAward); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_welfare_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCPermitInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_welfare_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSPermitAward); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_welfare_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCPermitAward); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_welfare_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSPermitExchangeList); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_welfare_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ShopInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_welfare_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCPermitExchangeList); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_welfare_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSPermitExchange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_welfare_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCPermitExchange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_welfare_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSPermitShop); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_welfare_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCPermitShop); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -4124,7 +5502,7 @@ func file_welfare_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_welfare_proto_rawDesc, NumEnums: 2, - NumMessages: 45, + NumMessages: 61, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/welfare/welfare.proto b/protocol/welfare/welfare.proto index 6388dac..369b3dd 100644 --- a/protocol/welfare/welfare.proto +++ b/protocol/welfare/welfare.proto @@ -15,7 +15,11 @@ enum OpResultCode { OPRC_DiamondLess = 9; // 钻石不足 OPRC_PigbankNotFull = 10; // 存钱罐未满 OPRC_PigbankOverTakeTimes = 11; // 存钱罐超过每日领取次数 - + OPRC_ExchangeLimit = 12; // 兑换次数不足 + OPRC_ExchangeLevelLimit = 13; // 兑换等级不足 + OPRC_NeedPermit = 14; // 需要典藏通行证 + OPRC_ErrCost = 15; // 消耗道具不足 + OPRC_NotFound = 16; // 商品没找到 } // 福利大厅 enum SPacketID { @@ -60,8 +64,21 @@ enum SPacketID { PACKET_CSDiamondBankGetInfo = 2914; //钻石存钱罐信息获取 PACKET_SCDiamondBankGetInfo = 2915; //钻石存钱罐信息返回 PACKET_SCDiamondBankTakeDiamond = 2916; //钻石存钱罐领取返回 - - + + PACKET_CSPermitInfo = 2917;// 通行证奖励 + PACKET_SCPermitInfo = 2918;// 通行证奖励 + + PACKET_CSPermitExchangeList = 2919; // 通行证兑换列表 + PACKET_SCPermitExchangeList = 2920; // 通行证兑换列表 + + PACKET_CSPermitAward = 2921; // 领取通行证奖励 + PACKET_SCPermitAward = 2922; // 领取通行证奖励 + + PACKET_CSPermitExchange = 2923; // 通行证兑换 + PACKET_SCPermitExchange = 2924; // 通行证兑换 + + PACKET_CSPermitShop = 2925; // 典藏通行证商品信息 + PACKET_SCPermitShop = 2956; // 典藏通行证商品信息 } //救济金领取 @@ -376,4 +393,107 @@ message SCDiamondBankTakeDiamond{ int64 Price = 6; //原价 int64 NowPrice = 7; //现价 int32 ShopId = 8; //商城ID +} + +// 赛季通行证信息 +//PACKET_CSPermitInfo +message CSPermitInfo{ +} + +message PropInfo{ + int32 ItemId = 1;//物品ID + int64 ItemNum = 2;//物品数量 +} + +message PropItem{ + repeated PropInfo Award = 1; // 奖励 + int64 Status = 2; // 奖励状态 0默认 1可领取 2已领取 + int32 Id = 3; // 奖励id; 领奖时使用 +} + +message PermitAward{ + int64 Exp = 1; // 赛季经验 + int64 Level = 2; // 等级 + PropItem Award1 = 3; // 普通奖励 + PropItem Award2 = 4; // 典藏奖励 +} + +message PermitShow{ + int32 ShowType = 1; // 类型 + int32 ShowVolume = 2; // id + int32 Location = 3; // 跳转界面 +} + +message PermitRankAward{ + int32 Start = 1; // 开始排名;第一名为0 + int32 End = 2; // 结束排名 + repeated PropInfo ItemId = 3; // 奖励 +} + +//PACKET_SCPermitInfo +message SCPermitInfo{ + int64 Exp = 1; // 玩家赛季经验 + int64 Level = 2; // 玩家等级 + repeated PermitAward Award = 3; // 奖励列表 + repeated int64 Timestamp = 4; // 赛季开始和结束时间戳 [开始时间戳,结束时间戳] + repeated PermitShow ShowList = 5; // 展示列表 + bool IsPermit = 6; // 是否已购买典藏通行证 + repeated PermitRankAward RankAward = 7; // 排行榜奖励 +} + +// 领取赛季通行证奖励 +//PACKET_CSPermitAward +message CSPermitAward{ + int32 Tp = 1; // 0奖励 1普通奖励 2典藏奖励 + int32 Id = 2; // 奖励id; 0:一键领取 +} +//PACKET_SCPermitAward +message SCPermitAward{ + OpResultCode OpRetCode = 1; // 错误码 + repeated PropInfo Award1 = 2; // 普通奖励 + repeated PropInfo Award2 = 3; // 典藏奖励 + int32 Id = 4; // 奖励id; 0:一键领取 + int32 Tp = 5; // 0奖励 1普通奖励 2典藏奖励 +} + +// 赛季通行证兑换商城 +//PACKET_CSPermitExchangeList +message CSPermitExchangeList{ +} + +message ShopInfo{ + int32 Id = 1; // 商品id + repeated PropInfo Gain = 2; // 获得商品 + repeated PropInfo Cost = 3; // 消耗商品 + int32 ExchangeTimes = 4; // 最大兑换次数 + int32 RemainTimes = 5; // 剩余兑换次数 + int64 Level = 6; // 兑换所需等级 + bool NeedPermit = 7; // 需要典藏通行证 + int32 SortId = 8; // 序号 +} + +//PACKET_SCPermitExchangeList +message SCPermitExchangeList{ + repeated ShopInfo List = 1; // 兑换列表 +} + +// 赛季通行证商城兑换 +//PACKET_CSPermitExchange +message CSPermitExchange{ + int32 Id = 1; // 商品id +} +//PACKET_SCPermitExchange +message SCPermitExchange{ + OpResultCode OpRetCode = 1; // 错误码 +} + +//PACKET_CSPermitShop +message CSPermitShop{ +} +//PACKET_SCPermitShop +message SCPermitShop{ + int32 Id = 1; // 序号 + string Name = 2; // 名称 + int32 Consume = 3; // 购买消耗类型 1金币 2钻石 + int64 price = 4; // 价格 } \ No newline at end of file diff --git a/xlsx/DB_Task.xlsx b/xlsx/DB_Task.xlsx index 466a32be8781572f748f0b8df58110eb931ab901..a78e7696eab153f5094445974658f07a11ba7299 100644 GIT binary patch delta 16437 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 delta 15155 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