From 65d206eae043565f91430b9b9ca77884615124ea Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Wed, 24 Apr 2024 16:26:35 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E6=B0=B4=E6=B1=A0=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E8=B0=83=E8=8A=82=E8=B5=94=E7=8E=87=E5=92=8C=E6=96=B0=E6=89=8B?= =?UTF-8?q?=E6=B1=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gamesrv/base/coinpoolmanager.go | 32 +- protocol/webapi/common.pb.go | 961 ++++++++++++++++---------------- protocol/webapi/common.proto | 1 + worldsrv/trascate_webapi.go | 34 +- 4 files changed, 523 insertions(+), 505 deletions(-) diff --git a/gamesrv/base/coinpoolmanager.go b/gamesrv/base/coinpoolmanager.go index 3665895..bfbfeb4 100644 --- a/gamesrv/base/coinpoolmanager.go +++ b/gamesrv/base/coinpoolmanager.go @@ -495,25 +495,27 @@ func (this *CoinPoolManager) GetCoinPoolSettingByGame(platform string, gameId, g setting := this.GetCoinPoolSetting(platform, id, groupId) if setting != nil { s := &webapi.CoinPoolSetting{ - Platform: setting.GetPlatform(), - GameFreeId: setting.GetGameFreeId(), - ServerId: setting.GetServerId(), - GroupId: setting.GetGroupId(), - InitValue: setting.GetInitValue(), - LowerLimit: setting.GetLowerLimit(), - UpperLimit: setting.GetUpperLimit(), - QuDu: setting.GetQuDu(), - UpperOdds: setting.GetUpperOdds(), - UpperOddsMax: setting.GetUpperOddsMax(), - LowerOdds: setting.GetLowerOdds(), - LowerOddsMax: setting.GetLowerOddsMax(), - ProfitRate: setting.GetProfitRate(), + Platform: setting.GetPlatform(), + GameFreeId: setting.GetGameFreeId(), + ServerId: setting.GetServerId(), + GroupId: setting.GetGroupId(), + InitValue: setting.GetInitValue(), + LowerLimit: setting.GetLowerLimit(), + UpperLimit: setting.GetUpperLimit(), + QuDu: setting.GetQuDu(), + UpperOdds: setting.GetUpperOdds(), + UpperOddsMax: setting.GetUpperOddsMax(), + LowerOdds: setting.GetLowerOdds(), + LowerOddsMax: setting.GetLowerOddsMax(), + ProfitRate: setting.GetProfitRate(), + InitNoviceValue: setting.GetInitNoviceValue(), ResetTime: setting.GetResetTime(), Switch: setting.GetSwitch(), - CoinValue: this.GetCoin(id, platform, groupId), // 当前水位 - ProfitPool: this.GetProfitPoolCoin(id, platform, groupId), // 收益池水位 + CoinValue: this.GetCoin(id, platform, groupId), // 当前水位 + ProfitPool: this.GetProfitPoolCoin(id, platform, groupId), // 收益池水位 + NoviceCoinValue: this.GetNoviceCoin(id, platform, groupId), // 新手池水位 } settings = append(settings, s) } diff --git a/protocol/webapi/common.pb.go b/protocol/webapi/common.pb.go index 53dcb0b..bd47a9c 100644 --- a/protocol/webapi/common.pb.go +++ b/protocol/webapi/common.pb.go @@ -2218,6 +2218,7 @@ type CoinPoolSetting struct { ProfitPool int64 `protobuf:"varint,17,opt,name=ProfitPool,proto3" json:"ProfitPool,omitempty"` // 收益池水位 CtrlRate int32 `protobuf:"varint,18,opt,name=CtrlRate,proto3" json:"CtrlRate,omitempty"` //调节赔率,万分比 InitNoviceValue int64 `protobuf:"varint,19,opt,name=InitNoviceValue,proto3" json:"InitNoviceValue,omitempty"` // 新手池初始库存值 + NoviceCoinValue int64 `protobuf:"varint,20,opt,name=NoviceCoinValue,proto3" json:"NoviceCoinValue,omitempty"` // 新手池水位 } func (x *CoinPoolSetting) Reset() { @@ -2385,6 +2386,13 @@ func (x *CoinPoolSetting) GetInitNoviceValue() int64 { return 0 } +func (x *CoinPoolSetting) GetNoviceCoinValue() int64 { + if x != nil { + return x.NoviceCoinValue + } + return 0 +} + //邮件 type MessageInfo struct { state protoimpl.MessageState @@ -6093,7 +6101,7 @@ var file_common_proto_rawDesc = []byte{ 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x44, 0x61, 0x74, 0x61, 0x22, 0xd3, 0x04, 0x0a, 0x0f, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6f, 0x6f, + 0x44, 0x61, 0x74, 0x61, 0x22, 0xfd, 0x04, 0x0a, 0x0f, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 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, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, @@ -6130,487 +6138,490 @@ var file_common_proto_rawDesc = []byte{ 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x74, 0x72, 0x6c, 0x52, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x49, 0x6e, 0x69, 0x74, 0x4e, 0x6f, 0x76, 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x49, 0x6e, 0x69, 0x74, 0x4e, - 0x6f, 0x76, 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb5, 0x02, 0x0a, 0x0b, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4d, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x72, 0x63, 0x53, 0x6e, 0x69, - 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x72, 0x63, 0x53, 0x6e, 0x69, 0x64, - 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x65, 0x73, 0x74, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x44, 0x65, 0x73, 0x74, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, - 0x12, 0x16, 0x0a, 0x06, 0x47, 0x69, 0x66, 0x74, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x47, 0x69, 0x66, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x69, 0x66, 0x74, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x47, 0x69, 0x66, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x22, 0xf5, 0x02, 0x0a, 0x0d, 0x48, 0x6f, 0x72, 0x73, 0x65, 0x52, 0x61, 0x63, 0x65, - 0x4c, 0x61, 0x6d, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x12, 0x16, 0x0a, 0x06, 0x46, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x46, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x46, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, - 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, - 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1a, - 0x0a, 0x08, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x63, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x63, 0x22, 0x39, 0x0a, 0x0d, 0x4f, 0x6e, - 0x6c, 0x69, 0x6e, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x47, - 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, - 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x43, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x03, 0x43, 0x6e, 0x74, 0x22, 0xe5, 0x02, 0x0a, 0x0c, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, - 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, - 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x4f, 0x6e, 0x6c, - 0x69, 0x6e, 0x65, 0x43, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x41, 0x6e, - 0x64, 0x72, 0x6f, 0x69, 0x64, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x22, - 0x0a, 0x0c, 0x49, 0x6f, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x49, 0x6f, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, - 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x44, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x4f, 0x6e, 0x52, 0x6f, - 0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0d, 0x4f, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x30, - 0x0a, 0x13, 0x54, 0x6f, 0x64, 0x61, 0x79, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4f, - 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x54, 0x6f, 0x64, - 0x61, 0x79, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, - 0x12, 0x36, 0x0a, 0x16, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x44, 0x61, 0x79, 0x52, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x16, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x44, 0x61, 0x79, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x47, 0x61, 0x6d, 0x65, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x77, 0x65, - 0x62, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x43, - 0x6e, 0x74, 0x52, 0x09, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xe2, 0x02, - 0x0a, 0x0c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x53, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6f, - 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, - 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x43, 0x61, - 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x6d, - 0x67, 0x55, 0x72, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x49, 0x6d, 0x67, 0x55, - 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x16, - 0x0a, 0x06, 0x49, 0x73, 0x4c, 0x6f, 0x6f, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x49, 0x73, 0x4c, 0x6f, 0x6f, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x6f, 0x70, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4c, 0x6f, 0x6f, 0x70, 0x54, 0x69, - 0x6d, 0x65, 0x22, 0x58, 0x0a, 0x10, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x69, - 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0xaa, 0x02, 0x0a, - 0x0c, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, - 0x07, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x68, 0x6f, - 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x68, - 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x61, 0x79, 0x4d, 0x61, - 0x78, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x44, 0x61, - 0x79, 0x4d, 0x61, 0x78, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x44, 0x61, 0x79, - 0x50, 0x6c, 0x61, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0c, 0x44, 0x61, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2c, 0x0a, - 0x06, 0x45, 0x78, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x06, 0x45, 0x78, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x54, - 0x65, 0x6c, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, - 0x54, 0x65, 0x6c, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x22, 0x60, 0x0a, 0x0c, 0x45, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x4a, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x4a, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x61, 0x73, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x61, 0x73, 0x68, 0x12, 0x0e, 0x0a, 0x02, 0x49, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x58, 0x0a, 0x10, 0x45, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x28, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, - 0x68, 0x6f, 0x70, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x83, 0x05, 0x0a, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x68, - 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, - 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x50, 0x61, 0x67, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4c, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x41, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x41, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x41, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x65, - 0x70, 0x65, 0x61, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0b, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, - 0x43, 0x6f, 0x6f, 0x6c, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x6f, 0x6c, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x41, 0x72, 0x65, 0x61, 0x18, - 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x41, 0x64, 0x64, 0x41, 0x72, 0x65, 0x61, 0x12, 0x16, - 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x43, 0x6f, 0x6e, 0x73, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x41, 0x72, 0x65, 0x61, - 0x18, 0x11, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x41, 0x72, 0x65, 0x61, - 0x12, 0x31, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x68, 0x6f, - 0x70, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, - 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x56, 0x69, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, - 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x56, 0x69, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, - 0x14, 0x0a, 0x05, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x20, 0x0a, 0x0b, 0x46, 0x69, 0x72, 0x73, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x16, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x46, 0x69, 0x72, 0x73, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, - 0x68, 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, 0x50, 0x0a, 0x0c, 0x49, - 0x74, 0x65, 0x6d, 0x53, 0x68, 0x6f, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x04, 0x4c, - 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x65, 0x62, 0x61, - 0x70, 0x69, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x68, 0x6f, 0x70, 0x52, 0x04, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x50, 0x0a, - 0x08, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, - 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, - 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x22, - 0xa0, 0x01, 0x0a, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x77, 0x61, - 0x72, 0x64, 0x12, 0x28, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x74, 0x65, 0x6d, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, - 0x12, 0x18, 0x0a, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x55, 0x70, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x55, 0x70, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x6f, 0x77, 0x6e, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x44, 0x6f, 0x77, 0x6e, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x22, 0xb9, 0x06, 0x0a, 0x0d, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x44, 0x61, 0x74, 0x65, 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, 0x1c, 0x0a, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x20, 0x0a, 0x0b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x75, 0x6d, 0x65, 0x62, 0x72, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x75, 0x6d, 0x65, - 0x62, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x2c, 0x0a, 0x05, - 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x77, 0x65, - 0x62, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x77, - 0x61, 0x72, 0x64, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x69, - 0x67, 0x6e, 0x75, 0x70, 0x43, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x75, 0x70, 0x43, 0x6f, 0x73, 0x74, 0x43, 0x6f, - 0x69, 0x6e, 0x12, 0x2c, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x75, 0x70, 0x43, 0x6f, 0x73, 0x74, - 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x53, - 0x69, 0x67, 0x6e, 0x75, 0x70, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, - 0x12, 0x38, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x75, 0x70, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x74, - 0x65, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, - 0x69, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x53, 0x69, 0x67, 0x6e, - 0x75, 0x70, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x24, 0x0a, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x57, 0x65, 0x65, - 0x6b, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, - 0x6d, 0x65, 0x57, 0x65, 0x65, 0x6b, 0x12, 0x2c, 0x0a, 0x11, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, - 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x4d, 0x53, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x11, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x48, 0x4d, 0x53, 0x12, 0x28, 0x0a, 0x0f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, - 0x65, 0x45, 0x6e, 0x64, 0x48, 0x4d, 0x53, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x48, 0x4d, 0x53, 0x12, 0x26, - 0x0a, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, - 0x18, 0x10, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, - 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x55, - 0x52, 0x4c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x55, - 0x52, 0x4c, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x53, 0x68, 0x6f, 0x77, 0x18, - 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x53, 0x68, 0x6f, 0x77, - 0x12, 0x12, 0x0a, 0x04, 0x52, 0x75, 0x6c, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x52, 0x75, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x18, 0x14, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, - 0x55, 0x73, 0x65, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x55, 0x73, 0x65, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x4f, 0x6e, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x17, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0d, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x5a, - 0x0a, 0x11, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, 0x61, 0x74, 0x65, 0x4c, - 0x69, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x61, 0x6d, 0x65, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, + 0x6f, 0x76, 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x4e, 0x6f, + 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x14, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0f, 0x4e, 0x6f, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb5, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x4d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, + 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x53, 0x72, 0x63, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x07, 0x53, 0x72, 0x63, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x65, + 0x73, 0x74, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, 0x65, + 0x73, 0x74, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x69, + 0x66, 0x74, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x47, 0x69, 0x66, 0x74, + 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x69, 0x66, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x47, 0x69, 0x66, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0xf5, 0x02, 0x0a, + 0x0d, 0x48, 0x6f, 0x72, 0x73, 0x65, 0x52, 0x61, 0x63, 0x65, 0x4c, 0x61, 0x6d, 0x70, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x64, 0x0a, 0x0b, 0x57, 0x65, - 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, - 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 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, - 0x22, 0x4f, 0x0a, 0x14, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x54, 0x75, 0x72, 0x6e, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, - 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x44, 0x61, 0x74, - 0x65, 0x22, 0x2a, 0x0a, 0x14, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x54, 0x75, 0x72, 0x6e, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x52, 0x61, 0x74, - 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, 0x74, 0x65, 0x22, 0xba, 0x01, - 0x0a, 0x18, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x54, 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x4c, 0x69, - 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, - 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x54, 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x08, - 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x54, - 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x61, 0x74, 0x65, 0x52, 0x08, 0x52, 0x61, - 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0x61, 0x0a, 0x10, 0x41, 0x64, - 0x64, 0x55, 0x70, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x79, 0x12, 0x31, 0x0a, 0x09, 0x41, 0x64, - 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, - 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, - 0x74, 0x65, 0x52, 0x09, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x22, 0x85, 0x01, - 0x0a, 0x10, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x37, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, - 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x03, 0x44, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, - 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, 0x12, 0x36, 0x0a, - 0x09, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x18, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x70, 0x57, - 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x09, 0x41, 0x64, 0x64, 0x55, - 0x70, 0x44, 0x61, 0x74, 0x65, 0x22, 0x78, 0x0a, 0x14, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, - 0x37, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2c, 0x0a, - 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x65, - 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x37, 0x53, 0x69, 0x67, - 0x6e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, - 0xdb, 0x01, 0x0a, 0x0c, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, - 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, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, - 0x65, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x31, - 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x69, 0x73, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x44, 0x69, 0x73, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x5f, 0x49, 0x64, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x22, 0xa3, 0x01, - 0x0a, 0x17, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, - 0x78, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x4c, 0x69, 0x73, + 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, + 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x46, 0x6f, + 0x6f, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x46, 0x6f, 0x6f, 0x74, + 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x6e, + 0x64, 0x53, 0x65, 0x63, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x74, 0x61, 0x6e, + 0x64, 0x53, 0x65, 0x63, 0x22, 0x39, 0x0a, 0x0d, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x47, 0x61, + 0x6d, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, + 0x03, 0x43, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x43, 0x6e, 0x74, 0x22, + 0xe5, 0x02, 0x0a, 0x0c, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, + 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6e, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x4f, + 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x49, 0x6f, 0x73, 0x4f, + 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, + 0x49, 0x6f, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, + 0x44, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0d, 0x44, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x4f, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x4f, 0x6e, 0x52, 0x6f, 0x6f, + 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x54, 0x6f, 0x64, 0x61, + 0x79, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x54, 0x6f, 0x64, 0x61, 0x79, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x53, 0x65, + 0x76, 0x65, 0x6e, 0x44, 0x61, 0x79, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4f, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x53, 0x65, 0x76, 0x65, + 0x6e, 0x44, 0x61, 0x79, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, + 0x6e, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x4f, + 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6e, 0x74, 0x52, 0x09, 0x47, 0x61, + 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xe2, 0x02, 0x0a, 0x0c, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6f, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6f, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x69, 0x74, + 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, + 0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, 0x6e, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x6d, 0x67, 0x55, 0x72, 0x6c, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x49, 0x6d, 0x67, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, + 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x4c, 0x6f, + 0x6f, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x73, 0x4c, 0x6f, 0x6f, 0x70, + 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x6f, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x4c, 0x6f, 0x6f, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x58, 0x0a, 0x10, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x28, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, + 0x74, 0x69, 0x63, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0xaa, 0x02, 0x0a, 0x0c, 0x45, 0x78, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x50, 0x69, 0x63, 0x74, 0x75, + 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x68, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x68, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x61, 0x79, 0x4d, 0x61, 0x78, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x44, 0x61, 0x79, 0x4d, 0x61, 0x78, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x44, 0x61, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x44, 0x61, 0x79, 0x50, 0x6c, + 0x61, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2c, 0x0a, 0x06, 0x45, 0x78, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, + 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x45, + 0x78, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x65, 0x6c, 0x43, 0x68, 0x61, 0x72, + 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x54, 0x65, 0x6c, 0x43, 0x68, 0x61, + 0x72, 0x67, 0x65, 0x22, 0x60, 0x0a, 0x0c, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x4a, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4a, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x43, 0x61, 0x73, 0x68, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x58, 0x0a, 0x10, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x53, 0x68, 0x6f, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, - 0x2e, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x4c, + 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, - 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x4d, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4d, 0x69, - 0x6e, 0x49, 0x64, 0x22, 0xc5, 0x01, 0x0a, 0x0c, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x53, - 0x70, 0x72, 0x65, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x03, 0x44, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, - 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, - 0x14, 0x0a, 0x05, 0x56, 0x49, 0x50, 0x45, 0x58, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x56, 0x49, 0x50, 0x45, 0x58, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, - 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x12, - 0x1a, 0x0a, 0x08, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x01, 0x52, 0x08, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x17, - 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, 0x61, 0x79, 0x44, - 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, - 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x53, 0x70, 0x72, 0x65, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, - 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x22, 0xa8, 0x01, 0x0a, 0x1c, - 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, - 0x73, 0x50, 0x61, 0x79, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, - 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x62, - 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x53, 0x70, 0x72, 0x65, 0x65, - 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x79, - 0x63, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x22, 0x9c, 0x05, 0x0a, 0x06, 0x56, 0x49, 0x50, 0x63, 0x66, - 0x67, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x69, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x56, 0x69, 0x70, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, - 0x56, 0x49, 0x50, 0x63, 0x66, 0x67, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x69, 0x70, 0x45, - 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x69, 0x70, 0x45, 0x78, 0x12, 0x14, - 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x12, 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, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, - 0x65, 0x33, 0x18, 0x07, 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, 0x08, 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, 0x09, 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, 0x0a, 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, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, - 0x69, 0x2e, 0x56, 0x49, 0x50, 0x63, 0x66, 0x67, 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, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x50, - 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1e, - 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x12, 0x28, - 0x0a, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, - 0x44, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, - 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, - 0x49, 0x64, 0x32, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, - 0x64, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 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, 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, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, + 0x83, 0x05, 0x0a, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, + 0x65, 0x6d, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x50, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x12, + 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, + 0x0a, 0x07, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x41, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x41, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x41, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x52, 0x65, 0x70, 0x65, 0x61, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6f, 0x6c, 0x69, 0x6e, + 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x6f, + 0x6c, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x18, + 0x0a, 0x07, 0x41, 0x64, 0x64, 0x41, 0x72, 0x65, 0x61, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x07, 0x41, 0x64, 0x64, 0x41, 0x72, 0x65, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x41, 0x72, 0x65, 0x61, 0x18, 0x11, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x41, 0x72, 0x65, 0x61, 0x12, 0x31, 0x0a, 0x05, 0x41, 0x77, + 0x61, 0x72, 0x64, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x77, 0x65, 0x62, 0x61, + 0x70, 0x69, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x68, 0x6f, 0x70, 0x2e, 0x41, 0x77, 0x61, 0x72, + 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x56, 0x69, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x56, 0x69, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x61, 0x74, + 0x69, 0x6f, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, + 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x46, 0x69, 0x72, + 0x73, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, + 0x46, 0x69, 0x72, 0x73, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 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, 0x70, 0x0a, 0x0e, 0x56, 0x49, 0x50, 0x63, 0x66, 0x67, 0x44, - 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x56, - 0x49, 0x50, 0x63, 0x66, 0x67, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x50, 0x0a, 0x0c, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x68, 0x6f, + 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x74, 0x65, + 0x6d, 0x53, 0x68, 0x6f, 0x70, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x6f, 0x6e, 0x65, 0x79, - 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x4d, 0x6f, 0x6e, - 0x65, 0x79, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x22, 0x95, 0x01, 0x0a, 0x09, 0x57, 0x62, 0x43, 0x74, - 0x72, 0x6c, 0x43, 0x66, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x61, 0x6c, 0x43, 0x74, 0x72, 0x6c, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x08, 0x52, 0x65, 0x61, 0x6c, 0x43, 0x74, 0x72, 0x6c, 0x12, 0x16, 0x0a, - 0x06, 0x4e, 0x6f, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x4e, - 0x6f, 0x76, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x12, - 0x1e, 0x0a, 0x0a, 0x4b, 0x69, 0x6c, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0a, 0x4b, 0x69, 0x6c, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22, - 0x3f, 0x0a, 0x0b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 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, 0x14, 0x0a, 0x05, 0x44, 0x61, - 0x74, 0x61, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, - 0x22, 0x64, 0x0a, 0x0f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x27, 0x0a, - 0x04, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x65, - 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, - 0x52, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x75, 0x0a, 0x10, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, - 0x61, 0x6e, 0x6b, 0x63, 0x66, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2d, 0x0a, 0x05, 0x44, 0x61, - 0x74, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x77, 0x65, 0x62, 0x61, - 0x70, 0x69, 0x2e, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x52, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x22, 0xb4, 0x03, - 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 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, 0x1e, 0x0a, 0x0a, 0x55, 0x70, 0x70, 0x65, - 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x55, 0x70, - 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x4c, 0x6f, 0x77, 0x65, - 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x4c, 0x6f, - 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x51, 0x75, 0x44, 0x75, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x51, 0x75, 0x44, 0x75, 0x12, 0x1c, 0x0a, 0x09, - 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x09, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x55, 0x70, - 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0c, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x12, 0x1c, - 0x0a, 0x09, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x09, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0c, - 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0c, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, - 0x12, 0x18, 0x0a, 0x07, 0x46, 0x69, 0x67, 0x68, 0x74, 0x55, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x46, 0x69, 0x67, 0x68, 0x74, 0x55, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x46, 0x69, - 0x67, 0x68, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x46, - 0x69, 0x67, 0x68, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x79, 0x55, - 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x79, 0x55, 0x70, 0x12, 0x18, - 0x0a, 0x07, 0x50, 0x61, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x50, 0x61, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x69, 0x61, 0x6e, - 0x48, 0x75, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x54, 0x69, - 0x61, 0x6e, 0x48, 0x75, 0x52, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x10, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x77, - 0x69, 0x74, 0x63, 0x68, 0x22, 0xc8, 0x01, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 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, - 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x69, 0x61, 0x6e, 0x48, - 0x75, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x12, - 0x14, 0x0a, 0x05, 0x50, 0x61, 0x69, 0x4b, 0x75, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x50, 0x61, 0x69, 0x4b, 0x75, 0x12, 0x16, 0x0a, 0x06, 0x46, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x46, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x12, 0x20, 0x0a, - 0x0b, 0x46, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0b, 0x46, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, - 0x1e, 0x0a, 0x0a, 0x47, 0x6f, 0x6f, 0x64, 0x46, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x6f, 0x6f, 0x64, 0x46, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x22, - 0x4f, 0x0a, 0x19, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, - 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 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, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, - 0x22, 0x4a, 0x0a, 0x14, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x50, 0x0a, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, + 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x49, 0x74, + 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xa0, 0x01, 0x0a, 0x0e, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x28, 0x0a, 0x06, + 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, + 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, + 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x69, + 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x44, 0x69, 0x61, + 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x55, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x55, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1c, + 0x0a, 0x09, 0x44, 0x6f, 0x77, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x09, 0x44, 0x6f, 0x77, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0xb9, 0x06, 0x0a, + 0x0d, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, 0x61, 0x74, 0x65, 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, 0x1c, + 0x0a, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x4e, 0x75, 0x6d, 0x65, 0x62, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x75, 0x6d, 0x65, 0x62, 0x72, 0x12, 0x26, 0x0a, 0x0e, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x2c, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, + 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x05, 0x41, + 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x75, 0x70, 0x43, 0x6f, + 0x73, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x53, 0x69, + 0x67, 0x6e, 0x75, 0x70, 0x43, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x2c, 0x0a, 0x11, + 0x53, 0x69, 0x67, 0x6e, 0x75, 0x70, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, + 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x75, 0x70, 0x43, + 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x38, 0x0a, 0x0e, 0x53, 0x69, + 0x67, 0x6e, 0x75, 0x70, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x74, 0x65, 0x6d, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x75, 0x70, 0x43, 0x6f, 0x73, 0x74, + 0x49, 0x74, 0x65, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x57, 0x65, 0x65, 0x6b, 0x18, 0x0d, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x57, 0x65, 0x65, 0x6b, + 0x12, 0x2c, 0x0a, 0x11, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x48, 0x4d, 0x53, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x4d, 0x53, 0x12, 0x28, + 0x0a, 0x0f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x48, 0x4d, + 0x53, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, + 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x48, 0x4d, 0x53, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x10, 0x20, 0x03, 0x28, 0x03, + 0x52, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, + 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x11, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x1c, 0x0a, 0x09, + 0x41, 0x77, 0x61, 0x72, 0x64, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x12, 0x0a, 0x04, 0x52, 0x75, + 0x6c, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x53, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x53, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x52, 0x6f, 0x62, + 0x6f, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x55, 0x73, 0x65, 0x52, 0x6f, 0x62, + 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x17, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x4f, 0x6e, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x5a, 0x0a, 0x11, 0x47, 0x61, 0x6d, 0x65, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x29, 0x0a, + 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x77, 0x65, + 0x62, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, 0x61, + 0x74, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x64, 0x0a, 0x0b, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, + 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 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, 0x22, 0x4f, 0x0a, 0x14, 0x57, 0x65, + 0x6c, 0x66, 0x61, 0x72, 0x65, 0x54, 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x44, 0x61, + 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x49, 0x64, 0x12, 0x27, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, + 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, 0x22, 0x2a, 0x0a, 0x14, 0x57, + 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x54, 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, + 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x52, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x04, 0x52, 0x61, 0x74, 0x65, 0x22, 0xba, 0x01, 0x0a, 0x18, 0x57, 0x65, 0x6c, 0x66, + 0x61, 0x72, 0x65, 0x54, 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, + 0x61, 0x72, 0x65, 0x54, 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, + 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x08, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, + 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, + 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x54, 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x52, 0x61, 0x74, 0x65, 0x52, 0x08, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, + 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x22, 0x61, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x55, 0x70, 0x57, 0x65, 0x6c, + 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x55, + 0x70, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x64, 0x64, 0x55, + 0x70, 0x44, 0x61, 0x79, 0x12, 0x31, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, + 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, + 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x09, 0x41, 0x64, + 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x10, 0x57, 0x65, 0x6c, 0x66, + 0x61, 0x72, 0x65, 0x37, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, 0x79, 0x12, 0x27, + 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, + 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, + 0x65, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, 0x12, 0x36, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x55, 0x70, + 0x44, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x65, 0x62, + 0x61, 0x70, 0x69, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x70, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, + 0x44, 0x61, 0x74, 0x65, 0x52, 0x09, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x22, + 0x78, 0x0a, 0x14, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x37, 0x53, 0x69, 0x67, 0x6e, 0x44, + 0x61, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, + 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x37, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x52, + 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0xdb, 0x01, 0x0a, 0x0c, 0x42, 0x6c, + 0x69, 0x6e, 0x64, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, 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, 0x09, 0x52, 0x04, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x31, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, + 0x69, 0x63, 0x65, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, + 0x65, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x17, + 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x5f, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x22, 0xa3, 0x01, 0x0a, 0x17, 0x57, 0x65, 0x6c, 0x66, + 0x61, 0x72, 0x65, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x69, 0x6e, 0x64, + 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x69, 0x6e, 0x49, 0x64, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4d, 0x69, 0x6e, 0x49, 0x64, 0x22, 0xc5, 0x01, + 0x0a, 0x0c, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x53, 0x70, 0x72, 0x65, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, 0x79, + 0x12, 0x27, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, + 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, + 0x61, 0x74, 0x65, 0x52, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x49, 0x50, + 0x45, 0x58, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x49, 0x50, 0x45, 0x58, 0x12, + 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, + 0x63, 0x65, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, + 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x69, 0x73, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x44, 0x69, 0x73, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x17, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, + 0x65, 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, 0x61, 0x79, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x28, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, + 0x53, 0x70, 0x72, 0x65, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, + 0x14, 0x0a, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x43, 0x79, 0x63, 0x6c, 0x65, 0x22, 0xa8, 0x01, 0x0a, 0x1c, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, + 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x50, 0x61, 0x79, 0x44, 0x61, + 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, + 0x6c, 0x66, 0x61, 0x72, 0x65, 0x53, 0x70, 0x72, 0x65, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, + 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x42, 0x72, + 0x65, 0x61, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x42, 0x72, 0x65, 0x61, 0x6b, + 0x22, 0x9c, 0x05, 0x0a, 0x06, 0x56, 0x49, 0x50, 0x63, 0x66, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x56, + 0x69, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x69, 0x70, 0x49, + 0x64, 0x12, 0x2f, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x49, 0x50, 0x63, 0x66, 0x67, + 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, + 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x69, 0x70, 0x45, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x56, 0x69, 0x70, 0x45, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 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, 0x1e, + 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x18, 0x07, 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, 0x08, 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, 0x09, 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, 0x0a, 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, 0x0b, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x49, 0x50, 0x63, + 0x66, 0x67, 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, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, + 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, + 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, + 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x18, 0x0e, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, + 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x12, 0x18, 0x0a, 0x07, + 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, + 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 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, + 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, 0x22, + 0x70, 0x0a, 0x0e, 0x56, 0x49, 0x50, 0x63, 0x66, 0x67, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x22, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0e, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x49, 0x50, 0x63, 0x66, 0x67, 0x52, + 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x61, 0x74, 0x69, + 0x6f, 0x22, 0x95, 0x01, 0x0a, 0x09, 0x57, 0x62, 0x43, 0x74, 0x72, 0x6c, 0x43, 0x66, 0x67, 0x12, + 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x52, + 0x65, 0x61, 0x6c, 0x43, 0x74, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x52, + 0x65, 0x61, 0x6c, 0x43, 0x74, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x4e, 0x6f, 0x76, 0x69, 0x63, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x4e, 0x6f, 0x76, 0x69, 0x63, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x07, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4b, 0x69, 0x6c, + 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x4b, + 0x69, 0x6c, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22, 0x3f, 0x0a, 0x0b, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 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, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 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, + 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x22, 0x64, 0x0a, 0x0f, 0x43, 0x68, + 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, + 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, + 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x49, 0x74, 0x65, 0x6d, + 0x22, 0x75, 0x0a, 0x10, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x63, 0x66, 0x67, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x2d, 0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x68, 0x65, + 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x05, 0x44, 0x61, + 0x74, 0x61, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, + 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x22, 0xb4, 0x03, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 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, 0x1e, 0x0a, 0x0a, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x51, 0x75, 0x44, 0x75, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x04, 0x51, 0x75, 0x44, 0x75, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, + 0x64, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x55, 0x70, 0x70, 0x65, 0x72, + 0x4f, 0x64, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, + 0x73, 0x4d, 0x61, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x55, 0x70, 0x70, 0x65, + 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x6f, 0x77, 0x65, + 0x72, 0x4f, 0x64, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4c, 0x6f, 0x77, + 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, + 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4c, 0x6f, + 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x46, 0x69, + 0x67, 0x68, 0x74, 0x55, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x46, 0x69, 0x67, + 0x68, 0x74, 0x55, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x46, 0x69, 0x67, 0x68, 0x74, 0x44, 0x6f, 0x77, + 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x46, 0x69, 0x67, 0x68, 0x74, 0x44, 0x6f, + 0x77, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x79, 0x55, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x50, 0x61, 0x79, 0x55, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x50, 0x61, 0x79, 0x44, + 0x6f, 0x77, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x50, 0x61, 0x79, 0x44, 0x6f, + 0x77, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x52, 0x61, 0x74, 0x65, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x52, 0x61, + 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, + 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0xc8, + 0x01, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 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, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x69, + 0x4b, 0x75, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x69, 0x4b, 0x75, 0x12, + 0x16, 0x0a, 0x06, 0x46, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x46, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x46, 0x65, 0x6e, 0x43, 0x68, + 0x61, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x46, 0x65, + 0x6e, 0x43, 0x68, 0x61, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x6f, 0x6f, + 0x64, 0x46, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, + 0x6f, 0x6f, 0x64, 0x46, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x22, 0x4f, 0x0a, 0x19, 0x57, 0x65, 0x6c, + 0x66, 0x61, 0x72, 0x65, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 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, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0x4a, 0x0a, 0x14, 0x57, 0x65, + 0x6c, 0x66, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 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, 0x16, + 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 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 ( diff --git a/protocol/webapi/common.proto b/protocol/webapi/common.proto index 3fea86e..7b4d1d6 100644 --- a/protocol/webapi/common.proto +++ b/protocol/webapi/common.proto @@ -274,6 +274,7 @@ message CoinPoolSetting{ int64 ProfitPool = 17; // 收益池水位 int32 CtrlRate = 18; //调节赔率,万分比 int64 InitNoviceValue = 19; // 新手池初始库存值 + int64 NoviceCoinValue = 20; // 新手池水位 } //邮件 message MessageInfo { diff --git a/worldsrv/trascate_webapi.go b/worldsrv/trascate_webapi.go index 0522000..3e1d5bb 100644 --- a/worldsrv/trascate_webapi.go +++ b/worldsrv/trascate_webapi.go @@ -2170,6 +2170,8 @@ func init() { cps.ProfitRate = coinPoolSetting.GetProfitRate() cps.ResetTime = coinPoolSetting.GetResetTime() cps.Switch = coinPoolSetting.GetSwitch() + cps.InitNoviceValue = coinPoolSetting.GetInitNoviceValue() + cps.CtrlRate = coinPoolSetting.GetCtrlRate() task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { // 新配置更新到user_coinpoolsetting,旧配置保存到log_coinpoolsetting return model.UpsertCoinPoolSetting(cps, old) @@ -2182,21 +2184,23 @@ func init() { gs := GameSessMgrSington.GetGameSess(int(cps.ServerId)) if gs != nil { var msg = &webapiproto.CoinPoolSetting{ - Platform: cps.Platform, - GameFreeId: cps.GameFreeId, - ServerId: cps.ServerId, - GroupId: cps.GroupId, - InitValue: cps.InitValue, - LowerLimit: cps.LowerLimit, - UpperLimit: cps.UpperLimit, - QuDu: cps.QuDu, - UpperOdds: cps.UpperOdds, - UpperOddsMax: cps.UpperOddsMax, - LowerOdds: cps.LowerOdds, - LowerOddsMax: cps.LowerOddsMax, - ProfitRate: cps.ProfitRate, - ResetTime: cps.ResetTime, - Switch: cps.Switch, + Platform: cps.Platform, + GroupId: cps.GroupId, + GameFreeId: cps.GameFreeId, + ServerId: cps.ServerId, + InitValue: cps.InitValue, + LowerLimit: cps.LowerLimit, + UpperLimit: cps.UpperLimit, + QuDu: cps.QuDu, + UpperOdds: cps.UpperOdds, + UpperOddsMax: cps.UpperOddsMax, + LowerOdds: cps.LowerOdds, + LowerOddsMax: cps.LowerOddsMax, + ProfitRate: cps.ProfitRate, + ResetTime: cps.ResetTime, + Switch: cps.Switch, + CtrlRate: cps.CtrlRate, + InitNoviceValue: cps.InitNoviceValue, } proto.SetDefaults(msg) gs.Send(int(server.SSPacketID_PACKET_WG_COINPOOLSETTING), msg) From 7219ddaed8cab9bd7cd61f84397490a2a14dfbee Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Wed, 8 May 2024 18:33:33 +0800 Subject: [PATCH 2/9] =?UTF-8?q?=E9=87=8D=E7=BD=AE=E6=B0=B4=E6=B1=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/DB_GameCoinPool.dat | 36 ++++---- data/DB_GameCoinPool.json | 146 ++++++++++++++++---------------- data/DB_PropExchange.dat | 6 +- data/DB_Task.dat | Bin 1999 -> 1999 bytes gamesrv/base/coinpoolmanager.go | 15 +++- xlsx/DB_GameCoinPool.xlsx | Bin 16802 -> 19300 bytes 6 files changed, 107 insertions(+), 96 deletions(-) diff --git a/data/DB_GameCoinPool.dat b/data/DB_GameCoinPool.dat index c913267..a46923a 100644 --- a/data/DB_GameCoinPool.dat +++ b/data/DB_GameCoinPool.dat @@ -77,24 +77,24 @@ : (ȯ%0d8@HP ;𵭹 (0d8@HP ;׵ ʚ:(0d8@HP -۷ X`݌ -۷ _X` -۷Ɔw X` - ۷ʵ ֹX` -᩸ X`݌ -⩸ _X` -㩸Ɔw X` - 䩸ʵ ֹX` - X`݌ - _X` -Ɔw X` - ʵ ֹX` -ƹ _X`݌ -ƹƆw X` - ƹʵ ֹX` - _X`݌ -Ɔw X` - ʵ ֹX` +۷ _X` + ۷ʵ ֹX` + ۷  ȯ%X`܍ + ۷ JX`¸ +᩸ _X` + ⩸ʵ ֹX` + 㩸  ȯ%X`܍ + 䩸 JX`¸ + _X` + ʵ ֹX` +   ȯ%X`܍ +  JX`¸ +ƹ ֹX` + ƹ  ȯ%X`܍ + ƹ JX`¸ + ֹX` +   ȯ%X`܍ +  JX`¸  X`݌  _X` Ɔw X` diff --git a/data/DB_GameCoinPool.json b/data/DB_GameCoinPool.json index 4850eaf..cd94de1 100644 --- a/data/DB_GameCoinPool.json +++ b/data/DB_GameCoinPool.json @@ -860,78 +860,70 @@ }, { "Id": 3010001, - "InitValue": 6000000, - "LowerLimit": 5000000, - "UpperLimit": 20000000, + "InitValue": 60000000, + "LowerLimit": 50000000, + "UpperLimit": 200000000, "CtrlRate": 200, - "InitNovicValue": 6500000 + "InitNovicValue": 65000000 }, { "Id": 3010002, - "InitValue": 60000000, - "LowerLimit": 50000000, - "UpperLimit": 200000000, + "InitValue": 600000000, + "LowerLimit": 500000000, + "UpperLimit": 2000000000, "CtrlRate": 200, - "InitNovicValue": 65000000 + "InitNovicValue": 650000000 }, { "Id": 3010003, - "InitValue": 300000000, - "LowerLimit": 250000000, - "UpperLimit": 1000000000, + "InitValue": 3000000000, + "LowerLimit": 2500000000, + "UpperLimit": 10000000000, "CtrlRate": 200, - "InitNovicValue": 325000000 + "InitNovicValue": 3250000000 }, { "Id": 3010004, - "InitValue": 600000000, - "LowerLimit": 500000000, - "UpperLimit": 2000000000, + "InitValue": 6000000000, + "LowerLimit": 5000000000, + "UpperLimit": 20000000000, "CtrlRate": 200, - "InitNovicValue": 650000000 + "InitNovicValue": 6500000000 }, { "Id": 3020001, - "InitValue": 6000000, - "LowerLimit": 5000000, - "UpperLimit": 20000000, + "InitValue": 60000000, + "LowerLimit": 50000000, + "UpperLimit": 200000000, "CtrlRate": 200, - "InitNovicValue": 6500000 + "InitNovicValue": 65000000 }, { "Id": 3020002, - "InitValue": 60000000, - "LowerLimit": 50000000, - "UpperLimit": 200000000, + "InitValue": 600000000, + "LowerLimit": 500000000, + "UpperLimit": 2000000000, "CtrlRate": 200, - "InitNovicValue": 65000000 + "InitNovicValue": 650000000 }, { "Id": 3020003, - "InitValue": 300000000, - "LowerLimit": 250000000, - "UpperLimit": 1000000000, + "InitValue": 3000000000, + "LowerLimit": 2500000000, + "UpperLimit": 10000000000, "CtrlRate": 200, - "InitNovicValue": 325000000 + "InitNovicValue": 3250000000 }, { "Id": 3020004, - "InitValue": 600000000, - "LowerLimit": 500000000, - "UpperLimit": 2000000000, + "InitValue": 6000000000, + "LowerLimit": 5000000000, + "UpperLimit": 20000000000, "CtrlRate": 200, - "InitNovicValue": 650000000 + "InitNovicValue": 6500000000 }, { "Id": 3030001, - "InitValue": 6000000, - "LowerLimit": 5000000, - "UpperLimit": 20000000, - "CtrlRate": 200, - "InitNovicValue": 6500000 - }, - { - "Id": 3030002, "InitValue": 60000000, "LowerLimit": 50000000, "UpperLimit": 200000000, @@ -939,68 +931,76 @@ "InitNovicValue": 65000000 }, { - "Id": 3030003, - "InitValue": 300000000, - "LowerLimit": 250000000, - "UpperLimit": 1000000000, + "Id": 3030002, + "InitValue": 600000000, + "LowerLimit": 500000000, + "UpperLimit": 2000000000, "CtrlRate": 200, - "InitNovicValue": 325000000 + "InitNovicValue": 650000000 + }, + { + "Id": 3030003, + "InitValue": 3000000000, + "LowerLimit": 2500000000, + "UpperLimit": 10000000000, + "CtrlRate": 200, + "InitNovicValue": 3250000000 }, { "Id": 3030004, - "InitValue": 600000000, - "LowerLimit": 500000000, - "UpperLimit": 2000000000, + "InitValue": 6000000000, + "LowerLimit": 5000000000, + "UpperLimit": 20000000000, "CtrlRate": 200, - "InitNovicValue": 650000000 + "InitNovicValue": 6500000000 }, { "Id": 3040001, - "InitValue": 6000000, - "LowerLimit": 5000000, - "UpperLimit": 200000000, + "InitValue": 60000000, + "LowerLimit": 50000000, + "UpperLimit": 2000000000, "CtrlRate": 200, - "InitNovicValue": 6500000 + "InitNovicValue": 65000000 }, { "Id": 3040002, - "InitValue": 300000000, - "LowerLimit": 250000000, - "UpperLimit": 1000000000, + "InitValue": 3000000000, + "LowerLimit": 2500000000, + "UpperLimit": 10000000000, "CtrlRate": 200, - "InitNovicValue": 325000000 + "InitNovicValue": 3250000000 }, { "Id": 3040003, - "InitValue": 600000000, - "LowerLimit": 500000000, - "UpperLimit": 2000000000, + "InitValue": 6000000000, + "LowerLimit": 5000000000, + "UpperLimit": 20000000000, "CtrlRate": 200, - "InitNovicValue": 650000000 + "InitNovicValue": 6500000000 }, { "Id": 3050001, - "InitValue": 6000000, - "LowerLimit": 5000000, - "UpperLimit": 200000000, + "InitValue": 60000000, + "LowerLimit": 50000000, + "UpperLimit": 2000000000, "CtrlRate": 200, - "InitNovicValue": 6500000 + "InitNovicValue": 65000000 }, { "Id": 3050002, - "InitValue": 300000000, - "LowerLimit": 250000000, - "UpperLimit": 1000000000, + "InitValue": 3000000000, + "LowerLimit": 2500000000, + "UpperLimit": 10000000000, "CtrlRate": 200, - "InitNovicValue": 325000000 + "InitNovicValue": 3250000000 }, { "Id": 3050003, - "InitValue": 600000000, - "LowerLimit": 500000000, - "UpperLimit": 2000000000, + "InitValue": 6000000000, + "LowerLimit": 5000000000, + "UpperLimit": 20000000000, "CtrlRate": 200, - "InitNovicValue": 650000000 + "InitNovicValue": 6500000000 }, { "Id": 3060001, diff --git a/data/DB_PropExchange.dat b/data/DB_PropExchange.dat index dfe6b90..4405bbd 100644 --- a/data/DB_PropExchange.dat +++ b/data/DB_PropExchange.dat @@ -1,5 +1,5 @@ 6ӆԆՆֆ׆"= -.؆نچۆ"= -WԆՆֆ׆ۆӆ؆نچ"  -]܆Ԇֆ׆؆ۆӆՆنچ" \ No newline at end of file +.چۆ؆ن"= +WֆنچۆӆԆՆ׆؆"  +]׆܆ֆ؆نچۆӆԆՆ" \ No newline at end of file diff --git a/data/DB_Task.dat b/data/DB_Task.dat index b073e70a7a93f394b7dded12c813c736cd462c74..e98511b2a79c9d3a5372d4e9a85459042e8b5304 100644 GIT binary patch delta 327 zcmX@lf1ZEBOhFEgg}rP73wqhC*f^E|S#lFst)AS>B&fipz`-lPB*Cn}s=;Nz2$Wp} zl;yI5s6WtRJGqU~PY5Q;2{xr+?IV`S&loG9!YNiz;fJrqCl@evO)g;10$C*$EH_|0-O@83M?8g*e5%(iA?Tc>6rYK zO?a|8YwYBUOrqQ>97lFA35WreuuVR|BCB*1$ddu_G%mC;!+ijE6v(ZQS#M63U=n0Z xnS72d5#%goE=7*VSC|Eafcp3~jDWfzUO3RZ9To&~latv^CtqO%=~~6E3IL~+S|0!a delta 316 zcmX@lf1ZEBOhGn|CB19{a#kE13xV{4Ubcy=R?D(+ECO=4pn?ZlY`GLTcmO@6_8MF?s=RBOZ9M=X=iu_c;7 peAm!f1$CbYmmdPRPG&d7X5K1xRRHYBSTq0t diff --git a/gamesrv/base/coinpoolmanager.go b/gamesrv/base/coinpoolmanager.go index 621b31e..5e54d50 100644 --- a/gamesrv/base/coinpoolmanager.go +++ b/gamesrv/base/coinpoolmanager.go @@ -449,15 +449,26 @@ func (this *CoinPoolManager) ResetCoinPool(wgRcp *server.WGResetCoinPool) { if setting, exist := this.CoinPoolSetting[key]; exist { switch wgRcp.GetPoolType() { case 1: //水池 - value := int64(wgRcp.GetValue()) + value := wgRcp.GetValue() if value == -1 { initValue := setting.GetInitValue() if initValue != 0 { //初始化水池 - value = int64(initValue) + value = initValue } } this.CoinPool.Store(key, value) logger.Logger.Infof("$$$$$$$$金币池 %v 重置金币 %v.$$$$$$$$", key, value) + + value = wgRcp.GetValue() + if value == -1 { + initValue := setting.GetInitNoviceValue() + if initValue != 0 { //初始化水池 + value = initValue + } + } + this.NoviceCoinPool.Store(key, value) + logger.Logger.Infof("$$$$$$$$新手金币池 %v 重置金币 %v.$$$$$$$$", key, value) + case 2: //营收池 value := int64(wgRcp.GetValue()) if value == -1 { diff --git a/xlsx/DB_GameCoinPool.xlsx b/xlsx/DB_GameCoinPool.xlsx index e05dd1f0bff2af38ed21503430bbe54ab280f58a..024373154dd81c4fc1f2f6a82ba49271d76618dd 100644 GIT binary patch delta 16154 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 G`hNfc5~f}N delta 13658 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 From c09c059b79dacef1fbc4ab89e8126a144d6b5138 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Wed, 8 May 2024 18:48:27 +0800 Subject: [PATCH 3/9] =?UTF-8?q?=E9=87=8D=E7=BD=AE=E6=B0=B4=E6=B1=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gamesrv/base/coinpoolmanager.go | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/gamesrv/base/coinpoolmanager.go b/gamesrv/base/coinpoolmanager.go index 5e54d50..c7e26f2 100644 --- a/gamesrv/base/coinpoolmanager.go +++ b/gamesrv/base/coinpoolmanager.go @@ -459,16 +459,6 @@ func (this *CoinPoolManager) ResetCoinPool(wgRcp *server.WGResetCoinPool) { this.CoinPool.Store(key, value) logger.Logger.Infof("$$$$$$$$金币池 %v 重置金币 %v.$$$$$$$$", key, value) - value = wgRcp.GetValue() - if value == -1 { - initValue := setting.GetInitNoviceValue() - if initValue != 0 { //初始化水池 - value = initValue - } - } - this.NoviceCoinPool.Store(key, value) - logger.Logger.Infof("$$$$$$$$新手金币池 %v 重置金币 %v.$$$$$$$$", key, value) - case 2: //营收池 value := int64(wgRcp.GetValue()) if value == -1 { @@ -493,6 +483,16 @@ func (this *CoinPoolManager) ResetCoinPool(wgRcp *server.WGResetCoinPool) { } this.ProfitPool.Store(key, value) logger.Logger.Infof("$$$$$$$$营收池 %v 重置金币 %v.$$$$$$$$", key, value) + case 8: // 新手池 + value := wgRcp.GetValue() + if value == -1 { + initValue := setting.GetInitNoviceValue() + if initValue != 0 { //初始化水池 + value = initValue + } + } + this.NoviceCoinPool.Store(key, value) + logger.Logger.Infof("$$$$$$$$新手金币池 %v 重置金币 %v.$$$$$$$$", key, value) } } } From 45b05b1fe583443657f03ff000711ddb729f4498 Mon Sep 17 00:00:00 2001 From: kxdd <39694055+shaojiayao@users.noreply.github.com> Date: Mon, 13 May 2024 11:01:02 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E8=AE=B0=E7=89=8C=E5=99=A8=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E8=AE=A1=E7=AE=97bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/player.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/worldsrv/player.go b/worldsrv/player.go index 4152837..8bdf096 100644 --- a/worldsrv/player.go +++ b/worldsrv/player.go @@ -4652,7 +4652,11 @@ func (this *Player) AddItemRecExpireTime(itemId int32, num, add int64, gainWay i if this.ItemRecExpireTime == 0 { this.ItemRecExpireTime = time.Now().Unix() + int64(itemData.Time)*3600*num } else { - this.ItemRecExpireTime += int64(itemData.Time) * 3600 * num + if this.ItemRecExpireTime >= time.Now().Unix() { + this.ItemRecExpireTime += int64(itemData.Time) * 3600 * num + } else { + this.ItemRecExpireTime = time.Now().Unix() + int64(itemData.Time)*3600*num + } } } From 528bccfe0b01165000addae2bc8bd0b2d4b14d6c Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Wed, 8 May 2024 17:36:14 +0800 Subject: [PATCH 5/9] =?UTF-8?q?=E7=8E=A9=E5=AE=B6=E7=AD=89=E7=BA=A7?= =?UTF-8?q?=E6=A6=9Clog=E8=BE=93=E5=87=BAerror=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- model/rank.go | 26 ++++++++++++++------------ ranksrv/action_gatesrv.go | 32 +------------------------------- 2 files changed, 15 insertions(+), 43 deletions(-) diff --git a/model/rank.go b/model/rank.go index 69adece..a500c20 100644 --- a/model/rank.go +++ b/model/rank.go @@ -235,20 +235,22 @@ type FindPlayerLevelReply struct { List *PlayerLevelInfo } -func FindPlayerLevel(args *FindPlayerLevelArgs) (*FindPlayerLevelReply, error) { - if rpcCli == nil { - logger.Logger.Error("model.FindPlayerLevel rpcCli == nil") - return nil, nil - } +/* + func FindPlayerLevel(args *FindPlayerLevelArgs) (*FindPlayerLevelReply, error) { + if rpcCli == nil { + logger.Logger.Error("model.FindPlayerLevel rpcCli == nil") + return nil, nil + } - ret := new(FindPlayerLevelReply) - err := rpcCli.CallWithTimeout("GamePlayerListSvc.FindPlayerLevel", args, ret, time.Second*30) - if err != nil { - logger.Logger.Error("FindPlayerLevel error:", err) - return ret, err + ret := new(FindPlayerLevelReply) + err := rpcCli.CallWithTimeout("RankPlayerLevelSvc.FindPlayerLevel", args, ret, time.Second*30) + if err != nil { + logger.Logger.Error("FindPlayerLevel error:", err) + return ret, err + } + return ret, nil } - return ret, nil -} +*/ func FindPlayerLevelList(args *FindPlayerLevelListArgs) (*FindPlayerLevelListReply, error) { if rpcCli == nil { logger.Logger.Error("model.FindPlayerLevelList rpcCli == nil") diff --git a/ranksrv/action_gatesrv.go b/ranksrv/action_gatesrv.go index 995b5ef..69c4846 100644 --- a/ranksrv/action_gatesrv.go +++ b/ranksrv/action_gatesrv.go @@ -443,37 +443,7 @@ func CSPlayerLevelRank(s *netlib.Session, d *rankproto.GateTransmit, packetId in } } } - - if me == nil { - var err error - var ret *model.FindPlayerLevelReply - task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { - startTs, endTs := rank.StartEndTs() - ret, err = model.FindPlayerLevel(&model.FindPlayerLevelArgs{ - Platform: d.Platform, - StartTs: startTs, - EndTs: endTs, - SnId: d.Snid, - }) - if err != nil { - logger.Logger.Errorf("FindWinCoinTienlen error: %v", err) - } - return nil - }), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) { - if err == nil && ret.List != nil { - me = &rankproto.PlayerLevelRankInfo{ - SnId: ret.List.SnId, - Name: ret.List.Name, - Rank: -1, - Level: ret.List.Level, - ModId: ret.List.ModId, - } - } - send() - })).Start() - } else { - send() - } + send() }) return nil } From 469a8279fc287692382c754f0215ebdda58da6f1 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Wed, 8 May 2024 17:38:34 +0800 Subject: [PATCH 6/9] =?UTF-8?q?=E7=AD=89=E7=BA=A7=E6=A6=9C=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E6=97=A0=E7=94=A8=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- model/rank.go | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/model/rank.go b/model/rank.go index a500c20..e621882 100644 --- a/model/rank.go +++ b/model/rank.go @@ -235,22 +235,6 @@ type FindPlayerLevelReply struct { List *PlayerLevelInfo } -/* - func FindPlayerLevel(args *FindPlayerLevelArgs) (*FindPlayerLevelReply, error) { - if rpcCli == nil { - logger.Logger.Error("model.FindPlayerLevel rpcCli == nil") - return nil, nil - } - - ret := new(FindPlayerLevelReply) - err := rpcCli.CallWithTimeout("RankPlayerLevelSvc.FindPlayerLevel", args, ret, time.Second*30) - if err != nil { - logger.Logger.Error("FindPlayerLevel error:", err) - return ret, err - } - return ret, nil - } -*/ func FindPlayerLevelList(args *FindPlayerLevelListArgs) (*FindPlayerLevelListReply, error) { if rpcCli == nil { logger.Logger.Error("model.FindPlayerLevelList rpcCli == nil") From fb4a82d26f16f9ac999201c37a0f78959f23ec18 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Wed, 8 May 2024 18:07:07 +0800 Subject: [PATCH 7/9] =?UTF-8?q?=E7=AD=89=E7=BA=A7=E6=A6=9C=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ranksrv/action_gatesrv.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ranksrv/action_gatesrv.go b/ranksrv/action_gatesrv.go index 69c4846..bead5d8 100644 --- a/ranksrv/action_gatesrv.go +++ b/ranksrv/action_gatesrv.go @@ -420,7 +420,7 @@ func CSPlayerLevelRank(s *netlib.Session, d *rankproto.GateTransmit, packetId in Name: v.Name, Level: v.Level, ModId: v.ModId, - Rank: i, + Rank: i + start, } ranks = append(ranks, r) i++ From bc81c3c204edf2bbec3db3490570d342664d5d62 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Mon, 13 May 2024 16:29:20 +0800 Subject: [PATCH 8/9] =?UTF-8?q?tienlen=E8=AE=B0=E7=89=8C=E5=99=A8=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gamesrv/tienlen/scenepolicy_tienlen.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gamesrv/tienlen/scenepolicy_tienlen.go b/gamesrv/tienlen/scenepolicy_tienlen.go index 4866307..1e479f2 100644 --- a/gamesrv/tienlen/scenepolicy_tienlen.go +++ b/gamesrv/tienlen/scenepolicy_tienlen.go @@ -461,7 +461,8 @@ func TienLenCreateRoomInfoPacket(s *base.Scene, p *base.Player, sceneEx *TienLen } } } - + pack.IsOutRecord = playerEx.CanUseRecordItem() + pack.ItemRecExpireTime = playerEx.ItemRecExpireTime } pack.Players = append(pack.Players, pd) @@ -516,8 +517,6 @@ func TienLenCreateRoomInfoPacket(s *base.Scene, p *base.Player, sceneEx *TienLen } } } - pack.IsOutRecord = playerEx.CanUseRecordItem() - pack.ItemRecExpireTime = playerEx.ItemRecExpireTime proto.SetDefaults(pack) return pack From ed1aa36815f0c741a2450816fb6316621596b935 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Fri, 17 May 2024 15:44:48 +0800 Subject: [PATCH 9/9] =?UTF-8?q?=E6=8B=89=E9=9C=B8=E5=A5=96=E6=B1=A0?= =?UTF-8?q?=E9=87=91=E9=A2=9D=E6=95=B0=E6=8D=AE=E7=B1=BB=E5=9E=8B=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gamesrv/avengers/scenedata_avengers.go | 8 ++++---- gamesrv/avengers/scenepolicy_avengers.go | 4 ++-- gamesrv/caishen/scenedata_caishen.go | 6 +++--- gamesrv/caishen/scenepolicy_caishen.go | 8 ++++---- gamesrv/easterisland/scenedata_easterisland.go | 8 ++++---- gamesrv/easterisland/scenepolicy_easterisland.go | 6 +++--- gamesrv/iceage/scenedata_iceage.go | 10 +++++----- gamesrv/iceage/scenepolicy_iceage.go | 4 ++-- gamesrv/tamquoc/scenedata_tamquoc.go | 8 ++++---- gamesrv/tamquoc/scenepolicy_tamquoc.go | 2 +- 10 files changed, 32 insertions(+), 32 deletions(-) diff --git a/gamesrv/avengers/scenedata_avengers.go b/gamesrv/avengers/scenedata_avengers.go index f412299..82d8328 100644 --- a/gamesrv/avengers/scenedata_avengers.go +++ b/gamesrv/avengers/scenedata_avengers.go @@ -64,7 +64,7 @@ func (this *AvengersSceneData) init() bool { this.jackpot = &base.SlotJackpotPool{} if this.jackpot.Small <= 0 { this.jackpot.Small = 0 - this.jackpot.VirtualJK = int64(params[rule.AVENGERS_JACKPOT_InitJackpot] * this.DbGameFree.GetBaseScore()) + this.jackpot.VirtualJK = int64(params[rule.AVENGERS_JACKPOT_InitJackpot]) * int64(this.DbGameFree.GetBaseScore()) } str := base.SlotsPoolMgr.GetPool(this.GetGameFreeId(), this.Platform) if str != "" { @@ -288,13 +288,13 @@ func (this *AvengersSceneData) AIBurstJackPot() { if time.Now().Sub(this.GetLastBurstJackPot()) > 0 { this.SetLastBurstJackPot() jackpotParams := this.DbGameFree.GetJackpot() - var jackpotInit = int64(jackpotParams[rule.AVENGERS_JACKPOT_InitJackpot] * this.DbGameFree.GetBaseScore()) //奖池初始值 + var jackpotInit = int64(jackpotParams[rule.AVENGERS_JACKPOT_InitJackpot]) * int64(this.DbGameFree.GetBaseScore()) //奖池初始值 //AI机器人爆奖 val := this.jackpot.VirtualJK this.jackpot.VirtualJK = jackpotInit - bet := this.DbGameFree.GetBaseScore() * int32(rule.LINENUM) - this.RecordBurstLog(this.RandNickName(), val, int64(bet)) + bet := int64(this.DbGameFree.GetBaseScore()) * int64(rule.LINENUM) + this.RecordBurstLog(this.RandNickName(), val, bet) } } func (this *AvengersSceneData) KickPlayerByTime() { diff --git a/gamesrv/avengers/scenepolicy_avengers.go b/gamesrv/avengers/scenepolicy_avengers.go index 0774475..833c99f 100644 --- a/gamesrv/avengers/scenepolicy_avengers.go +++ b/gamesrv/avengers/scenepolicy_avengers.go @@ -449,7 +449,7 @@ func (this *SceneStateAvengersStart) OnPlayerOp(s *base.Scene, p *base.Player, o // 奖池参数 jackpotParams := sceneEx.DbGameFree.GetJackpot() - var jackpotInit = int64(jackpotParams[rule.AVENGERS_JACKPOT_InitJackpot] * sceneEx.DbGameFree.GetBaseScore()) //奖池初始值 + var jackpotInit = int64(jackpotParams[rule.AVENGERS_JACKPOT_InitJackpot]) * int64(sceneEx.DbGameFree.GetBaseScore()) //奖池初始值 var jackpotFundAdd, prizeFundAdd int64 //奖池/水池增量 if playerEx.freeTimes <= 0 { //正常模式才能记录用户的押注变化,免费模式不能改变押注 @@ -806,7 +806,7 @@ func (this *SceneStateAvengersStart) BenchTest(s *base.Scene, p *base.Player) { file.WriteString("玩家id,当前水位,之前余额,之后余额,投入,产出,税收,小游戏,爆奖,中线倍数,中线数,剩余免费次数\r\n") oldCoin := p.Coin - p.Coin = int64(5000 * s.DbGameFree.GetBaseScore()) + p.Coin = 5000 * int64(s.DbGameFree.GetBaseScore()) if playerEx, ok := p.ExtraData.(*AvengersPlayerData); ok { for i := 0; i < BENCH_CNT; i++ { startCoin := p.Coin diff --git a/gamesrv/caishen/scenedata_caishen.go b/gamesrv/caishen/scenedata_caishen.go index abfc83e..677e4a7 100644 --- a/gamesrv/caishen/scenedata_caishen.go +++ b/gamesrv/caishen/scenedata_caishen.go @@ -66,7 +66,7 @@ func (this *CaiShenSceneData) init() bool { this.jackpot = &base.SlotJackpotPool{} if this.jackpot.Small <= 0 { this.jackpot.Small = 0 - this.jackpot.VirtualJK = int64(params[rule.CAISHEN_JACKPOT_InitJackpot] * this.DbGameFree.GetBaseScore()) + this.jackpot.VirtualJK = int64(params[rule.CAISHEN_JACKPOT_InitJackpot]) * int64(this.DbGameFree.GetBaseScore()) } str := base.XSlotsPoolMgr.GetPool(this.GetGameFreeId(), this.Platform) if str != "" { @@ -288,12 +288,12 @@ func (this *CaiShenSceneData) AIBurstJackPot() { if time.Now().Sub(this.GetLastBurstJackPot()) > 0 { this.SetLastBurstJackPot() jackpotParams := this.DbGameFree.GetJackpot() - var jackpotInit = int64(jackpotParams[rule.CAISHEN_JACKPOT_InitJackpot] * this.DbGameFree.GetBaseScore()) //奖池初始值 + var jackpotInit = int64(jackpotParams[rule.CAISHEN_JACKPOT_InitJackpot]) * int64(this.DbGameFree.GetBaseScore()) //奖池初始值 //AI机器人爆奖 val := this.jackpot.VirtualJK this.jackpot.VirtualJK = jackpotInit - bet := this.DbGameFree.GetBaseScore() * int32(rule.LINENUM) + bet := int64(this.DbGameFree.GetBaseScore()) * int64(rule.LINENUM) this.RecordBurstLog(this.RandNickName(), val, int64(bet)) } } diff --git a/gamesrv/caishen/scenepolicy_caishen.go b/gamesrv/caishen/scenepolicy_caishen.go index 06bea87..5200341 100644 --- a/gamesrv/caishen/scenepolicy_caishen.go +++ b/gamesrv/caishen/scenepolicy_caishen.go @@ -446,7 +446,7 @@ func (this *SceneStateCaiShenStart) OnPlayerOp(s *base.Scene, p *base.Player, op // 奖池参数 var jackpotParam = sceneEx.DbGameFree.GetJackpot() - var jackpotInit = int64(jackpotParam[rule.CAISHEN_JACKPOT_InitJackpot] * sceneEx.DbGameFree.GetBaseScore()) //奖池初始值 + var jackpotInit = int64(jackpotParam[rule.CAISHEN_JACKPOT_InitJackpot]) * int64(sceneEx.DbGameFree.GetBaseScore()) //奖池初始值 var jackpotFundAdd, prizeFundAdd int64 if playerEx.freeTimes <= 0 { //正常模式才能记录用户的押注变化,免费模式不能改变押注 @@ -918,7 +918,7 @@ func (this *SceneStateCaiShenStart) MultiplayerBenchTest(s *base.Scene) { playersFile := make(map[int32]*os.File) oldCoins := make(map[int32]int64) - hasCoin := int64(1000 * s.DbGameFree.GetBaseScore()) + hasCoin := 1000 * int64(s.DbGameFree.GetBaseScore()) robots := make(map[int32]bool) testPlayers := make(map[int32]*base.Player) for _, p := range s.Players { @@ -955,12 +955,12 @@ func (this *SceneStateCaiShenStart) MultiplayerBenchTest(s *base.Scene) { } }() - totalBet := s.DbGameFree.GetBaseScore() * int32(len(rule.AllBetLines)) + totalBet := int64(s.DbGameFree.GetBaseScore()) * int64(len(rule.AllBetLines)) for i := 0; i < BENCH_CNT; i++ { for snid, p := range testPlayers { if playerEx, ok := p.ExtraData.(*CaiShenPlayerData); ok { StartCoin := p.Coin - if StartCoin < int64(totalBet) { + if StartCoin < totalBet { continue } freeTimes := playerEx.freeTimes diff --git a/gamesrv/easterisland/scenedata_easterisland.go b/gamesrv/easterisland/scenedata_easterisland.go index 48762ce..654f5ed 100644 --- a/gamesrv/easterisland/scenedata_easterisland.go +++ b/gamesrv/easterisland/scenedata_easterisland.go @@ -60,7 +60,7 @@ func (this *EasterIslandSceneData) init() bool { this.jackpot = &base.SlotJackpotPool{} if this.jackpot.Small <= 0 { this.jackpot.Small = 0 - this.jackpot.VirtualJK = int64(params[rule.EL_JACKPOT_InitJackpot] * this.DbGameFree.GetBaseScore()) + this.jackpot.VirtualJK = int64(params[rule.EL_JACKPOT_InitJackpot]) * int64(this.DbGameFree.GetBaseScore()) } str := base.SlotsPoolMgr.GetPool(this.GetGameFreeId(), this.Platform) if str != "" { @@ -290,13 +290,13 @@ func (this *EasterIslandSceneData) AIBurstJackPot() { if time.Now().Sub(this.GetLastBurstJackPot()) > 0 { this.SetLastBurstJackPot() jackpotParams := this.DbGameFree.GetJackpot() - var jackpotInit = int64(jackpotParams[rule.EL_JACKPOT_InitJackpot] * this.DbGameFree.GetBaseScore()) //奖池初始值 + var jackpotInit = int64(jackpotParams[rule.EL_JACKPOT_InitJackpot]) * int64(this.DbGameFree.GetBaseScore()) //奖池初始值 //AI机器人爆奖 val := this.jackpot.VirtualJK this.jackpot.VirtualJK = jackpotInit - bet := this.DbGameFree.GetBaseScore() * int32(rule.LINENUM) - this.RecordBurstLog(this.RandNickName(), val, int64(bet)) + bet := int64(this.DbGameFree.GetBaseScore()) * int64(rule.LINENUM) + this.RecordBurstLog(this.RandNickName(), val, bet) } } func (this *EasterIslandSceneData) KickPlayerByTime() { diff --git a/gamesrv/easterisland/scenepolicy_easterisland.go b/gamesrv/easterisland/scenepolicy_easterisland.go index a3023bc..fc2e069 100644 --- a/gamesrv/easterisland/scenepolicy_easterisland.go +++ b/gamesrv/easterisland/scenepolicy_easterisland.go @@ -430,9 +430,9 @@ func (this *SceneStateEasterIslandStart) OnPlayerOp(s *base.Scene, p *base.Playe } else { gamePoolCoin = base.CoinPoolMgr.GetCoin(sceneEx.GetGameFreeId(), sceneEx.Platform, sceneEx.GroupId) // 当前水池金额 } - prizeFund := gamePoolCoin - sceneEx.jackpot.VirtualJK // 除去奖池的水池剩余金额 - jackpotParams := sceneEx.DbGameFree.GetJackpot() // 奖池参数 - var jackpotInit = int64(jackpotParams[rule.EL_JACKPOT_InitJackpot] * sceneEx.DbGameFree.GetBaseScore()) //奖池初始值 + prizeFund := gamePoolCoin - sceneEx.jackpot.VirtualJK // 除去奖池的水池剩余金额 + jackpotParams := sceneEx.DbGameFree.GetJackpot() // 奖池参数 + var jackpotInit = int64(jackpotParams[rule.EL_JACKPOT_InitJackpot]) * int64(sceneEx.DbGameFree.GetBaseScore()) //奖池初始值 var jackpotFundAdd, prizeFundAdd int64 if playerEx.freeTimes <= 0 { //正常模式才能记录用户的押注变化,免费模式不能改变押注 diff --git a/gamesrv/iceage/scenedata_iceage.go b/gamesrv/iceage/scenedata_iceage.go index 26e449e..afdd05b 100644 --- a/gamesrv/iceage/scenedata_iceage.go +++ b/gamesrv/iceage/scenedata_iceage.go @@ -67,7 +67,7 @@ func (this *IceAgeSceneData) init() bool { this.jackpot = &base.SlotJackpotPool{} if this.jackpot.Small <= 0 { this.jackpot.Small = 0 - this.jackpot.VirtualJK = int64(params[rule.ICEAGE_JACKPOT_InitJackpot] * this.DbGameFree.GetBaseScore()) + this.jackpot.VirtualJK = int64(params[rule.ICEAGE_JACKPOT_InitJackpot]) * int64(this.DbGameFree.GetBaseScore()) } str := base.SlotsPoolMgr.GetPool(this.GetGameFreeId(), this.GetPlatform()) @@ -179,7 +179,7 @@ func (this *IceAgeSceneData) CalcSpinsPrize(cards []int, betLines []int64, distr if spinRes.TotalPrizeJackpot == 0 { // 第一个爆奖 获取当前奖池所有 prizeJackpot = this.jackpot.VirtualJK } else { // 之后的爆奖 奖励为奖池初值 - prizeJackpot = int64(this.GetDBGameFree().GetJackpot()[rule.ICEAGE_JACKPOT_InitJackpot] * this.GetDBGameFree().GetBaseScore()) + prizeJackpot = int64(this.GetDBGameFree().GetJackpot()[rule.ICEAGE_JACKPOT_InitJackpot]) * int64(this.GetDBGameFree().GetBaseScore()) } prizeJackpot = calcTaxScore(prizeJackpot, &spinRes.TotalTaxScore) spinRes.TotalPrizeJackpot += prizeJackpot @@ -332,13 +332,13 @@ func (this *IceAgeSceneData) AIBurstJackPot() { if time.Now().Sub(this.GetLastBurstJackPot()) > 0 { this.SetLastBurstJackPot() jackpotParams := this.DbGameFree.GetJackpot() - var jackpotInit = int64(jackpotParams[rule.ICEAGE_JACKPOT_InitJackpot] * this.DbGameFree.GetBaseScore()) //奖池初始值 + var jackpotInit = int64(jackpotParams[rule.ICEAGE_JACKPOT_InitJackpot]) * int64(this.DbGameFree.GetBaseScore()) //奖池初始值 //AI机器人爆奖 val := this.jackpot.VirtualJK this.jackpot.VirtualJK = jackpotInit - bet := this.DbGameFree.GetBaseScore() * int32(rule.LINENUM) - this.RecordBurstLog(this.RandNickName(), val, int64(bet)) + bet := int64(this.DbGameFree.GetBaseScore()) * int64(rule.LINENUM) + this.RecordBurstLog(this.RandNickName(), val, bet) } } func (this *IceAgeSceneData) KickPlayerByTime() { diff --git a/gamesrv/iceage/scenepolicy_iceage.go b/gamesrv/iceage/scenepolicy_iceage.go index f33f88f..d5090ba 100644 --- a/gamesrv/iceage/scenepolicy_iceage.go +++ b/gamesrv/iceage/scenepolicy_iceage.go @@ -418,7 +418,7 @@ func (this *SceneStateIceAgeStart) OnPlayerOp(s *base.Scene, p *base.Player, opc prizeFund := gamePoolCoin - sceneEx.jackpot.VirtualJK // 除去奖池的水池剩余金额 var jackpotParam = sceneEx.GetDBGameFree().GetJackpot() // 奖池参数 - var jackpotInit = int64(jackpotParam[rule.ICEAGE_JACKPOT_InitJackpot] * sceneEx.GetDBGameFree().GetBaseScore()) + var jackpotInit = int64(jackpotParam[rule.ICEAGE_JACKPOT_InitJackpot]) * int64(sceneEx.GetDBGameFree().GetBaseScore()) var jackpotFundAdd, prizeFundAdd int64 //奖池/水池增量 if playerEx.freeTimes <= 0 { //正常模式才能记录用户的押注变化,免费模式不能改变押注 playerEx.betLines = lineParams // 选线记录 @@ -816,7 +816,7 @@ func (this *SceneStateIceAgeStart) BenchTest(s *base.Scene, p *base.Player) { oldCoin := p.GetCoin() //p.coin = int64(5000 * s.GetDBGameFree().GetBaseScore()) - p.SetCoin(int64(5000 * s.GetDBGameFree().GetBaseScore())) + p.SetCoin(5000 * int64(s.GetDBGameFree().GetBaseScore())) if playerEx, ok := p.GetExtraData().(*IceAgePlayerData); ok { for i := 0; i < BENCH_CNT; i++ { startCoin := p.GetCoin() diff --git a/gamesrv/tamquoc/scenedata_tamquoc.go b/gamesrv/tamquoc/scenedata_tamquoc.go index db474ea..bf35be4 100644 --- a/gamesrv/tamquoc/scenedata_tamquoc.go +++ b/gamesrv/tamquoc/scenedata_tamquoc.go @@ -59,7 +59,7 @@ func (this *TamQuocSceneData) init() bool { this.jackpot = &base.SlotJackpotPool{} if this.jackpot.Small <= 0 { this.jackpot.Small = 0 - this.jackpot.VirtualJK = int64(params[rule.TAMQUOC_JACKPOT_InitJackpot] * this.DbGameFree.GetBaseScore()) + this.jackpot.VirtualJK = int64(params[rule.TAMQUOC_JACKPOT_InitJackpot]) * int64(this.DbGameFree.GetBaseScore()) } str := base.SlotsPoolMgr.GetPool(this.GetGameFreeId(), this.Platform) if str != "" { @@ -114,7 +114,7 @@ func (this *TamQuocSceneData) CalcLinePrize(cards []int, betLines []int64, betVa if spinRes.TotalPrizeJackpot == 0 { // 第一个爆奖 获取当前奖池所有 prizeJackpot = this.jackpot.VirtualJK } else { // 之后的爆奖 奖励为奖池初值 - prizeJackpot = int64(this.DbGameFree.GetJackpot()[rule.TAMQUOC_JACKPOT_InitJackpot] * this.DbGameFree.GetBaseScore()) + prizeJackpot = int64(this.DbGameFree.GetJackpot()[rule.TAMQUOC_JACKPOT_InitJackpot]) * int64(this.DbGameFree.GetBaseScore()) } prizeJackpot = calcTaxScore(prizeJackpot, &spinRes.TotalTaxScore) spinRes.TotalPrizeJackpot += prizeJackpot @@ -273,12 +273,12 @@ func (this *TamQuocSceneData) AIBurstJackPot() { if time.Now().Sub(this.GetLastBurstJackPot()) > 0 { this.SetLastBurstJackPot() jackpotParams := this.DbGameFree.GetJackpot() - var jackpotInit = int64(jackpotParams[rule.TAMQUOC_JACKPOT_InitJackpot] * this.DbGameFree.GetBaseScore()) //奖池初始值 + var jackpotInit = int64(jackpotParams[rule.TAMQUOC_JACKPOT_InitJackpot]) * int64(this.DbGameFree.GetBaseScore()) //奖池初始值 //AI机器人爆奖 val := this.jackpot.VirtualJK this.jackpot.VirtualJK = jackpotInit - bet := this.DbGameFree.GetBaseScore() * int32(rule.LINENUM) + bet := int64(this.DbGameFree.GetBaseScore()) * int64(rule.LINENUM) this.RecordBurstLog(this.RandNickName(), val, int64(bet)) } } diff --git a/gamesrv/tamquoc/scenepolicy_tamquoc.go b/gamesrv/tamquoc/scenepolicy_tamquoc.go index 01bb59b..9a81d2b 100644 --- a/gamesrv/tamquoc/scenepolicy_tamquoc.go +++ b/gamesrv/tamquoc/scenepolicy_tamquoc.go @@ -411,7 +411,7 @@ func (this *SceneStateTamQuocStart) OnPlayerOp(s *base.Scene, p *base.Player, op // 奖池参数 var jackpotParam = sceneEx.DbGameFree.GetJackpot() - var jackpotInit = int64(jackpotParam[rule.TAMQUOC_JACKPOT_InitJackpot] * sceneEx.DbGameFree.GetBaseScore()) //奖池初始值 + var jackpotInit = int64(jackpotParam[rule.TAMQUOC_JACKPOT_InitJackpot]) * int64(sceneEx.DbGameFree.GetBaseScore()) //奖池初始值 var jackpotFundAdd, prizeFundAdd int64 if playerEx.freeTimes <= 0 { //正常模式才能记录用户的押注变化,免费模式不能改变押注