From 7c54d3ce309dd7d5a7242d53c54c0e9c7874f453 Mon Sep 17 00:00:00 2001 From: daiyb <570956418@qq.com> Date: Thu, 12 Jun 2025 15:20:11 +0800 Subject: [PATCH 01/18] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=AE=A1=E6=89=B9?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/cast/cast.pb.go | 342 +++++++++++++++++++++++++---------- api/cast/cast.pb.validate.go | 110 +++++++++++ api/cast/cast_triple.pb.go | 45 +++++ pkg/router/media.go | 1 + pkg/service/cast/work.go | 16 ++ 5 files changed, 423 insertions(+), 91 deletions(-) diff --git a/api/cast/cast.pb.go b/api/cast/cast.pb.go index b44639a..386c824 100644 --- a/api/cast/cast.pb.go +++ b/api/cast/cast.pb.go @@ -76,6 +76,61 @@ func (PlatformIDENUM) EnumDescriptor() ([]byte, []int) { return file_pb_fiee_cast_proto_rawDescGZIP(), []int{0} } +type WorkActionENUM int32 + +const ( + WorkActionENUM_NO_ACTION WorkActionENUM = 0 + WorkActionENUM_CONFIRM WorkActionENUM = 1 // 确认 + WorkActionENUM_APPROVAL WorkActionENUM = 2 // 审批 + WorkActionENUM_APPROVAL_PASS WorkActionENUM = 3 // 审批通过 + WorkActionENUM_APPROVAL_REJECT WorkActionENUM = 4 // 审批驳回 +) + +// Enum value maps for WorkActionENUM. +var ( + WorkActionENUM_name = map[int32]string{ + 0: "NO_ACTION", + 1: "CONFIRM", + 2: "APPROVAL", + 3: "APPROVAL_PASS", + 4: "APPROVAL_REJECT", + } + WorkActionENUM_value = map[string]int32{ + "NO_ACTION": 0, + "CONFIRM": 1, + "APPROVAL": 2, + "APPROVAL_PASS": 3, + "APPROVAL_REJECT": 4, + } +) + +func (x WorkActionENUM) Enum() *WorkActionENUM { + p := new(WorkActionENUM) + *p = x + return p +} + +func (x WorkActionENUM) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WorkActionENUM) Descriptor() protoreflect.EnumDescriptor { + return file_pb_fiee_cast_proto_enumTypes[1].Descriptor() +} + +func (WorkActionENUM) Type() protoreflect.EnumType { + return &file_pb_fiee_cast_proto_enumTypes[1] +} + +func (x WorkActionENUM) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WorkActionENUM.Descriptor instead. +func (WorkActionENUM) EnumDescriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{1} +} + type MediaUserListReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1282,6 +1337,83 @@ func (x *WorkDetailResp) GetApprovalID() string { return "" } +type UpdateStatusReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkAction WorkActionENUM `protobuf:"varint,1,opt,name=workAction,proto3,enum=Cast.WorkActionENUM" json:"workAction"` + WorkUuid string `protobuf:"bytes,2,opt,name=workUuid,proto3" json:"workUuid"` + ApprovalID string `protobuf:"bytes,3,opt,name=approvalID,proto3" json:"approvalID"` + ConfirmRemark string `protobuf:"bytes,4,opt,name=confirmRemark,proto3" json:"confirmRemark"` + ConfirmStatus uint32 `protobuf:"varint,5,opt,name=confirmStatus,proto3" json:"confirmStatus"` +} + +func (x *UpdateStatusReq) Reset() { + *x = UpdateStatusReq{} + mi := &file_pb_fiee_cast_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateStatusReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateStatusReq) ProtoMessage() {} + +func (x *UpdateStatusReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[15] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateStatusReq.ProtoReflect.Descriptor instead. +func (*UpdateStatusReq) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{15} +} + +func (x *UpdateStatusReq) GetWorkAction() WorkActionENUM { + if x != nil { + return x.WorkAction + } + return WorkActionENUM_NO_ACTION +} + +func (x *UpdateStatusReq) GetWorkUuid() string { + if x != nil { + return x.WorkUuid + } + return "" +} + +func (x *UpdateStatusReq) GetApprovalID() string { + if x != nil { + return x.ApprovalID + } + return "" +} + +func (x *UpdateStatusReq) GetConfirmRemark() string { + if x != nil { + return x.ConfirmRemark + } + return "" +} + +func (x *UpdateStatusReq) GetConfirmStatus() uint32 { + if x != nil { + return x.ConfirmStatus + } + return 0 +} + type MediaUserListResp_Info struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1298,7 +1430,7 @@ type MediaUserListResp_Info struct { func (x *MediaUserListResp_Info) Reset() { *x = MediaUserListResp_Info{} - mi := &file_pb_fiee_cast_proto_msgTypes[15] + mi := &file_pb_fiee_cast_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1310,7 +1442,7 @@ func (x *MediaUserListResp_Info) String() string { func (*MediaUserListResp_Info) ProtoMessage() {} func (x *MediaUserListResp_Info) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[15] + mi := &file_pb_fiee_cast_proto_msgTypes[16] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1396,7 +1528,7 @@ type WorkListResp_Info struct { func (x *WorkListResp_Info) Reset() { *x = WorkListResp_Info{} - mi := &file_pb_fiee_cast_proto_msgTypes[16] + mi := &file_pb_fiee_cast_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1408,7 +1540,7 @@ func (x *WorkListResp_Info) String() string { func (*WorkListResp_Info) ProtoMessage() {} func (x *WorkListResp_Info) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[16] + mi := &file_pb_fiee_cast_proto_msgTypes[17] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1761,47 +1893,70 @@ var file_pb_fiee_cast_proto_rawDesc = []byte{ 0x6f, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x2a, 0x3f, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x45, 0x4e, 0x55, 0x4d, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, - 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x49, 0x4b, 0x54, 0x4f, 0x4b, - 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x59, 0x4f, 0x55, 0x54, 0x55, 0x42, 0x45, 0x10, 0x02, 0x12, - 0x07, 0x0a, 0x03, 0x49, 0x4e, 0x53, 0x10, 0x03, 0x32, 0xa3, 0x04, 0x0a, 0x04, 0x43, 0x61, 0x73, - 0x74, 0x12, 0x42, 0x0a, 0x0d, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x16, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x55, - 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x43, 0x61, 0x73, - 0x74, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, - 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x2e, 0x43, 0x61, - 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0d, 0x55, 0x6e, 0x62, 0x69, - 0x6e, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x43, 0x61, 0x73, 0x74, - 0x2e, 0x55, 0x6e, 0x62, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x0b, 0x42, - 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, 0x14, 0x2e, 0x43, 0x61, 0x73, - 0x74, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, - 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x0f, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x18, 0x2e, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x22, 0xcf, 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x12, 0x34, 0x0a, 0x0a, 0x77, + 0x6f, 0x72, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x14, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x45, 0x4e, 0x55, 0x4d, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, + 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x24, 0x0a, + 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, 0x6d, + 0x61, 0x72, 0x6b, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2a, 0x3f, 0x0a, 0x0e, 0x50, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x45, 0x4e, 0x55, 0x4d, 0x12, 0x0b, 0x0a, 0x07, 0x55, + 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x49, 0x4b, 0x54, + 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x59, 0x4f, 0x55, 0x54, 0x55, 0x42, 0x45, 0x10, + 0x02, 0x12, 0x07, 0x0a, 0x03, 0x49, 0x4e, 0x53, 0x10, 0x03, 0x2a, 0x62, 0x0a, 0x0e, 0x57, 0x6f, + 0x72, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x4e, 0x55, 0x4d, 0x12, 0x0d, 0x0a, 0x09, + 0x4e, 0x4f, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, + 0x4f, 0x4e, 0x46, 0x49, 0x52, 0x4d, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x50, 0x50, 0x52, + 0x4f, 0x56, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x50, 0x50, 0x52, 0x4f, 0x56, + 0x41, 0x4c, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x50, 0x50, + 0x52, 0x4f, 0x56, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x04, 0x32, 0xe4, + 0x04, 0x0a, 0x04, 0x43, 0x61, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x0d, 0x4d, 0x65, 0x64, 0x69, 0x61, + 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, + 0x4d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x1a, 0x17, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x73, 0x65, + 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x12, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x1b, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, + 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, + 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x64, 0x69, + 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x41, + 0x0a, 0x0d, 0x55, 0x6e, 0x62, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, + 0x16, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x6e, 0x62, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, + 0x00, 0x12, 0x3d, 0x0a, 0x0b, 0x42, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, + 0x12, 0x14, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, + 0x12, 0x48, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x12, 0x18, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x49, - 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, - 0x72, 0x6b, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x18, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, + 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x0f, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x18, 0x2e, + 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, - 0x71, 0x1a, 0x19, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, - 0x6f, 0x72, 0x6b, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x33, - 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x11, 0x2e, 0x43, 0x61, 0x73, - 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, - 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x12, 0x13, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, - 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x42, 0x0d, - 0x5a, 0x0b, 0x2e, 0x2f, 0x63, 0x61, 0x73, 0x74, 0x3b, 0x63, 0x61, 0x73, 0x74, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x70, 0x22, 0x00, 0x12, 0x33, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x11, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0a, 0x57, 0x6f, 0x72, + 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x13, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, + 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x43, + 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x22, 0x00, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x63, 0x61, 0x73, 0x74, 0x3b, + 0x63, 0x61, 0x73, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1816,60 +1971,65 @@ func file_pb_fiee_cast_proto_rawDescGZIP() []byte { return file_pb_fiee_cast_proto_rawDescData } -var file_pb_fiee_cast_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_pb_fiee_cast_proto_msgTypes = make([]protoimpl.MessageInfo, 17) +var file_pb_fiee_cast_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_pb_fiee_cast_proto_msgTypes = make([]protoimpl.MessageInfo, 18) var file_pb_fiee_cast_proto_goTypes = []any{ (PlatformIDENUM)(0), // 0: Cast.PlatformIDENUM - (*MediaUserListReq)(nil), // 1: Cast.MediaUserListReq - (*MediaUserListResp)(nil), // 2: Cast.MediaUserListResp - (*UpdateMediaAccountReq)(nil), // 3: Cast.UpdateMediaAccountReq - (*UpdateMediaAccountResp)(nil), // 4: Cast.UpdateMediaAccountResp - (*UnbindManagerReq)(nil), // 5: Cast.UnbindManagerReq - (*BindManagerReq)(nil), // 6: Cast.BindManagerReq - (*UpdateWorkImageReq)(nil), // 7: Cast.UpdateWorkImageReq - (*UpdateWorkImageResp)(nil), // 8: Cast.UpdateWorkImageResp - (*PublishConfig)(nil), // 9: Cast.PublishConfig - (*UpdateWorkVideoReq)(nil), // 10: Cast.UpdateWorkVideoReq - (*UpdateWorkVideoResp)(nil), // 11: Cast.UpdateWorkVideoResp - (*WorkListReq)(nil), // 12: Cast.WorkListReq - (*WorkListResp)(nil), // 13: Cast.WorkListResp - (*WorkDetailReq)(nil), // 14: Cast.WorkDetailReq - (*WorkDetailResp)(nil), // 15: Cast.WorkDetailResp - (*MediaUserListResp_Info)(nil), // 16: Cast.MediaUserListResp.Info - (*WorkListResp_Info)(nil), // 17: Cast.WorkListResp.Info - (*emptypb.Empty)(nil), // 18: google.protobuf.Empty + (WorkActionENUM)(0), // 1: Cast.WorkActionENUM + (*MediaUserListReq)(nil), // 2: Cast.MediaUserListReq + (*MediaUserListResp)(nil), // 3: Cast.MediaUserListResp + (*UpdateMediaAccountReq)(nil), // 4: Cast.UpdateMediaAccountReq + (*UpdateMediaAccountResp)(nil), // 5: Cast.UpdateMediaAccountResp + (*UnbindManagerReq)(nil), // 6: Cast.UnbindManagerReq + (*BindManagerReq)(nil), // 7: Cast.BindManagerReq + (*UpdateWorkImageReq)(nil), // 8: Cast.UpdateWorkImageReq + (*UpdateWorkImageResp)(nil), // 9: Cast.UpdateWorkImageResp + (*PublishConfig)(nil), // 10: Cast.PublishConfig + (*UpdateWorkVideoReq)(nil), // 11: Cast.UpdateWorkVideoReq + (*UpdateWorkVideoResp)(nil), // 12: Cast.UpdateWorkVideoResp + (*WorkListReq)(nil), // 13: Cast.WorkListReq + (*WorkListResp)(nil), // 14: Cast.WorkListResp + (*WorkDetailReq)(nil), // 15: Cast.WorkDetailReq + (*WorkDetailResp)(nil), // 16: Cast.WorkDetailResp + (*UpdateStatusReq)(nil), // 17: Cast.UpdateStatusReq + (*MediaUserListResp_Info)(nil), // 18: Cast.MediaUserListResp.Info + (*WorkListResp_Info)(nil), // 19: Cast.WorkListResp.Info + (*emptypb.Empty)(nil), // 20: google.protobuf.Empty } var file_pb_fiee_cast_proto_depIdxs = []int32{ 0, // 0: Cast.MediaUserListReq.platformID:type_name -> Cast.PlatformIDENUM - 16, // 1: Cast.MediaUserListResp.data:type_name -> Cast.MediaUserListResp.Info + 18, // 1: Cast.MediaUserListResp.data:type_name -> Cast.MediaUserListResp.Info 0, // 2: Cast.UpdateMediaAccountReq.platformID:type_name -> Cast.PlatformIDENUM 0, // 3: Cast.UpdateWorkImageReq.platformIDs:type_name -> Cast.PlatformIDENUM - 9, // 4: Cast.UpdateWorkImageReq.publishConfig:type_name -> Cast.PublishConfig + 10, // 4: Cast.UpdateWorkImageReq.publishConfig:type_name -> Cast.PublishConfig 0, // 5: Cast.UpdateWorkVideoReq.platformIDs:type_name -> Cast.PlatformIDENUM - 9, // 6: Cast.UpdateWorkVideoReq.publishConfig:type_name -> Cast.PublishConfig - 17, // 7: Cast.WorkListResp.data:type_name -> Cast.WorkListResp.Info - 9, // 8: Cast.WorkDetailResp.publishConfig:type_name -> Cast.PublishConfig - 1, // 9: Cast.Cast.MediaUserList:input_type -> Cast.MediaUserListReq - 3, // 10: Cast.Cast.UpdateMediaAccount:input_type -> Cast.UpdateMediaAccountReq - 5, // 11: Cast.Cast.UnbindManager:input_type -> Cast.UnbindManagerReq - 6, // 12: Cast.Cast.BindManager:input_type -> Cast.BindManagerReq - 7, // 13: Cast.Cast.UpdateWorkImage:input_type -> Cast.UpdateWorkImageReq - 10, // 14: Cast.Cast.UpdateWorkVideo:input_type -> Cast.UpdateWorkVideoReq - 12, // 15: Cast.Cast.WorkList:input_type -> Cast.WorkListReq - 14, // 16: Cast.Cast.WorkDetail:input_type -> Cast.WorkDetailReq - 2, // 17: Cast.Cast.MediaUserList:output_type -> Cast.MediaUserListResp - 4, // 18: Cast.Cast.UpdateMediaAccount:output_type -> Cast.UpdateMediaAccountResp - 18, // 19: Cast.Cast.UnbindManager:output_type -> google.protobuf.Empty - 18, // 20: Cast.Cast.BindManager:output_type -> google.protobuf.Empty - 8, // 21: Cast.Cast.UpdateWorkImage:output_type -> Cast.UpdateWorkImageResp - 11, // 22: Cast.Cast.UpdateWorkVideo:output_type -> Cast.UpdateWorkVideoResp - 13, // 23: Cast.Cast.WorkList:output_type -> Cast.WorkListResp - 15, // 24: Cast.Cast.WorkDetail:output_type -> Cast.WorkDetailResp - 17, // [17:25] is the sub-list for method output_type - 9, // [9:17] is the sub-list for method input_type - 9, // [9:9] is the sub-list for extension type_name - 9, // [9:9] is the sub-list for extension extendee - 0, // [0:9] is the sub-list for field type_name + 10, // 6: Cast.UpdateWorkVideoReq.publishConfig:type_name -> Cast.PublishConfig + 19, // 7: Cast.WorkListResp.data:type_name -> Cast.WorkListResp.Info + 10, // 8: Cast.WorkDetailResp.publishConfig:type_name -> Cast.PublishConfig + 1, // 9: Cast.UpdateStatusReq.workAction:type_name -> Cast.WorkActionENUM + 2, // 10: Cast.Cast.MediaUserList:input_type -> Cast.MediaUserListReq + 4, // 11: Cast.Cast.UpdateMediaAccount:input_type -> Cast.UpdateMediaAccountReq + 6, // 12: Cast.Cast.UnbindManager:input_type -> Cast.UnbindManagerReq + 7, // 13: Cast.Cast.BindManager:input_type -> Cast.BindManagerReq + 8, // 14: Cast.Cast.UpdateWorkImage:input_type -> Cast.UpdateWorkImageReq + 11, // 15: Cast.Cast.UpdateWorkVideo:input_type -> Cast.UpdateWorkVideoReq + 13, // 16: Cast.Cast.WorkList:input_type -> Cast.WorkListReq + 15, // 17: Cast.Cast.WorkDetail:input_type -> Cast.WorkDetailReq + 17, // 18: Cast.Cast.UpdateStatus:input_type -> Cast.UpdateStatusReq + 3, // 19: Cast.Cast.MediaUserList:output_type -> Cast.MediaUserListResp + 5, // 20: Cast.Cast.UpdateMediaAccount:output_type -> Cast.UpdateMediaAccountResp + 20, // 21: Cast.Cast.UnbindManager:output_type -> google.protobuf.Empty + 20, // 22: Cast.Cast.BindManager:output_type -> google.protobuf.Empty + 9, // 23: Cast.Cast.UpdateWorkImage:output_type -> Cast.UpdateWorkImageResp + 12, // 24: Cast.Cast.UpdateWorkVideo:output_type -> Cast.UpdateWorkVideoResp + 14, // 25: Cast.Cast.WorkList:output_type -> Cast.WorkListResp + 16, // 26: Cast.Cast.WorkDetail:output_type -> Cast.WorkDetailResp + 20, // 27: Cast.Cast.UpdateStatus:output_type -> google.protobuf.Empty + 19, // [19:28] is the sub-list for method output_type + 10, // [10:19] is the sub-list for method input_type + 10, // [10:10] is the sub-list for extension type_name + 10, // [10:10] is the sub-list for extension extendee + 0, // [0:10] is the sub-list for field type_name } func init() { file_pb_fiee_cast_proto_init() } @@ -1882,8 +2042,8 @@ func file_pb_fiee_cast_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pb_fiee_cast_proto_rawDesc, - NumEnums: 1, - NumMessages: 17, + NumEnums: 2, + NumMessages: 18, NumExtensions: 0, NumServices: 1, }, diff --git a/api/cast/cast.pb.validate.go b/api/cast/cast.pb.validate.go index 386f90f..60ea0ee 100644 --- a/api/cast/cast.pb.validate.go +++ b/api/cast/cast.pb.validate.go @@ -1832,6 +1832,116 @@ var _ interface { ErrorName() string } = WorkDetailRespValidationError{} +// Validate checks the field values on UpdateStatusReq with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *UpdateStatusReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UpdateStatusReq with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// UpdateStatusReqMultiError, or nil if none found. +func (m *UpdateStatusReq) ValidateAll() error { + return m.validate(true) +} + +func (m *UpdateStatusReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for WorkAction + + // no validation rules for WorkUuid + + // no validation rules for ApprovalID + + // no validation rules for ConfirmRemark + + // no validation rules for ConfirmStatus + + if len(errors) > 0 { + return UpdateStatusReqMultiError(errors) + } + + return nil +} + +// UpdateStatusReqMultiError is an error wrapping multiple validation errors +// returned by UpdateStatusReq.ValidateAll() if the designated constraints +// aren't met. +type UpdateStatusReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UpdateStatusReqMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UpdateStatusReqMultiError) AllErrors() []error { return m } + +// UpdateStatusReqValidationError is the validation error returned by +// UpdateStatusReq.Validate if the designated constraints aren't met. +type UpdateStatusReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UpdateStatusReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UpdateStatusReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UpdateStatusReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UpdateStatusReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UpdateStatusReqValidationError) ErrorName() string { return "UpdateStatusReqValidationError" } + +// Error satisfies the builtin error interface +func (e UpdateStatusReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUpdateStatusReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UpdateStatusReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UpdateStatusReqValidationError{} + // Validate checks the field values on MediaUserListResp_Info with the rules // defined in the proto definition for this message. If any rules are // violated, the first error encountered is returned, or nil if there are no violations. diff --git a/api/cast/cast_triple.pb.go b/api/cast/cast_triple.pb.go index b9f7c34..787b81f 100644 --- a/api/cast/cast_triple.pb.go +++ b/api/cast/cast_triple.pb.go @@ -37,6 +37,7 @@ type CastClient interface { UpdateWorkVideo(ctx context.Context, in *UpdateWorkVideoReq, opts ...grpc_go.CallOption) (*UpdateWorkVideoResp, common.ErrorWithAttachment) WorkList(ctx context.Context, in *WorkListReq, opts ...grpc_go.CallOption) (*WorkListResp, common.ErrorWithAttachment) WorkDetail(ctx context.Context, in *WorkDetailReq, opts ...grpc_go.CallOption) (*WorkDetailResp, common.ErrorWithAttachment) + UpdateStatus(ctx context.Context, in *UpdateStatusReq, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) } type castClient struct { @@ -52,6 +53,7 @@ type CastClientImpl struct { UpdateWorkVideo func(ctx context.Context, in *UpdateWorkVideoReq) (*UpdateWorkVideoResp, error) WorkList func(ctx context.Context, in *WorkListReq) (*WorkListResp, error) WorkDetail func(ctx context.Context, in *WorkDetailReq) (*WorkDetailResp, error) + UpdateStatus func(ctx context.Context, in *UpdateStatusReq) (*emptypb.Empty, error) } func (c *CastClientImpl) GetDubboStub(cc *triple.TripleConn) CastClient { @@ -114,6 +116,12 @@ func (c *castClient) WorkDetail(ctx context.Context, in *WorkDetailReq, opts ... return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/WorkDetail", in, out) } +func (c *castClient) UpdateStatus(ctx context.Context, in *UpdateStatusReq, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) { + out := new(emptypb.Empty) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateStatus", in, out) +} + // CastServer is the server API for Cast service. // All implementations must embed UnimplementedCastServer // for forward compatibility @@ -126,6 +134,7 @@ type CastServer interface { UpdateWorkVideo(context.Context, *UpdateWorkVideoReq) (*UpdateWorkVideoResp, error) WorkList(context.Context, *WorkListReq) (*WorkListResp, error) WorkDetail(context.Context, *WorkDetailReq) (*WorkDetailResp, error) + UpdateStatus(context.Context, *UpdateStatusReq) (*emptypb.Empty, error) mustEmbedUnimplementedCastServer() } @@ -158,6 +167,9 @@ func (UnimplementedCastServer) WorkList(context.Context, *WorkListReq) (*WorkLis func (UnimplementedCastServer) WorkDetail(context.Context, *WorkDetailReq) (*WorkDetailResp, error) { return nil, status.Errorf(codes.Unimplemented, "method WorkDetail not implemented") } +func (UnimplementedCastServer) UpdateStatus(context.Context, *UpdateStatusReq) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateStatus not implemented") +} func (s *UnimplementedCastServer) XXX_SetProxyImpl(impl protocol.Invoker) { s.proxyImpl = impl } @@ -418,6 +430,35 @@ func _Cast_WorkDetail_Handler(srv interface{}, ctx context.Context, dec func(int return interceptor(ctx, in, info, handler) } +func _Cast_UpdateStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateStatusReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("UpdateStatus", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + // Cast_ServiceDesc is the grpc_go.ServiceDesc for Cast service. // It's only intended for direct use with grpc_go.RegisterService, // and not to be introspected or modified (even as a copy) @@ -457,6 +498,10 @@ var Cast_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "WorkDetail", Handler: _Cast_WorkDetail_Handler, }, + { + MethodName: "UpdateStatus", + Handler: _Cast_UpdateStatus_Handler, + }, }, Streams: []grpc_go.StreamDesc{}, Metadata: "pb/fiee/cast.proto", diff --git a/pkg/router/media.go b/pkg/router/media.go index 124e8a4..a79e5ce 100644 --- a/pkg/router/media.go +++ b/pkg/router/media.go @@ -23,6 +23,7 @@ func MediaRouter(r *gin.RouterGroup) { { work.POST("update-work-image", serviceCast.UpdateWorkImage) work.POST("update-work-video", serviceCast.UpdateWorkVideo) + work.POST("update-approval", serviceCast.UpdateApproval) work.POST("list", serviceCast.WorkList) work.POST("detail", serviceCast.WorkDetail) } diff --git a/pkg/service/cast/work.go b/pkg/service/cast/work.go index 85cebfb..eddb1a9 100644 --- a/pkg/service/cast/work.go +++ b/pkg/service/cast/work.go @@ -80,6 +80,22 @@ func UpdateWorkVideo(ctx *gin.Context) { return } +func UpdateApproval(ctx *gin.Context) { + var req *cast.UpdateApprovalReq + var err error + if err = ctx.ShouldBind(&req); err != nil { + service.Error(ctx, err) + return + } + resp, err := service.CastProvider.UpdateApproval(ctx, req) + if err != nil { + service.Error(ctx, err) + return + } + service.Success(ctx, resp) + return +} + func WorkList(ctx *gin.Context) { var ( req *cast.WorkListReq From b71fef10efee104eded63fda75534c1a7bfbf19e Mon Sep 17 00:00:00 2001 From: sxy <3187870250@qq.com> Date: Fri, 13 Jun 2025 16:48:38 +0800 Subject: [PATCH 02/18] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/bundle/bundle.pb.go | 3052 ++++++++++++++++++++--------- api/bundle/bundle.validator.pb.go | 62 +- api/bundle/bundle_triple.pb.go | 318 ++- 3 files changed, 2518 insertions(+), 914 deletions(-) diff --git a/api/bundle/bundle.pb.go b/api/bundle/bundle.pb.go index be6299d..c0b65ab 100644 --- a/api/bundle/bundle.pb.go +++ b/api/bundle/bundle.pb.go @@ -22,6 +22,503 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type OrderRecordsRequestV2 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CustomerName string `protobuf:"bytes,1,opt,name=customerName,proto3" json:"customerName,omitempty"` + TelNum string `protobuf:"bytes,2,opt,name=telNum,proto3" json:"telNum,omitempty"` + BundleName string `protobuf:"bytes,3,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + PayStatus int32 `protobuf:"varint,4,opt,name=payStatus,proto3" json:"payStatus,omitempty"` + AddPayStatus int32 `protobuf:"varint,5,opt,name=addPayStatus,proto3" json:"addPayStatus,omitempty"` + OrderNo string `protobuf:"bytes,6,opt,name=orderNo,proto3" json:"orderNo,omitempty"` + OrderAddNo string `protobuf:"bytes,7,opt,name=orderAddNo,proto3" json:"orderAddNo,omitempty"` + BundleCreateAtStart string `protobuf:"bytes,8,opt,name=bundleCreateAtStart,proto3" json:"bundleCreateAtStart,omitempty"` + BundleCreateAtEnd string `protobuf:"bytes,9,opt,name=bundleCreateAtEnd,proto3" json:"bundleCreateAtEnd,omitempty"` + OrderAddCreateAtStart string `protobuf:"bytes,10,opt,name=orderAddCreateAtStart,proto3" json:"orderAddCreateAtStart,omitempty"` + OrderAddCreateAtEnd string `protobuf:"bytes,11,opt,name=orderAddCreateAtEnd,proto3" json:"orderAddCreateAtEnd,omitempty"` + Page int32 `protobuf:"varint,12,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,13,opt,name=pageSize,proto3" json:"pageSize,omitempty"` + UserIds []int64 `protobuf:"varint,14,rep,packed,name=userIds,proto3" json:"userIds,omitempty"` +} + +func (x *OrderRecordsRequestV2) Reset() { + *x = OrderRecordsRequestV2{} + mi := &file_pb_bundle_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *OrderRecordsRequestV2) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrderRecordsRequestV2) ProtoMessage() {} + +func (x *OrderRecordsRequestV2) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrderRecordsRequestV2.ProtoReflect.Descriptor instead. +func (*OrderRecordsRequestV2) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{0} +} + +func (x *OrderRecordsRequestV2) GetCustomerName() string { + if x != nil { + return x.CustomerName + } + return "" +} + +func (x *OrderRecordsRequestV2) GetTelNum() string { + if x != nil { + return x.TelNum + } + return "" +} + +func (x *OrderRecordsRequestV2) GetBundleName() string { + if x != nil { + return x.BundleName + } + return "" +} + +func (x *OrderRecordsRequestV2) GetPayStatus() int32 { + if x != nil { + return x.PayStatus + } + return 0 +} + +func (x *OrderRecordsRequestV2) GetAddPayStatus() int32 { + if x != nil { + return x.AddPayStatus + } + return 0 +} + +func (x *OrderRecordsRequestV2) GetOrderNo() string { + if x != nil { + return x.OrderNo + } + return "" +} + +func (x *OrderRecordsRequestV2) GetOrderAddNo() string { + if x != nil { + return x.OrderAddNo + } + return "" +} + +func (x *OrderRecordsRequestV2) GetBundleCreateAtStart() string { + if x != nil { + return x.BundleCreateAtStart + } + return "" +} + +func (x *OrderRecordsRequestV2) GetBundleCreateAtEnd() string { + if x != nil { + return x.BundleCreateAtEnd + } + return "" +} + +func (x *OrderRecordsRequestV2) GetOrderAddCreateAtStart() string { + if x != nil { + return x.OrderAddCreateAtStart + } + return "" +} + +func (x *OrderRecordsRequestV2) GetOrderAddCreateAtEnd() string { + if x != nil { + return x.OrderAddCreateAtEnd + } + return "" +} + +func (x *OrderRecordsRequestV2) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *OrderRecordsRequestV2) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *OrderRecordsRequestV2) GetUserIds() []int64 { + if x != nil { + return x.UserIds + } + return nil +} + +type OrderRecordsResponseV2 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BundleInfo []*OrderBundleRecordInfo `protobuf:"bytes,1,rep,name=bundleInfo,proto3" json:"bundleInfo,omitempty"` + Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,3,opt,name=pageSize,proto3" json:"pageSize,omitempty"` + Total int32 `protobuf:"varint,4,opt,name=total,proto3" json:"total,omitempty"` +} + +func (x *OrderRecordsResponseV2) Reset() { + *x = OrderRecordsResponseV2{} + mi := &file_pb_bundle_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *OrderRecordsResponseV2) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrderRecordsResponseV2) ProtoMessage() {} + +func (x *OrderRecordsResponseV2) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrderRecordsResponseV2.ProtoReflect.Descriptor instead. +func (*OrderRecordsResponseV2) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{1} +} + +func (x *OrderRecordsResponseV2) GetBundleInfo() []*OrderBundleRecordInfo { + if x != nil { + return x.BundleInfo + } + return nil +} + +func (x *OrderRecordsResponseV2) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *OrderRecordsResponseV2) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *OrderRecordsResponseV2) GetTotal() int32 { + if x != nil { + return x.Total + } + return 0 +} + +type OrderBundleRecordInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OrderNo string `protobuf:"bytes,1,opt,name=orderNo,proto3" json:"orderNo,omitempty"` + BundleName string `protobuf:"bytes,2,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + PayStatus int32 `protobuf:"varint,3,opt,name=payStatus,proto3" json:"payStatus,omitempty"` + TelNum string `protobuf:"bytes,4,opt,name=telNum,proto3" json:"telNum,omitempty"` + CustomerName string `protobuf:"bytes,5,opt,name=customerName,proto3" json:"customerName,omitempty"` + BundleCreateAt string `protobuf:"bytes,6,opt,name=bundleCreateAt,proto3" json:"bundleCreateAt,omitempty"` + Amount float32 `protobuf:"fixed32,7,opt,name=amount,proto3" json:"amount,omitempty"` + AddBundleInfo []*OrderAddBundleRecordInfo `protobuf:"bytes,8,rep,name=addBundleInfo,proto3" json:"addBundleInfo,omitempty"` + CustomerId int64 `protobuf:"varint,9,opt,name=customerId,proto3" json:"customerId,omitempty"` +} + +func (x *OrderBundleRecordInfo) Reset() { + *x = OrderBundleRecordInfo{} + mi := &file_pb_bundle_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *OrderBundleRecordInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrderBundleRecordInfo) ProtoMessage() {} + +func (x *OrderBundleRecordInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[2] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrderBundleRecordInfo.ProtoReflect.Descriptor instead. +func (*OrderBundleRecordInfo) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{2} +} + +func (x *OrderBundleRecordInfo) GetOrderNo() string { + if x != nil { + return x.OrderNo + } + return "" +} + +func (x *OrderBundleRecordInfo) GetBundleName() string { + if x != nil { + return x.BundleName + } + return "" +} + +func (x *OrderBundleRecordInfo) GetPayStatus() int32 { + if x != nil { + return x.PayStatus + } + return 0 +} + +func (x *OrderBundleRecordInfo) GetTelNum() string { + if x != nil { + return x.TelNum + } + return "" +} + +func (x *OrderBundleRecordInfo) GetCustomerName() string { + if x != nil { + return x.CustomerName + } + return "" +} + +func (x *OrderBundleRecordInfo) GetBundleCreateAt() string { + if x != nil { + return x.BundleCreateAt + } + return "" +} + +func (x *OrderBundleRecordInfo) GetAmount() float32 { + if x != nil { + return x.Amount + } + return 0 +} + +func (x *OrderBundleRecordInfo) GetAddBundleInfo() []*OrderAddBundleRecordInfo { + if x != nil { + return x.AddBundleInfo + } + return nil +} + +func (x *OrderBundleRecordInfo) GetCustomerId() int64 { + if x != nil { + return x.CustomerId + } + return 0 +} + +type OrderAddBundleRecordInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OrderAddNo string `protobuf:"bytes,1,opt,name=orderAddNo,proto3" json:"orderAddNo,omitempty"` + Amount float32 `protobuf:"fixed32,2,opt,name=amount,proto3" json:"amount,omitempty"` + SettlementAmount float32 `protobuf:"fixed32,3,opt,name=settlementAmount,proto3" json:"settlementAmount,omitempty"` + CurrencyType int32 `protobuf:"varint,4,opt,name=currencyType,proto3" json:"currencyType,omitempty"` + HandlingFee float32 `protobuf:"fixed32,5,opt,name=handlingFee,proto3" json:"handlingFee,omitempty"` + ExchangeRate float32 `protobuf:"fixed32,6,opt,name=exchangeRate,proto3" json:"exchangeRate,omitempty"` + OrderAddCreateAt string `protobuf:"bytes,7,opt,name=orderAddCreateAt,proto3" json:"orderAddCreateAt,omitempty"` + AddPayStatus int32 `protobuf:"varint,8,opt,name=addPayStatus,proto3" json:"addPayStatus,omitempty"` + Contract string `protobuf:"bytes,9,opt,name=contract,proto3" json:"contract,omitempty"` + Snapshot string `protobuf:"bytes,10,opt,name=snapshot,proto3" json:"snapshot,omitempty"` +} + +func (x *OrderAddBundleRecordInfo) Reset() { + *x = OrderAddBundleRecordInfo{} + mi := &file_pb_bundle_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *OrderAddBundleRecordInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrderAddBundleRecordInfo) ProtoMessage() {} + +func (x *OrderAddBundleRecordInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[3] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrderAddBundleRecordInfo.ProtoReflect.Descriptor instead. +func (*OrderAddBundleRecordInfo) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{3} +} + +func (x *OrderAddBundleRecordInfo) GetOrderAddNo() string { + if x != nil { + return x.OrderAddNo + } + return "" +} + +func (x *OrderAddBundleRecordInfo) GetAmount() float32 { + if x != nil { + return x.Amount + } + return 0 +} + +func (x *OrderAddBundleRecordInfo) GetSettlementAmount() float32 { + if x != nil { + return x.SettlementAmount + } + return 0 +} + +func (x *OrderAddBundleRecordInfo) GetCurrencyType() int32 { + if x != nil { + return x.CurrencyType + } + return 0 +} + +func (x *OrderAddBundleRecordInfo) GetHandlingFee() float32 { + if x != nil { + return x.HandlingFee + } + return 0 +} + +func (x *OrderAddBundleRecordInfo) GetExchangeRate() float32 { + if x != nil { + return x.ExchangeRate + } + return 0 +} + +func (x *OrderAddBundleRecordInfo) GetOrderAddCreateAt() string { + if x != nil { + return x.OrderAddCreateAt + } + return "" +} + +func (x *OrderAddBundleRecordInfo) GetAddPayStatus() int32 { + if x != nil { + return x.AddPayStatus + } + return 0 +} + +func (x *OrderAddBundleRecordInfo) GetContract() string { + if x != nil { + return x.Contract + } + return "" +} + +func (x *OrderAddBundleRecordInfo) GetSnapshot() string { + if x != nil { + return x.Snapshot + } + return "" +} + +type PackagePriceAndTimeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Price float32 `protobuf:"fixed32,1,opt,name=price,proto3" json:"price,omitempty"` + Time string `protobuf:"bytes,2,opt,name=time,proto3" json:"time,omitempty"` +} + +func (x *PackagePriceAndTimeResponse) Reset() { + *x = PackagePriceAndTimeResponse{} + mi := &file_pb_bundle_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PackagePriceAndTimeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PackagePriceAndTimeResponse) ProtoMessage() {} + +func (x *PackagePriceAndTimeResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[4] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PackagePriceAndTimeResponse.ProtoReflect.Descriptor instead. +func (*PackagePriceAndTimeResponse) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{4} +} + +func (x *PackagePriceAndTimeResponse) GetPrice() float32 { + if x != nil { + return x.Price + } + return 0 +} + +func (x *PackagePriceAndTimeResponse) GetTime() string { + if x != nil { + return x.Time + } + return "" +} + type CommonResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -34,7 +531,7 @@ type CommonResponse struct { func (x *CommonResponse) Reset() { *x = CommonResponse{} - mi := &file_pb_bundle_proto_msgTypes[0] + mi := &file_pb_bundle_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -46,7 +543,7 @@ func (x *CommonResponse) String() string { func (*CommonResponse) ProtoMessage() {} func (x *CommonResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[0] + mi := &file_pb_bundle_proto_msgTypes[5] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -59,7 +556,7 @@ func (x *CommonResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CommonResponse.ProtoReflect.Descriptor instead. func (*CommonResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{0} + return file_pb_bundle_proto_rawDescGZIP(), []int{5} } func (x *CommonResponse) GetMsg() string { @@ -111,7 +608,7 @@ type BundleProfile struct { func (x *BundleProfile) Reset() { *x = BundleProfile{} - mi := &file_pb_bundle_proto_msgTypes[1] + mi := &file_pb_bundle_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -123,7 +620,7 @@ func (x *BundleProfile) String() string { func (*BundleProfile) ProtoMessage() {} func (x *BundleProfile) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[1] + mi := &file_pb_bundle_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -136,7 +633,7 @@ func (x *BundleProfile) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleProfile.ProtoReflect.Descriptor instead. func (*BundleProfile) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{1} + return file_pb_bundle_proto_rawDescGZIP(), []int{6} } func (x *BundleProfile) GetUuid() string { @@ -289,7 +786,7 @@ type BundleProfileLang struct { func (x *BundleProfileLang) Reset() { *x = BundleProfileLang{} - mi := &file_pb_bundle_proto_msgTypes[2] + mi := &file_pb_bundle_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -301,7 +798,7 @@ func (x *BundleProfileLang) String() string { func (*BundleProfileLang) ProtoMessage() {} func (x *BundleProfileLang) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[2] + mi := &file_pb_bundle_proto_msgTypes[7] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -314,7 +811,7 @@ func (x *BundleProfileLang) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleProfileLang.ProtoReflect.Descriptor instead. func (*BundleProfileLang) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{2} + return file_pb_bundle_proto_rawDescGZIP(), []int{7} } func (x *BundleProfileLang) GetUuid() string { @@ -385,7 +882,7 @@ type SaveResponse struct { func (x *SaveResponse) Reset() { *x = SaveResponse{} - mi := &file_pb_bundle_proto_msgTypes[3] + mi := &file_pb_bundle_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -397,7 +894,7 @@ func (x *SaveResponse) String() string { func (*SaveResponse) ProtoMessage() {} func (x *SaveResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[3] + mi := &file_pb_bundle_proto_msgTypes[8] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -410,7 +907,7 @@ func (x *SaveResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SaveResponse.ProtoReflect.Descriptor instead. func (*SaveResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{3} + return file_pb_bundle_proto_rawDescGZIP(), []int{8} } func (x *SaveResponse) GetMsg() string { @@ -446,7 +943,7 @@ type SelectValueAddService struct { func (x *SelectValueAddService) Reset() { *x = SelectValueAddService{} - mi := &file_pb_bundle_proto_msgTypes[4] + mi := &file_pb_bundle_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -458,7 +955,7 @@ func (x *SelectValueAddService) String() string { func (*SelectValueAddService) ProtoMessage() {} func (x *SelectValueAddService) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[4] + mi := &file_pb_bundle_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -471,7 +968,7 @@ func (x *SelectValueAddService) ProtoReflect() protoreflect.Message { // Deprecated: Use SelectValueAddService.ProtoReflect.Descriptor instead. func (*SelectValueAddService) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{4} + return file_pb_bundle_proto_rawDescGZIP(), []int{9} } func (x *SelectValueAddService) GetValueAddUuid() string { @@ -505,7 +1002,7 @@ type DelBundleRequest struct { func (x *DelBundleRequest) Reset() { *x = DelBundleRequest{} - mi := &file_pb_bundle_proto_msgTypes[5] + mi := &file_pb_bundle_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -517,7 +1014,7 @@ func (x *DelBundleRequest) String() string { func (*DelBundleRequest) ProtoMessage() {} func (x *DelBundleRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[5] + mi := &file_pb_bundle_proto_msgTypes[10] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -530,7 +1027,7 @@ func (x *DelBundleRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DelBundleRequest.ProtoReflect.Descriptor instead. func (*DelBundleRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{5} + return file_pb_bundle_proto_rawDescGZIP(), []int{10} } func (x *DelBundleRequest) GetUuid() string { @@ -554,7 +1051,7 @@ type BundleListRequest struct { func (x *BundleListRequest) Reset() { *x = BundleListRequest{} - mi := &file_pb_bundle_proto_msgTypes[6] + mi := &file_pb_bundle_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -566,7 +1063,7 @@ func (x *BundleListRequest) String() string { func (*BundleListRequest) ProtoMessage() {} func (x *BundleListRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[6] + mi := &file_pb_bundle_proto_msgTypes[11] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -579,7 +1076,7 @@ func (x *BundleListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleListRequest.ProtoReflect.Descriptor instead. func (*BundleListRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{6} + return file_pb_bundle_proto_rawDescGZIP(), []int{11} } func (x *BundleListRequest) GetPage() int32 { @@ -628,7 +1125,7 @@ type BundleListResponse struct { func (x *BundleListResponse) Reset() { *x = BundleListResponse{} - mi := &file_pb_bundle_proto_msgTypes[7] + mi := &file_pb_bundle_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -640,7 +1137,7 @@ func (x *BundleListResponse) String() string { func (*BundleListResponse) ProtoMessage() {} func (x *BundleListResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[7] + mi := &file_pb_bundle_proto_msgTypes[12] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -653,7 +1150,7 @@ func (x *BundleListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleListResponse.ProtoReflect.Descriptor instead. func (*BundleListResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{7} + return file_pb_bundle_proto_rawDescGZIP(), []int{12} } func (x *BundleListResponse) GetBundles() []*BundleProfile { @@ -681,7 +1178,7 @@ type BundleDetailRequest struct { func (x *BundleDetailRequest) Reset() { *x = BundleDetailRequest{} - mi := &file_pb_bundle_proto_msgTypes[8] + mi := &file_pb_bundle_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -693,7 +1190,7 @@ func (x *BundleDetailRequest) String() string { func (*BundleDetailRequest) ProtoMessage() {} func (x *BundleDetailRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[8] + mi := &file_pb_bundle_proto_msgTypes[13] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -706,7 +1203,7 @@ func (x *BundleDetailRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleDetailRequest.ProtoReflect.Descriptor instead. func (*BundleDetailRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{8} + return file_pb_bundle_proto_rawDescGZIP(), []int{13} } func (x *BundleDetailRequest) GetUuid() string { @@ -734,7 +1231,7 @@ type HandShelfRequest struct { func (x *HandShelfRequest) Reset() { *x = HandShelfRequest{} - mi := &file_pb_bundle_proto_msgTypes[9] + mi := &file_pb_bundle_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -746,7 +1243,7 @@ func (x *HandShelfRequest) String() string { func (*HandShelfRequest) ProtoMessage() {} func (x *HandShelfRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[9] + mi := &file_pb_bundle_proto_msgTypes[14] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -759,7 +1256,7 @@ func (x *HandShelfRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use HandShelfRequest.ProtoReflect.Descriptor instead. func (*HandShelfRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{9} + return file_pb_bundle_proto_rawDescGZIP(), []int{14} } func (x *HandShelfRequest) GetUuid() string { @@ -787,7 +1284,7 @@ type BundleDetailResponse struct { func (x *BundleDetailResponse) Reset() { *x = BundleDetailResponse{} - mi := &file_pb_bundle_proto_msgTypes[10] + mi := &file_pb_bundle_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -799,7 +1296,7 @@ func (x *BundleDetailResponse) String() string { func (*BundleDetailResponse) ProtoMessage() {} func (x *BundleDetailResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[10] + mi := &file_pb_bundle_proto_msgTypes[15] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -812,7 +1309,7 @@ func (x *BundleDetailResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleDetailResponse.ProtoReflect.Descriptor instead. func (*BundleDetailResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{10} + return file_pb_bundle_proto_rawDescGZIP(), []int{15} } func (x *BundleDetailResponse) GetBundle() *BundleProfile { @@ -840,7 +1337,7 @@ type BundleDetailResponseV2 struct { func (x *BundleDetailResponseV2) Reset() { *x = BundleDetailResponseV2{} - mi := &file_pb_bundle_proto_msgTypes[11] + mi := &file_pb_bundle_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -852,7 +1349,7 @@ func (x *BundleDetailResponseV2) String() string { func (*BundleDetailResponseV2) ProtoMessage() {} func (x *BundleDetailResponseV2) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[11] + mi := &file_pb_bundle_proto_msgTypes[16] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -865,7 +1362,7 @@ func (x *BundleDetailResponseV2) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleDetailResponseV2.ProtoReflect.Descriptor instead. func (*BundleDetailResponseV2) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{11} + return file_pb_bundle_proto_rawDescGZIP(), []int{16} } func (x *BundleDetailResponseV2) GetBundle() *BundleProfile { @@ -923,11 +1420,13 @@ type OrderRecord struct { TelNum string `protobuf:"bytes,34,opt,name=telNum,proto3" json:"telNum,omitempty"` Language string `protobuf:"bytes,35,opt,name=language,proto3" json:"language,omitempty"` PriceOptionsInfo []*PriceOptionsInfo `protobuf:"bytes,36,rep,name=priceOptionsInfo,proto3" json:"priceOptionsInfo,omitempty"` + ExpirationTime string `protobuf:"bytes,37,opt,name=expirationTime,proto3" json:"expirationTime,omitempty"` + Snapshot string `protobuf:"bytes,38,opt,name=snapshot,proto3" json:"snapshot,omitempty"` } func (x *OrderRecord) Reset() { *x = OrderRecord{} - mi := &file_pb_bundle_proto_msgTypes[12] + mi := &file_pb_bundle_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -939,7 +1438,7 @@ func (x *OrderRecord) String() string { func (*OrderRecord) ProtoMessage() {} func (x *OrderRecord) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[12] + mi := &file_pb_bundle_proto_msgTypes[17] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -952,7 +1451,7 @@ func (x *OrderRecord) ProtoReflect() protoreflect.Message { // Deprecated: Use OrderRecord.ProtoReflect.Descriptor instead. func (*OrderRecord) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{12} + return file_pb_bundle_proto_rawDescGZIP(), []int{17} } func (x *OrderRecord) GetUuid() string { @@ -1207,6 +1706,247 @@ func (x *OrderRecord) GetPriceOptionsInfo() []*PriceOptionsInfo { return nil } +func (x *OrderRecord) GetExpirationTime() string { + if x != nil { + return x.ExpirationTime + } + return "" +} + +func (x *OrderRecord) GetSnapshot() string { + if x != nil { + return x.Snapshot + } + return "" +} + +type OrderAddRecord struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BundleUuid string `protobuf:"bytes,1,opt,name=bundleUuid,proto3" json:"bundleUuid,omitempty"` + AddPriceOptionsList []*AddPriceOptionsInfo `protobuf:"bytes,2,rep,name=addPriceOptionsList,proto3" json:"addPriceOptionsList,omitempty"` + Language string `protobuf:"bytes,3,opt,name=language,proto3" json:"language,omitempty"` + CustomerID string `protobuf:"bytes,4,opt,name=customerID,proto3" json:"customerID,omitempty"` + CustomerNum string `protobuf:"bytes,5,opt,name=customerNum,proto3" json:"customerNum,omitempty"` + CustomerName string `protobuf:"bytes,6,opt,name=customerName,proto3" json:"customerName,omitempty"` + // string valueAddUUID = 12 [json_name = "valueAddUUID"]; + Source int32 `protobuf:"varint,7,opt,name=source,proto3" json:"source,omitempty"` + SignContract string `protobuf:"bytes,8,opt,name=signContract,proto3" json:"signContract,omitempty"` + Signature string `protobuf:"bytes,9,opt,name=signature,proto3" json:"signature,omitempty"` + SignedTime string `protobuf:"bytes,10,opt,name=signedTime,proto3" json:"signedTime,omitempty"` + ExpirationDate string `protobuf:"bytes,11,opt,name=expirationDate,proto3" json:"expirationDate,omitempty"` + Snapshot string `protobuf:"bytes,38,opt,name=snapshot,proto3" json:"snapshot,omitempty"` +} + +func (x *OrderAddRecord) Reset() { + *x = OrderAddRecord{} + mi := &file_pb_bundle_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *OrderAddRecord) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrderAddRecord) ProtoMessage() {} + +func (x *OrderAddRecord) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[18] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrderAddRecord.ProtoReflect.Descriptor instead. +func (*OrderAddRecord) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{18} +} + +func (x *OrderAddRecord) GetBundleUuid() string { + if x != nil { + return x.BundleUuid + } + return "" +} + +func (x *OrderAddRecord) GetAddPriceOptionsList() []*AddPriceOptionsInfo { + if x != nil { + return x.AddPriceOptionsList + } + return nil +} + +func (x *OrderAddRecord) GetLanguage() string { + if x != nil { + return x.Language + } + return "" +} + +func (x *OrderAddRecord) GetCustomerID() string { + if x != nil { + return x.CustomerID + } + return "" +} + +func (x *OrderAddRecord) GetCustomerNum() string { + if x != nil { + return x.CustomerNum + } + return "" +} + +func (x *OrderAddRecord) GetCustomerName() string { + if x != nil { + return x.CustomerName + } + return "" +} + +func (x *OrderAddRecord) GetSource() int32 { + if x != nil { + return x.Source + } + return 0 +} + +func (x *OrderAddRecord) GetSignContract() string { + if x != nil { + return x.SignContract + } + return "" +} + +func (x *OrderAddRecord) GetSignature() string { + if x != nil { + return x.Signature + } + return "" +} + +func (x *OrderAddRecord) GetSignedTime() string { + if x != nil { + return x.SignedTime + } + return "" +} + +func (x *OrderAddRecord) GetExpirationDate() string { + if x != nil { + return x.ExpirationDate + } + return "" +} + +func (x *OrderAddRecord) GetSnapshot() string { + if x != nil { + return x.Snapshot + } + return "" +} + +type AddPriceOptionsInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + ValueUid string `protobuf:"bytes,2,opt,name=valueUid,proto3" json:"valueUid,omitempty"` + ServiceType int32 `protobuf:"varint,3,opt,name=serviceType,proto3" json:"serviceType,omitempty"` + CurrencyType int64 `protobuf:"varint,4,opt,name=currencyType,proto3" json:"currencyType,omitempty"` + Amount float32 `protobuf:"fixed32,5,opt,name=amount,proto3" json:"amount,omitempty"` + Num int32 `protobuf:"varint,6,opt,name=num,proto3" json:"num,omitempty"` + Unit string `protobuf:"bytes,7,opt,name=unit,proto3" json:"unit,omitempty"` +} + +func (x *AddPriceOptionsInfo) Reset() { + *x = AddPriceOptionsInfo{} + mi := &file_pb_bundle_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AddPriceOptionsInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddPriceOptionsInfo) ProtoMessage() {} + +func (x *AddPriceOptionsInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[19] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddPriceOptionsInfo.ProtoReflect.Descriptor instead. +func (*AddPriceOptionsInfo) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{19} +} + +func (x *AddPriceOptionsInfo) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *AddPriceOptionsInfo) GetValueUid() string { + if x != nil { + return x.ValueUid + } + return "" +} + +func (x *AddPriceOptionsInfo) GetServiceType() int32 { + if x != nil { + return x.ServiceType + } + return 0 +} + +func (x *AddPriceOptionsInfo) GetCurrencyType() int64 { + if x != nil { + return x.CurrencyType + } + return 0 +} + +func (x *AddPriceOptionsInfo) GetAmount() float32 { + if x != nil { + return x.Amount + } + return 0 +} + +func (x *AddPriceOptionsInfo) GetNum() int32 { + if x != nil { + return x.Num + } + return 0 +} + +func (x *AddPriceOptionsInfo) GetUnit() string { + if x != nil { + return x.Unit + } + return "" +} + type PriceOptionsInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1218,7 +1958,7 @@ type PriceOptionsInfo struct { func (x *PriceOptionsInfo) Reset() { *x = PriceOptionsInfo{} - mi := &file_pb_bundle_proto_msgTypes[13] + mi := &file_pb_bundle_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1230,7 +1970,7 @@ func (x *PriceOptionsInfo) String() string { func (*PriceOptionsInfo) ProtoMessage() {} func (x *PriceOptionsInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[13] + mi := &file_pb_bundle_proto_msgTypes[20] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1243,7 +1983,7 @@ func (x *PriceOptionsInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use PriceOptionsInfo.ProtoReflect.Descriptor instead. func (*PriceOptionsInfo) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{13} + return file_pb_bundle_proto_rawDescGZIP(), []int{20} } func (x *PriceOptionsInfo) GetId() int32 { @@ -1285,7 +2025,7 @@ type OrderRecordsRequest struct { func (x *OrderRecordsRequest) Reset() { *x = OrderRecordsRequest{} - mi := &file_pb_bundle_proto_msgTypes[14] + mi := &file_pb_bundle_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1297,7 +2037,7 @@ func (x *OrderRecordsRequest) String() string { func (*OrderRecordsRequest) ProtoMessage() {} func (x *OrderRecordsRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[14] + mi := &file_pb_bundle_proto_msgTypes[21] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1310,7 +2050,7 @@ func (x *OrderRecordsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use OrderRecordsRequest.ProtoReflect.Descriptor instead. func (*OrderRecordsRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{14} + return file_pb_bundle_proto_rawDescGZIP(), []int{21} } func (x *OrderRecordsRequest) GetPage() int32 { @@ -1436,7 +2176,7 @@ type OrderRecordsResponse struct { func (x *OrderRecordsResponse) Reset() { *x = OrderRecordsResponse{} - mi := &file_pb_bundle_proto_msgTypes[15] + mi := &file_pb_bundle_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1448,7 +2188,7 @@ func (x *OrderRecordsResponse) String() string { func (*OrderRecordsResponse) ProtoMessage() {} func (x *OrderRecordsResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[15] + mi := &file_pb_bundle_proto_msgTypes[22] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1461,7 +2201,7 @@ func (x *OrderRecordsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use OrderRecordsResponse.ProtoReflect.Descriptor instead. func (*OrderRecordsResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{15} + return file_pb_bundle_proto_rawDescGZIP(), []int{22} } func (x *OrderRecordsResponse) GetOrderRecords() []*OrderRecord { @@ -1486,11 +2226,12 @@ type OrderRecordsDetailRequest struct { Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` OrderNo string `protobuf:"bytes,2,opt,name=orderNo,proto3" json:"orderNo,omitempty"` CustomerID string `protobuf:"bytes,3,opt,name=customerID,proto3" json:"customerID,omitempty"` + BundleUUID string `protobuf:"bytes,4,opt,name=bundleUUID,proto3" json:"bundleUUID,omitempty"` } func (x *OrderRecordsDetailRequest) Reset() { *x = OrderRecordsDetailRequest{} - mi := &file_pb_bundle_proto_msgTypes[16] + mi := &file_pb_bundle_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1502,7 +2243,7 @@ func (x *OrderRecordsDetailRequest) String() string { func (*OrderRecordsDetailRequest) ProtoMessage() {} func (x *OrderRecordsDetailRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[16] + mi := &file_pb_bundle_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1515,7 +2256,7 @@ func (x *OrderRecordsDetailRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use OrderRecordsDetailRequest.ProtoReflect.Descriptor instead. func (*OrderRecordsDetailRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{16} + return file_pb_bundle_proto_rawDescGZIP(), []int{23} } func (x *OrderRecordsDetailRequest) GetUuid() string { @@ -1539,6 +2280,13 @@ func (x *OrderRecordsDetailRequest) GetCustomerID() string { return "" } +func (x *OrderRecordsDetailRequest) GetBundleUUID() string { + if x != nil { + return x.BundleUUID + } + return "" +} + type OrderRecordsDetailResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1550,7 +2298,7 @@ type OrderRecordsDetailResponse struct { func (x *OrderRecordsDetailResponse) Reset() { *x = OrderRecordsDetailResponse{} - mi := &file_pb_bundle_proto_msgTypes[17] + mi := &file_pb_bundle_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1562,7 +2310,7 @@ func (x *OrderRecordsDetailResponse) String() string { func (*OrderRecordsDetailResponse) ProtoMessage() {} func (x *OrderRecordsDetailResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[17] + mi := &file_pb_bundle_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1575,7 +2323,7 @@ func (x *OrderRecordsDetailResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use OrderRecordsDetailResponse.ProtoReflect.Descriptor instead. func (*OrderRecordsDetailResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{17} + return file_pb_bundle_proto_rawDescGZIP(), []int{24} } func (x *OrderRecordsDetailResponse) GetOrderRecord() *OrderRecord { @@ -1612,7 +2360,7 @@ type ValueAddBundleProfile struct { func (x *ValueAddBundleProfile) Reset() { *x = ValueAddBundleProfile{} - mi := &file_pb_bundle_proto_msgTypes[18] + mi := &file_pb_bundle_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1624,7 +2372,7 @@ func (x *ValueAddBundleProfile) String() string { func (*ValueAddBundleProfile) ProtoMessage() {} func (x *ValueAddBundleProfile) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[18] + mi := &file_pb_bundle_proto_msgTypes[25] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1637,7 +2385,7 @@ func (x *ValueAddBundleProfile) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddBundleProfile.ProtoReflect.Descriptor instead. func (*ValueAddBundleProfile) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{18} + return file_pb_bundle_proto_rawDescGZIP(), []int{25} } func (x *ValueAddBundleProfile) GetUuid() string { @@ -1720,7 +2468,7 @@ type CreateValueAddBundleRequest struct { func (x *CreateValueAddBundleRequest) Reset() { *x = CreateValueAddBundleRequest{} - mi := &file_pb_bundle_proto_msgTypes[19] + mi := &file_pb_bundle_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1732,7 +2480,7 @@ func (x *CreateValueAddBundleRequest) String() string { func (*CreateValueAddBundleRequest) ProtoMessage() {} func (x *CreateValueAddBundleRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[19] + mi := &file_pb_bundle_proto_msgTypes[26] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1745,7 +2493,7 @@ func (x *CreateValueAddBundleRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateValueAddBundleRequest.ProtoReflect.Descriptor instead. func (*CreateValueAddBundleRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{19} + return file_pb_bundle_proto_rawDescGZIP(), []int{26} } func (x *CreateValueAddBundleRequest) GetNum() int32 { @@ -1768,7 +2516,7 @@ type CreateValueAddBundleResponse struct { func (x *CreateValueAddBundleResponse) Reset() { *x = CreateValueAddBundleResponse{} - mi := &file_pb_bundle_proto_msgTypes[20] + mi := &file_pb_bundle_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1780,7 +2528,7 @@ func (x *CreateValueAddBundleResponse) String() string { func (*CreateValueAddBundleResponse) ProtoMessage() {} func (x *CreateValueAddBundleResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[20] + mi := &file_pb_bundle_proto_msgTypes[27] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1793,7 +2541,7 @@ func (x *CreateValueAddBundleResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateValueAddBundleResponse.ProtoReflect.Descriptor instead. func (*CreateValueAddBundleResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{20} + return file_pb_bundle_proto_rawDescGZIP(), []int{27} } func (x *CreateValueAddBundleResponse) GetUuid() string { @@ -1837,7 +2585,7 @@ type ValueAddBundleListRequest struct { func (x *ValueAddBundleListRequest) Reset() { *x = ValueAddBundleListRequest{} - mi := &file_pb_bundle_proto_msgTypes[21] + mi := &file_pb_bundle_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1849,7 +2597,7 @@ func (x *ValueAddBundleListRequest) String() string { func (*ValueAddBundleListRequest) ProtoMessage() {} func (x *ValueAddBundleListRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[21] + mi := &file_pb_bundle_proto_msgTypes[28] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1862,7 +2610,7 @@ func (x *ValueAddBundleListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddBundleListRequest.ProtoReflect.Descriptor instead. func (*ValueAddBundleListRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{21} + return file_pb_bundle_proto_rawDescGZIP(), []int{28} } func (x *ValueAddBundleListRequest) GetUserId() int32 { @@ -1903,7 +2651,7 @@ type ValueAddBundleListResponse struct { func (x *ValueAddBundleListResponse) Reset() { *x = ValueAddBundleListResponse{} - mi := &file_pb_bundle_proto_msgTypes[22] + mi := &file_pb_bundle_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1915,7 +2663,7 @@ func (x *ValueAddBundleListResponse) String() string { func (*ValueAddBundleListResponse) ProtoMessage() {} func (x *ValueAddBundleListResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[22] + mi := &file_pb_bundle_proto_msgTypes[29] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1928,7 +2676,7 @@ func (x *ValueAddBundleListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddBundleListResponse.ProtoReflect.Descriptor instead. func (*ValueAddBundleListResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{22} + return file_pb_bundle_proto_rawDescGZIP(), []int{29} } func (x *ValueAddBundleListResponse) GetOriginalPrice() float32 { @@ -1997,7 +2745,7 @@ type ValueAddBundleDetailRequest struct { func (x *ValueAddBundleDetailRequest) Reset() { *x = ValueAddBundleDetailRequest{} - mi := &file_pb_bundle_proto_msgTypes[23] + mi := &file_pb_bundle_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2009,7 +2757,7 @@ func (x *ValueAddBundleDetailRequest) String() string { func (*ValueAddBundleDetailRequest) ProtoMessage() {} func (x *ValueAddBundleDetailRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[23] + mi := &file_pb_bundle_proto_msgTypes[30] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2022,7 +2770,7 @@ func (x *ValueAddBundleDetailRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddBundleDetailRequest.ProtoReflect.Descriptor instead. func (*ValueAddBundleDetailRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{23} + return file_pb_bundle_proto_rawDescGZIP(), []int{30} } func (x *ValueAddBundleDetailRequest) GetUuid() string { @@ -2044,7 +2792,7 @@ type ValueAddBundleDetailResponse struct { func (x *ValueAddBundleDetailResponse) Reset() { *x = ValueAddBundleDetailResponse{} - mi := &file_pb_bundle_proto_msgTypes[24] + mi := &file_pb_bundle_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2056,7 +2804,7 @@ func (x *ValueAddBundleDetailResponse) String() string { func (*ValueAddBundleDetailResponse) ProtoMessage() {} func (x *ValueAddBundleDetailResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[24] + mi := &file_pb_bundle_proto_msgTypes[31] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2069,7 +2817,7 @@ func (x *ValueAddBundleDetailResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddBundleDetailResponse.ProtoReflect.Descriptor instead. func (*ValueAddBundleDetailResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{24} + return file_pb_bundle_proto_rawDescGZIP(), []int{31} } func (x *ValueAddBundleDetailResponse) GetData() *ValueAddBundleProfile { @@ -2103,7 +2851,7 @@ type FinancialConfirmationRequest struct { func (x *FinancialConfirmationRequest) Reset() { *x = FinancialConfirmationRequest{} - mi := &file_pb_bundle_proto_msgTypes[25] + mi := &file_pb_bundle_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2115,7 +2863,7 @@ func (x *FinancialConfirmationRequest) String() string { func (*FinancialConfirmationRequest) ProtoMessage() {} func (x *FinancialConfirmationRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[25] + mi := &file_pb_bundle_proto_msgTypes[32] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2128,7 +2876,7 @@ func (x *FinancialConfirmationRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use FinancialConfirmationRequest.ProtoReflect.Descriptor instead. func (*FinancialConfirmationRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{25} + return file_pb_bundle_proto_rawDescGZIP(), []int{32} } func (x *FinancialConfirmationRequest) GetOrderNo() string { @@ -2153,7 +2901,7 @@ type ValueAddService struct { func (x *ValueAddService) Reset() { *x = ValueAddService{} - mi := &file_pb_bundle_proto_msgTypes[26] + mi := &file_pb_bundle_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2165,7 +2913,7 @@ func (x *ValueAddService) String() string { func (*ValueAddService) ProtoMessage() {} func (x *ValueAddService) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[26] + mi := &file_pb_bundle_proto_msgTypes[33] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2178,7 +2926,7 @@ func (x *ValueAddService) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddService.ProtoReflect.Descriptor instead. func (*ValueAddService) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{26} + return file_pb_bundle_proto_rawDescGZIP(), []int{33} } func (x *ValueAddService) GetUuid() string { @@ -2229,7 +2977,7 @@ type ValueAddServiceLang struct { func (x *ValueAddServiceLang) Reset() { *x = ValueAddServiceLang{} - mi := &file_pb_bundle_proto_msgTypes[27] + mi := &file_pb_bundle_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2241,7 +2989,7 @@ func (x *ValueAddServiceLang) String() string { func (*ValueAddServiceLang) ProtoMessage() {} func (x *ValueAddServiceLang) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[27] + mi := &file_pb_bundle_proto_msgTypes[34] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2254,7 +3002,7 @@ func (x *ValueAddServiceLang) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddServiceLang.ProtoReflect.Descriptor instead. func (*ValueAddServiceLang) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{27} + return file_pb_bundle_proto_rawDescGZIP(), []int{34} } func (x *ValueAddServiceLang) GetUuid() string { @@ -2349,7 +3097,7 @@ type ValueAddPriceOptions struct { func (x *ValueAddPriceOptions) Reset() { *x = ValueAddPriceOptions{} - mi := &file_pb_bundle_proto_msgTypes[28] + mi := &file_pb_bundle_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2361,7 +3109,7 @@ func (x *ValueAddPriceOptions) String() string { func (*ValueAddPriceOptions) ProtoMessage() {} func (x *ValueAddPriceOptions) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[28] + mi := &file_pb_bundle_proto_msgTypes[35] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2374,7 +3122,7 @@ func (x *ValueAddPriceOptions) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddPriceOptions.ProtoReflect.Descriptor instead. func (*ValueAddPriceOptions) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{28} + return file_pb_bundle_proto_rawDescGZIP(), []int{35} } func (x *ValueAddPriceOptions) GetId() int64 { @@ -2426,7 +3174,7 @@ type ValueAddServiceListRequest struct { func (x *ValueAddServiceListRequest) Reset() { *x = ValueAddServiceListRequest{} - mi := &file_pb_bundle_proto_msgTypes[29] + mi := &file_pb_bundle_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2438,7 +3186,7 @@ func (x *ValueAddServiceListRequest) String() string { func (*ValueAddServiceListRequest) ProtoMessage() {} func (x *ValueAddServiceListRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[29] + mi := &file_pb_bundle_proto_msgTypes[36] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2451,7 +3199,7 @@ func (x *ValueAddServiceListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddServiceListRequest.ProtoReflect.Descriptor instead. func (*ValueAddServiceListRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{29} + return file_pb_bundle_proto_rawDescGZIP(), []int{36} } func (x *ValueAddServiceListRequest) GetPage() int32 { @@ -2494,7 +3242,7 @@ type ValueAddServiceListResponse struct { func (x *ValueAddServiceListResponse) Reset() { *x = ValueAddServiceListResponse{} - mi := &file_pb_bundle_proto_msgTypes[30] + mi := &file_pb_bundle_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2506,7 +3254,7 @@ func (x *ValueAddServiceListResponse) String() string { func (*ValueAddServiceListResponse) ProtoMessage() {} func (x *ValueAddServiceListResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[30] + mi := &file_pb_bundle_proto_msgTypes[37] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2519,7 +3267,7 @@ func (x *ValueAddServiceListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddServiceListResponse.ProtoReflect.Descriptor instead. func (*ValueAddServiceListResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{30} + return file_pb_bundle_proto_rawDescGZIP(), []int{37} } func (x *ValueAddServiceListResponse) GetTotal() int32 { @@ -2555,7 +3303,7 @@ type ValueAddServiceDetailRequest struct { func (x *ValueAddServiceDetailRequest) Reset() { *x = ValueAddServiceDetailRequest{} - mi := &file_pb_bundle_proto_msgTypes[31] + mi := &file_pb_bundle_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2567,7 +3315,7 @@ func (x *ValueAddServiceDetailRequest) String() string { func (*ValueAddServiceDetailRequest) ProtoMessage() {} func (x *ValueAddServiceDetailRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[31] + mi := &file_pb_bundle_proto_msgTypes[38] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2580,7 +3328,7 @@ func (x *ValueAddServiceDetailRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddServiceDetailRequest.ProtoReflect.Descriptor instead. func (*ValueAddServiceDetailRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{31} + return file_pb_bundle_proto_rawDescGZIP(), []int{38} } func (x *ValueAddServiceDetailRequest) GetUuid() string { @@ -2608,7 +3356,7 @@ type ValueAddServiceDetailResponse struct { func (x *ValueAddServiceDetailResponse) Reset() { *x = ValueAddServiceDetailResponse{} - mi := &file_pb_bundle_proto_msgTypes[32] + mi := &file_pb_bundle_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2620,7 +3368,7 @@ func (x *ValueAddServiceDetailResponse) String() string { func (*ValueAddServiceDetailResponse) ProtoMessage() {} func (x *ValueAddServiceDetailResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[32] + mi := &file_pb_bundle_proto_msgTypes[39] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2633,7 +3381,7 @@ func (x *ValueAddServiceDetailResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddServiceDetailResponse.ProtoReflect.Descriptor instead. func (*ValueAddServiceDetailResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{32} + return file_pb_bundle_proto_rawDescGZIP(), []int{39} } func (x *ValueAddServiceDetailResponse) GetMsg() string { @@ -2650,6 +3398,120 @@ func (x *ValueAddServiceDetailResponse) GetValueAddService() *ValueAddService { return nil } +type CalculatePriceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + Num int32 `protobuf:"varint,2,opt,name=num,proto3" json:"num,omitempty"` + Language string `protobuf:"bytes,3,opt,name=language,proto3" json:"language,omitempty"` +} + +func (x *CalculatePriceRequest) Reset() { + *x = CalculatePriceRequest{} + mi := &file_pb_bundle_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CalculatePriceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CalculatePriceRequest) ProtoMessage() {} + +func (x *CalculatePriceRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[40] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CalculatePriceRequest.ProtoReflect.Descriptor instead. +func (*CalculatePriceRequest) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{40} +} + +func (x *CalculatePriceRequest) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +func (x *CalculatePriceRequest) GetNum() int32 { + if x != nil { + return x.Num + } + return 0 +} + +func (x *CalculatePriceRequest) GetLanguage() string { + if x != nil { + return x.Language + } + return "" +} + +type CalculatePriceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` + Price float32 `protobuf:"fixed32,2,opt,name=price,proto3" json:"price,omitempty"` +} + +func (x *CalculatePriceResponse) Reset() { + *x = CalculatePriceResponse{} + mi := &file_pb_bundle_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CalculatePriceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CalculatePriceResponse) ProtoMessage() {} + +func (x *CalculatePriceResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[41] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CalculatePriceResponse.ProtoReflect.Descriptor instead. +func (*CalculatePriceResponse) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{41} +} + +func (x *CalculatePriceResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *CalculatePriceResponse) GetPrice() float32 { + if x != nil { + return x.Price + } + return 0 +} + type BundleExtendRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2663,12 +3525,13 @@ type BundleExtendRequest struct { AvailableDurationAdditional uint32 `protobuf:"varint,6,opt,name=availableDurationAdditional,proto3" json:"availableDurationAdditional,omitempty"` Remark string `protobuf:"bytes,7,opt,name=remark,proto3" json:"remark,omitempty"` AssociatedorderNumber string `protobuf:"bytes,8,opt,name=associatedorderNumber,proto3" json:"associatedorderNumber,omitempty"` - OperatorId int64 `protobuf:"varint,9,opt,name=operatorId,proto3" json:"operatorId,omitempty"` + OperatorName string `protobuf:"bytes,9,opt,name=operatorName,proto3" json:"operatorName,omitempty"` + OperatorPhoneNumber string `protobuf:"bytes,10,opt,name=operatorPhoneNumber,proto3" json:"operatorPhoneNumber,omitempty"` } func (x *BundleExtendRequest) Reset() { *x = BundleExtendRequest{} - mi := &file_pb_bundle_proto_msgTypes[33] + mi := &file_pb_bundle_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2680,7 +3543,7 @@ func (x *BundleExtendRequest) String() string { func (*BundleExtendRequest) ProtoMessage() {} func (x *BundleExtendRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[33] + mi := &file_pb_bundle_proto_msgTypes[42] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2693,7 +3556,7 @@ func (x *BundleExtendRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleExtendRequest.ProtoReflect.Descriptor instead. func (*BundleExtendRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{33} + return file_pb_bundle_proto_rawDescGZIP(), []int{42} } func (x *BundleExtendRequest) GetUserId() int64 { @@ -2752,11 +3615,18 @@ func (x *BundleExtendRequest) GetAssociatedorderNumber() string { return "" } -func (x *BundleExtendRequest) GetOperatorId() int64 { +func (x *BundleExtendRequest) GetOperatorName() string { if x != nil { - return x.OperatorId + return x.OperatorName } - return 0 + return "" +} + +func (x *BundleExtendRequest) GetOperatorPhoneNumber() string { + if x != nil { + return x.OperatorPhoneNumber + } + return "" } type BundleExtendResponse struct { @@ -2767,7 +3637,7 @@ type BundleExtendResponse struct { func (x *BundleExtendResponse) Reset() { *x = BundleExtendResponse{} - mi := &file_pb_bundle_proto_msgTypes[34] + mi := &file_pb_bundle_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2779,7 +3649,7 @@ func (x *BundleExtendResponse) String() string { func (*BundleExtendResponse) ProtoMessage() {} func (x *BundleExtendResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[34] + mi := &file_pb_bundle_proto_msgTypes[43] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2792,7 +3662,7 @@ func (x *BundleExtendResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleExtendResponse.ProtoReflect.Descriptor instead. func (*BundleExtendResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{34} + return file_pb_bundle_proto_rawDescGZIP(), []int{43} } type BundleExtendRecordsListRequest struct { @@ -2812,7 +3682,7 @@ type BundleExtendRecordsListRequest struct { func (x *BundleExtendRecordsListRequest) Reset() { *x = BundleExtendRecordsListRequest{} - mi := &file_pb_bundle_proto_msgTypes[35] + mi := &file_pb_bundle_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2824,7 +3694,7 @@ func (x *BundleExtendRecordsListRequest) String() string { func (*BundleExtendRecordsListRequest) ProtoMessage() {} func (x *BundleExtendRecordsListRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[35] + mi := &file_pb_bundle_proto_msgTypes[44] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2837,7 +3707,7 @@ func (x *BundleExtendRecordsListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleExtendRecordsListRequest.ProtoReflect.Descriptor instead. func (*BundleExtendRecordsListRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{35} + return file_pb_bundle_proto_rawDescGZIP(), []int{44} } func (x *BundleExtendRecordsListRequest) GetPage() int32 { @@ -2907,7 +3777,7 @@ type BundleExtendRecordsListResponse struct { func (x *BundleExtendRecordsListResponse) Reset() { *x = BundleExtendRecordsListResponse{} - mi := &file_pb_bundle_proto_msgTypes[36] + mi := &file_pb_bundle_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2919,7 +3789,7 @@ func (x *BundleExtendRecordsListResponse) String() string { func (*BundleExtendRecordsListResponse) ProtoMessage() {} func (x *BundleExtendRecordsListResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[36] + mi := &file_pb_bundle_proto_msgTypes[45] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2932,7 +3802,7 @@ func (x *BundleExtendRecordsListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleExtendRecordsListResponse.ProtoReflect.Descriptor instead. func (*BundleExtendRecordsListResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{36} + return file_pb_bundle_proto_rawDescGZIP(), []int{45} } func (x *BundleExtendRecordsListResponse) GetTotal() int64 { @@ -2971,7 +3841,7 @@ type BundleExtendRecordItem struct { func (x *BundleExtendRecordItem) Reset() { *x = BundleExtendRecordItem{} - mi := &file_pb_bundle_proto_msgTypes[37] + mi := &file_pb_bundle_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2983,7 +3853,7 @@ func (x *BundleExtendRecordItem) String() string { func (*BundleExtendRecordItem) ProtoMessage() {} func (x *BundleExtendRecordItem) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[37] + mi := &file_pb_bundle_proto_msgTypes[46] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2996,7 +3866,7 @@ func (x *BundleExtendRecordItem) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleExtendRecordItem.ProtoReflect.Descriptor instead. func (*BundleExtendRecordItem) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{37} + return file_pb_bundle_proto_rawDescGZIP(), []int{46} } func (x *BundleExtendRecordItem) GetUserName() string { @@ -3090,36 +3960,35 @@ func (x *BundleExtendRecordItem) GetOperatorPhoneNumber() string { return "" } -type SetBundleBalanceRequest struct { +type GetBundleBalanceReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` - ExpirationTime int64 `protobuf:"varint,2,opt,name=expirationTime,proto3" json:"expirationTime,omitempty"` - BundleName string `protobuf:"bytes,3,opt,name=bundleName,proto3" json:"bundleName,omitempty"` - AccountNumber int32 `protobuf:"varint,4,opt,name=accountNumber,proto3" json:"accountNumber,omitempty"` - VideoNumber int32 `protobuf:"varint,5,opt,name=videoNumber,proto3" json:"videoNumber,omitempty"` - ImageNumber int32 `protobuf:"varint,6,opt,name=imageNumber,proto3" json:"imageNumber,omitempty"` - DataAnalysisNumber int32 `protobuf:"varint,7,opt,name=dataAnalysisNumber,proto3" json:"dataAnalysisNumber,omitempty"` - ExpansionPacksNumber int32 `protobuf:"varint,8,opt,name=expansionPacksNumber,proto3" json:"expansionPacksNumber,omitempty"` + UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName,omitempty"` + Status int32 `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"` + BundleName string `protobuf:"bytes,3,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + ExpiredTimeStart int64 `protobuf:"varint,4,opt,name=expiredTimeStart,proto3" json:"expiredTimeStart,omitempty"` + ExpiredTimeEnd int64 `protobuf:"varint,5,opt,name=expiredTimeEnd,proto3" json:"expiredTimeEnd,omitempty"` + Page int32 `protobuf:"varint,6,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,7,opt,name=pageSize,proto3" json:"pageSize,omitempty"` } -func (x *SetBundleBalanceRequest) Reset() { - *x = SetBundleBalanceRequest{} - mi := &file_pb_bundle_proto_msgTypes[38] +func (x *GetBundleBalanceReq) Reset() { + *x = GetBundleBalanceReq{} + mi := &file_pb_bundle_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *SetBundleBalanceRequest) String() string { +func (x *GetBundleBalanceReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetBundleBalanceRequest) ProtoMessage() {} +func (*GetBundleBalanceReq) ProtoMessage() {} -func (x *SetBundleBalanceRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[38] +func (x *GetBundleBalanceReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[47] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3130,88 +3999,96 @@ func (x *SetBundleBalanceRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetBundleBalanceRequest.ProtoReflect.Descriptor instead. -func (*SetBundleBalanceRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{38} +// Deprecated: Use GetBundleBalanceReq.ProtoReflect.Descriptor instead. +func (*GetBundleBalanceReq) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{47} } -func (x *SetBundleBalanceRequest) GetUserId() int32 { +func (x *GetBundleBalanceReq) GetUserName() string { if x != nil { - return x.UserId + return x.UserName + } + return "" +} + +func (x *GetBundleBalanceReq) GetStatus() int32 { + if x != nil { + return x.Status } return 0 } -func (x *SetBundleBalanceRequest) GetExpirationTime() int64 { - if x != nil { - return x.ExpirationTime - } - return 0 -} - -func (x *SetBundleBalanceRequest) GetBundleName() string { +func (x *GetBundleBalanceReq) GetBundleName() string { if x != nil { return x.BundleName } return "" } -func (x *SetBundleBalanceRequest) GetAccountNumber() int32 { +func (x *GetBundleBalanceReq) GetExpiredTimeStart() int64 { if x != nil { - return x.AccountNumber + return x.ExpiredTimeStart } return 0 } -func (x *SetBundleBalanceRequest) GetVideoNumber() int32 { +func (x *GetBundleBalanceReq) GetExpiredTimeEnd() int64 { if x != nil { - return x.VideoNumber + return x.ExpiredTimeEnd } return 0 } -func (x *SetBundleBalanceRequest) GetImageNumber() int32 { +func (x *GetBundleBalanceReq) GetPage() int32 { if x != nil { - return x.ImageNumber + return x.Page } return 0 } -func (x *SetBundleBalanceRequest) GetDataAnalysisNumber() int32 { +func (x *GetBundleBalanceReq) GetPageSize() int32 { if x != nil { - return x.DataAnalysisNumber + return x.PageSize } return 0 } -func (x *SetBundleBalanceRequest) GetExpansionPacksNumber() int32 { - if x != nil { - return x.ExpansionPacksNumber - } - return 0 -} - -type SetBundleBalanceResponse struct { +type BundleBalanceItem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName,omitempty"` + UserPhoneNumber string `protobuf:"bytes,2,opt,name=userPhoneNumber,proto3" json:"userPhoneNumber,omitempty"` + Status int32 `protobuf:"varint,3,opt,name=status,proto3" json:"status,omitempty"` + BundleName string `protobuf:"bytes,4,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + ExpiredTime int64 `protobuf:"varint,5,opt,name=expiredTime,proto3" json:"expiredTime,omitempty"` + AccountNumber int32 `protobuf:"varint,6,opt,name=accountNumber,proto3" json:"accountNumber,omitempty"` + AccountConsumptionNumber int32 `protobuf:"varint,7,opt,name=accountConsumptionNumber,proto3" json:"accountConsumptionNumber,omitempty"` + VideoNumber int32 `protobuf:"varint,8,opt,name=videoNumber,proto3" json:"videoNumber,omitempty"` + VideoConsumptionNumber int32 `protobuf:"varint,9,opt,name=videoConsumptionNumber,proto3" json:"videoConsumptionNumber,omitempty"` + ImageNumber int32 `protobuf:"varint,10,opt,name=imageNumber,proto3" json:"imageNumber,omitempty"` + ImageConsumptionNumber int32 `protobuf:"varint,11,opt,name=imageConsumptionNumber,proto3" json:"imageConsumptionNumber,omitempty"` + DataAnalysisNumber int32 `protobuf:"varint,12,opt,name=dataAnalysisNumber,proto3" json:"dataAnalysisNumber,omitempty"` + DataAnalysisConsumptionNumber int32 `protobuf:"varint,13,opt,name=dataAnalysisConsumptionNumber,proto3" json:"dataAnalysisConsumptionNumber,omitempty"` + ExpansionPacksNumber int32 `protobuf:"varint,14,opt,name=expansionPacksNumber,proto3" json:"expansionPacksNumber,omitempty"` } -func (x *SetBundleBalanceResponse) Reset() { - *x = SetBundleBalanceResponse{} - mi := &file_pb_bundle_proto_msgTypes[39] +func (x *BundleBalanceItem) Reset() { + *x = BundleBalanceItem{} + mi := &file_pb_bundle_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *SetBundleBalanceResponse) String() string { +func (x *BundleBalanceItem) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetBundleBalanceResponse) ProtoMessage() {} +func (*BundleBalanceItem) ProtoMessage() {} -func (x *SetBundleBalanceResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[39] +func (x *BundleBalanceItem) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[48] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3222,9 +4099,160 @@ func (x *SetBundleBalanceResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetBundleBalanceResponse.ProtoReflect.Descriptor instead. -func (*SetBundleBalanceResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{39} +// Deprecated: Use BundleBalanceItem.ProtoReflect.Descriptor instead. +func (*BundleBalanceItem) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{48} +} + +func (x *BundleBalanceItem) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +func (x *BundleBalanceItem) GetUserPhoneNumber() string { + if x != nil { + return x.UserPhoneNumber + } + return "" +} + +func (x *BundleBalanceItem) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *BundleBalanceItem) GetBundleName() string { + if x != nil { + return x.BundleName + } + return "" +} + +func (x *BundleBalanceItem) GetExpiredTime() int64 { + if x != nil { + return x.ExpiredTime + } + return 0 +} + +func (x *BundleBalanceItem) GetAccountNumber() int32 { + if x != nil { + return x.AccountNumber + } + return 0 +} + +func (x *BundleBalanceItem) GetAccountConsumptionNumber() int32 { + if x != nil { + return x.AccountConsumptionNumber + } + return 0 +} + +func (x *BundleBalanceItem) GetVideoNumber() int32 { + if x != nil { + return x.VideoNumber + } + return 0 +} + +func (x *BundleBalanceItem) GetVideoConsumptionNumber() int32 { + if x != nil { + return x.VideoConsumptionNumber + } + return 0 +} + +func (x *BundleBalanceItem) GetImageNumber() int32 { + if x != nil { + return x.ImageNumber + } + return 0 +} + +func (x *BundleBalanceItem) GetImageConsumptionNumber() int32 { + if x != nil { + return x.ImageConsumptionNumber + } + return 0 +} + +func (x *BundleBalanceItem) GetDataAnalysisNumber() int32 { + if x != nil { + return x.DataAnalysisNumber + } + return 0 +} + +func (x *BundleBalanceItem) GetDataAnalysisConsumptionNumber() int32 { + if x != nil { + return x.DataAnalysisConsumptionNumber + } + return 0 +} + +func (x *BundleBalanceItem) GetExpansionPacksNumber() int32 { + if x != nil { + return x.ExpansionPacksNumber + } + return 0 +} + +type GetBundleBalanceResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` + Data []*BundleBalanceItem `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetBundleBalanceResp) Reset() { + *x = GetBundleBalanceResp{} + mi := &file_pb_bundle_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetBundleBalanceResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetBundleBalanceResp) ProtoMessage() {} + +func (x *GetBundleBalanceResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[49] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetBundleBalanceResp.ProtoReflect.Descriptor instead. +func (*GetBundleBalanceResp) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{49} +} + +func (x *GetBundleBalanceResp) GetTotal() int64 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *GetBundleBalanceResp) GetData() []*BundleBalanceItem { + if x != nil { + return x.Data + } + return nil } var File_pb_bundle_proto protoreflect.FileDescriptor @@ -3234,13 +4262,146 @@ var file_pb_bundle_proto_rawDesc = []byte{ 0x6f, 0x12, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x1a, 0x13, 0x70, 0x62, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x12, 0x70, 0x62, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x22, 0x50, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x4e, 0x6f, 0x22, 0x93, 0x05, 0x0a, 0x0d, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, + 0x74, 0x6f, 0x22, 0x81, 0x04, 0x0a, 0x15, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x32, 0x12, 0x22, 0x0a, 0x0c, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x79, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x79, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x64, 0x64, 0x50, 0x61, 0x79, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x61, 0x64, + 0x64, 0x50, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, + 0x4e, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, + 0x64, 0x64, 0x4e, 0x6f, 0x12, 0x30, 0x0a, 0x13, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x13, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, + 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x45, 0x6e, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, + 0x74, 0x45, 0x6e, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x15, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x41, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x45, 0x6e, + 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, + 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x45, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x70, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x75, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x9d, 0x01, 0x0a, 0x16, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, + 0x32, 0x12, 0x3d, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0xd3, 0x02, 0x0a, 0x15, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, + 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, + 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, + 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, + 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0d, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x61, + 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x22, 0xf0, 0x02, 0x0a, + 0x18, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x73, 0x65, 0x74, + 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x22, 0x0a, + 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x46, 0x65, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, + 0x46, 0x65, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, + 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x65, 0x78, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x10, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x41, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x64, 0x64, 0x50, 0x61, 0x79, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x61, 0x64, 0x64, 0x50, 0x61, + 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x22, + 0x47, 0x0a, 0x1b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x41, + 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x50, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, + 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, + 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, + 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x22, 0x93, 0x05, 0x0a, 0x0d, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, + 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x1a, + 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, + 0x79, 0x53, 0x69, 0x67, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, + 0x70, 0x61, 0x6e, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x44, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x6f, + 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x31, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x67, + 0x49, 0x6d, 0x67, 0x32, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x67, 0x49, 0x6d, + 0x67, 0x32, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x53, 0x0a, 0x15, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x11, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x52, 0x15, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, + 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x47, 0x0a, 0x11, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x18, 0x12, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x52, + 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, + 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x6d, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0xe1, 0x01, 0x0a, 0x11, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, @@ -3248,617 +4409,706 @@ var file_pb_bundle_proto_rawDesc = []byte{ 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, - 0x75, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, - 0x75, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x53, 0x69, - 0x67, 0x6e, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x44, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, - 0x0a, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, - 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, - 0x62, 0x67, 0x49, 0x6d, 0x67, 0x31, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x67, - 0x49, 0x6d, 0x67, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x32, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x32, 0x12, 0x20, 0x0a, 0x0b, - 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0b, 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x53, - 0x0a, 0x15, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x15, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x12, 0x47, 0x0a, 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, + 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x22, 0x52, 0x0a, 0x0c, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, + 0x6e, 0x63, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, + 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x22, 0x7b, 0x0a, 0x15, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x55, 0x75, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, + 0x64, 0x55, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x44, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x44, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x22, 0x26, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x8d, 0x01, + 0x0a, 0x11, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x5b, 0x0a, + 0x12, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x07, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x07, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x45, 0x0a, 0x13, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, + 0x65, 0x22, 0x48, 0x0a, 0x10, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x65, 0x6c, 0x66, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x68, 0x65, + 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, + 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x57, 0x0a, 0x14, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6d, 0x73, 0x67, 0x22, 0x59, 0x0a, 0x16, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32, 0x12, 0x2d, + 0x0a, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x52, 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, - 0x69, 0x6d, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x09, 0x69, 0x6d, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xe1, 0x01, 0x0a, 0x11, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, - 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x75, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, - 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, - 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x52, - 0x0a, 0x0c, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, - 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x75, 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4e, 0x75, - 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4e, - 0x75, 0x6d, 0x22, 0x7b, 0x0a, 0x15, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x55, 0x75, 0x69, 0x64, 0x12, - 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x22, - 0x26, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x8d, 0x01, 0x0a, 0x11, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, - 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, - 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x5b, 0x0a, 0x12, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, - 0x07, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x07, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x12, 0x14, - 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x45, 0x0a, 0x13, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, - 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, - 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x48, 0x0a, 0x10, 0x48, - 0x61, 0x6e, 0x64, 0x53, 0x68, 0x65, 0x6c, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, + 0xf9, 0x0a, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, - 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x57, 0x0a, 0x14, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, - 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x59, - 0x0a, 0x16, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32, 0x12, 0x2d, 0x0a, 0x06, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, - 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xb5, 0x0a, 0x0a, 0x0b, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, - 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, - 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, - 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, - 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, - 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, - 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1e, 0x0a, - 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x70, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, - 0x70, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x68, - 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, - 0x2e, 0x0a, 0x12, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x68, 0x65, - 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x4e, 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, - 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x6f, 0x18, - 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, - 0x6f, 0x12, 0x2e, 0x0a, 0x12, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, - 0x64, 0x12, 0x32, 0x0a, 0x14, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x02, 0x52, - 0x14, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, - 0x64, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x15, - 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x4f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x41, 0x64, 0x64, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, - 0x65, 0x12, 0x30, 0x0a, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x61, 0x76, - 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x1a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x2e, 0x0a, 0x12, 0x63, + 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, + 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, + 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, + 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, + 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x11, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, + 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x12, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, + 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x4e, 0x6f, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x6f, 0x12, 0x2e, 0x0a, 0x12, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x13, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x12, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x14, 0x20, 0x01, 0x28, 0x02, 0x52, 0x14, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x12, 0x34, 0x0a, 0x15, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x44, 0x69, 0x73, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x15, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x41, 0x64, 0x64, 0x53, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x17, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x61, + 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, + 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x73, 0x65, 0x78, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, + 0x20, 0x0a, 0x0b, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x1b, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, + 0x79, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, - 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x70, - 0x6c, 0x61, 0x63, 0x65, 0x4f, 0x66, 0x52, 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, - 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x4f, 0x66, 0x52, 0x65, - 0x73, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, - 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, - 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, - 0x64, 0x12, 0x34, 0x0a, 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x21, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, - 0x6d, 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, - 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x23, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x44, 0x0a, 0x10, 0x70, - 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x18, - 0x24, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x10, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, - 0x6f, 0x22, 0x3e, 0x0a, 0x10, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x4f, 0x66, 0x52, 0x65, 0x73, 0x69, + 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x6c, 0x61, + 0x63, 0x65, 0x4f, 0x66, 0x52, 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x0a, + 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x1e, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x28, 0x0a, + 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, + 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x64, 0x64, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x18, 0x20, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6e, + 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x21, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, + 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, + 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, + 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, + 0x65, 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, + 0x65, 0x12, 0x44, 0x0a, 0x10, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x24, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x10, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x26, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x22, 0xbf, 0x03, 0x0a, 0x0e, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1e, + 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x4d, + 0x0a, 0x13, 0x61, 0x64, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x13, 0x61, 0x64, 0x64, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, + 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, + 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, + 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, + 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x26, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x22, 0xc5, 0x01, + 0x0a, 0x13, 0x41, 0x64, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x69, - 0x64, 0x22, 0xa7, 0x04, 0x0a, 0x13, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x55, 0x49, 0x44, 0x12, - 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x65, - 0x6e, 0x64, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x64, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, - 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x61, - 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x50, 0x61, - 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, - 0x72, 0x49, 0x44, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x73, 0x48, 0x61, 0x76, 0x65, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x69, - 0x73, 0x48, 0x61, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x12, 0x34, 0x0a, - 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, - 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x66, 0x69, - 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x22, 0x65, 0x0a, 0x14, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0c, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x22, 0x69, 0x0a, 0x19, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, - 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, - 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x22, 0x65, 0x0a, - 0x1a, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x0b, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6d, 0x73, 0x67, 0x22, 0xdd, 0x02, 0x0a, 0x15, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, - 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, - 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, - 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x69, - 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x02, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x13, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x12, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x55, 0x69, 0x64, 0x22, 0x59, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x42, 0x28, 0xe2, 0xdf, 0x1f, 0x24, 0x10, 0x1d, 0x18, 0x65, 0x2a, 0x1e, 0xe8, 0x87, 0xb3, 0xe5, - 0xb0, 0x91, 0xe6, 0x95, 0xb0, 0xe4, 0xb8, 0xba, 0x33, 0x30, 0x2c, 0xe6, 0x9c, 0x80, 0xe5, 0xa4, - 0x9a, 0xe6, 0x95, 0xb0, 0xe4, 0xb8, 0xba, 0x31, 0x30, 0x30, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x22, - 0x86, 0x01, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, - 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x75, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, - 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x71, 0x0a, 0x19, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, - 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, - 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0xf7, 0x01, 0x0a, 0x1a, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x02, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, + 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x75, 0x6e, 0x69, 0x74, 0x22, 0x3e, 0x0a, 0x10, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x55, 0x69, 0x64, 0x22, 0xa7, 0x04, 0x0a, 0x13, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, + 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x55, 0x49, + 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, + 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x69, + 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x24, 0x0a, 0x0d, 0x65, 0x6e, 0x64, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x64, 0x53, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x61, + 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x6e, 0x64, + 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, + 0x6e, 0x64, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x73, 0x48, + 0x61, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0e, 0x69, 0x73, 0x48, 0x61, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, + 0x64, 0x12, 0x34, 0x0a, 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, + 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x22, + 0x65, 0x0a, 0x14, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x52, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x31, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, - 0x6e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x4e, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x31, 0x0a, 0x1b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, - 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, + 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x89, 0x01, 0x0a, 0x19, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x7d, 0x0a, 0x1c, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x70, - 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, - 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x38, 0x0a, 0x1c, 0x46, 0x69, 0x6e, 0x61, 0x6e, - 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, - 0x6f, 0x22, 0xa8, 0x01, 0x0a, 0x0f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, - 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x52, - 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x22, 0xf3, 0x02, 0x0a, - 0x13, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x70, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x75, 0x6e, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x22, 0x86, 0x01, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6e, - 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, - 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, - 0x61, 0x76, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x73, 0x61, 0x76, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x7c, 0x0a, 0x1a, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x1b, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, - 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, - 0x67, 0x12, 0x49, 0x0a, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, - 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x4e, 0x0a, 0x1c, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, - 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x74, 0x0a, 0x1d, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, - 0x41, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x52, 0x0f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x22, 0x89, 0x03, 0x0a, 0x13, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, - 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, - 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x12, 0x28, 0x0a, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6d, - 0x61, 0x67, 0x65, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x41, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, - 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x40, - 0x0a, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x34, 0x0a, 0x15, 0x61, 0x73, 0x73, 0x6f, - 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, - 0x74, 0x65, 0x64, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, - 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x22, 0x16, - 0x0a, 0x14, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x82, 0x02, 0x0a, 0x1e, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, - 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, - 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, - 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x6b, 0x0a, 0x1f, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x74, - 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xa2, 0x04, 0x0a, 0x16, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, - 0x74, 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x28, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, - 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x69, 0x6d, 0x61, - 0x67, 0x65, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x26, 0x0a, - 0x0e, 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x40, 0x0a, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x61, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, - 0x61, 0x72, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, - 0x6b, 0x12, 0x34, 0x0a, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xc7, 0x02, - 0x0a, 0x17, 0x53, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, - 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x20, 0x0a, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, - 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, - 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x1a, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x32, 0xde, 0x0e, 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x3f, - 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, - 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x3f, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, - 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x42, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x12, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x09, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x65, 0x6c, - 0x66, 0x12, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x53, - 0x68, 0x65, 0x6c, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x0a, 0x53, 0x61, 0x76, 0x65, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x14, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x56, 0x32, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x56, 0x32, 0x12, 0x1b, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0a, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x42, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, - 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x79, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x10, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x21, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, - 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x14, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x12, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x5d, 0x0a, 0x12, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, - 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x62, 0x75, + 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, + 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x55, 0x49, 0x44, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x55, + 0x49, 0x44, 0x22, 0x65, 0x0a, 0x1a, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x35, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0b, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xdd, 0x02, 0x0a, 0x15, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, + 0x24, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x73, 0x61, 0x76, 0x65, + 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x6f, 0x73, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x6f, 0x73, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x64, 0x64, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x22, 0x59, 0x0a, 0x1b, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x28, 0xe2, 0xdf, 0x1f, 0x24, 0x10, 0x1d, 0x18, 0x65, 0x2a, + 0x1e, 0xe8, 0x87, 0xb3, 0xe5, 0xb0, 0x91, 0xe6, 0x95, 0xb0, 0xe4, 0xb8, 0xba, 0x33, 0x30, 0x2c, + 0xe6, 0x9c, 0x80, 0xe5, 0xa4, 0x9a, 0xe6, 0x95, 0xb0, 0xe4, 0xb8, 0xba, 0x31, 0x30, 0x30, 0x52, + 0x03, 0x6e, 0x75, 0x6d, 0x22, 0x86, 0x01, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x61, 0x76, + 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, + 0x73, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6d, + 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x71, 0x0a, + 0x19, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, + 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x22, 0xf7, 0x01, 0x0a, 0x1a, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x24, 0x0a, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x31, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x31, 0x0a, 0x1b, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x7d, 0x0a, + 0x1c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x13, 0x53, 0x61, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x1a, 0x14, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x60, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x66, 0x0a, 0x15, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, + 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x38, 0x0a, 0x1c, + 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x22, 0xa8, 0x01, 0x0a, 0x0f, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x20, + 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, + 0x67, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x4c, 0x61, 0x6e, 0x67, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, + 0x67, 0x22, 0xf3, 0x02, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, + 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, + 0x24, 0x0a, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, + 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, + 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, + 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, + 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x36, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, + 0x64, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x86, 0x01, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x41, 0x64, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, + 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, + 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x61, 0x76, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x61, 0x76, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0x7c, 0x0a, 0x1a, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, + 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x90, + 0x01, 0x0a, 0x1b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x49, 0x0a, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, + 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x13, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, + 0x74, 0x22, 0x4e, 0x0a, 0x1c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, + 0x65, 0x22, 0x74, 0x0a, 0x1d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6d, 0x73, 0x67, 0x12, 0x41, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x0f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x22, 0x59, 0x0a, 0x15, 0x43, 0x61, 0x6c, 0x63, 0x75, + 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x75, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, + 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, + 0x67, 0x65, 0x22, 0x40, 0x0a, 0x16, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x14, + 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x22, 0xbf, 0x03, 0x0a, 0x13, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x76, 0x69, 0x64, + 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x2a, 0x0a, 0x10, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x12, 0x40, 0x0a, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x34, 0x0a, 0x15, 0x61, 0x73, + 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, + 0x69, 0x61, 0x74, 0x65, 0x64, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x16, 0x0a, 0x14, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x82, + 0x02, 0x0a, 0x1e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, + 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x73, + 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x22, 0x6b, 0x0a, 0x1f, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x32, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x22, 0xa2, 0x04, 0x0a, 0x16, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, + 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, + 0x28, 0x0a, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6d, 0x61, + 0x67, 0x65, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x64, + 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x40, 0x0a, + 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, + 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x34, 0x0a, 0x15, 0x61, 0x73, 0x73, + 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, + 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, + 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xed, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x65, 0x78, 0x70, + 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x26, 0x0a, + 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xf3, 0x04, 0x0a, 0x11, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, + 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x70, + 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, + 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x36, 0x0a, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x69, 0x6d, 0x61, + 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, + 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x64, + 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x44, 0x0a, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, + 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, + 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x5b, 0x0a, 0x14, 0x47, + 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2d, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x74, + 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x32, 0xe3, 0x12, 0x0a, 0x06, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x16, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x44, + 0x65, 0x6c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x09, 0x48, 0x61, 0x6e, + 0x64, 0x53, 0x68, 0x65, 0x6c, 0x66, 0x12, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x65, 0x6c, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x0a, 0x53, 0x61, + 0x76, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, + 0x14, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0c, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x32, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x4f, 0x0a, 0x0e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x56, 0x32, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32, 0x22, + 0x00, 0x12, 0x45, 0x0a, 0x0a, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0c, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, + 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x11, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x13, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, + 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x42, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x13, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x10, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x12, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x21, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, + 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x48, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, + 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, + 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x13, 0x50, 0x61, 0x63, + 0x6b, 0x61, 0x67, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x50, + 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x12, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, + 0x56, 0x32, 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, + 0x32, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, + 0x32, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x23, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x12, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, + 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, + 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x13, + 0x53, 0x61, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, + 0x1a, 0x14, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, + 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x15, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x24, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x42, 0x79, 0x55, 0x75, 0x69, 0x64, 0x41, + 0x6e, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x25, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, - 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0c, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x17, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x26, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x1a, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, + 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x22, 0x00, 0x12, + 0x51, 0x0a, 0x0e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, + 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, + 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x6c, 0x0a, 0x17, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x26, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, + 0x10, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x42, 0x0a, + 0x5a, 0x08, 0x2e, 0x2f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -3873,116 +5123,142 @@ func file_pb_bundle_proto_rawDescGZIP() []byte { return file_pb_bundle_proto_rawDescData } -var file_pb_bundle_proto_msgTypes = make([]protoimpl.MessageInfo, 40) +var file_pb_bundle_proto_msgTypes = make([]protoimpl.MessageInfo, 50) var file_pb_bundle_proto_goTypes = []any{ - (*CommonResponse)(nil), // 0: bundle.CommonResponse - (*BundleProfile)(nil), // 1: bundle.BundleProfile - (*BundleProfileLang)(nil), // 2: bundle.BundleProfileLang - (*SaveResponse)(nil), // 3: bundle.SaveResponse - (*SelectValueAddService)(nil), // 4: bundle.SelectValueAddService - (*DelBundleRequest)(nil), // 5: bundle.DelBundleRequest - (*BundleListRequest)(nil), // 6: bundle.BundleListRequest - (*BundleListResponse)(nil), // 7: bundle.BundleListResponse - (*BundleDetailRequest)(nil), // 8: bundle.BundleDetailRequest - (*HandShelfRequest)(nil), // 9: bundle.HandShelfRequest - (*BundleDetailResponse)(nil), // 10: bundle.BundleDetailResponse - (*BundleDetailResponseV2)(nil), // 11: bundle.BundleDetailResponseV2 - (*OrderRecord)(nil), // 12: bundle.OrderRecord - (*PriceOptionsInfo)(nil), // 13: bundle.PriceOptionsInfo - (*OrderRecordsRequest)(nil), // 14: bundle.OrderRecordsRequest - (*OrderRecordsResponse)(nil), // 15: bundle.OrderRecordsResponse - (*OrderRecordsDetailRequest)(nil), // 16: bundle.OrderRecordsDetailRequest - (*OrderRecordsDetailResponse)(nil), // 17: bundle.OrderRecordsDetailResponse - (*ValueAddBundleProfile)(nil), // 18: bundle.ValueAddBundleProfile - (*CreateValueAddBundleRequest)(nil), // 19: bundle.CreateValueAddBundleRequest - (*CreateValueAddBundleResponse)(nil), // 20: bundle.CreateValueAddBundleResponse - (*ValueAddBundleListRequest)(nil), // 21: bundle.ValueAddBundleListRequest - (*ValueAddBundleListResponse)(nil), // 22: bundle.ValueAddBundleListResponse - (*ValueAddBundleDetailRequest)(nil), // 23: bundle.ValueAddBundleDetailRequest - (*ValueAddBundleDetailResponse)(nil), // 24: bundle.ValueAddBundleDetailResponse - (*FinancialConfirmationRequest)(nil), // 25: bundle.FinancialConfirmationRequest - (*ValueAddService)(nil), // 26: bundle.ValueAddService - (*ValueAddServiceLang)(nil), // 27: bundle.ValueAddServiceLang - (*ValueAddPriceOptions)(nil), // 28: bundle.ValueAddPriceOptions - (*ValueAddServiceListRequest)(nil), // 29: bundle.ValueAddServiceListRequest - (*ValueAddServiceListResponse)(nil), // 30: bundle.ValueAddServiceListResponse - (*ValueAddServiceDetailRequest)(nil), // 31: bundle.ValueAddServiceDetailRequest - (*ValueAddServiceDetailResponse)(nil), // 32: bundle.ValueAddServiceDetailResponse - (*BundleExtendRequest)(nil), // 33: bundle.BundleExtendRequest - (*BundleExtendResponse)(nil), // 34: bundle.BundleExtendResponse - (*BundleExtendRecordsListRequest)(nil), // 35: bundle.BundleExtendRecordsListRequest - (*BundleExtendRecordsListResponse)(nil), // 36: bundle.BundleExtendRecordsListResponse - (*BundleExtendRecordItem)(nil), // 37: bundle.BundleExtendRecordItem - (*SetBundleBalanceRequest)(nil), // 38: bundle.SetBundleBalanceRequest - (*SetBundleBalanceResponse)(nil), // 39: bundle.SetBundleBalanceResponse + (*OrderRecordsRequestV2)(nil), // 0: bundle.OrderRecordsRequestV2 + (*OrderRecordsResponseV2)(nil), // 1: bundle.OrderRecordsResponseV2 + (*OrderBundleRecordInfo)(nil), // 2: bundle.OrderBundleRecordInfo + (*OrderAddBundleRecordInfo)(nil), // 3: bundle.OrderAddBundleRecordInfo + (*PackagePriceAndTimeResponse)(nil), // 4: bundle.PackagePriceAndTimeResponse + (*CommonResponse)(nil), // 5: bundle.CommonResponse + (*BundleProfile)(nil), // 6: bundle.BundleProfile + (*BundleProfileLang)(nil), // 7: bundle.BundleProfileLang + (*SaveResponse)(nil), // 8: bundle.SaveResponse + (*SelectValueAddService)(nil), // 9: bundle.SelectValueAddService + (*DelBundleRequest)(nil), // 10: bundle.DelBundleRequest + (*BundleListRequest)(nil), // 11: bundle.BundleListRequest + (*BundleListResponse)(nil), // 12: bundle.BundleListResponse + (*BundleDetailRequest)(nil), // 13: bundle.BundleDetailRequest + (*HandShelfRequest)(nil), // 14: bundle.HandShelfRequest + (*BundleDetailResponse)(nil), // 15: bundle.BundleDetailResponse + (*BundleDetailResponseV2)(nil), // 16: bundle.BundleDetailResponseV2 + (*OrderRecord)(nil), // 17: bundle.OrderRecord + (*OrderAddRecord)(nil), // 18: bundle.OrderAddRecord + (*AddPriceOptionsInfo)(nil), // 19: bundle.AddPriceOptionsInfo + (*PriceOptionsInfo)(nil), // 20: bundle.PriceOptionsInfo + (*OrderRecordsRequest)(nil), // 21: bundle.OrderRecordsRequest + (*OrderRecordsResponse)(nil), // 22: bundle.OrderRecordsResponse + (*OrderRecordsDetailRequest)(nil), // 23: bundle.OrderRecordsDetailRequest + (*OrderRecordsDetailResponse)(nil), // 24: bundle.OrderRecordsDetailResponse + (*ValueAddBundleProfile)(nil), // 25: bundle.ValueAddBundleProfile + (*CreateValueAddBundleRequest)(nil), // 26: bundle.CreateValueAddBundleRequest + (*CreateValueAddBundleResponse)(nil), // 27: bundle.CreateValueAddBundleResponse + (*ValueAddBundleListRequest)(nil), // 28: bundle.ValueAddBundleListRequest + (*ValueAddBundleListResponse)(nil), // 29: bundle.ValueAddBundleListResponse + (*ValueAddBundleDetailRequest)(nil), // 30: bundle.ValueAddBundleDetailRequest + (*ValueAddBundleDetailResponse)(nil), // 31: bundle.ValueAddBundleDetailResponse + (*FinancialConfirmationRequest)(nil), // 32: bundle.FinancialConfirmationRequest + (*ValueAddService)(nil), // 33: bundle.ValueAddService + (*ValueAddServiceLang)(nil), // 34: bundle.ValueAddServiceLang + (*ValueAddPriceOptions)(nil), // 35: bundle.ValueAddPriceOptions + (*ValueAddServiceListRequest)(nil), // 36: bundle.ValueAddServiceListRequest + (*ValueAddServiceListResponse)(nil), // 37: bundle.ValueAddServiceListResponse + (*ValueAddServiceDetailRequest)(nil), // 38: bundle.ValueAddServiceDetailRequest + (*ValueAddServiceDetailResponse)(nil), // 39: bundle.ValueAddServiceDetailResponse + (*CalculatePriceRequest)(nil), // 40: bundle.CalculatePriceRequest + (*CalculatePriceResponse)(nil), // 41: bundle.CalculatePriceResponse + (*BundleExtendRequest)(nil), // 42: bundle.BundleExtendRequest + (*BundleExtendResponse)(nil), // 43: bundle.BundleExtendResponse + (*BundleExtendRecordsListRequest)(nil), // 44: bundle.BundleExtendRecordsListRequest + (*BundleExtendRecordsListResponse)(nil), // 45: bundle.BundleExtendRecordsListResponse + (*BundleExtendRecordItem)(nil), // 46: bundle.BundleExtendRecordItem + (*GetBundleBalanceReq)(nil), // 47: bundle.GetBundleBalanceReq + (*BundleBalanceItem)(nil), // 48: bundle.BundleBalanceItem + (*GetBundleBalanceResp)(nil), // 49: bundle.GetBundleBalanceResp } var file_pb_bundle_proto_depIdxs = []int32{ - 4, // 0: bundle.BundleProfile.selectValueAddService:type_name -> bundle.SelectValueAddService - 2, // 1: bundle.BundleProfile.bundleProfileLang:type_name -> bundle.BundleProfileLang - 1, // 2: bundle.BundleListResponse.bundles:type_name -> bundle.BundleProfile - 1, // 3: bundle.BundleDetailResponse.bundle:type_name -> bundle.BundleProfile - 1, // 4: bundle.BundleDetailResponseV2.bundle:type_name -> bundle.BundleProfile - 13, // 5: bundle.OrderRecord.priceOptionsInfo:type_name -> bundle.PriceOptionsInfo - 12, // 6: bundle.OrderRecordsResponse.orderRecords:type_name -> bundle.OrderRecord - 12, // 7: bundle.OrderRecordsDetailResponse.orderRecord:type_name -> bundle.OrderRecord - 18, // 8: bundle.ValueAddBundleListResponse.data:type_name -> bundle.ValueAddBundleProfile - 18, // 9: bundle.ValueAddBundleDetailResponse.data:type_name -> bundle.ValueAddBundleProfile - 27, // 10: bundle.ValueAddService.serviceLang:type_name -> bundle.ValueAddServiceLang - 28, // 11: bundle.ValueAddServiceLang.options:type_name -> bundle.ValueAddPriceOptions - 26, // 12: bundle.ValueAddServiceListResponse.valueAddServiceList:type_name -> bundle.ValueAddService - 26, // 13: bundle.ValueAddServiceDetailResponse.valueAddService:type_name -> bundle.ValueAddService - 37, // 14: bundle.BundleExtendRecordsListResponse.data:type_name -> bundle.BundleExtendRecordItem - 1, // 15: bundle.Bundle.CreateBundle:input_type -> bundle.BundleProfile - 1, // 16: bundle.Bundle.UpdateBundle:input_type -> bundle.BundleProfile - 5, // 17: bundle.Bundle.DeleteBundle:input_type -> bundle.DelBundleRequest - 9, // 18: bundle.Bundle.HandShelf:input_type -> bundle.HandShelfRequest - 1, // 19: bundle.Bundle.SaveBundle:input_type -> bundle.BundleProfile - 6, // 20: bundle.Bundle.BundleListV2:input_type -> bundle.BundleListRequest - 8, // 21: bundle.Bundle.BundleDetailV2:input_type -> bundle.BundleDetailRequest - 6, // 22: bundle.Bundle.BundleList:input_type -> bundle.BundleListRequest - 8, // 23: bundle.Bundle.BundleDetail:input_type -> bundle.BundleDetailRequest - 12, // 24: bundle.Bundle.CreateOrderRecord:input_type -> bundle.OrderRecord - 12, // 25: bundle.Bundle.UpdateOrderRecord:input_type -> bundle.OrderRecord - 12, // 26: bundle.Bundle.UpdateOrderRecordByOrderNo:input_type -> bundle.OrderRecord - 14, // 27: bundle.Bundle.OrderRecordsList:input_type -> bundle.OrderRecordsRequest - 16, // 28: bundle.Bundle.OrderRecordsDetail:input_type -> bundle.OrderRecordsDetailRequest - 25, // 29: bundle.Bundle.UpdateFinancialConfirmationStatus:input_type -> bundle.FinancialConfirmationRequest - 19, // 30: bundle.Bundle.CreateValueAddBundle:input_type -> bundle.CreateValueAddBundleRequest - 21, // 31: bundle.Bundle.ValueAddBundleList:input_type -> bundle.ValueAddBundleListRequest - 23, // 32: bundle.Bundle.ValueAddBundleDetail:input_type -> bundle.ValueAddBundleDetailRequest - 27, // 33: bundle.Bundle.SaveValueAddService:input_type -> bundle.ValueAddServiceLang - 29, // 34: bundle.Bundle.ValueAddServiceList:input_type -> bundle.ValueAddServiceListRequest - 31, // 35: bundle.Bundle.ValueAddServiceDetail:input_type -> bundle.ValueAddServiceDetailRequest - 33, // 36: bundle.Bundle.BundleExtend:input_type -> bundle.BundleExtendRequest - 35, // 37: bundle.Bundle.BundleExtendRecordsList:input_type -> bundle.BundleExtendRecordsListRequest - 0, // 38: bundle.Bundle.CreateBundle:output_type -> bundle.CommonResponse - 0, // 39: bundle.Bundle.UpdateBundle:output_type -> bundle.CommonResponse - 0, // 40: bundle.Bundle.DeleteBundle:output_type -> bundle.CommonResponse - 0, // 41: bundle.Bundle.HandShelf:output_type -> bundle.CommonResponse - 3, // 42: bundle.Bundle.SaveBundle:output_type -> bundle.SaveResponse - 7, // 43: bundle.Bundle.BundleListV2:output_type -> bundle.BundleListResponse - 11, // 44: bundle.Bundle.BundleDetailV2:output_type -> bundle.BundleDetailResponseV2 - 7, // 45: bundle.Bundle.BundleList:output_type -> bundle.BundleListResponse - 10, // 46: bundle.Bundle.BundleDetail:output_type -> bundle.BundleDetailResponse - 0, // 47: bundle.Bundle.CreateOrderRecord:output_type -> bundle.CommonResponse - 0, // 48: bundle.Bundle.UpdateOrderRecord:output_type -> bundle.CommonResponse - 0, // 49: bundle.Bundle.UpdateOrderRecordByOrderNo:output_type -> bundle.CommonResponse - 15, // 50: bundle.Bundle.OrderRecordsList:output_type -> bundle.OrderRecordsResponse - 17, // 51: bundle.Bundle.OrderRecordsDetail:output_type -> bundle.OrderRecordsDetailResponse - 0, // 52: bundle.Bundle.UpdateFinancialConfirmationStatus:output_type -> bundle.CommonResponse - 20, // 53: bundle.Bundle.CreateValueAddBundle:output_type -> bundle.CreateValueAddBundleResponse - 22, // 54: bundle.Bundle.ValueAddBundleList:output_type -> bundle.ValueAddBundleListResponse - 24, // 55: bundle.Bundle.ValueAddBundleDetail:output_type -> bundle.ValueAddBundleDetailResponse - 3, // 56: bundle.Bundle.SaveValueAddService:output_type -> bundle.SaveResponse - 30, // 57: bundle.Bundle.ValueAddServiceList:output_type -> bundle.ValueAddServiceListResponse - 32, // 58: bundle.Bundle.ValueAddServiceDetail:output_type -> bundle.ValueAddServiceDetailResponse - 34, // 59: bundle.Bundle.BundleExtend:output_type -> bundle.BundleExtendResponse - 36, // 60: bundle.Bundle.BundleExtendRecordsList:output_type -> bundle.BundleExtendRecordsListResponse - 38, // [38:61] is the sub-list for method output_type - 15, // [15:38] is the sub-list for method input_type - 15, // [15:15] is the sub-list for extension type_name - 15, // [15:15] is the sub-list for extension extendee - 0, // [0:15] is the sub-list for field type_name + 2, // 0: bundle.OrderRecordsResponseV2.bundleInfo:type_name -> bundle.OrderBundleRecordInfo + 3, // 1: bundle.OrderBundleRecordInfo.addBundleInfo:type_name -> bundle.OrderAddBundleRecordInfo + 9, // 2: bundle.BundleProfile.selectValueAddService:type_name -> bundle.SelectValueAddService + 7, // 3: bundle.BundleProfile.bundleProfileLang:type_name -> bundle.BundleProfileLang + 6, // 4: bundle.BundleListResponse.bundles:type_name -> bundle.BundleProfile + 6, // 5: bundle.BundleDetailResponse.bundle:type_name -> bundle.BundleProfile + 6, // 6: bundle.BundleDetailResponseV2.bundle:type_name -> bundle.BundleProfile + 20, // 7: bundle.OrderRecord.priceOptionsInfo:type_name -> bundle.PriceOptionsInfo + 19, // 8: bundle.OrderAddRecord.addPriceOptionsList:type_name -> bundle.AddPriceOptionsInfo + 17, // 9: bundle.OrderRecordsResponse.orderRecords:type_name -> bundle.OrderRecord + 17, // 10: bundle.OrderRecordsDetailResponse.orderRecord:type_name -> bundle.OrderRecord + 25, // 11: bundle.ValueAddBundleListResponse.data:type_name -> bundle.ValueAddBundleProfile + 25, // 12: bundle.ValueAddBundleDetailResponse.data:type_name -> bundle.ValueAddBundleProfile + 34, // 13: bundle.ValueAddService.serviceLang:type_name -> bundle.ValueAddServiceLang + 35, // 14: bundle.ValueAddServiceLang.options:type_name -> bundle.ValueAddPriceOptions + 33, // 15: bundle.ValueAddServiceListResponse.valueAddServiceList:type_name -> bundle.ValueAddService + 33, // 16: bundle.ValueAddServiceDetailResponse.valueAddService:type_name -> bundle.ValueAddService + 46, // 17: bundle.BundleExtendRecordsListResponse.data:type_name -> bundle.BundleExtendRecordItem + 48, // 18: bundle.GetBundleBalanceResp.data:type_name -> bundle.BundleBalanceItem + 6, // 19: bundle.Bundle.CreateBundle:input_type -> bundle.BundleProfile + 6, // 20: bundle.Bundle.UpdateBundle:input_type -> bundle.BundleProfile + 10, // 21: bundle.Bundle.DeleteBundle:input_type -> bundle.DelBundleRequest + 14, // 22: bundle.Bundle.HandShelf:input_type -> bundle.HandShelfRequest + 6, // 23: bundle.Bundle.SaveBundle:input_type -> bundle.BundleProfile + 11, // 24: bundle.Bundle.BundleListV2:input_type -> bundle.BundleListRequest + 13, // 25: bundle.Bundle.BundleDetailV2:input_type -> bundle.BundleDetailRequest + 11, // 26: bundle.Bundle.BundleList:input_type -> bundle.BundleListRequest + 13, // 27: bundle.Bundle.BundleDetail:input_type -> bundle.BundleDetailRequest + 17, // 28: bundle.Bundle.CreateOrderRecord:input_type -> bundle.OrderRecord + 17, // 29: bundle.Bundle.UpdateOrderRecord:input_type -> bundle.OrderRecord + 17, // 30: bundle.Bundle.UpdateOrderRecordByOrderNo:input_type -> bundle.OrderRecord + 21, // 31: bundle.Bundle.OrderRecordsList:input_type -> bundle.OrderRecordsRequest + 23, // 32: bundle.Bundle.OrderRecordsDetail:input_type -> bundle.OrderRecordsDetailRequest + 32, // 33: bundle.Bundle.UpdateFinancialConfirmationStatus:input_type -> bundle.FinancialConfirmationRequest + 18, // 34: bundle.Bundle.CreateOrderAddRecord:input_type -> bundle.OrderAddRecord + 17, // 35: bundle.Bundle.PackagePriceAndTime:input_type -> bundle.OrderRecord + 0, // 36: bundle.Bundle.OrderRecordsListV2:input_type -> bundle.OrderRecordsRequestV2 + 26, // 37: bundle.Bundle.CreateValueAddBundle:input_type -> bundle.CreateValueAddBundleRequest + 28, // 38: bundle.Bundle.ValueAddBundleList:input_type -> bundle.ValueAddBundleListRequest + 30, // 39: bundle.Bundle.ValueAddBundleDetail:input_type -> bundle.ValueAddBundleDetailRequest + 34, // 40: bundle.Bundle.SaveValueAddService:input_type -> bundle.ValueAddServiceLang + 36, // 41: bundle.Bundle.ValueAddServiceList:input_type -> bundle.ValueAddServiceListRequest + 38, // 42: bundle.Bundle.ValueAddServiceDetail:input_type -> bundle.ValueAddServiceDetailRequest + 38, // 43: bundle.Bundle.ValueAddServiceLangByUuidAndLanguage:input_type -> bundle.ValueAddServiceDetailRequest + 40, // 44: bundle.Bundle.CalculatePrice:input_type -> bundle.CalculatePriceRequest + 42, // 45: bundle.Bundle.BundleExtend:input_type -> bundle.BundleExtendRequest + 44, // 46: bundle.Bundle.BundleExtendRecordsList:input_type -> bundle.BundleExtendRecordsListRequest + 47, // 47: bundle.Bundle.GetBundleBalance:input_type -> bundle.GetBundleBalanceReq + 5, // 48: bundle.Bundle.CreateBundle:output_type -> bundle.CommonResponse + 5, // 49: bundle.Bundle.UpdateBundle:output_type -> bundle.CommonResponse + 5, // 50: bundle.Bundle.DeleteBundle:output_type -> bundle.CommonResponse + 5, // 51: bundle.Bundle.HandShelf:output_type -> bundle.CommonResponse + 8, // 52: bundle.Bundle.SaveBundle:output_type -> bundle.SaveResponse + 12, // 53: bundle.Bundle.BundleListV2:output_type -> bundle.BundleListResponse + 16, // 54: bundle.Bundle.BundleDetailV2:output_type -> bundle.BundleDetailResponseV2 + 12, // 55: bundle.Bundle.BundleList:output_type -> bundle.BundleListResponse + 15, // 56: bundle.Bundle.BundleDetail:output_type -> bundle.BundleDetailResponse + 5, // 57: bundle.Bundle.CreateOrderRecord:output_type -> bundle.CommonResponse + 5, // 58: bundle.Bundle.UpdateOrderRecord:output_type -> bundle.CommonResponse + 5, // 59: bundle.Bundle.UpdateOrderRecordByOrderNo:output_type -> bundle.CommonResponse + 22, // 60: bundle.Bundle.OrderRecordsList:output_type -> bundle.OrderRecordsResponse + 24, // 61: bundle.Bundle.OrderRecordsDetail:output_type -> bundle.OrderRecordsDetailResponse + 5, // 62: bundle.Bundle.UpdateFinancialConfirmationStatus:output_type -> bundle.CommonResponse + 5, // 63: bundle.Bundle.CreateOrderAddRecord:output_type -> bundle.CommonResponse + 4, // 64: bundle.Bundle.PackagePriceAndTime:output_type -> bundle.PackagePriceAndTimeResponse + 1, // 65: bundle.Bundle.OrderRecordsListV2:output_type -> bundle.OrderRecordsResponseV2 + 27, // 66: bundle.Bundle.CreateValueAddBundle:output_type -> bundle.CreateValueAddBundleResponse + 29, // 67: bundle.Bundle.ValueAddBundleList:output_type -> bundle.ValueAddBundleListResponse + 31, // 68: bundle.Bundle.ValueAddBundleDetail:output_type -> bundle.ValueAddBundleDetailResponse + 8, // 69: bundle.Bundle.SaveValueAddService:output_type -> bundle.SaveResponse + 37, // 70: bundle.Bundle.ValueAddServiceList:output_type -> bundle.ValueAddServiceListResponse + 39, // 71: bundle.Bundle.ValueAddServiceDetail:output_type -> bundle.ValueAddServiceDetailResponse + 34, // 72: bundle.Bundle.ValueAddServiceLangByUuidAndLanguage:output_type -> bundle.ValueAddServiceLang + 41, // 73: bundle.Bundle.CalculatePrice:output_type -> bundle.CalculatePriceResponse + 43, // 74: bundle.Bundle.BundleExtend:output_type -> bundle.BundleExtendResponse + 45, // 75: bundle.Bundle.BundleExtendRecordsList:output_type -> bundle.BundleExtendRecordsListResponse + 49, // 76: bundle.Bundle.GetBundleBalance:output_type -> bundle.GetBundleBalanceResp + 48, // [48:77] is the sub-list for method output_type + 19, // [19:48] is the sub-list for method input_type + 19, // [19:19] is the sub-list for extension type_name + 19, // [19:19] is the sub-list for extension extendee + 0, // [0:19] is the sub-list for field type_name } func init() { file_pb_bundle_proto_init() } @@ -3996,7 +5272,7 @@ func file_pb_bundle_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pb_bundle_proto_rawDesc, NumEnums: 0, - NumMessages: 40, + NumMessages: 50, NumExtensions: 0, NumServices: 1, }, diff --git a/api/bundle/bundle.validator.pb.go b/api/bundle/bundle.validator.pb.go index 7f2146b..53c1aad 100644 --- a/api/bundle/bundle.validator.pb.go +++ b/api/bundle/bundle.validator.pb.go @@ -17,6 +17,35 @@ var _ = proto.Marshal var _ = fmt.Errorf var _ = math.Inf +func (this *OrderRecordsRequestV2) Validate() error { + return nil +} +func (this *OrderRecordsResponseV2) Validate() error { + for _, item := range this.BundleInfo { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("BundleInfo", err) + } + } + } + return nil +} +func (this *OrderBundleRecordInfo) Validate() error { + for _, item := range this.AddBundleInfo { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("AddBundleInfo", err) + } + } + } + return nil +} +func (this *OrderAddBundleRecordInfo) Validate() error { + return nil +} +func (this *PackagePriceAndTimeResponse) Validate() error { + return nil +} func (this *CommonResponse) Validate() error { return nil } @@ -94,6 +123,19 @@ func (this *OrderRecord) Validate() error { } return nil } +func (this *OrderAddRecord) Validate() error { + for _, item := range this.AddPriceOptionsList { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("AddPriceOptionsList", err) + } + } + } + return nil +} +func (this *AddPriceOptionsInfo) Validate() error { + return nil +} func (this *PriceOptionsInfo) Validate() error { return nil } @@ -210,6 +252,12 @@ func (this *ValueAddServiceDetailResponse) Validate() error { } return nil } +func (this *CalculatePriceRequest) Validate() error { + return nil +} +func (this *CalculatePriceResponse) Validate() error { + return nil +} func (this *BundleExtendRequest) Validate() error { return nil } @@ -232,9 +280,19 @@ func (this *BundleExtendRecordsListResponse) Validate() error { func (this *BundleExtendRecordItem) Validate() error { return nil } -func (this *SetBundleBalanceRequest) Validate() error { +func (this *GetBundleBalanceReq) Validate() error { return nil } -func (this *SetBundleBalanceResponse) Validate() error { +func (this *BundleBalanceItem) Validate() error { + return nil +} +func (this *GetBundleBalanceResp) Validate() error { + for _, item := range this.Data { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Data", err) + } + } + } return nil } diff --git a/api/bundle/bundle_triple.pb.go b/api/bundle/bundle_triple.pb.go index 3c4c4f1..2eb55ef 100644 --- a/api/bundle/bundle_triple.pb.go +++ b/api/bundle/bundle_triple.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-triple. DO NOT EDIT. // versions: // - protoc-gen-go-triple v1.0.8 -// - protoc v4.24.0--rc1 +// - protoc v5.29.2 // source: pb/bundle.proto package bundle @@ -43,6 +43,9 @@ type BundleClient interface { OrderRecordsList(ctx context.Context, in *OrderRecordsRequest, opts ...grpc_go.CallOption) (*OrderRecordsResponse, common.ErrorWithAttachment) OrderRecordsDetail(ctx context.Context, in *OrderRecordsDetailRequest, opts ...grpc_go.CallOption) (*OrderRecordsDetailResponse, common.ErrorWithAttachment) UpdateFinancialConfirmationStatus(ctx context.Context, in *FinancialConfirmationRequest, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) + CreateOrderAddRecord(ctx context.Context, in *OrderAddRecord, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) + PackagePriceAndTime(ctx context.Context, in *OrderRecord, opts ...grpc_go.CallOption) (*PackagePriceAndTimeResponse, common.ErrorWithAttachment) + OrderRecordsListV2(ctx context.Context, in *OrderRecordsRequestV2, opts ...grpc_go.CallOption) (*OrderRecordsResponseV2, common.ErrorWithAttachment) //增值套餐 CreateValueAddBundle(ctx context.Context, in *CreateValueAddBundleRequest, opts ...grpc_go.CallOption) (*CreateValueAddBundleResponse, common.ErrorWithAttachment) ValueAddBundleList(ctx context.Context, in *ValueAddBundleListRequest, opts ...grpc_go.CallOption) (*ValueAddBundleListResponse, common.ErrorWithAttachment) @@ -51,9 +54,12 @@ type BundleClient interface { SaveValueAddService(ctx context.Context, in *ValueAddServiceLang, opts ...grpc_go.CallOption) (*SaveResponse, common.ErrorWithAttachment) ValueAddServiceList(ctx context.Context, in *ValueAddServiceListRequest, opts ...grpc_go.CallOption) (*ValueAddServiceListResponse, common.ErrorWithAttachment) ValueAddServiceDetail(ctx context.Context, in *ValueAddServiceDetailRequest, opts ...grpc_go.CallOption) (*ValueAddServiceDetailResponse, common.ErrorWithAttachment) + ValueAddServiceLangByUuidAndLanguage(ctx context.Context, in *ValueAddServiceDetailRequest, opts ...grpc_go.CallOption) (*ValueAddServiceLang, common.ErrorWithAttachment) + CalculatePrice(ctx context.Context, in *CalculatePriceRequest, opts ...grpc_go.CallOption) (*CalculatePriceResponse, common.ErrorWithAttachment) // 余量管理 BundleExtend(ctx context.Context, in *BundleExtendRequest, opts ...grpc_go.CallOption) (*BundleExtendResponse, common.ErrorWithAttachment) BundleExtendRecordsList(ctx context.Context, in *BundleExtendRecordsListRequest, opts ...grpc_go.CallOption) (*BundleExtendRecordsListResponse, common.ErrorWithAttachment) + GetBundleBalance(ctx context.Context, in *GetBundleBalanceReq, opts ...grpc_go.CallOption) (*GetBundleBalanceResp, common.ErrorWithAttachment) } type bundleClient struct { @@ -61,29 +67,35 @@ type bundleClient struct { } type BundleClientImpl struct { - CreateBundle func(ctx context.Context, in *BundleProfile) (*CommonResponse, error) - UpdateBundle func(ctx context.Context, in *BundleProfile) (*CommonResponse, error) - DeleteBundle func(ctx context.Context, in *DelBundleRequest) (*CommonResponse, error) - HandShelf func(ctx context.Context, in *HandShelfRequest) (*CommonResponse, error) - SaveBundle func(ctx context.Context, in *BundleProfile) (*SaveResponse, error) - BundleListV2 func(ctx context.Context, in *BundleListRequest) (*BundleListResponse, error) - BundleDetailV2 func(ctx context.Context, in *BundleDetailRequest) (*BundleDetailResponseV2, error) - BundleList func(ctx context.Context, in *BundleListRequest) (*BundleListResponse, error) - BundleDetail func(ctx context.Context, in *BundleDetailRequest) (*BundleDetailResponse, error) - CreateOrderRecord func(ctx context.Context, in *OrderRecord) (*CommonResponse, error) - UpdateOrderRecord func(ctx context.Context, in *OrderRecord) (*CommonResponse, error) - UpdateOrderRecordByOrderNo func(ctx context.Context, in *OrderRecord) (*CommonResponse, error) - OrderRecordsList func(ctx context.Context, in *OrderRecordsRequest) (*OrderRecordsResponse, error) - OrderRecordsDetail func(ctx context.Context, in *OrderRecordsDetailRequest) (*OrderRecordsDetailResponse, error) - UpdateFinancialConfirmationStatus func(ctx context.Context, in *FinancialConfirmationRequest) (*CommonResponse, error) - CreateValueAddBundle func(ctx context.Context, in *CreateValueAddBundleRequest) (*CreateValueAddBundleResponse, error) - ValueAddBundleList func(ctx context.Context, in *ValueAddBundleListRequest) (*ValueAddBundleListResponse, error) - ValueAddBundleDetail func(ctx context.Context, in *ValueAddBundleDetailRequest) (*ValueAddBundleDetailResponse, error) - SaveValueAddService func(ctx context.Context, in *ValueAddServiceLang) (*SaveResponse, error) - ValueAddServiceList func(ctx context.Context, in *ValueAddServiceListRequest) (*ValueAddServiceListResponse, error) - ValueAddServiceDetail func(ctx context.Context, in *ValueAddServiceDetailRequest) (*ValueAddServiceDetailResponse, error) - BundleExtend func(ctx context.Context, in *BundleExtendRequest) (*BundleExtendResponse, error) - BundleExtendRecordsList func(ctx context.Context, in *BundleExtendRecordsListRequest) (*BundleExtendRecordsListResponse, error) + CreateBundle func(ctx context.Context, in *BundleProfile) (*CommonResponse, error) + UpdateBundle func(ctx context.Context, in *BundleProfile) (*CommonResponse, error) + DeleteBundle func(ctx context.Context, in *DelBundleRequest) (*CommonResponse, error) + HandShelf func(ctx context.Context, in *HandShelfRequest) (*CommonResponse, error) + SaveBundle func(ctx context.Context, in *BundleProfile) (*SaveResponse, error) + BundleListV2 func(ctx context.Context, in *BundleListRequest) (*BundleListResponse, error) + BundleDetailV2 func(ctx context.Context, in *BundleDetailRequest) (*BundleDetailResponseV2, error) + BundleList func(ctx context.Context, in *BundleListRequest) (*BundleListResponse, error) + BundleDetail func(ctx context.Context, in *BundleDetailRequest) (*BundleDetailResponse, error) + CreateOrderRecord func(ctx context.Context, in *OrderRecord) (*CommonResponse, error) + UpdateOrderRecord func(ctx context.Context, in *OrderRecord) (*CommonResponse, error) + UpdateOrderRecordByOrderNo func(ctx context.Context, in *OrderRecord) (*CommonResponse, error) + OrderRecordsList func(ctx context.Context, in *OrderRecordsRequest) (*OrderRecordsResponse, error) + OrderRecordsDetail func(ctx context.Context, in *OrderRecordsDetailRequest) (*OrderRecordsDetailResponse, error) + UpdateFinancialConfirmationStatus func(ctx context.Context, in *FinancialConfirmationRequest) (*CommonResponse, error) + CreateOrderAddRecord func(ctx context.Context, in *OrderAddRecord) (*CommonResponse, error) + PackagePriceAndTime func(ctx context.Context, in *OrderRecord) (*PackagePriceAndTimeResponse, error) + OrderRecordsListV2 func(ctx context.Context, in *OrderRecordsRequestV2) (*OrderRecordsResponseV2, error) + CreateValueAddBundle func(ctx context.Context, in *CreateValueAddBundleRequest) (*CreateValueAddBundleResponse, error) + ValueAddBundleList func(ctx context.Context, in *ValueAddBundleListRequest) (*ValueAddBundleListResponse, error) + ValueAddBundleDetail func(ctx context.Context, in *ValueAddBundleDetailRequest) (*ValueAddBundleDetailResponse, error) + SaveValueAddService func(ctx context.Context, in *ValueAddServiceLang) (*SaveResponse, error) + ValueAddServiceList func(ctx context.Context, in *ValueAddServiceListRequest) (*ValueAddServiceListResponse, error) + ValueAddServiceDetail func(ctx context.Context, in *ValueAddServiceDetailRequest) (*ValueAddServiceDetailResponse, error) + ValueAddServiceLangByUuidAndLanguage func(ctx context.Context, in *ValueAddServiceDetailRequest) (*ValueAddServiceLang, error) + CalculatePrice func(ctx context.Context, in *CalculatePriceRequest) (*CalculatePriceResponse, error) + BundleExtend func(ctx context.Context, in *BundleExtendRequest) (*BundleExtendResponse, error) + BundleExtendRecordsList func(ctx context.Context, in *BundleExtendRecordsListRequest) (*BundleExtendRecordsListResponse, error) + GetBundleBalance func(ctx context.Context, in *GetBundleBalanceReq) (*GetBundleBalanceResp, error) } func (c *BundleClientImpl) GetDubboStub(cc *triple.TripleConn) BundleClient { @@ -188,6 +200,24 @@ func (c *bundleClient) UpdateFinancialConfirmationStatus(ctx context.Context, in return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateFinancialConfirmationStatus", in, out) } +func (c *bundleClient) CreateOrderAddRecord(ctx context.Context, in *OrderAddRecord, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) { + out := new(CommonResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CreateOrderAddRecord", in, out) +} + +func (c *bundleClient) PackagePriceAndTime(ctx context.Context, in *OrderRecord, opts ...grpc_go.CallOption) (*PackagePriceAndTimeResponse, common.ErrorWithAttachment) { + out := new(PackagePriceAndTimeResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/PackagePriceAndTime", in, out) +} + +func (c *bundleClient) OrderRecordsListV2(ctx context.Context, in *OrderRecordsRequestV2, opts ...grpc_go.CallOption) (*OrderRecordsResponseV2, common.ErrorWithAttachment) { + out := new(OrderRecordsResponseV2) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/OrderRecordsListV2", in, out) +} + func (c *bundleClient) CreateValueAddBundle(ctx context.Context, in *CreateValueAddBundleRequest, opts ...grpc_go.CallOption) (*CreateValueAddBundleResponse, common.ErrorWithAttachment) { out := new(CreateValueAddBundleResponse) interfaceKey := ctx.Value(constant.InterfaceKey).(string) @@ -224,6 +254,18 @@ func (c *bundleClient) ValueAddServiceDetail(ctx context.Context, in *ValueAddSe return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ValueAddServiceDetail", in, out) } +func (c *bundleClient) ValueAddServiceLangByUuidAndLanguage(ctx context.Context, in *ValueAddServiceDetailRequest, opts ...grpc_go.CallOption) (*ValueAddServiceLang, common.ErrorWithAttachment) { + out := new(ValueAddServiceLang) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ValueAddServiceLangByUuidAndLanguage", in, out) +} + +func (c *bundleClient) CalculatePrice(ctx context.Context, in *CalculatePriceRequest, opts ...grpc_go.CallOption) (*CalculatePriceResponse, common.ErrorWithAttachment) { + out := new(CalculatePriceResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CalculatePrice", in, out) +} + func (c *bundleClient) BundleExtend(ctx context.Context, in *BundleExtendRequest, opts ...grpc_go.CallOption) (*BundleExtendResponse, common.ErrorWithAttachment) { out := new(BundleExtendResponse) interfaceKey := ctx.Value(constant.InterfaceKey).(string) @@ -236,6 +278,12 @@ func (c *bundleClient) BundleExtendRecordsList(ctx context.Context, in *BundleEx return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/BundleExtendRecordsList", in, out) } +func (c *bundleClient) GetBundleBalance(ctx context.Context, in *GetBundleBalanceReq, opts ...grpc_go.CallOption) (*GetBundleBalanceResp, common.ErrorWithAttachment) { + out := new(GetBundleBalanceResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetBundleBalance", in, out) +} + // BundleServer is the server API for Bundle service. // All implementations must embed UnimplementedBundleServer // for forward compatibility @@ -255,6 +303,9 @@ type BundleServer interface { OrderRecordsList(context.Context, *OrderRecordsRequest) (*OrderRecordsResponse, error) OrderRecordsDetail(context.Context, *OrderRecordsDetailRequest) (*OrderRecordsDetailResponse, error) UpdateFinancialConfirmationStatus(context.Context, *FinancialConfirmationRequest) (*CommonResponse, error) + CreateOrderAddRecord(context.Context, *OrderAddRecord) (*CommonResponse, error) + PackagePriceAndTime(context.Context, *OrderRecord) (*PackagePriceAndTimeResponse, error) + OrderRecordsListV2(context.Context, *OrderRecordsRequestV2) (*OrderRecordsResponseV2, error) //增值套餐 CreateValueAddBundle(context.Context, *CreateValueAddBundleRequest) (*CreateValueAddBundleResponse, error) ValueAddBundleList(context.Context, *ValueAddBundleListRequest) (*ValueAddBundleListResponse, error) @@ -263,9 +314,12 @@ type BundleServer interface { SaveValueAddService(context.Context, *ValueAddServiceLang) (*SaveResponse, error) ValueAddServiceList(context.Context, *ValueAddServiceListRequest) (*ValueAddServiceListResponse, error) ValueAddServiceDetail(context.Context, *ValueAddServiceDetailRequest) (*ValueAddServiceDetailResponse, error) + ValueAddServiceLangByUuidAndLanguage(context.Context, *ValueAddServiceDetailRequest) (*ValueAddServiceLang, error) + CalculatePrice(context.Context, *CalculatePriceRequest) (*CalculatePriceResponse, error) // 余量管理 BundleExtend(context.Context, *BundleExtendRequest) (*BundleExtendResponse, error) BundleExtendRecordsList(context.Context, *BundleExtendRecordsListRequest) (*BundleExtendRecordsListResponse, error) + GetBundleBalance(context.Context, *GetBundleBalanceReq) (*GetBundleBalanceResp, error) mustEmbedUnimplementedBundleServer() } @@ -319,6 +373,15 @@ func (UnimplementedBundleServer) OrderRecordsDetail(context.Context, *OrderRecor func (UnimplementedBundleServer) UpdateFinancialConfirmationStatus(context.Context, *FinancialConfirmationRequest) (*CommonResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateFinancialConfirmationStatus not implemented") } +func (UnimplementedBundleServer) CreateOrderAddRecord(context.Context, *OrderAddRecord) (*CommonResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateOrderAddRecord not implemented") +} +func (UnimplementedBundleServer) PackagePriceAndTime(context.Context, *OrderRecord) (*PackagePriceAndTimeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method PackagePriceAndTime not implemented") +} +func (UnimplementedBundleServer) OrderRecordsListV2(context.Context, *OrderRecordsRequestV2) (*OrderRecordsResponseV2, error) { + return nil, status.Errorf(codes.Unimplemented, "method OrderRecordsListV2 not implemented") +} func (UnimplementedBundleServer) CreateValueAddBundle(context.Context, *CreateValueAddBundleRequest) (*CreateValueAddBundleResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateValueAddBundle not implemented") } @@ -337,12 +400,21 @@ func (UnimplementedBundleServer) ValueAddServiceList(context.Context, *ValueAddS func (UnimplementedBundleServer) ValueAddServiceDetail(context.Context, *ValueAddServiceDetailRequest) (*ValueAddServiceDetailResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ValueAddServiceDetail not implemented") } +func (UnimplementedBundleServer) ValueAddServiceLangByUuidAndLanguage(context.Context, *ValueAddServiceDetailRequest) (*ValueAddServiceLang, error) { + return nil, status.Errorf(codes.Unimplemented, "method ValueAddServiceLangByUuidAndLanguage not implemented") +} +func (UnimplementedBundleServer) CalculatePrice(context.Context, *CalculatePriceRequest) (*CalculatePriceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CalculatePrice not implemented") +} func (UnimplementedBundleServer) BundleExtend(context.Context, *BundleExtendRequest) (*BundleExtendResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method BundleExtend not implemented") } func (UnimplementedBundleServer) BundleExtendRecordsList(context.Context, *BundleExtendRecordsListRequest) (*BundleExtendRecordsListResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method BundleExtendRecordsList not implemented") } +func (UnimplementedBundleServer) GetBundleBalance(context.Context, *GetBundleBalanceReq) (*GetBundleBalanceResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetBundleBalance not implemented") +} func (s *UnimplementedBundleServer) XXX_SetProxyImpl(impl protocol.Invoker) { s.proxyImpl = impl } @@ -806,6 +878,93 @@ func _Bundle_UpdateFinancialConfirmationStatus_Handler(srv interface{}, ctx cont return interceptor(ctx, in, info, handler) } +func _Bundle_CreateOrderAddRecord_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(OrderAddRecord) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("CreateOrderAddRecord", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Bundle_PackagePriceAndTime_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(OrderRecord) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("PackagePriceAndTime", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Bundle_OrderRecordsListV2_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(OrderRecordsRequestV2) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("OrderRecordsListV2", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + func _Bundle_CreateValueAddBundle_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { in := new(CreateValueAddBundleRequest) if err := dec(in); err != nil { @@ -980,6 +1139,64 @@ func _Bundle_ValueAddServiceDetail_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _Bundle_ValueAddServiceLangByUuidAndLanguage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ValueAddServiceDetailRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("ValueAddServiceLangByUuidAndLanguage", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Bundle_CalculatePrice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(CalculatePriceRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("CalculatePrice", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + func _Bundle_BundleExtend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { in := new(BundleExtendRequest) if err := dec(in); err != nil { @@ -1038,6 +1255,35 @@ func _Bundle_BundleExtendRecordsList_Handler(srv interface{}, ctx context.Contex return interceptor(ctx, in, info, handler) } +func _Bundle_GetBundleBalance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetBundleBalanceReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetBundleBalance", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + // Bundle_ServiceDesc is the grpc_go.ServiceDesc for Bundle service. // It's only intended for direct use with grpc_go.RegisterService, // and not to be introspected or modified (even as a copy) @@ -1105,6 +1351,18 @@ var Bundle_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "UpdateFinancialConfirmationStatus", Handler: _Bundle_UpdateFinancialConfirmationStatus_Handler, }, + { + MethodName: "CreateOrderAddRecord", + Handler: _Bundle_CreateOrderAddRecord_Handler, + }, + { + MethodName: "PackagePriceAndTime", + Handler: _Bundle_PackagePriceAndTime_Handler, + }, + { + MethodName: "OrderRecordsListV2", + Handler: _Bundle_OrderRecordsListV2_Handler, + }, { MethodName: "CreateValueAddBundle", Handler: _Bundle_CreateValueAddBundle_Handler, @@ -1129,6 +1387,14 @@ var Bundle_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "ValueAddServiceDetail", Handler: _Bundle_ValueAddServiceDetail_Handler, }, + { + MethodName: "ValueAddServiceLangByUuidAndLanguage", + Handler: _Bundle_ValueAddServiceLangByUuidAndLanguage_Handler, + }, + { + MethodName: "CalculatePrice", + Handler: _Bundle_CalculatePrice_Handler, + }, { MethodName: "BundleExtend", Handler: _Bundle_BundleExtend_Handler, @@ -1137,6 +1403,10 @@ var Bundle_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "BundleExtendRecordsList", Handler: _Bundle_BundleExtendRecordsList_Handler, }, + { + MethodName: "GetBundleBalance", + Handler: _Bundle_GetBundleBalance_Handler, + }, }, Streams: []grpc_go.StreamDesc{}, Metadata: "pb/bundle.proto", From 129d3fafa1d5eedf93467424338b57622f636d86 Mon Sep 17 00:00:00 2001 From: daiyb <570956418@qq.com> Date: Fri, 13 Jun 2025 19:00:38 +0800 Subject: [PATCH 03/18] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=AE=A1=E6=89=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/config/config.go | 1 + docs/dev/conf.ini | 2 +- docs/prod/conf.ini | 2 +- docs/test/conf.ini | 2 +- pkg/model/cast/approval.go | 24 ++++++++++++++++++++++ pkg/service/cast/approval.go | 39 ++++++++++++++++++++++++++++++++++++ pkg/service/cast/work.go | 5 +++-- pkg/utils/http.go | 34 +++++++++++++++++++++++++++++++ 8 files changed, 104 insertions(+), 5 deletions(-) create mode 100644 pkg/model/cast/approval.go create mode 100644 pkg/service/cast/approval.go create mode 100644 pkg/utils/http.go diff --git a/cmd/config/config.go b/cmd/config/config.go index 11d4629..16daf68 100644 --- a/cmd/config/config.go +++ b/cmd/config/config.go @@ -114,6 +114,7 @@ type System struct { HttpPort string Host string RedirectUri string + ErpHost string } type Oss struct { AccessKeyId string diff --git a/docs/dev/conf.ini b/docs/dev/conf.ini index 0761869..6e076bd 100644 --- a/docs/dev/conf.ini +++ b/docs/dev/conf.ini @@ -4,7 +4,7 @@ AppMode = "dev" HttpPort = ":8085" Host = "https://common.szjixun.cn" RedirectUri = "/api/redirect/url" - +ErpHost = "http://114.218.158.24:9020" [bos] Ak = "ALTAKxrqOQHnAN525Tb2GX4Bhe" Sk = "d2ecaa9d75114d3b9f42b99014198306" diff --git a/docs/prod/conf.ini b/docs/prod/conf.ini index bd00c95..0a9e81d 100644 --- a/docs/prod/conf.ini +++ b/docs/prod/conf.ini @@ -4,7 +4,7 @@ AppMode = "prod" HttpPort = ":8085" Host = "https://common.szjixun.cn" RedirectUri = "/api/redirect/url" - +ErpHost = "https://erpapi.fontree.cn" [bos] Ak = "ALTAKxrqOQHnAN525Tb2GX4Bhe" Sk = "d2ecaa9d75114d3b9f42b99014198306" diff --git a/docs/test/conf.ini b/docs/test/conf.ini index b6d7bc9..5fbd9bb 100644 --- a/docs/test/conf.ini +++ b/docs/test/conf.ini @@ -4,7 +4,7 @@ AppMode = "test" HttpPort = ":8085" Host = "https://common.szjixun.cn" RedirectUri = "/api/redirect/url" - +ErpHost = "http://114.218.158.24:9020" [bos] Ak = "ALTAKxrqOQHnAN525Tb2GX4Bhe" Sk = "d2ecaa9d75114d3b9f42b99014198306" diff --git a/pkg/model/cast/approval.go b/pkg/model/cast/approval.go new file mode 100644 index 0000000..3539ac4 --- /dev/null +++ b/pkg/model/cast/approval.go @@ -0,0 +1,24 @@ +package cast + +type ApprovalDetailResponse struct { + Status int `json:"status"` + Data Data `json:"data"` + Msg string `json:"msg"` + Code int `json:"code"` + Error *string `json:"error"` + Err string `json:"err"` + Keys []string `json:"keys"` + Positions *interface{} `json:"positions"` +} + +type Data struct { + Count int `json:"Count"` + Data []Item `json:"data"` + Status int `json:"Status"` +} + +type Item struct { + ID int `json:"ID"` + Domain string `json:"Domain"` + Status int `json:"Status"` +} diff --git a/pkg/service/cast/approval.go b/pkg/service/cast/approval.go new file mode 100644 index 0000000..06e3705 --- /dev/null +++ b/pkg/service/cast/approval.go @@ -0,0 +1,39 @@ +package cast + +import ( + "encoding/json" + "errors" + "fmt" + "fonchain-fiee/cmd/config" + "fonchain-fiee/pkg/e" + "fonchain-fiee/pkg/utils" + modelCast "fonchain-fiee/pkg/model/cast" +) + +type CastService struct { +} + +func (c *CastService) ApprovalDetail(approvalIds []int) (data map[int]int, err error) { + idsBytes, _ := json.Marshal(approvalIds) + var respBody string + url := fmt.Sprintf(config.AppConfig.System.ErpHost + "/approval/list/ex") + respBody, err = utils.Post(url, string(idsBytes)) + if err != nil { + return + } + var respDetail modelCast.ApprovalDetailResponse + if err = json.Unmarshal([]byte(respBody), &respDetail); err != nil { + err = errors.New(e.GetMsg(e.JsonUnmarshal)) + return + } + if respDetail.Status == 0 && len(respDetail.Data.Data) > 0 { + data = make(map[int]int, len(respDetail.Data.Data)) + for _, v := range respDetail.Data.Data { + data[v.ID] = v.Status + } + } else { + err = errors.New(e.GetMsg(e.ErrorHttp)) + return + } + return +} diff --git a/pkg/service/cast/work.go b/pkg/service/cast/work.go index eddb1a9..d6bca84 100644 --- a/pkg/service/cast/work.go +++ b/pkg/service/cast/work.go @@ -81,13 +81,14 @@ func UpdateWorkVideo(ctx *gin.Context) { } func UpdateApproval(ctx *gin.Context) { - var req *cast.UpdateApprovalReq + var req *cast.UpdateStatusReq var err error if err = ctx.ShouldBind(&req); err != nil { service.Error(ctx, err) return } - resp, err := service.CastProvider.UpdateApproval(ctx, req) + req.WorkAction = cast.WorkActionENUM_APPROVAL + resp, err := service.CastProvider.UpdateStatus(ctx, req) if err != nil { service.Error(ctx, err) return diff --git a/pkg/utils/http.go b/pkg/utils/http.go new file mode 100644 index 0000000..0ab8e10 --- /dev/null +++ b/pkg/utils/http.go @@ -0,0 +1,34 @@ +package utils + +import ( + "bytes" + "io/ioutil" + "net/http" +) + +func Post(url, data string) (string, error) { + reader := bytes.NewReader([]byte(data)) + + request, err := http.NewRequest("POST", url, reader) + if err != nil { + return "", err + } + defer request.Body.Close() //程序在使用完回复后必须关闭回复的主体 + request.Header.Set("Content-Type", "application/json;charset=UTF-8") + //必须设定该参数,POST参数才能正常提交,意思是以json串提交数据 + + client := http.Client{} + resp, err := client.Do(request) //Do 方法发送请求,返回 HTTP 回复 + if err != nil { + return "", err + } + + respBytes, err := ioutil.ReadAll(resp.Body) + if err != nil { + return "", err + } + + //byte数组直接转成string,优化内存 + // str := (*string)(unsafe.Pointer(&respBytes)) + return string(respBytes), nil +} From a439342ba2b11ddfc4a9b58804887ca0dac55ffa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A1=80=E5=B0=BC=E9=BE=9F?= <365252428@qq.com> Date: Fri, 13 Jun 2025 19:25:39 +0800 Subject: [PATCH 04/18] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=88=9B=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/bundle/bundle.pb.go | 3521 +++++++++++++++++++++-------- api/bundle/bundle.validator.pb.go | 77 +- api/bundle/bundle_triple.pb.go | 285 ++- pkg/router/router.go | 2 +- pkg/service/bundle/bundleOrder.go | 202 +- pkg/service/bundle/common/msg.go | 1 + 6 files changed, 2944 insertions(+), 1144 deletions(-) diff --git a/api/bundle/bundle.pb.go b/api/bundle/bundle.pb.go index a41b902..ae776f1 100644 --- a/api/bundle/bundle.pb.go +++ b/api/bundle/bundle.pb.go @@ -22,6 +22,300 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type OrderCreateRecord struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BundleUuid string `protobuf:"bytes,1,opt,name=bundleUuid,proto3" json:"bundleUuid"` + Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language"` + ExpirationTime string `protobuf:"bytes,3,opt,name=expirationTime,proto3" json:"expirationTime"` + BundleName string `protobuf:"bytes,4,opt,name=bundleName,proto3" json:"bundleName"` + CustomerID string `protobuf:"bytes,5,opt,name=customerID,proto3" json:"customerID"` + CustomerNum string `protobuf:"bytes,6,opt,name=customerNum,proto3" json:"customerNum"` + CustomerName string `protobuf:"bytes,7,opt,name=customerName,proto3" json:"customerName"` + Amount float32 `protobuf:"fixed32,8,opt,name=amount,proto3" json:"amount"` + AmountType int64 `protobuf:"varint,9,opt,name=amountType,proto3" json:"amountType"` + SignContract string `protobuf:"bytes,10,opt,name=signContract,proto3" json:"signContract"` + Signature string `protobuf:"bytes,11,opt,name=signature,proto3" json:"signature"` + SignedTime string `protobuf:"bytes,12,opt,name=signedTime,proto3" json:"signedTime"` + Status int64 `protobuf:"varint,13,opt,name=status,proto3" json:"status"` + PayTime string `protobuf:"bytes,14,opt,name=payTime,proto3" json:"payTime"` + ContractNo string `protobuf:"bytes,15,opt,name=contractNo,proto3" json:"contractNo"` + TotalAmount float32 `protobuf:"fixed32,16,opt,name=totalAmount,proto3" json:"totalAmount"` //总金额 + BundleCommonUid string `protobuf:"bytes,17,opt,name=bundleCommonUid,proto3" json:"bundleCommonUid"` + Snapshot string `protobuf:"bytes,18,opt,name=snapshot,proto3" json:"snapshot"` + AddRecords []*OrderCreateAddRecord `protobuf:"bytes,19,rep,name=addRecords,proto3" json:"addRecords"` //增值服务 +} + +func (x *OrderCreateRecord) Reset() { + *x = OrderCreateRecord{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrderCreateRecord) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrderCreateRecord) ProtoMessage() {} + +func (x *OrderCreateRecord) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrderCreateRecord.ProtoReflect.Descriptor instead. +func (*OrderCreateRecord) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{0} +} + +func (x *OrderCreateRecord) GetBundleUuid() string { + if x != nil { + return x.BundleUuid + } + return "" +} + +func (x *OrderCreateRecord) GetLanguage() string { + if x != nil { + return x.Language + } + return "" +} + +func (x *OrderCreateRecord) GetExpirationTime() string { + if x != nil { + return x.ExpirationTime + } + return "" +} + +func (x *OrderCreateRecord) GetBundleName() string { + if x != nil { + return x.BundleName + } + return "" +} + +func (x *OrderCreateRecord) GetCustomerID() string { + if x != nil { + return x.CustomerID + } + return "" +} + +func (x *OrderCreateRecord) GetCustomerNum() string { + if x != nil { + return x.CustomerNum + } + return "" +} + +func (x *OrderCreateRecord) GetCustomerName() string { + if x != nil { + return x.CustomerName + } + return "" +} + +func (x *OrderCreateRecord) GetAmount() float32 { + if x != nil { + return x.Amount + } + return 0 +} + +func (x *OrderCreateRecord) GetAmountType() int64 { + if x != nil { + return x.AmountType + } + return 0 +} + +func (x *OrderCreateRecord) GetSignContract() string { + if x != nil { + return x.SignContract + } + return "" +} + +func (x *OrderCreateRecord) GetSignature() string { + if x != nil { + return x.Signature + } + return "" +} + +func (x *OrderCreateRecord) GetSignedTime() string { + if x != nil { + return x.SignedTime + } + return "" +} + +func (x *OrderCreateRecord) GetStatus() int64 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *OrderCreateRecord) GetPayTime() string { + if x != nil { + return x.PayTime + } + return "" +} + +func (x *OrderCreateRecord) GetContractNo() string { + if x != nil { + return x.ContractNo + } + return "" +} + +func (x *OrderCreateRecord) GetTotalAmount() float32 { + if x != nil { + return x.TotalAmount + } + return 0 +} + +func (x *OrderCreateRecord) GetBundleCommonUid() string { + if x != nil { + return x.BundleCommonUid + } + return "" +} + +func (x *OrderCreateRecord) GetSnapshot() string { + if x != nil { + return x.Snapshot + } + return "" +} + +func (x *OrderCreateRecord) GetAddRecords() []*OrderCreateAddRecord { + if x != nil { + return x.AddRecords + } + return nil +} + +type OrderCreateAddRecord struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ServiceType int32 `protobuf:"varint,1,opt,name=serviceType,proto3" json:"serviceType"` + ValueUid string `protobuf:"bytes,2,opt,name=valueUid,proto3" json:"valueUid"` + CurrencyType int64 `protobuf:"varint,3,opt,name=currencyType,proto3" json:"currencyType"` + Amount float32 `protobuf:"fixed32,4,opt,name=amount,proto3" json:"amount"` + Num int32 `protobuf:"varint,5,opt,name=num,proto3" json:"num"` + Unit string `protobuf:"bytes,6,opt,name=unit,proto3" json:"unit"` + Source int32 `protobuf:"varint,7,opt,name=source,proto3" json:"source"` + PaymentStatus int32 `protobuf:"varint,8,opt,name=paymentStatus,proto3" json:"paymentStatus"` +} + +func (x *OrderCreateAddRecord) Reset() { + *x = OrderCreateAddRecord{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrderCreateAddRecord) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrderCreateAddRecord) ProtoMessage() {} + +func (x *OrderCreateAddRecord) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrderCreateAddRecord.ProtoReflect.Descriptor instead. +func (*OrderCreateAddRecord) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{1} +} + +func (x *OrderCreateAddRecord) GetServiceType() int32 { + if x != nil { + return x.ServiceType + } + return 0 +} + +func (x *OrderCreateAddRecord) GetValueUid() string { + if x != nil { + return x.ValueUid + } + return "" +} + +func (x *OrderCreateAddRecord) GetCurrencyType() int64 { + if x != nil { + return x.CurrencyType + } + return 0 +} + +func (x *OrderCreateAddRecord) GetAmount() float32 { + if x != nil { + return x.Amount + } + return 0 +} + +func (x *OrderCreateAddRecord) GetNum() int32 { + if x != nil { + return x.Num + } + return 0 +} + +func (x *OrderCreateAddRecord) GetUnit() string { + if x != nil { + return x.Unit + } + return "" +} + +func (x *OrderCreateAddRecord) GetSource() int32 { + if x != nil { + return x.Source + } + return 0 +} + +func (x *OrderCreateAddRecord) GetPaymentStatus() int32 { + if x != nil { + return x.PaymentStatus + } + return 0 +} + type OrderRecordsRequestV2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -46,7 +340,7 @@ type OrderRecordsRequestV2 struct { func (x *OrderRecordsRequestV2) Reset() { *x = OrderRecordsRequestV2{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[0] + mi := &file_pb_bundle_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -59,7 +353,7 @@ func (x *OrderRecordsRequestV2) String() string { func (*OrderRecordsRequestV2) ProtoMessage() {} func (x *OrderRecordsRequestV2) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[0] + mi := &file_pb_bundle_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -72,7 +366,7 @@ func (x *OrderRecordsRequestV2) ProtoReflect() protoreflect.Message { // Deprecated: Use OrderRecordsRequestV2.ProtoReflect.Descriptor instead. func (*OrderRecordsRequestV2) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{0} + return file_pb_bundle_proto_rawDescGZIP(), []int{2} } func (x *OrderRecordsRequestV2) GetCustomerName() string { @@ -187,7 +481,7 @@ type OrderRecordsResponseV2 struct { func (x *OrderRecordsResponseV2) Reset() { *x = OrderRecordsResponseV2{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[1] + mi := &file_pb_bundle_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -200,7 +494,7 @@ func (x *OrderRecordsResponseV2) String() string { func (*OrderRecordsResponseV2) ProtoMessage() {} func (x *OrderRecordsResponseV2) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[1] + mi := &file_pb_bundle_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -213,7 +507,7 @@ func (x *OrderRecordsResponseV2) ProtoReflect() protoreflect.Message { // Deprecated: Use OrderRecordsResponseV2.ProtoReflect.Descriptor instead. func (*OrderRecordsResponseV2) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{1} + return file_pb_bundle_proto_rawDescGZIP(), []int{3} } func (x *OrderRecordsResponseV2) GetBundleInfo() []*OrderBundleRecordInfo { @@ -263,7 +557,7 @@ type OrderBundleRecordInfo struct { func (x *OrderBundleRecordInfo) Reset() { *x = OrderBundleRecordInfo{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[2] + mi := &file_pb_bundle_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -276,7 +570,7 @@ func (x *OrderBundleRecordInfo) String() string { func (*OrderBundleRecordInfo) ProtoMessage() {} func (x *OrderBundleRecordInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[2] + mi := &file_pb_bundle_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -289,7 +583,7 @@ func (x *OrderBundleRecordInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use OrderBundleRecordInfo.ProtoReflect.Descriptor instead. func (*OrderBundleRecordInfo) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{2} + return file_pb_bundle_proto_rawDescGZIP(), []int{4} } func (x *OrderBundleRecordInfo) GetOrderNo() string { @@ -375,7 +669,7 @@ type OrderAddBundleRecordInfo struct { func (x *OrderAddBundleRecordInfo) Reset() { *x = OrderAddBundleRecordInfo{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[3] + mi := &file_pb_bundle_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -388,7 +682,7 @@ func (x *OrderAddBundleRecordInfo) String() string { func (*OrderAddBundleRecordInfo) ProtoMessage() {} func (x *OrderAddBundleRecordInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[3] + mi := &file_pb_bundle_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -401,7 +695,7 @@ func (x *OrderAddBundleRecordInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use OrderAddBundleRecordInfo.ProtoReflect.Descriptor instead. func (*OrderAddBundleRecordInfo) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{3} + return file_pb_bundle_proto_rawDescGZIP(), []int{5} } func (x *OrderAddBundleRecordInfo) GetOrderAddNo() string { @@ -486,7 +780,7 @@ type PackagePriceAndTimeResponse struct { func (x *PackagePriceAndTimeResponse) Reset() { *x = PackagePriceAndTimeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[4] + mi := &file_pb_bundle_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -499,7 +793,7 @@ func (x *PackagePriceAndTimeResponse) String() string { func (*PackagePriceAndTimeResponse) ProtoMessage() {} func (x *PackagePriceAndTimeResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[4] + mi := &file_pb_bundle_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -512,7 +806,7 @@ func (x *PackagePriceAndTimeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PackagePriceAndTimeResponse.ProtoReflect.Descriptor instead. func (*PackagePriceAndTimeResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{4} + return file_pb_bundle_proto_rawDescGZIP(), []int{6} } func (x *PackagePriceAndTimeResponse) GetPrice() float32 { @@ -542,7 +836,7 @@ type CommonResponse struct { func (x *CommonResponse) Reset() { *x = CommonResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[5] + mi := &file_pb_bundle_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -555,7 +849,7 @@ func (x *CommonResponse) String() string { func (*CommonResponse) ProtoMessage() {} func (x *CommonResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[5] + mi := &file_pb_bundle_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -568,7 +862,7 @@ func (x *CommonResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CommonResponse.ProtoReflect.Descriptor instead. func (*CommonResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{5} + return file_pb_bundle_proto_rawDescGZIP(), []int{7} } func (x *CommonResponse) GetMsg() string { @@ -615,12 +909,13 @@ type BundleProfile struct { ShelfStatus int64 `protobuf:"varint,16,opt,name=shelfStatus,proto3" json:"shelfStatus"` // 1 上架 2 下架 SelectValueAddService []*SelectValueAddService `protobuf:"bytes,17,rep,name=selectValueAddService,json=SelectValueAddService,proto3" json:"selectValueAddService"` BundleProfileLang []*BundleProfileLang `protobuf:"bytes,18,rep,name=bundleProfileLang,proto3" json:"bundleProfileLang"` + ImgOption int32 `protobuf:"varint,19,opt,name=imgOption,proto3" json:"imgOption"` } func (x *BundleProfile) Reset() { *x = BundleProfile{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[6] + mi := &file_pb_bundle_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -633,7 +928,7 @@ func (x *BundleProfile) String() string { func (*BundleProfile) ProtoMessage() {} func (x *BundleProfile) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[6] + mi := &file_pb_bundle_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -646,7 +941,7 @@ func (x *BundleProfile) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleProfile.ProtoReflect.Descriptor instead. func (*BundleProfile) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{6} + return file_pb_bundle_proto_rawDescGZIP(), []int{8} } func (x *BundleProfile) GetUuid() string { @@ -775,29 +1070,32 @@ func (x *BundleProfile) GetBundleProfileLang() []*BundleProfileLang { return nil } +func (x *BundleProfile) GetImgOption() int32 { + if x != nil { + return x.ImgOption + } + return 0 +} + type BundleProfileLang struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"` - Price float32 `protobuf:"fixed32,3,opt,name=price,proto3" json:"price"` - PriceType int64 `protobuf:"varint,4,opt,name=priceType,proto3" json:"priceType"` - Content string `protobuf:"bytes,5,opt,name=content,proto3" json:"content"` - Language string `protobuf:"bytes,6,opt,name=language,proto3" json:"language"` - CreatedAt string `protobuf:"bytes,7,opt,name=createdAt,proto3" json:"createdAt"` - UpdatedAt string `protobuf:"bytes,8,opt,name=updatedAt,proto3" json:"updatedAt"` - BgImg1 string `protobuf:"bytes,9,opt,name=bgImg1,proto3" json:"bgImg1"` - BgImg2 string `protobuf:"bytes,10,opt,name=bgImg2,proto3" json:"bgImg2"` - Sort int64 `protobuf:"varint,11,opt,name=sort,proto3" json:"sort"` - ValueAddServiceLang []*ValueAddServiceLang `protobuf:"bytes,12,rep,name=valueAddServiceLang,json=ValueAddServiceLang,proto3" json:"valueAddServiceLang"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"` + Price float32 `protobuf:"fixed32,3,opt,name=price,proto3" json:"price"` + PriceType int64 `protobuf:"varint,4,opt,name=priceType,proto3" json:"priceType"` + Content string `protobuf:"bytes,5,opt,name=content,proto3" json:"content"` + Language string `protobuf:"bytes,6,opt,name=language,proto3" json:"language"` + CreatedAt string `protobuf:"bytes,7,opt,name=createdAt,proto3" json:"createdAt"` + UpdatedAt string `protobuf:"bytes,8,opt,name=updatedAt,proto3" json:"updatedAt"` } func (x *BundleProfileLang) Reset() { *x = BundleProfileLang{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[7] + mi := &file_pb_bundle_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -810,7 +1108,7 @@ func (x *BundleProfileLang) String() string { func (*BundleProfileLang) ProtoMessage() {} func (x *BundleProfileLang) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[7] + mi := &file_pb_bundle_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -823,7 +1121,7 @@ func (x *BundleProfileLang) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleProfileLang.ProtoReflect.Descriptor instead. func (*BundleProfileLang) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{7} + return file_pb_bundle_proto_rawDescGZIP(), []int{9} } func (x *BundleProfileLang) GetUuid() string { @@ -882,34 +1180,6 @@ func (x *BundleProfileLang) GetUpdatedAt() string { return "" } -func (x *BundleProfileLang) GetBgImg1() string { - if x != nil { - return x.BgImg1 - } - return "" -} - -func (x *BundleProfileLang) GetBgImg2() string { - if x != nil { - return x.BgImg2 - } - return "" -} - -func (x *BundleProfileLang) GetSort() int64 { - if x != nil { - return x.Sort - } - return 0 -} - -func (x *BundleProfileLang) GetValueAddServiceLang() []*ValueAddServiceLang { - if x != nil { - return x.ValueAddServiceLang - } - return nil -} - type SaveResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -923,7 +1193,7 @@ type SaveResponse struct { func (x *SaveResponse) Reset() { *x = SaveResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[8] + mi := &file_pb_bundle_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -936,7 +1206,7 @@ func (x *SaveResponse) String() string { func (*SaveResponse) ProtoMessage() {} func (x *SaveResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[8] + mi := &file_pb_bundle_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -949,7 +1219,7 @@ func (x *SaveResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SaveResponse.ProtoReflect.Descriptor instead. func (*SaveResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{8} + return file_pb_bundle_proto_rawDescGZIP(), []int{10} } func (x *SaveResponse) GetMsg() string { @@ -986,7 +1256,7 @@ type SelectValueAddService struct { func (x *SelectValueAddService) Reset() { *x = SelectValueAddService{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[9] + mi := &file_pb_bundle_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -999,7 +1269,7 @@ func (x *SelectValueAddService) String() string { func (*SelectValueAddService) ProtoMessage() {} func (x *SelectValueAddService) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[9] + mi := &file_pb_bundle_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1012,7 +1282,7 @@ func (x *SelectValueAddService) ProtoReflect() protoreflect.Message { // Deprecated: Use SelectValueAddService.ProtoReflect.Descriptor instead. func (*SelectValueAddService) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{9} + return file_pb_bundle_proto_rawDescGZIP(), []int{11} } func (x *SelectValueAddService) GetValueAddUuid() string { @@ -1047,7 +1317,7 @@ type DelBundleRequest struct { func (x *DelBundleRequest) Reset() { *x = DelBundleRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[10] + mi := &file_pb_bundle_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1060,7 +1330,7 @@ func (x *DelBundleRequest) String() string { func (*DelBundleRequest) ProtoMessage() {} func (x *DelBundleRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[10] + mi := &file_pb_bundle_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1073,7 +1343,7 @@ func (x *DelBundleRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DelBundleRequest.ProtoReflect.Descriptor instead. func (*DelBundleRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{10} + return file_pb_bundle_proto_rawDescGZIP(), []int{12} } func (x *DelBundleRequest) GetUuid() string { @@ -1098,7 +1368,7 @@ type BundleListRequest struct { func (x *BundleListRequest) Reset() { *x = BundleListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[11] + mi := &file_pb_bundle_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1111,7 +1381,7 @@ func (x *BundleListRequest) String() string { func (*BundleListRequest) ProtoMessage() {} func (x *BundleListRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[11] + mi := &file_pb_bundle_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1124,7 +1394,7 @@ func (x *BundleListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleListRequest.ProtoReflect.Descriptor instead. func (*BundleListRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{11} + return file_pb_bundle_proto_rawDescGZIP(), []int{13} } func (x *BundleListRequest) GetPage() int32 { @@ -1174,7 +1444,7 @@ type BundleListResponse struct { func (x *BundleListResponse) Reset() { *x = BundleListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[12] + mi := &file_pb_bundle_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1187,7 +1457,7 @@ func (x *BundleListResponse) String() string { func (*BundleListResponse) ProtoMessage() {} func (x *BundleListResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[12] + mi := &file_pb_bundle_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1200,7 +1470,7 @@ func (x *BundleListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleListResponse.ProtoReflect.Descriptor instead. func (*BundleListResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{12} + return file_pb_bundle_proto_rawDescGZIP(), []int{14} } func (x *BundleListResponse) GetBundles() []*BundleProfile { @@ -1229,7 +1499,7 @@ type BundleDetailRequest struct { func (x *BundleDetailRequest) Reset() { *x = BundleDetailRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[13] + mi := &file_pb_bundle_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1242,7 +1512,7 @@ func (x *BundleDetailRequest) String() string { func (*BundleDetailRequest) ProtoMessage() {} func (x *BundleDetailRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[13] + mi := &file_pb_bundle_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1255,7 +1525,7 @@ func (x *BundleDetailRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleDetailRequest.ProtoReflect.Descriptor instead. func (*BundleDetailRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{13} + return file_pb_bundle_proto_rawDescGZIP(), []int{15} } func (x *BundleDetailRequest) GetUuid() string { @@ -1284,7 +1554,7 @@ type HandShelfRequest struct { func (x *HandShelfRequest) Reset() { *x = HandShelfRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[14] + mi := &file_pb_bundle_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1297,7 +1567,7 @@ func (x *HandShelfRequest) String() string { func (*HandShelfRequest) ProtoMessage() {} func (x *HandShelfRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[14] + mi := &file_pb_bundle_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1310,7 +1580,7 @@ func (x *HandShelfRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use HandShelfRequest.ProtoReflect.Descriptor instead. func (*HandShelfRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{14} + return file_pb_bundle_proto_rawDescGZIP(), []int{16} } func (x *HandShelfRequest) GetUuid() string { @@ -1339,7 +1609,7 @@ type BundleDetailResponse struct { func (x *BundleDetailResponse) Reset() { *x = BundleDetailResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[15] + mi := &file_pb_bundle_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1352,7 +1622,7 @@ func (x *BundleDetailResponse) String() string { func (*BundleDetailResponse) ProtoMessage() {} func (x *BundleDetailResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[15] + mi := &file_pb_bundle_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1365,7 +1635,7 @@ func (x *BundleDetailResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleDetailResponse.ProtoReflect.Descriptor instead. func (*BundleDetailResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{15} + return file_pb_bundle_proto_rawDescGZIP(), []int{17} } func (x *BundleDetailResponse) GetBundle() *BundleProfile { @@ -1387,15 +1657,14 @@ type BundleDetailResponseV2 struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Bundle *BundleProfileLang `protobuf:"bytes,1,opt,name=bundle,proto3" json:"bundle"` - SelectValueAddService []*SelectValueAddService `protobuf:"bytes,2,rep,name=selectValueAddService,json=SelectValueAddService,proto3" json:"selectValueAddService"` - Msg string `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg"` + Bundle *BundleProfile `protobuf:"bytes,1,opt,name=bundle,proto3" json:"bundle"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg"` } func (x *BundleDetailResponseV2) Reset() { *x = BundleDetailResponseV2{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[16] + mi := &file_pb_bundle_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1408,7 +1677,7 @@ func (x *BundleDetailResponseV2) String() string { func (*BundleDetailResponseV2) ProtoMessage() {} func (x *BundleDetailResponseV2) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[16] + mi := &file_pb_bundle_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1421,23 +1690,16 @@ func (x *BundleDetailResponseV2) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleDetailResponseV2.ProtoReflect.Descriptor instead. func (*BundleDetailResponseV2) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{16} + return file_pb_bundle_proto_rawDescGZIP(), []int{18} } -func (x *BundleDetailResponseV2) GetBundle() *BundleProfileLang { +func (x *BundleDetailResponseV2) GetBundle() *BundleProfile { if x != nil { return x.Bundle } return nil } -func (x *BundleDetailResponseV2) GetSelectValueAddService() []*SelectValueAddService { - if x != nil { - return x.SelectValueAddService - } - return nil -} - func (x *BundleDetailResponseV2) GetMsg() string { if x != nil { return x.Msg @@ -1493,7 +1755,7 @@ type OrderRecord struct { func (x *OrderRecord) Reset() { *x = OrderRecord{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[17] + mi := &file_pb_bundle_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1506,7 +1768,7 @@ func (x *OrderRecord) String() string { func (*OrderRecord) ProtoMessage() {} func (x *OrderRecord) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[17] + mi := &file_pb_bundle_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1519,7 +1781,7 @@ func (x *OrderRecord) ProtoReflect() protoreflect.Message { // Deprecated: Use OrderRecord.ProtoReflect.Descriptor instead. func (*OrderRecord) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{17} + return file_pb_bundle_proto_rawDescGZIP(), []int{19} } func (x *OrderRecord) GetUuid() string { @@ -1811,7 +2073,7 @@ type OrderAddRecord struct { func (x *OrderAddRecord) Reset() { *x = OrderAddRecord{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[18] + mi := &file_pb_bundle_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1824,7 +2086,7 @@ func (x *OrderAddRecord) String() string { func (*OrderAddRecord) ProtoMessage() {} func (x *OrderAddRecord) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[18] + mi := &file_pb_bundle_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1837,7 +2099,7 @@ func (x *OrderAddRecord) ProtoReflect() protoreflect.Message { // Deprecated: Use OrderAddRecord.ProtoReflect.Descriptor instead. func (*OrderAddRecord) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{18} + return file_pb_bundle_proto_rawDescGZIP(), []int{20} } func (x *OrderAddRecord) GetBundleUuid() string { @@ -1941,7 +2203,7 @@ type AddPriceOptionsInfo struct { func (x *AddPriceOptionsInfo) Reset() { *x = AddPriceOptionsInfo{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[19] + mi := &file_pb_bundle_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1954,7 +2216,7 @@ func (x *AddPriceOptionsInfo) String() string { func (*AddPriceOptionsInfo) ProtoMessage() {} func (x *AddPriceOptionsInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[19] + mi := &file_pb_bundle_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1967,7 +2229,7 @@ func (x *AddPriceOptionsInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use AddPriceOptionsInfo.ProtoReflect.Descriptor instead. func (*AddPriceOptionsInfo) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{19} + return file_pb_bundle_proto_rawDescGZIP(), []int{21} } func (x *AddPriceOptionsInfo) GetId() int32 { @@ -2026,12 +2288,13 @@ type PriceOptionsInfo struct { Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` ValueUid string `protobuf:"bytes,2,opt,name=valueUid,proto3" json:"valueUid"` + Num int32 `protobuf:"varint,3,opt,name=num,proto3" json:"num"` } func (x *PriceOptionsInfo) Reset() { *x = PriceOptionsInfo{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[20] + mi := &file_pb_bundle_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2044,7 +2307,7 @@ func (x *PriceOptionsInfo) String() string { func (*PriceOptionsInfo) ProtoMessage() {} func (x *PriceOptionsInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[20] + mi := &file_pb_bundle_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2057,7 +2320,7 @@ func (x *PriceOptionsInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use PriceOptionsInfo.ProtoReflect.Descriptor instead. func (*PriceOptionsInfo) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{20} + return file_pb_bundle_proto_rawDescGZIP(), []int{22} } func (x *PriceOptionsInfo) GetId() int32 { @@ -2074,6 +2337,13 @@ func (x *PriceOptionsInfo) GetValueUid() string { return "" } +func (x *PriceOptionsInfo) GetNum() int32 { + if x != nil { + return x.Num + } + return 0 +} + type OrderRecordsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2100,7 +2370,7 @@ type OrderRecordsRequest struct { func (x *OrderRecordsRequest) Reset() { *x = OrderRecordsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[21] + mi := &file_pb_bundle_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2113,7 +2383,7 @@ func (x *OrderRecordsRequest) String() string { func (*OrderRecordsRequest) ProtoMessage() {} func (x *OrderRecordsRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[21] + mi := &file_pb_bundle_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2126,7 +2396,7 @@ func (x *OrderRecordsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use OrderRecordsRequest.ProtoReflect.Descriptor instead. func (*OrderRecordsRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{21} + return file_pb_bundle_proto_rawDescGZIP(), []int{23} } func (x *OrderRecordsRequest) GetPage() int32 { @@ -2253,7 +2523,7 @@ type OrderRecordsResponse struct { func (x *OrderRecordsResponse) Reset() { *x = OrderRecordsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[22] + mi := &file_pb_bundle_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2266,7 +2536,7 @@ func (x *OrderRecordsResponse) String() string { func (*OrderRecordsResponse) ProtoMessage() {} func (x *OrderRecordsResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[22] + mi := &file_pb_bundle_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2279,7 +2549,7 @@ func (x *OrderRecordsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use OrderRecordsResponse.ProtoReflect.Descriptor instead. func (*OrderRecordsResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{22} + return file_pb_bundle_proto_rawDescGZIP(), []int{24} } func (x *OrderRecordsResponse) GetOrderRecords() []*OrderRecord { @@ -2310,7 +2580,7 @@ type OrderRecordsDetailRequest struct { func (x *OrderRecordsDetailRequest) Reset() { *x = OrderRecordsDetailRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[23] + mi := &file_pb_bundle_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2323,7 +2593,7 @@ func (x *OrderRecordsDetailRequest) String() string { func (*OrderRecordsDetailRequest) ProtoMessage() {} func (x *OrderRecordsDetailRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[23] + mi := &file_pb_bundle_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2336,7 +2606,7 @@ func (x *OrderRecordsDetailRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use OrderRecordsDetailRequest.ProtoReflect.Descriptor instead. func (*OrderRecordsDetailRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{23} + return file_pb_bundle_proto_rawDescGZIP(), []int{25} } func (x *OrderRecordsDetailRequest) GetUuid() string { @@ -2379,7 +2649,7 @@ type OrderRecordsDetailResponse struct { func (x *OrderRecordsDetailResponse) Reset() { *x = OrderRecordsDetailResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[24] + mi := &file_pb_bundle_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2392,7 +2662,7 @@ func (x *OrderRecordsDetailResponse) String() string { func (*OrderRecordsDetailResponse) ProtoMessage() {} func (x *OrderRecordsDetailResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[24] + mi := &file_pb_bundle_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2405,7 +2675,7 @@ func (x *OrderRecordsDetailResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use OrderRecordsDetailResponse.ProtoReflect.Descriptor instead. func (*OrderRecordsDetailResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{24} + return file_pb_bundle_proto_rawDescGZIP(), []int{26} } func (x *OrderRecordsDetailResponse) GetOrderRecord() *OrderRecord { @@ -2443,7 +2713,7 @@ type ValueAddBundleProfile struct { func (x *ValueAddBundleProfile) Reset() { *x = ValueAddBundleProfile{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[25] + mi := &file_pb_bundle_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2456,7 +2726,7 @@ func (x *ValueAddBundleProfile) String() string { func (*ValueAddBundleProfile) ProtoMessage() {} func (x *ValueAddBundleProfile) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[25] + mi := &file_pb_bundle_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2469,7 +2739,7 @@ func (x *ValueAddBundleProfile) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddBundleProfile.ProtoReflect.Descriptor instead. func (*ValueAddBundleProfile) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{25} + return file_pb_bundle_proto_rawDescGZIP(), []int{27} } func (x *ValueAddBundleProfile) GetUuid() string { @@ -2553,7 +2823,7 @@ type CreateValueAddBundleRequest struct { func (x *CreateValueAddBundleRequest) Reset() { *x = CreateValueAddBundleRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[26] + mi := &file_pb_bundle_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2566,7 +2836,7 @@ func (x *CreateValueAddBundleRequest) String() string { func (*CreateValueAddBundleRequest) ProtoMessage() {} func (x *CreateValueAddBundleRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[26] + mi := &file_pb_bundle_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2579,7 +2849,7 @@ func (x *CreateValueAddBundleRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateValueAddBundleRequest.ProtoReflect.Descriptor instead. func (*CreateValueAddBundleRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{26} + return file_pb_bundle_proto_rawDescGZIP(), []int{28} } func (x *CreateValueAddBundleRequest) GetNum() int32 { @@ -2603,7 +2873,7 @@ type CreateValueAddBundleResponse struct { func (x *CreateValueAddBundleResponse) Reset() { *x = CreateValueAddBundleResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[27] + mi := &file_pb_bundle_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2616,7 +2886,7 @@ func (x *CreateValueAddBundleResponse) String() string { func (*CreateValueAddBundleResponse) ProtoMessage() {} func (x *CreateValueAddBundleResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[27] + mi := &file_pb_bundle_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2629,7 +2899,7 @@ func (x *CreateValueAddBundleResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateValueAddBundleResponse.ProtoReflect.Descriptor instead. func (*CreateValueAddBundleResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{27} + return file_pb_bundle_proto_rawDescGZIP(), []int{29} } func (x *CreateValueAddBundleResponse) GetUuid() string { @@ -2674,7 +2944,7 @@ type ValueAddBundleListRequest struct { func (x *ValueAddBundleListRequest) Reset() { *x = ValueAddBundleListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[28] + mi := &file_pb_bundle_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2687,7 +2957,7 @@ func (x *ValueAddBundleListRequest) String() string { func (*ValueAddBundleListRequest) ProtoMessage() {} func (x *ValueAddBundleListRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[28] + mi := &file_pb_bundle_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2700,7 +2970,7 @@ func (x *ValueAddBundleListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddBundleListRequest.ProtoReflect.Descriptor instead. func (*ValueAddBundleListRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{28} + return file_pb_bundle_proto_rawDescGZIP(), []int{30} } func (x *ValueAddBundleListRequest) GetUserId() int32 { @@ -2742,7 +3012,7 @@ type ValueAddBundleListResponse struct { func (x *ValueAddBundleListResponse) Reset() { *x = ValueAddBundleListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[29] + mi := &file_pb_bundle_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2755,7 +3025,7 @@ func (x *ValueAddBundleListResponse) String() string { func (*ValueAddBundleListResponse) ProtoMessage() {} func (x *ValueAddBundleListResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[29] + mi := &file_pb_bundle_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2768,7 +3038,7 @@ func (x *ValueAddBundleListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddBundleListResponse.ProtoReflect.Descriptor instead. func (*ValueAddBundleListResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{29} + return file_pb_bundle_proto_rawDescGZIP(), []int{31} } func (x *ValueAddBundleListResponse) GetOriginalPrice() float32 { @@ -2838,7 +3108,7 @@ type ValueAddBundleDetailRequest struct { func (x *ValueAddBundleDetailRequest) Reset() { *x = ValueAddBundleDetailRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[30] + mi := &file_pb_bundle_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2851,7 +3121,7 @@ func (x *ValueAddBundleDetailRequest) String() string { func (*ValueAddBundleDetailRequest) ProtoMessage() {} func (x *ValueAddBundleDetailRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[30] + mi := &file_pb_bundle_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2864,7 +3134,7 @@ func (x *ValueAddBundleDetailRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddBundleDetailRequest.ProtoReflect.Descriptor instead. func (*ValueAddBundleDetailRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{30} + return file_pb_bundle_proto_rawDescGZIP(), []int{32} } func (x *ValueAddBundleDetailRequest) GetUuid() string { @@ -2887,7 +3157,7 @@ type ValueAddBundleDetailResponse struct { func (x *ValueAddBundleDetailResponse) Reset() { *x = ValueAddBundleDetailResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[31] + mi := &file_pb_bundle_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2900,7 +3170,7 @@ func (x *ValueAddBundleDetailResponse) String() string { func (*ValueAddBundleDetailResponse) ProtoMessage() {} func (x *ValueAddBundleDetailResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[31] + mi := &file_pb_bundle_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2913,7 +3183,7 @@ func (x *ValueAddBundleDetailResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddBundleDetailResponse.ProtoReflect.Descriptor instead. func (*ValueAddBundleDetailResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{31} + return file_pb_bundle_proto_rawDescGZIP(), []int{33} } func (x *ValueAddBundleDetailResponse) GetData() *ValueAddBundleProfile { @@ -2948,7 +3218,7 @@ type FinancialConfirmationRequest struct { func (x *FinancialConfirmationRequest) Reset() { *x = FinancialConfirmationRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[32] + mi := &file_pb_bundle_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2961,7 +3231,7 @@ func (x *FinancialConfirmationRequest) String() string { func (*FinancialConfirmationRequest) ProtoMessage() {} func (x *FinancialConfirmationRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[32] + mi := &file_pb_bundle_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2974,7 +3244,7 @@ func (x *FinancialConfirmationRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use FinancialConfirmationRequest.ProtoReflect.Descriptor instead. func (*FinancialConfirmationRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{32} + return file_pb_bundle_proto_rawDescGZIP(), []int{34} } func (x *FinancialConfirmationRequest) GetOrderNo() string { @@ -3000,7 +3270,7 @@ type ValueAddService struct { func (x *ValueAddService) Reset() { *x = ValueAddService{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[33] + mi := &file_pb_bundle_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3013,7 +3283,7 @@ func (x *ValueAddService) String() string { func (*ValueAddService) ProtoMessage() {} func (x *ValueAddService) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[33] + mi := &file_pb_bundle_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3026,7 +3296,7 @@ func (x *ValueAddService) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddService.ProtoReflect.Descriptor instead. func (*ValueAddService) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{33} + return file_pb_bundle_proto_rawDescGZIP(), []int{35} } func (x *ValueAddService) GetUuid() string { @@ -3078,7 +3348,7 @@ type ValueAddServiceLang struct { func (x *ValueAddServiceLang) Reset() { *x = ValueAddServiceLang{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[34] + mi := &file_pb_bundle_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3091,7 +3361,7 @@ func (x *ValueAddServiceLang) String() string { func (*ValueAddServiceLang) ProtoMessage() {} func (x *ValueAddServiceLang) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[34] + mi := &file_pb_bundle_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3104,7 +3374,7 @@ func (x *ValueAddServiceLang) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddServiceLang.ProtoReflect.Descriptor instead. func (*ValueAddServiceLang) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{34} + return file_pb_bundle_proto_rawDescGZIP(), []int{36} } func (x *ValueAddServiceLang) GetUuid() string { @@ -3190,16 +3460,17 @@ type ValueAddPriceOptions struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` - Num int32 `protobuf:"varint,2,opt,name=num,proto3" json:"num"` - Symbol string `protobuf:"bytes,3,opt,name=symbol,proto3" json:"symbol"` - Price string `protobuf:"bytes,4,opt,name=price,proto3" json:"price"` + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` + Num int32 `protobuf:"varint,2,opt,name=num,proto3" json:"num"` + Symbol string `protobuf:"bytes,3,opt,name=symbol,proto3" json:"symbol"` + Price string `protobuf:"bytes,4,opt,name=price,proto3" json:"price"` + SaveAmount string `protobuf:"bytes,5,opt,name=saveAmount,proto3" json:"saveAmount"` } func (x *ValueAddPriceOptions) Reset() { *x = ValueAddPriceOptions{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[35] + mi := &file_pb_bundle_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3212,7 +3483,7 @@ func (x *ValueAddPriceOptions) String() string { func (*ValueAddPriceOptions) ProtoMessage() {} func (x *ValueAddPriceOptions) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[35] + mi := &file_pb_bundle_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3225,7 +3496,7 @@ func (x *ValueAddPriceOptions) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddPriceOptions.ProtoReflect.Descriptor instead. func (*ValueAddPriceOptions) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{35} + return file_pb_bundle_proto_rawDescGZIP(), []int{37} } func (x *ValueAddPriceOptions) GetId() int64 { @@ -3256,6 +3527,13 @@ func (x *ValueAddPriceOptions) GetPrice() string { return "" } +func (x *ValueAddPriceOptions) GetSaveAmount() string { + if x != nil { + return x.SaveAmount + } + return "" +} + //增值服务列表 type ValueAddServiceListRequest struct { state protoimpl.MessageState @@ -3271,7 +3549,7 @@ type ValueAddServiceListRequest struct { func (x *ValueAddServiceListRequest) Reset() { *x = ValueAddServiceListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[36] + mi := &file_pb_bundle_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3284,7 +3562,7 @@ func (x *ValueAddServiceListRequest) String() string { func (*ValueAddServiceListRequest) ProtoMessage() {} func (x *ValueAddServiceListRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[36] + mi := &file_pb_bundle_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3297,7 +3575,7 @@ func (x *ValueAddServiceListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddServiceListRequest.ProtoReflect.Descriptor instead. func (*ValueAddServiceListRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{36} + return file_pb_bundle_proto_rawDescGZIP(), []int{38} } func (x *ValueAddServiceListRequest) GetPage() int32 { @@ -3341,7 +3619,7 @@ type ValueAddServiceListResponse struct { func (x *ValueAddServiceListResponse) Reset() { *x = ValueAddServiceListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[37] + mi := &file_pb_bundle_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3354,7 +3632,7 @@ func (x *ValueAddServiceListResponse) String() string { func (*ValueAddServiceListResponse) ProtoMessage() {} func (x *ValueAddServiceListResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[37] + mi := &file_pb_bundle_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3367,7 +3645,7 @@ func (x *ValueAddServiceListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddServiceListResponse.ProtoReflect.Descriptor instead. func (*ValueAddServiceListResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{37} + return file_pb_bundle_proto_rawDescGZIP(), []int{39} } func (x *ValueAddServiceListResponse) GetTotal() int32 { @@ -3404,7 +3682,7 @@ type ValueAddServiceDetailRequest struct { func (x *ValueAddServiceDetailRequest) Reset() { *x = ValueAddServiceDetailRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[38] + mi := &file_pb_bundle_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3417,7 +3695,7 @@ func (x *ValueAddServiceDetailRequest) String() string { func (*ValueAddServiceDetailRequest) ProtoMessage() {} func (x *ValueAddServiceDetailRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[38] + mi := &file_pb_bundle_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3430,7 +3708,7 @@ func (x *ValueAddServiceDetailRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddServiceDetailRequest.ProtoReflect.Descriptor instead. func (*ValueAddServiceDetailRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{38} + return file_pb_bundle_proto_rawDescGZIP(), []int{40} } func (x *ValueAddServiceDetailRequest) GetUuid() string { @@ -3452,14 +3730,14 @@ type ValueAddServiceDetailResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg"` - ValueAddServiceLang *ValueAddServiceLang `protobuf:"bytes,2,opt,name=valueAddServiceLang,proto3" json:"valueAddServiceLang"` + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg"` + ValueAddService *ValueAddService `protobuf:"bytes,2,opt,name=valueAddService,proto3" json:"valueAddService"` } func (x *ValueAddServiceDetailResponse) Reset() { *x = ValueAddServiceDetailResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[39] + mi := &file_pb_bundle_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3472,7 +3750,7 @@ func (x *ValueAddServiceDetailResponse) String() string { func (*ValueAddServiceDetailResponse) ProtoMessage() {} func (x *ValueAddServiceDetailResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[39] + mi := &file_pb_bundle_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3485,7 +3763,7 @@ func (x *ValueAddServiceDetailResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddServiceDetailResponse.ProtoReflect.Descriptor instead. func (*ValueAddServiceDetailResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{39} + return file_pb_bundle_proto_rawDescGZIP(), []int{41} } func (x *ValueAddServiceDetailResponse) GetMsg() string { @@ -3495,9 +3773,886 @@ func (x *ValueAddServiceDetailResponse) GetMsg() string { return "" } -func (x *ValueAddServiceDetailResponse) GetValueAddServiceLang() *ValueAddServiceLang { +func (x *ValueAddServiceDetailResponse) GetValueAddService() *ValueAddService { if x != nil { - return x.ValueAddServiceLang + return x.ValueAddService + } + return nil +} + +type CalculatePriceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` + Num int32 `protobuf:"varint,2,opt,name=num,proto3" json:"num"` + Language string `protobuf:"bytes,3,opt,name=language,proto3" json:"language"` +} + +func (x *CalculatePriceRequest) Reset() { + *x = CalculatePriceRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CalculatePriceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CalculatePriceRequest) ProtoMessage() {} + +func (x *CalculatePriceRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CalculatePriceRequest.ProtoReflect.Descriptor instead. +func (*CalculatePriceRequest) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{42} +} + +func (x *CalculatePriceRequest) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +func (x *CalculatePriceRequest) GetNum() int32 { + if x != nil { + return x.Num + } + return 0 +} + +func (x *CalculatePriceRequest) GetLanguage() string { + if x != nil { + return x.Language + } + return "" +} + +type CalculatePriceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg"` + Price float32 `protobuf:"fixed32,2,opt,name=price,proto3" json:"price"` +} + +func (x *CalculatePriceResponse) Reset() { + *x = CalculatePriceResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CalculatePriceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CalculatePriceResponse) ProtoMessage() {} + +func (x *CalculatePriceResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CalculatePriceResponse.ProtoReflect.Descriptor instead. +func (*CalculatePriceResponse) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{43} +} + +func (x *CalculatePriceResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *CalculatePriceResponse) GetPrice() float32 { + if x != nil { + return x.Price + } + return 0 +} + +type BundleExtendRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId"` + AccountAdditional uint32 `protobuf:"varint,2,opt,name=accountAdditional,proto3" json:"accountAdditional"` + VideoAdditional uint32 `protobuf:"varint,3,opt,name=videoAdditional,proto3" json:"videoAdditional"` + ImagesAdditional uint32 `protobuf:"varint,4,opt,name=imagesAdditional,proto3" json:"imagesAdditional"` + DataAdditional uint32 `protobuf:"varint,5,opt,name=dataAdditional,proto3" json:"dataAdditional"` + AvailableDurationAdditional uint32 `protobuf:"varint,6,opt,name=availableDurationAdditional,proto3" json:"availableDurationAdditional"` + Remark string `protobuf:"bytes,7,opt,name=remark,proto3" json:"remark"` + AssociatedorderNumber string `protobuf:"bytes,8,opt,name=associatedorderNumber,proto3" json:"associatedorderNumber"` + OperatorName string `protobuf:"bytes,9,opt,name=operatorName,proto3" json:"operatorName"` + OperatorPhoneNumber string `protobuf:"bytes,10,opt,name=operatorPhoneNumber,proto3" json:"operatorPhoneNumber"` +} + +func (x *BundleExtendRequest) Reset() { + *x = BundleExtendRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BundleExtendRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BundleExtendRequest) ProtoMessage() {} + +func (x *BundleExtendRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BundleExtendRequest.ProtoReflect.Descriptor instead. +func (*BundleExtendRequest) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{44} +} + +func (x *BundleExtendRequest) GetUserId() int64 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *BundleExtendRequest) GetAccountAdditional() uint32 { + if x != nil { + return x.AccountAdditional + } + return 0 +} + +func (x *BundleExtendRequest) GetVideoAdditional() uint32 { + if x != nil { + return x.VideoAdditional + } + return 0 +} + +func (x *BundleExtendRequest) GetImagesAdditional() uint32 { + if x != nil { + return x.ImagesAdditional + } + return 0 +} + +func (x *BundleExtendRequest) GetDataAdditional() uint32 { + if x != nil { + return x.DataAdditional + } + return 0 +} + +func (x *BundleExtendRequest) GetAvailableDurationAdditional() uint32 { + if x != nil { + return x.AvailableDurationAdditional + } + return 0 +} + +func (x *BundleExtendRequest) GetRemark() string { + if x != nil { + return x.Remark + } + return "" +} + +func (x *BundleExtendRequest) GetAssociatedorderNumber() string { + if x != nil { + return x.AssociatedorderNumber + } + return "" +} + +func (x *BundleExtendRequest) GetOperatorName() string { + if x != nil { + return x.OperatorName + } + return "" +} + +func (x *BundleExtendRequest) GetOperatorPhoneNumber() string { + if x != nil { + return x.OperatorPhoneNumber + } + return "" +} + +type BundleExtendResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *BundleExtendResponse) Reset() { + *x = BundleExtendResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BundleExtendResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BundleExtendResponse) ProtoMessage() {} + +func (x *BundleExtendResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[45] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BundleExtendResponse.ProtoReflect.Descriptor instead. +func (*BundleExtendResponse) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{45} +} + +type BundleExtendRecordsListRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page"` + PageSize int32 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize"` + User string `protobuf:"bytes,3,opt,name=user,proto3" json:"user"` + Operator string `protobuf:"bytes,4,opt,name=operator,proto3" json:"operator"` + StartTime uint64 `protobuf:"varint,5,opt,name=startTime,proto3" json:"startTime"` + EndTime uint64 `protobuf:"varint,6,opt,name=endTime,proto3" json:"endTime"` + Type uint32 `protobuf:"varint,7,opt,name=type,proto3" json:"type"` + AssociatedOrderNumber string `protobuf:"bytes,8,opt,name=associatedOrderNumber,proto3" json:"associatedOrderNumber"` +} + +func (x *BundleExtendRecordsListRequest) Reset() { + *x = BundleExtendRecordsListRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BundleExtendRecordsListRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BundleExtendRecordsListRequest) ProtoMessage() {} + +func (x *BundleExtendRecordsListRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[46] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BundleExtendRecordsListRequest.ProtoReflect.Descriptor instead. +func (*BundleExtendRecordsListRequest) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{46} +} + +func (x *BundleExtendRecordsListRequest) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *BundleExtendRecordsListRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *BundleExtendRecordsListRequest) GetUser() string { + if x != nil { + return x.User + } + return "" +} + +func (x *BundleExtendRecordsListRequest) GetOperator() string { + if x != nil { + return x.Operator + } + return "" +} + +func (x *BundleExtendRecordsListRequest) GetStartTime() uint64 { + if x != nil { + return x.StartTime + } + return 0 +} + +func (x *BundleExtendRecordsListRequest) GetEndTime() uint64 { + if x != nil { + return x.EndTime + } + return 0 +} + +func (x *BundleExtendRecordsListRequest) GetType() uint32 { + if x != nil { + return x.Type + } + return 0 +} + +func (x *BundleExtendRecordsListRequest) GetAssociatedOrderNumber() string { + if x != nil { + return x.AssociatedOrderNumber + } + return "" +} + +type BundleExtendRecordsListResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total"` + Data []*BundleExtendRecordItem `protobuf:"bytes,2,rep,name=data,proto3" json:"data"` +} + +func (x *BundleExtendRecordsListResponse) Reset() { + *x = BundleExtendRecordsListResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BundleExtendRecordsListResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BundleExtendRecordsListResponse) ProtoMessage() {} + +func (x *BundleExtendRecordsListResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[47] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BundleExtendRecordsListResponse.ProtoReflect.Descriptor instead. +func (*BundleExtendRecordsListResponse) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{47} +} + +func (x *BundleExtendRecordsListResponse) GetTotal() int64 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *BundleExtendRecordsListResponse) GetData() []*BundleExtendRecordItem { + if x != nil { + return x.Data + } + return nil +} + +type BundleExtendRecordItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName"` + UserPhoneNumber string `protobuf:"bytes,2,opt,name=userPhoneNumber,proto3" json:"userPhoneNumber"` + AccountAdditional uint32 `protobuf:"varint,3,opt,name=accountAdditional,proto3" json:"accountAdditional"` + VideoAdditional uint32 `protobuf:"varint,4,opt,name=videoAdditional,proto3" json:"videoAdditional"` + ImagesAdditional uint32 `protobuf:"varint,5,opt,name=imagesAdditional,proto3" json:"imagesAdditional"` + DataAdditional uint32 `protobuf:"varint,6,opt,name=dataAdditional,proto3" json:"dataAdditional"` + AvailableDurationAdditional uint32 `protobuf:"varint,7,opt,name=availableDurationAdditional,proto3" json:"availableDurationAdditional"` + Type int32 `protobuf:"varint,8,opt,name=type,proto3" json:"type"` + CreatedAt uint64 `protobuf:"varint,9,opt,name=createdAt,proto3" json:"createdAt"` + Remark string `protobuf:"bytes,10,opt,name=remark,proto3" json:"remark"` + AssociatedOrderNumber string `protobuf:"bytes,11,opt,name=associatedOrderNumber,proto3" json:"associatedOrderNumber"` + OperatorName string `protobuf:"bytes,12,opt,name=operatorName,proto3" json:"operatorName"` + OperatorPhoneNumber string `protobuf:"bytes,13,opt,name=operatorPhoneNumber,proto3" json:"operatorPhoneNumber"` +} + +func (x *BundleExtendRecordItem) Reset() { + *x = BundleExtendRecordItem{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BundleExtendRecordItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BundleExtendRecordItem) ProtoMessage() {} + +func (x *BundleExtendRecordItem) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[48] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BundleExtendRecordItem.ProtoReflect.Descriptor instead. +func (*BundleExtendRecordItem) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{48} +} + +func (x *BundleExtendRecordItem) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +func (x *BundleExtendRecordItem) GetUserPhoneNumber() string { + if x != nil { + return x.UserPhoneNumber + } + return "" +} + +func (x *BundleExtendRecordItem) GetAccountAdditional() uint32 { + if x != nil { + return x.AccountAdditional + } + return 0 +} + +func (x *BundleExtendRecordItem) GetVideoAdditional() uint32 { + if x != nil { + return x.VideoAdditional + } + return 0 +} + +func (x *BundleExtendRecordItem) GetImagesAdditional() uint32 { + if x != nil { + return x.ImagesAdditional + } + return 0 +} + +func (x *BundleExtendRecordItem) GetDataAdditional() uint32 { + if x != nil { + return x.DataAdditional + } + return 0 +} + +func (x *BundleExtendRecordItem) GetAvailableDurationAdditional() uint32 { + if x != nil { + return x.AvailableDurationAdditional + } + return 0 +} + +func (x *BundleExtendRecordItem) GetType() int32 { + if x != nil { + return x.Type + } + return 0 +} + +func (x *BundleExtendRecordItem) GetCreatedAt() uint64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *BundleExtendRecordItem) GetRemark() string { + if x != nil { + return x.Remark + } + return "" +} + +func (x *BundleExtendRecordItem) GetAssociatedOrderNumber() string { + if x != nil { + return x.AssociatedOrderNumber + } + return "" +} + +func (x *BundleExtendRecordItem) GetOperatorName() string { + if x != nil { + return x.OperatorName + } + return "" +} + +func (x *BundleExtendRecordItem) GetOperatorPhoneNumber() string { + if x != nil { + return x.OperatorPhoneNumber + } + return "" +} + +type GetBundleBalanceReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName"` + Status int32 `protobuf:"varint,2,opt,name=status,proto3" json:"status"` + BundleName string `protobuf:"bytes,3,opt,name=bundleName,proto3" json:"bundleName"` + ExpiredTimeStart int64 `protobuf:"varint,4,opt,name=expiredTimeStart,proto3" json:"expiredTimeStart"` + ExpiredTimeEnd int64 `protobuf:"varint,5,opt,name=expiredTimeEnd,proto3" json:"expiredTimeEnd"` + Page int32 `protobuf:"varint,6,opt,name=page,proto3" json:"page"` + PageSize int32 `protobuf:"varint,7,opt,name=pageSize,proto3" json:"pageSize"` +} + +func (x *GetBundleBalanceReq) Reset() { + *x = GetBundleBalanceReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetBundleBalanceReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetBundleBalanceReq) ProtoMessage() {} + +func (x *GetBundleBalanceReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[49] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetBundleBalanceReq.ProtoReflect.Descriptor instead. +func (*GetBundleBalanceReq) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{49} +} + +func (x *GetBundleBalanceReq) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +func (x *GetBundleBalanceReq) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *GetBundleBalanceReq) GetBundleName() string { + if x != nil { + return x.BundleName + } + return "" +} + +func (x *GetBundleBalanceReq) GetExpiredTimeStart() int64 { + if x != nil { + return x.ExpiredTimeStart + } + return 0 +} + +func (x *GetBundleBalanceReq) GetExpiredTimeEnd() int64 { + if x != nil { + return x.ExpiredTimeEnd + } + return 0 +} + +func (x *GetBundleBalanceReq) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *GetBundleBalanceReq) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +type BundleBalanceItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName"` + UserPhoneNumber string `protobuf:"bytes,2,opt,name=userPhoneNumber,proto3" json:"userPhoneNumber"` + Status int32 `protobuf:"varint,3,opt,name=status,proto3" json:"status"` + BundleName string `protobuf:"bytes,4,opt,name=bundleName,proto3" json:"bundleName"` + ExpiredTime int64 `protobuf:"varint,5,opt,name=expiredTime,proto3" json:"expiredTime"` + AccountNumber int32 `protobuf:"varint,6,opt,name=accountNumber,proto3" json:"accountNumber"` + AccountConsumptionNumber int32 `protobuf:"varint,7,opt,name=accountConsumptionNumber,proto3" json:"accountConsumptionNumber"` + VideoNumber int32 `protobuf:"varint,8,opt,name=videoNumber,proto3" json:"videoNumber"` + VideoConsumptionNumber int32 `protobuf:"varint,9,opt,name=videoConsumptionNumber,proto3" json:"videoConsumptionNumber"` + ImageNumber int32 `protobuf:"varint,10,opt,name=imageNumber,proto3" json:"imageNumber"` + ImageConsumptionNumber int32 `protobuf:"varint,11,opt,name=imageConsumptionNumber,proto3" json:"imageConsumptionNumber"` + DataAnalysisNumber int32 `protobuf:"varint,12,opt,name=dataAnalysisNumber,proto3" json:"dataAnalysisNumber"` + DataAnalysisConsumptionNumber int32 `protobuf:"varint,13,opt,name=dataAnalysisConsumptionNumber,proto3" json:"dataAnalysisConsumptionNumber"` + ExpansionPacksNumber int32 `protobuf:"varint,14,opt,name=expansionPacksNumber,proto3" json:"expansionPacksNumber"` +} + +func (x *BundleBalanceItem) Reset() { + *x = BundleBalanceItem{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BundleBalanceItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BundleBalanceItem) ProtoMessage() {} + +func (x *BundleBalanceItem) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[50] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BundleBalanceItem.ProtoReflect.Descriptor instead. +func (*BundleBalanceItem) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{50} +} + +func (x *BundleBalanceItem) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +func (x *BundleBalanceItem) GetUserPhoneNumber() string { + if x != nil { + return x.UserPhoneNumber + } + return "" +} + +func (x *BundleBalanceItem) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *BundleBalanceItem) GetBundleName() string { + if x != nil { + return x.BundleName + } + return "" +} + +func (x *BundleBalanceItem) GetExpiredTime() int64 { + if x != nil { + return x.ExpiredTime + } + return 0 +} + +func (x *BundleBalanceItem) GetAccountNumber() int32 { + if x != nil { + return x.AccountNumber + } + return 0 +} + +func (x *BundleBalanceItem) GetAccountConsumptionNumber() int32 { + if x != nil { + return x.AccountConsumptionNumber + } + return 0 +} + +func (x *BundleBalanceItem) GetVideoNumber() int32 { + if x != nil { + return x.VideoNumber + } + return 0 +} + +func (x *BundleBalanceItem) GetVideoConsumptionNumber() int32 { + if x != nil { + return x.VideoConsumptionNumber + } + return 0 +} + +func (x *BundleBalanceItem) GetImageNumber() int32 { + if x != nil { + return x.ImageNumber + } + return 0 +} + +func (x *BundleBalanceItem) GetImageConsumptionNumber() int32 { + if x != nil { + return x.ImageConsumptionNumber + } + return 0 +} + +func (x *BundleBalanceItem) GetDataAnalysisNumber() int32 { + if x != nil { + return x.DataAnalysisNumber + } + return 0 +} + +func (x *BundleBalanceItem) GetDataAnalysisConsumptionNumber() int32 { + if x != nil { + return x.DataAnalysisConsumptionNumber + } + return 0 +} + +func (x *BundleBalanceItem) GetExpansionPacksNumber() int32 { + if x != nil { + return x.ExpansionPacksNumber + } + return 0 +} + +type GetBundleBalanceResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total"` + Data []*BundleBalanceItem `protobuf:"bytes,2,rep,name=data,proto3" json:"data"` +} + +func (x *GetBundleBalanceResp) Reset() { + *x = GetBundleBalanceResp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetBundleBalanceResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetBundleBalanceResp) ProtoMessage() {} + +func (x *GetBundleBalanceResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[51] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetBundleBalanceResp.ProtoReflect.Descriptor instead. +func (*GetBundleBalanceResp) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{51} +} + +func (x *GetBundleBalanceResp) GetTotal() int64 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *GetBundleBalanceResp) GetData() []*BundleBalanceItem { + if x != nil { + return x.Data } return nil } @@ -3509,678 +4664,911 @@ var file_pb_bundle_proto_rawDesc = []byte{ 0x6f, 0x12, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x1a, 0x13, 0x70, 0x62, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x12, 0x70, 0x62, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x22, 0x81, 0x04, 0x0a, 0x15, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x32, 0x12, 0x22, 0x0a, 0x0c, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x79, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x79, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x64, 0x64, 0x50, 0x61, 0x79, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x61, 0x64, - 0x64, 0x50, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, - 0x4e, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, - 0x64, 0x64, 0x4e, 0x6f, 0x12, 0x30, 0x0a, 0x13, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x13, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, - 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x45, 0x6e, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, - 0x74, 0x45, 0x6e, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x15, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x41, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x45, 0x6e, - 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, - 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x45, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x70, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x75, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x9d, 0x01, 0x0a, 0x16, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, - 0x32, 0x12, 0x3d, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, - 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0xd3, 0x02, 0x0a, 0x15, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, - 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, - 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, - 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, - 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, - 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0d, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x61, - 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x22, 0xf0, 0x02, 0x0a, - 0x18, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x73, 0x65, 0x74, - 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x22, 0x0a, - 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x46, 0x65, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, - 0x46, 0x65, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, - 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x10, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x41, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x64, 0x64, 0x50, 0x61, 0x79, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x61, 0x64, 0x64, 0x50, 0x61, - 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x22, - 0x47, 0x0a, 0x1b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x41, - 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, - 0x72, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x50, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, - 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, - 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x22, 0xf5, 0x04, 0x0a, 0x0d, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, - 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, - 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x1a, - 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, - 0x79, 0x53, 0x69, 0x67, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, - 0x70, 0x61, 0x6e, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x44, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x6f, - 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x31, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x67, - 0x49, 0x6d, 0x67, 0x32, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x67, 0x49, 0x6d, - 0x67, 0x32, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x53, 0x0a, 0x15, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x11, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x65, 0x6c, + 0x74, 0x6f, 0x22, 0x8f, 0x05, 0x0a, 0x11, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, + 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, + 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x69, + 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x1c, + 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x6f, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x6f, 0x12, 0x20, + 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x55, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x3c, 0x0a, 0x0a, 0x61, 0x64, 0x64, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, + 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0a, 0x61, 0x64, 0x64, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x73, 0x22, 0xf4, 0x01, 0x0a, 0x14, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x20, 0x0a, + 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, 0x61, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x81, 0x04, 0x0a, 0x15, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x56, 0x32, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, + 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, + 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x22, 0x0a, 0x0c, 0x61, 0x64, 0x64, 0x50, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x61, 0x64, 0x64, 0x50, 0x61, 0x79, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, + 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x12, 0x30, 0x0a, + 0x13, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, + 0x2c, 0x0a, 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, + 0x74, 0x45, 0x6e, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x45, 0x6e, 0x64, 0x12, 0x34, 0x0a, + 0x15, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, + 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x45, 0x6e, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x13, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x41, 0x74, 0x45, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, + 0x18, 0x0e, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, + 0x9d, 0x01, 0x0a, 0x16, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32, 0x12, 0x3d, 0x0a, 0x0a, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, + 0xd3, 0x02, 0x0a, 0x15, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, + 0x0e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x46, 0x0a, + 0x0d, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x08, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, + 0x72, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x65, 0x72, 0x49, 0x64, 0x22, 0xf0, 0x02, 0x0a, 0x18, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, + 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x4e, 0x6f, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, + 0x4e, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, + 0x74, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x73, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x68, 0x61, + 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x46, 0x65, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x0b, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x46, 0x65, 0x65, 0x12, 0x22, 0x0a, 0x0c, + 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x0c, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, + 0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x41, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x12, 0x22, 0x0a, 0x0c, + 0x61, 0x64, 0x64, 0x50, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0c, 0x61, 0x64, 0x64, 0x50, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x1a, 0x0a, 0x08, + 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x22, 0x47, 0x0a, 0x1b, 0x50, 0x61, 0x63, 0x6b, + 0x61, 0x67, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x69, 0x6d, + 0x65, 0x22, 0x50, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x4e, 0x6f, 0x22, 0x93, 0x05, 0x0a, 0x0d, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, + 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, + 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, + 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x53, 0x69, 0x67, + 0x6e, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x44, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, + 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x62, + 0x67, 0x49, 0x6d, 0x67, 0x31, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x67, 0x49, + 0x6d, 0x67, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x32, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x32, 0x12, 0x20, 0x0a, 0x0b, 0x73, + 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0b, 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x53, 0x0a, + 0x15, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x15, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x52, 0x15, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, - 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x47, 0x0a, 0x11, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x18, 0x12, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x52, - 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, - 0x6e, 0x67, 0x22, 0xf4, 0x02, 0x0a, 0x11, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, - 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, - 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x31, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x31, 0x12, 0x16, - 0x0a, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x62, 0x67, 0x49, 0x6d, 0x67, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x4d, 0x0a, 0x13, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, - 0x67, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x4c, 0x61, 0x6e, 0x67, 0x52, 0x13, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x22, 0x52, 0x0a, 0x0c, 0x53, 0x61, 0x76, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x75, - 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, - 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x09, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x22, 0x7b, 0x0a, - 0x15, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, - 0x64, 0x64, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x55, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x69, 0x73, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x09, 0x69, 0x73, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x22, 0x26, 0x0a, 0x10, 0x44, 0x65, - 0x6c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, + 0x63, 0x65, 0x12, 0x47, 0x0a, 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x52, 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x69, + 0x6d, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, + 0x69, 0x6d, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xe1, 0x01, 0x0a, 0x11, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, + 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x52, 0x0a, + 0x0c, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, + 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4e, 0x75, 0x6d, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4e, 0x75, + 0x6d, 0x22, 0x7b, 0x0a, 0x15, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x55, 0x75, 0x69, 0x64, 0x12, 0x20, + 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x22, 0x26, + 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x8d, 0x01, 0x0a, 0x11, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, + 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, + 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x5b, 0x0a, 0x12, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x07, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x52, 0x07, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, + 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x22, 0x45, 0x0a, 0x13, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1a, + 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x48, 0x0a, 0x10, 0x48, 0x61, + 0x6e, 0x64, 0x53, 0x68, 0x65, 0x6c, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, - 0x69, 0x64, 0x22, 0x8d, 0x01, 0x0a, 0x11, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, - 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, - 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, - 0x67, 0x65, 0x22, 0x5b, 0x0a, 0x12, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x07, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x52, 0x07, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, - 0x45, 0x0a, 0x13, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, - 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, - 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x48, 0x0a, 0x10, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, - 0x65, 0x6c, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x20, - 0x0a, 0x0b, 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x22, 0x57, 0x0a, 0x14, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, - 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xb2, 0x01, 0x0a, 0x16, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x56, 0x32, 0x12, 0x31, 0x0a, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x52, - 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x53, 0x0a, 0x15, 0x73, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x15, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xf9, - 0x0a, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, - 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, - 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, + 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x22, 0x57, 0x0a, 0x14, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x06, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x59, 0x0a, + 0x16, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32, 0x12, 0x2d, 0x0a, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x06, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xf9, 0x0a, 0x0a, 0x0b, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, + 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x69, + 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x1c, + 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x70, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x70, + 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2e, + 0x0a, 0x12, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x55, 0x72, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, + 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, + 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x6f, 0x18, 0x12, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x6f, + 0x12, 0x2e, 0x0a, 0x12, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, + 0x12, 0x32, 0x0a, 0x14, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x02, 0x52, 0x14, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x15, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x15, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x41, 0x64, 0x64, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x12, 0x30, 0x0a, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x61, 0x76, 0x65, + 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x1a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x65, + 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, + 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x6c, + 0x61, 0x63, 0x65, 0x4f, 0x66, 0x52, 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x1d, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x4f, 0x66, 0x52, 0x65, 0x73, + 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, + 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, + 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x64, + 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, + 0x12, 0x34, 0x0a, 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x21, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, + 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, + 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x1a, + 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x44, 0x0a, 0x10, 0x70, 0x72, + 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x24, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x10, + 0x70, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, + 0x73, 0x68, 0x6f, 0x74, 0x18, 0x26, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, + 0x73, 0x68, 0x6f, 0x74, 0x22, 0xbf, 0x03, 0x0a, 0x0e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, + 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x4d, 0x0a, 0x13, 0x61, 0x64, 0x64, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x64, + 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x13, 0x61, 0x64, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, + 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, + 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, - 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, + 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, - 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, - 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x11, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x12, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x4e, 0x6f, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x4e, 0x6f, 0x12, 0x2e, 0x0a, 0x12, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, - 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x13, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x12, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, - 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x14, - 0x20, 0x01, 0x28, 0x02, 0x52, 0x14, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x41, 0x64, 0x64, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x12, 0x34, 0x0a, 0x15, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x44, 0x69, 0x73, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x02, 0x52, - 0x15, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, - 0x64, 0x64, 0x53, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x17, 0x20, - 0x01, 0x28, 0x02, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x61, 0x76, - 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, - 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x02, 0x52, - 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x73, 0x65, 0x78, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x20, - 0x0a, 0x0b, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x1b, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, - 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x50, - 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x65, - 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, - 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x4f, 0x66, 0x52, 0x65, 0x73, 0x69, 0x64, - 0x65, 0x6e, 0x63, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x6c, 0x61, 0x63, - 0x65, 0x4f, 0x66, 0x52, 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x28, 0x0a, 0x0f, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x18, - 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x18, 0x20, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x12, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, - 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x21, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, - 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, - 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, - 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, - 0x12, 0x44, 0x0a, 0x10, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x24, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x10, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x26, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x22, 0xbf, 0x03, 0x0a, 0x0e, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1e, 0x0a, - 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x4d, 0x0a, - 0x13, 0x61, 0x64, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x13, 0x61, 0x64, 0x64, 0x50, 0x72, 0x69, 0x63, - 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, - 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, + 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x26, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x22, 0xc5, 0x01, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, + 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, + 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x22, 0x50, + 0x0a, 0x10, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x69, 0x64, 0x12, 0x10, + 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, + 0x22, 0xa7, 0x04, 0x0a, 0x13, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x69, - 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, - 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, - 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x26, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x22, 0xc5, 0x01, 0x0a, - 0x13, 0x41, 0x64, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x69, 0x64, - 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, - 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x75, 0x6e, 0x69, 0x74, 0x22, 0x3e, 0x0a, 0x10, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x55, 0x69, 0x64, 0x22, 0xa7, 0x04, 0x0a, 0x13, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x20, 0x0a, 0x0b, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, - 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x55, 0x49, 0x44, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x55, - 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x16, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, - 0x0a, 0x0d, 0x65, 0x6e, 0x64, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x64, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x61, 0x79, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x50, - 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, - 0x64, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x73, 0x48, 0x61, - 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0e, 0x69, 0x73, 0x48, 0x61, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, - 0x12, 0x34, 0x0a, 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, - 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x22, 0x65, - 0x0a, 0x14, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x52, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, - 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x89, 0x01, 0x0a, 0x19, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, - 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, - 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x55, 0x49, - 0x44, 0x22, 0x65, 0x0a, 0x1a, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x35, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xdd, 0x02, 0x0a, 0x15, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, - 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x24, - 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, + 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x55, 0x49, 0x44, 0x12, 0x18, + 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x65, 0x6e, + 0x64, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x64, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x61, 0x79, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, + 0x49, 0x44, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x73, 0x48, 0x61, 0x76, 0x65, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x69, 0x73, + 0x48, 0x61, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x12, 0x34, 0x0a, 0x15, + 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x66, 0x69, 0x6e, + 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x22, 0x65, 0x0a, 0x14, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0c, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x22, 0x89, 0x01, 0x0a, 0x19, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, + 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, + 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x55, 0x49, 0x44, 0x22, 0x65, 0x0a, + 0x1a, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x0b, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6d, 0x73, 0x67, 0x22, 0xdd, 0x02, 0x0a, 0x15, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, + 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, + 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x69, + 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x13, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x12, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x55, 0x69, 0x64, 0x22, 0x59, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x42, 0x28, 0xe2, 0xdf, 0x1f, 0x24, 0x10, 0x1d, 0x18, 0x65, 0x2a, 0x1e, 0xe8, 0x87, 0xb3, 0xe5, + 0xb0, 0x91, 0xe6, 0x95, 0xb0, 0xe4, 0xb8, 0xba, 0x33, 0x30, 0x2c, 0xe6, 0x9c, 0x80, 0xe5, 0xa4, + 0x9a, 0xe6, 0x95, 0xb0, 0xe4, 0xb8, 0xba, 0x31, 0x30, 0x30, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x22, + 0x86, 0x01, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, + 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x75, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, - 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x6f, - 0x73, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x6f, 0x73, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x64, 0x64, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x22, 0x59, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x42, 0x28, 0xe2, 0xdf, 0x1f, 0x24, 0x10, 0x1d, 0x18, 0x65, 0x2a, 0x1e, - 0xe8, 0x87, 0xb3, 0xe5, 0xb0, 0x91, 0xe6, 0x95, 0xb0, 0xe4, 0xb8, 0xba, 0x33, 0x30, 0x2c, 0xe6, - 0x9c, 0x80, 0xe5, 0xa4, 0x9a, 0xe6, 0x95, 0xb0, 0xe4, 0xb8, 0xba, 0x31, 0x30, 0x30, 0x52, 0x03, - 0x6e, 0x75, 0x6d, 0x22, 0x86, 0x01, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x61, 0x76, 0x65, - 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x73, - 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, - 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x71, 0x0a, 0x19, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, + 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x71, 0x0a, 0x19, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, + 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, + 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0xf7, 0x01, 0x0a, 0x1a, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, - 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, - 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, - 0xf7, 0x01, 0x0a, 0x1a, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, - 0x0a, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x31, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x31, 0x0a, 0x1b, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x7d, 0x0a, 0x1c, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x38, 0x0a, 0x1c, 0x46, - 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x22, 0xa8, 0x01, 0x0a, 0x0f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, - 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, - 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, - 0x61, 0x6e, 0x67, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, - 0x22, 0xf3, 0x02, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, - 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x24, - 0x0a, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x69, - 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, - 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, - 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x36, - 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, - 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x66, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, - 0x64, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, - 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x22, 0x7c, - 0x0a, 0x1a, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x31, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x6e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x4e, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x31, 0x0a, 0x1b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, + 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x7d, 0x0a, 0x1c, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x70, + 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, + 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x38, 0x0a, 0x1c, 0x46, 0x69, 0x6e, 0x61, 0x6e, + 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, + 0x6f, 0x22, 0xa8, 0x01, 0x0a, 0x0f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, + 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x52, + 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x22, 0xf3, 0x02, 0x0a, + 0x13, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x70, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x75, 0x6e, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x22, 0x86, 0x01, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6e, + 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, + 0x61, 0x76, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x73, 0x61, 0x76, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x7c, 0x0a, 0x1a, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x1b, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, + 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, + 0x67, 0x12, 0x49, 0x0a, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, + 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x4e, 0x0a, 0x1c, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x74, 0x0a, 0x1d, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, + 0x41, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x52, 0x0f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x22, 0x59, 0x0a, 0x15, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, + 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, + 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, + 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x40, 0x0a, + 0x16, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, + 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x22, + 0xbf, 0x03, 0x0a, 0x13, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x2c, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x28, 0x0a, + 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x64, 0x61, 0x74, + 0x61, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x40, 0x0a, 0x1b, 0x61, + 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x16, 0x0a, + 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, + 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x34, 0x0a, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, + 0x74, 0x65, 0x64, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x30, 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x22, 0x16, 0x0a, 0x14, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x82, 0x02, 0x0a, 0x1e, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x90, 0x01, 0x0a, - 0x1b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6d, 0x73, 0x67, 0x12, 0x49, 0x0a, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, - 0x4e, 0x0a, 0x1c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, - 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, - 0x80, 0x01, 0x0a, 0x1d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6d, 0x73, 0x67, 0x12, 0x4d, 0x0a, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, - 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x52, 0x13, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, - 0x6e, 0x67, 0x32, 0x97, 0x0f, 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x3f, 0x0a, - 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, - 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, + 0x75, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, + 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x65, 0x6e, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x61, 0x73, 0x73, 0x6f, + 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, + 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x6b, + 0x0a, 0x1f, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xa2, 0x04, 0x0a, 0x16, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x73, 0x65, + 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x76, 0x69, + 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x40, 0x0a, 0x1b, 0x61, 0x76, 0x61, 0x69, + 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x61, + 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, + 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x34, 0x0a, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, + 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, + 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x22, 0xed, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, + 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, + 0x22, 0xf3, 0x04, 0x0a, 0x11, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x73, 0x65, + 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, + 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x69, 0x64, 0x65, + 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, + 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x76, 0x69, + 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x76, 0x69, 0x64, 0x65, + 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, + 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x12, + 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, + 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1d, + 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, + 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x32, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, + 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x5b, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, + 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x32, 0xe9, 0x12, 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x3f, + 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x42, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, - 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x09, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x65, 0x6c, 0x66, - 0x12, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, - 0x65, 0x6c, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, + 0x3f, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, + 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x42, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x12, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x0a, 0x53, 0x61, 0x76, 0x65, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x14, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x47, 0x0a, 0x0c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x56, - 0x32, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x56, 0x32, 0x12, 0x1b, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0a, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x42, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x79, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x10, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x21, 0x2e, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, - 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x69, - 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x14, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x12, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x13, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, - 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, - 0x50, 0x72, 0x69, 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x32, 0x12, 0x1d, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x32, 0x1a, 0x1e, 0x2e, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32, 0x22, 0x00, 0x12, 0x63, 0x0a, - 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, - 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x12, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x63, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, - 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x13, 0x53, 0x61, 0x76, 0x65, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1b, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x1a, 0x14, 0x2e, 0x62, 0x75, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x09, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x65, 0x6c, + 0x66, 0x12, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x53, + 0x68, 0x65, 0x6c, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x0a, 0x53, 0x61, 0x76, 0x65, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x14, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x60, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x15, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x24, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0a, 0x5a, 0x08, - 0x2e, 0x2f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, + 0x56, 0x32, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x56, 0x32, 0x12, 0x1b, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0a, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x48, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x11, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, + 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, + 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x42, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x13, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x10, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x12, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x21, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, + 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x48, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, + 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x13, 0x50, 0x61, + 0x63, 0x6b, 0x61, 0x67, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, + 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, + 0x74, 0x56, 0x32, 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x56, 0x32, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x56, 0x32, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x23, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x12, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, + 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x12, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, + 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4a, 0x0a, + 0x13, 0x53, 0x61, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, + 0x67, 0x1a, 0x14, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x13, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, + 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x15, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x24, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x42, 0x79, 0x55, 0x75, 0x69, 0x64, + 0x41, 0x6e, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x24, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x22, 0x00, + 0x12, 0x51, 0x0a, 0x0e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x61, 0x6c, 0x63, + 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, + 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x6c, 0x0a, 0x17, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x26, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, + 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, + 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x42, + 0x0a, 0x5a, 0x08, 0x2e, 0x2f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -4195,122 +5583,145 @@ func file_pb_bundle_proto_rawDescGZIP() []byte { return file_pb_bundle_proto_rawDescData } -var file_pb_bundle_proto_msgTypes = make([]protoimpl.MessageInfo, 40) +var file_pb_bundle_proto_msgTypes = make([]protoimpl.MessageInfo, 52) var file_pb_bundle_proto_goTypes = []interface{}{ - (*OrderRecordsRequestV2)(nil), // 0: bundle.OrderRecordsRequestV2 - (*OrderRecordsResponseV2)(nil), // 1: bundle.OrderRecordsResponseV2 - (*OrderBundleRecordInfo)(nil), // 2: bundle.OrderBundleRecordInfo - (*OrderAddBundleRecordInfo)(nil), // 3: bundle.OrderAddBundleRecordInfo - (*PackagePriceAndTimeResponse)(nil), // 4: bundle.PackagePriceAndTimeResponse - (*CommonResponse)(nil), // 5: bundle.CommonResponse - (*BundleProfile)(nil), // 6: bundle.BundleProfile - (*BundleProfileLang)(nil), // 7: bundle.BundleProfileLang - (*SaveResponse)(nil), // 8: bundle.SaveResponse - (*SelectValueAddService)(nil), // 9: bundle.SelectValueAddService - (*DelBundleRequest)(nil), // 10: bundle.DelBundleRequest - (*BundleListRequest)(nil), // 11: bundle.BundleListRequest - (*BundleListResponse)(nil), // 12: bundle.BundleListResponse - (*BundleDetailRequest)(nil), // 13: bundle.BundleDetailRequest - (*HandShelfRequest)(nil), // 14: bundle.HandShelfRequest - (*BundleDetailResponse)(nil), // 15: bundle.BundleDetailResponse - (*BundleDetailResponseV2)(nil), // 16: bundle.BundleDetailResponseV2 - (*OrderRecord)(nil), // 17: bundle.OrderRecord - (*OrderAddRecord)(nil), // 18: bundle.OrderAddRecord - (*AddPriceOptionsInfo)(nil), // 19: bundle.AddPriceOptionsInfo - (*PriceOptionsInfo)(nil), // 20: bundle.PriceOptionsInfo - (*OrderRecordsRequest)(nil), // 21: bundle.OrderRecordsRequest - (*OrderRecordsResponse)(nil), // 22: bundle.OrderRecordsResponse - (*OrderRecordsDetailRequest)(nil), // 23: bundle.OrderRecordsDetailRequest - (*OrderRecordsDetailResponse)(nil), // 24: bundle.OrderRecordsDetailResponse - (*ValueAddBundleProfile)(nil), // 25: bundle.ValueAddBundleProfile - (*CreateValueAddBundleRequest)(nil), // 26: bundle.CreateValueAddBundleRequest - (*CreateValueAddBundleResponse)(nil), // 27: bundle.CreateValueAddBundleResponse - (*ValueAddBundleListRequest)(nil), // 28: bundle.ValueAddBundleListRequest - (*ValueAddBundleListResponse)(nil), // 29: bundle.ValueAddBundleListResponse - (*ValueAddBundleDetailRequest)(nil), // 30: bundle.ValueAddBundleDetailRequest - (*ValueAddBundleDetailResponse)(nil), // 31: bundle.ValueAddBundleDetailResponse - (*FinancialConfirmationRequest)(nil), // 32: bundle.FinancialConfirmationRequest - (*ValueAddService)(nil), // 33: bundle.ValueAddService - (*ValueAddServiceLang)(nil), // 34: bundle.ValueAddServiceLang - (*ValueAddPriceOptions)(nil), // 35: bundle.ValueAddPriceOptions - (*ValueAddServiceListRequest)(nil), // 36: bundle.ValueAddServiceListRequest - (*ValueAddServiceListResponse)(nil), // 37: bundle.ValueAddServiceListResponse - (*ValueAddServiceDetailRequest)(nil), // 38: bundle.ValueAddServiceDetailRequest - (*ValueAddServiceDetailResponse)(nil), // 39: bundle.ValueAddServiceDetailResponse + (*OrderCreateRecord)(nil), // 0: bundle.OrderCreateRecord + (*OrderCreateAddRecord)(nil), // 1: bundle.OrderCreateAddRecord + (*OrderRecordsRequestV2)(nil), // 2: bundle.OrderRecordsRequestV2 + (*OrderRecordsResponseV2)(nil), // 3: bundle.OrderRecordsResponseV2 + (*OrderBundleRecordInfo)(nil), // 4: bundle.OrderBundleRecordInfo + (*OrderAddBundleRecordInfo)(nil), // 5: bundle.OrderAddBundleRecordInfo + (*PackagePriceAndTimeResponse)(nil), // 6: bundle.PackagePriceAndTimeResponse + (*CommonResponse)(nil), // 7: bundle.CommonResponse + (*BundleProfile)(nil), // 8: bundle.BundleProfile + (*BundleProfileLang)(nil), // 9: bundle.BundleProfileLang + (*SaveResponse)(nil), // 10: bundle.SaveResponse + (*SelectValueAddService)(nil), // 11: bundle.SelectValueAddService + (*DelBundleRequest)(nil), // 12: bundle.DelBundleRequest + (*BundleListRequest)(nil), // 13: bundle.BundleListRequest + (*BundleListResponse)(nil), // 14: bundle.BundleListResponse + (*BundleDetailRequest)(nil), // 15: bundle.BundleDetailRequest + (*HandShelfRequest)(nil), // 16: bundle.HandShelfRequest + (*BundleDetailResponse)(nil), // 17: bundle.BundleDetailResponse + (*BundleDetailResponseV2)(nil), // 18: bundle.BundleDetailResponseV2 + (*OrderRecord)(nil), // 19: bundle.OrderRecord + (*OrderAddRecord)(nil), // 20: bundle.OrderAddRecord + (*AddPriceOptionsInfo)(nil), // 21: bundle.AddPriceOptionsInfo + (*PriceOptionsInfo)(nil), // 22: bundle.PriceOptionsInfo + (*OrderRecordsRequest)(nil), // 23: bundle.OrderRecordsRequest + (*OrderRecordsResponse)(nil), // 24: bundle.OrderRecordsResponse + (*OrderRecordsDetailRequest)(nil), // 25: bundle.OrderRecordsDetailRequest + (*OrderRecordsDetailResponse)(nil), // 26: bundle.OrderRecordsDetailResponse + (*ValueAddBundleProfile)(nil), // 27: bundle.ValueAddBundleProfile + (*CreateValueAddBundleRequest)(nil), // 28: bundle.CreateValueAddBundleRequest + (*CreateValueAddBundleResponse)(nil), // 29: bundle.CreateValueAddBundleResponse + (*ValueAddBundleListRequest)(nil), // 30: bundle.ValueAddBundleListRequest + (*ValueAddBundleListResponse)(nil), // 31: bundle.ValueAddBundleListResponse + (*ValueAddBundleDetailRequest)(nil), // 32: bundle.ValueAddBundleDetailRequest + (*ValueAddBundleDetailResponse)(nil), // 33: bundle.ValueAddBundleDetailResponse + (*FinancialConfirmationRequest)(nil), // 34: bundle.FinancialConfirmationRequest + (*ValueAddService)(nil), // 35: bundle.ValueAddService + (*ValueAddServiceLang)(nil), // 36: bundle.ValueAddServiceLang + (*ValueAddPriceOptions)(nil), // 37: bundle.ValueAddPriceOptions + (*ValueAddServiceListRequest)(nil), // 38: bundle.ValueAddServiceListRequest + (*ValueAddServiceListResponse)(nil), // 39: bundle.ValueAddServiceListResponse + (*ValueAddServiceDetailRequest)(nil), // 40: bundle.ValueAddServiceDetailRequest + (*ValueAddServiceDetailResponse)(nil), // 41: bundle.ValueAddServiceDetailResponse + (*CalculatePriceRequest)(nil), // 42: bundle.CalculatePriceRequest + (*CalculatePriceResponse)(nil), // 43: bundle.CalculatePriceResponse + (*BundleExtendRequest)(nil), // 44: bundle.BundleExtendRequest + (*BundleExtendResponse)(nil), // 45: bundle.BundleExtendResponse + (*BundleExtendRecordsListRequest)(nil), // 46: bundle.BundleExtendRecordsListRequest + (*BundleExtendRecordsListResponse)(nil), // 47: bundle.BundleExtendRecordsListResponse + (*BundleExtendRecordItem)(nil), // 48: bundle.BundleExtendRecordItem + (*GetBundleBalanceReq)(nil), // 49: bundle.GetBundleBalanceReq + (*BundleBalanceItem)(nil), // 50: bundle.BundleBalanceItem + (*GetBundleBalanceResp)(nil), // 51: bundle.GetBundleBalanceResp } var file_pb_bundle_proto_depIdxs = []int32{ - 2, // 0: bundle.OrderRecordsResponseV2.bundleInfo:type_name -> bundle.OrderBundleRecordInfo - 3, // 1: bundle.OrderBundleRecordInfo.addBundleInfo:type_name -> bundle.OrderAddBundleRecordInfo - 9, // 2: bundle.BundleProfile.selectValueAddService:type_name -> bundle.SelectValueAddService - 7, // 3: bundle.BundleProfile.bundleProfileLang:type_name -> bundle.BundleProfileLang - 34, // 4: bundle.BundleProfileLang.valueAddServiceLang:type_name -> bundle.ValueAddServiceLang - 6, // 5: bundle.BundleListResponse.bundles:type_name -> bundle.BundleProfile - 6, // 6: bundle.BundleDetailResponse.bundle:type_name -> bundle.BundleProfile - 7, // 7: bundle.BundleDetailResponseV2.bundle:type_name -> bundle.BundleProfileLang - 9, // 8: bundle.BundleDetailResponseV2.selectValueAddService:type_name -> bundle.SelectValueAddService - 20, // 9: bundle.OrderRecord.priceOptionsInfo:type_name -> bundle.PriceOptionsInfo - 19, // 10: bundle.OrderAddRecord.addPriceOptionsList:type_name -> bundle.AddPriceOptionsInfo - 17, // 11: bundle.OrderRecordsResponse.orderRecords:type_name -> bundle.OrderRecord - 17, // 12: bundle.OrderRecordsDetailResponse.orderRecord:type_name -> bundle.OrderRecord - 25, // 13: bundle.ValueAddBundleListResponse.data:type_name -> bundle.ValueAddBundleProfile - 25, // 14: bundle.ValueAddBundleDetailResponse.data:type_name -> bundle.ValueAddBundleProfile - 34, // 15: bundle.ValueAddService.serviceLang:type_name -> bundle.ValueAddServiceLang - 35, // 16: bundle.ValueAddServiceLang.options:type_name -> bundle.ValueAddPriceOptions - 33, // 17: bundle.ValueAddServiceListResponse.valueAddServiceList:type_name -> bundle.ValueAddService - 34, // 18: bundle.ValueAddServiceDetailResponse.valueAddServiceLang:type_name -> bundle.ValueAddServiceLang - 6, // 19: bundle.Bundle.CreateBundle:input_type -> bundle.BundleProfile - 6, // 20: bundle.Bundle.UpdateBundle:input_type -> bundle.BundleProfile - 10, // 21: bundle.Bundle.DeleteBundle:input_type -> bundle.DelBundleRequest - 14, // 22: bundle.Bundle.HandShelf:input_type -> bundle.HandShelfRequest - 6, // 23: bundle.Bundle.SaveBundle:input_type -> bundle.BundleProfile - 11, // 24: bundle.Bundle.BundleListV2:input_type -> bundle.BundleListRequest - 13, // 25: bundle.Bundle.BundleDetailV2:input_type -> bundle.BundleDetailRequest - 11, // 26: bundle.Bundle.BundleList:input_type -> bundle.BundleListRequest - 13, // 27: bundle.Bundle.BundleDetail:input_type -> bundle.BundleDetailRequest - 17, // 28: bundle.Bundle.CreateOrderRecord:input_type -> bundle.OrderRecord - 17, // 29: bundle.Bundle.UpdateOrderRecord:input_type -> bundle.OrderRecord - 17, // 30: bundle.Bundle.UpdateOrderRecordByOrderNo:input_type -> bundle.OrderRecord - 21, // 31: bundle.Bundle.OrderRecordsList:input_type -> bundle.OrderRecordsRequest - 23, // 32: bundle.Bundle.OrderRecordsDetail:input_type -> bundle.OrderRecordsDetailRequest - 32, // 33: bundle.Bundle.UpdateFinancialConfirmationStatus:input_type -> bundle.FinancialConfirmationRequest - 18, // 34: bundle.Bundle.CreateOrderAddRecord:input_type -> bundle.OrderAddRecord - 17, // 35: bundle.Bundle.PackagePriceAndTime:input_type -> bundle.OrderRecord - 0, // 36: bundle.Bundle.OrderRecordsListV2:input_type -> bundle.OrderRecordsRequestV2 - 26, // 37: bundle.Bundle.CreateValueAddBundle:input_type -> bundle.CreateValueAddBundleRequest - 28, // 38: bundle.Bundle.ValueAddBundleList:input_type -> bundle.ValueAddBundleListRequest - 30, // 39: bundle.Bundle.ValueAddBundleDetail:input_type -> bundle.ValueAddBundleDetailRequest - 34, // 40: bundle.Bundle.SaveValueAddService:input_type -> bundle.ValueAddServiceLang - 36, // 41: bundle.Bundle.ValueAddServiceList:input_type -> bundle.ValueAddServiceListRequest - 38, // 42: bundle.Bundle.ValueAddServiceDetail:input_type -> bundle.ValueAddServiceDetailRequest - 5, // 43: bundle.Bundle.CreateBundle:output_type -> bundle.CommonResponse - 5, // 44: bundle.Bundle.UpdateBundle:output_type -> bundle.CommonResponse - 5, // 45: bundle.Bundle.DeleteBundle:output_type -> bundle.CommonResponse - 5, // 46: bundle.Bundle.HandShelf:output_type -> bundle.CommonResponse - 8, // 47: bundle.Bundle.SaveBundle:output_type -> bundle.SaveResponse - 12, // 48: bundle.Bundle.BundleListV2:output_type -> bundle.BundleListResponse - 16, // 49: bundle.Bundle.BundleDetailV2:output_type -> bundle.BundleDetailResponseV2 - 12, // 50: bundle.Bundle.BundleList:output_type -> bundle.BundleListResponse - 15, // 51: bundle.Bundle.BundleDetail:output_type -> bundle.BundleDetailResponse - 5, // 52: bundle.Bundle.CreateOrderRecord:output_type -> bundle.CommonResponse - 5, // 53: bundle.Bundle.UpdateOrderRecord:output_type -> bundle.CommonResponse - 5, // 54: bundle.Bundle.UpdateOrderRecordByOrderNo:output_type -> bundle.CommonResponse - 22, // 55: bundle.Bundle.OrderRecordsList:output_type -> bundle.OrderRecordsResponse - 24, // 56: bundle.Bundle.OrderRecordsDetail:output_type -> bundle.OrderRecordsDetailResponse - 5, // 57: bundle.Bundle.UpdateFinancialConfirmationStatus:output_type -> bundle.CommonResponse - 5, // 58: bundle.Bundle.CreateOrderAddRecord:output_type -> bundle.CommonResponse - 4, // 59: bundle.Bundle.PackagePriceAndTime:output_type -> bundle.PackagePriceAndTimeResponse - 1, // 60: bundle.Bundle.OrderRecordsListV2:output_type -> bundle.OrderRecordsResponseV2 - 27, // 61: bundle.Bundle.CreateValueAddBundle:output_type -> bundle.CreateValueAddBundleResponse - 29, // 62: bundle.Bundle.ValueAddBundleList:output_type -> bundle.ValueAddBundleListResponse - 31, // 63: bundle.Bundle.ValueAddBundleDetail:output_type -> bundle.ValueAddBundleDetailResponse - 8, // 64: bundle.Bundle.SaveValueAddService:output_type -> bundle.SaveResponse - 37, // 65: bundle.Bundle.ValueAddServiceList:output_type -> bundle.ValueAddServiceListResponse - 39, // 66: bundle.Bundle.ValueAddServiceDetail:output_type -> bundle.ValueAddServiceDetailResponse - 43, // [43:67] is the sub-list for method output_type - 19, // [19:43] is the sub-list for method input_type - 19, // [19:19] is the sub-list for extension type_name - 19, // [19:19] is the sub-list for extension extendee - 0, // [0:19] is the sub-list for field type_name + 1, // 0: bundle.OrderCreateRecord.addRecords:type_name -> bundle.OrderCreateAddRecord + 4, // 1: bundle.OrderRecordsResponseV2.bundleInfo:type_name -> bundle.OrderBundleRecordInfo + 5, // 2: bundle.OrderBundleRecordInfo.addBundleInfo:type_name -> bundle.OrderAddBundleRecordInfo + 11, // 3: bundle.BundleProfile.selectValueAddService:type_name -> bundle.SelectValueAddService + 9, // 4: bundle.BundleProfile.bundleProfileLang:type_name -> bundle.BundleProfileLang + 8, // 5: bundle.BundleListResponse.bundles:type_name -> bundle.BundleProfile + 8, // 6: bundle.BundleDetailResponse.bundle:type_name -> bundle.BundleProfile + 8, // 7: bundle.BundleDetailResponseV2.bundle:type_name -> bundle.BundleProfile + 22, // 8: bundle.OrderRecord.priceOptionsInfo:type_name -> bundle.PriceOptionsInfo + 21, // 9: bundle.OrderAddRecord.addPriceOptionsList:type_name -> bundle.AddPriceOptionsInfo + 19, // 10: bundle.OrderRecordsResponse.orderRecords:type_name -> bundle.OrderRecord + 19, // 11: bundle.OrderRecordsDetailResponse.orderRecord:type_name -> bundle.OrderRecord + 27, // 12: bundle.ValueAddBundleListResponse.data:type_name -> bundle.ValueAddBundleProfile + 27, // 13: bundle.ValueAddBundleDetailResponse.data:type_name -> bundle.ValueAddBundleProfile + 36, // 14: bundle.ValueAddService.serviceLang:type_name -> bundle.ValueAddServiceLang + 37, // 15: bundle.ValueAddServiceLang.options:type_name -> bundle.ValueAddPriceOptions + 35, // 16: bundle.ValueAddServiceListResponse.valueAddServiceList:type_name -> bundle.ValueAddService + 35, // 17: bundle.ValueAddServiceDetailResponse.valueAddService:type_name -> bundle.ValueAddService + 48, // 18: bundle.BundleExtendRecordsListResponse.data:type_name -> bundle.BundleExtendRecordItem + 50, // 19: bundle.GetBundleBalanceResp.data:type_name -> bundle.BundleBalanceItem + 8, // 20: bundle.Bundle.CreateBundle:input_type -> bundle.BundleProfile + 8, // 21: bundle.Bundle.UpdateBundle:input_type -> bundle.BundleProfile + 12, // 22: bundle.Bundle.DeleteBundle:input_type -> bundle.DelBundleRequest + 16, // 23: bundle.Bundle.HandShelf:input_type -> bundle.HandShelfRequest + 8, // 24: bundle.Bundle.SaveBundle:input_type -> bundle.BundleProfile + 13, // 25: bundle.Bundle.BundleListV2:input_type -> bundle.BundleListRequest + 15, // 26: bundle.Bundle.BundleDetailV2:input_type -> bundle.BundleDetailRequest + 13, // 27: bundle.Bundle.BundleList:input_type -> bundle.BundleListRequest + 15, // 28: bundle.Bundle.BundleDetail:input_type -> bundle.BundleDetailRequest + 0, // 29: bundle.Bundle.CreateOrderRecord:input_type -> bundle.OrderCreateRecord + 19, // 30: bundle.Bundle.UpdateOrderRecord:input_type -> bundle.OrderRecord + 19, // 31: bundle.Bundle.UpdateOrderRecordByOrderNo:input_type -> bundle.OrderRecord + 23, // 32: bundle.Bundle.OrderRecordsList:input_type -> bundle.OrderRecordsRequest + 25, // 33: bundle.Bundle.OrderRecordsDetail:input_type -> bundle.OrderRecordsDetailRequest + 34, // 34: bundle.Bundle.UpdateFinancialConfirmationStatus:input_type -> bundle.FinancialConfirmationRequest + 20, // 35: bundle.Bundle.CreateOrderAddRecord:input_type -> bundle.OrderAddRecord + 19, // 36: bundle.Bundle.PackagePriceAndTime:input_type -> bundle.OrderRecord + 2, // 37: bundle.Bundle.OrderRecordsListV2:input_type -> bundle.OrderRecordsRequestV2 + 28, // 38: bundle.Bundle.CreateValueAddBundle:input_type -> bundle.CreateValueAddBundleRequest + 30, // 39: bundle.Bundle.ValueAddBundleList:input_type -> bundle.ValueAddBundleListRequest + 32, // 40: bundle.Bundle.ValueAddBundleDetail:input_type -> bundle.ValueAddBundleDetailRequest + 36, // 41: bundle.Bundle.SaveValueAddService:input_type -> bundle.ValueAddServiceLang + 38, // 42: bundle.Bundle.ValueAddServiceList:input_type -> bundle.ValueAddServiceListRequest + 40, // 43: bundle.Bundle.ValueAddServiceDetail:input_type -> bundle.ValueAddServiceDetailRequest + 40, // 44: bundle.Bundle.ValueAddServiceLangByUuidAndLanguage:input_type -> bundle.ValueAddServiceDetailRequest + 42, // 45: bundle.Bundle.CalculatePrice:input_type -> bundle.CalculatePriceRequest + 44, // 46: bundle.Bundle.BundleExtend:input_type -> bundle.BundleExtendRequest + 46, // 47: bundle.Bundle.BundleExtendRecordsList:input_type -> bundle.BundleExtendRecordsListRequest + 49, // 48: bundle.Bundle.GetBundleBalance:input_type -> bundle.GetBundleBalanceReq + 7, // 49: bundle.Bundle.CreateBundle:output_type -> bundle.CommonResponse + 7, // 50: bundle.Bundle.UpdateBundle:output_type -> bundle.CommonResponse + 7, // 51: bundle.Bundle.DeleteBundle:output_type -> bundle.CommonResponse + 7, // 52: bundle.Bundle.HandShelf:output_type -> bundle.CommonResponse + 10, // 53: bundle.Bundle.SaveBundle:output_type -> bundle.SaveResponse + 14, // 54: bundle.Bundle.BundleListV2:output_type -> bundle.BundleListResponse + 18, // 55: bundle.Bundle.BundleDetailV2:output_type -> bundle.BundleDetailResponseV2 + 14, // 56: bundle.Bundle.BundleList:output_type -> bundle.BundleListResponse + 17, // 57: bundle.Bundle.BundleDetail:output_type -> bundle.BundleDetailResponse + 7, // 58: bundle.Bundle.CreateOrderRecord:output_type -> bundle.CommonResponse + 7, // 59: bundle.Bundle.UpdateOrderRecord:output_type -> bundle.CommonResponse + 7, // 60: bundle.Bundle.UpdateOrderRecordByOrderNo:output_type -> bundle.CommonResponse + 24, // 61: bundle.Bundle.OrderRecordsList:output_type -> bundle.OrderRecordsResponse + 26, // 62: bundle.Bundle.OrderRecordsDetail:output_type -> bundle.OrderRecordsDetailResponse + 7, // 63: bundle.Bundle.UpdateFinancialConfirmationStatus:output_type -> bundle.CommonResponse + 7, // 64: bundle.Bundle.CreateOrderAddRecord:output_type -> bundle.CommonResponse + 6, // 65: bundle.Bundle.PackagePriceAndTime:output_type -> bundle.PackagePriceAndTimeResponse + 3, // 66: bundle.Bundle.OrderRecordsListV2:output_type -> bundle.OrderRecordsResponseV2 + 29, // 67: bundle.Bundle.CreateValueAddBundle:output_type -> bundle.CreateValueAddBundleResponse + 31, // 68: bundle.Bundle.ValueAddBundleList:output_type -> bundle.ValueAddBundleListResponse + 33, // 69: bundle.Bundle.ValueAddBundleDetail:output_type -> bundle.ValueAddBundleDetailResponse + 10, // 70: bundle.Bundle.SaveValueAddService:output_type -> bundle.SaveResponse + 39, // 71: bundle.Bundle.ValueAddServiceList:output_type -> bundle.ValueAddServiceListResponse + 41, // 72: bundle.Bundle.ValueAddServiceDetail:output_type -> bundle.ValueAddServiceDetailResponse + 36, // 73: bundle.Bundle.ValueAddServiceLangByUuidAndLanguage:output_type -> bundle.ValueAddServiceLang + 43, // 74: bundle.Bundle.CalculatePrice:output_type -> bundle.CalculatePriceResponse + 45, // 75: bundle.Bundle.BundleExtend:output_type -> bundle.BundleExtendResponse + 47, // 76: bundle.Bundle.BundleExtendRecordsList:output_type -> bundle.BundleExtendRecordsListResponse + 51, // 77: bundle.Bundle.GetBundleBalance:output_type -> bundle.GetBundleBalanceResp + 49, // [49:78] is the sub-list for method output_type + 20, // [20:49] is the sub-list for method input_type + 20, // [20:20] is the sub-list for extension type_name + 20, // [20:20] is the sub-list for extension extendee + 0, // [0:20] is the sub-list for field type_name } func init() { file_pb_bundle_proto_init() } @@ -4320,7 +5731,7 @@ func file_pb_bundle_proto_init() { } if !protoimpl.UnsafeEnabled { file_pb_bundle_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrderRecordsRequestV2); i { + switch v := v.(*OrderCreateRecord); i { case 0: return &v.state case 1: @@ -4332,7 +5743,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrderRecordsResponseV2); i { + switch v := v.(*OrderCreateAddRecord); i { case 0: return &v.state case 1: @@ -4344,7 +5755,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrderBundleRecordInfo); i { + switch v := v.(*OrderRecordsRequestV2); i { case 0: return &v.state case 1: @@ -4356,7 +5767,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrderAddBundleRecordInfo); i { + switch v := v.(*OrderRecordsResponseV2); i { case 0: return &v.state case 1: @@ -4368,7 +5779,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PackagePriceAndTimeResponse); i { + switch v := v.(*OrderBundleRecordInfo); i { case 0: return &v.state case 1: @@ -4380,7 +5791,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CommonResponse); i { + switch v := v.(*OrderAddBundleRecordInfo); i { case 0: return &v.state case 1: @@ -4392,7 +5803,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BundleProfile); i { + switch v := v.(*PackagePriceAndTimeResponse); i { case 0: return &v.state case 1: @@ -4404,7 +5815,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BundleProfileLang); i { + switch v := v.(*CommonResponse); i { case 0: return &v.state case 1: @@ -4416,7 +5827,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SaveResponse); i { + switch v := v.(*BundleProfile); i { case 0: return &v.state case 1: @@ -4428,7 +5839,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SelectValueAddService); i { + switch v := v.(*BundleProfileLang); i { case 0: return &v.state case 1: @@ -4440,7 +5851,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DelBundleRequest); i { + switch v := v.(*SaveResponse); i { case 0: return &v.state case 1: @@ -4452,7 +5863,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BundleListRequest); i { + switch v := v.(*SelectValueAddService); i { case 0: return &v.state case 1: @@ -4464,7 +5875,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BundleListResponse); i { + switch v := v.(*DelBundleRequest); i { case 0: return &v.state case 1: @@ -4476,7 +5887,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BundleDetailRequest); i { + switch v := v.(*BundleListRequest); i { case 0: return &v.state case 1: @@ -4488,7 +5899,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HandShelfRequest); i { + switch v := v.(*BundleListResponse); i { case 0: return &v.state case 1: @@ -4500,7 +5911,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BundleDetailResponse); i { + switch v := v.(*BundleDetailRequest); i { case 0: return &v.state case 1: @@ -4512,7 +5923,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BundleDetailResponseV2); i { + switch v := v.(*HandShelfRequest); i { case 0: return &v.state case 1: @@ -4524,7 +5935,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrderRecord); i { + switch v := v.(*BundleDetailResponse); i { case 0: return &v.state case 1: @@ -4536,7 +5947,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrderAddRecord); i { + switch v := v.(*BundleDetailResponseV2); i { case 0: return &v.state case 1: @@ -4548,7 +5959,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddPriceOptionsInfo); i { + switch v := v.(*OrderRecord); i { case 0: return &v.state case 1: @@ -4560,7 +5971,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PriceOptionsInfo); i { + switch v := v.(*OrderAddRecord); i { case 0: return &v.state case 1: @@ -4572,7 +5983,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrderRecordsRequest); i { + switch v := v.(*AddPriceOptionsInfo); i { case 0: return &v.state case 1: @@ -4584,7 +5995,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrderRecordsResponse); i { + switch v := v.(*PriceOptionsInfo); i { case 0: return &v.state case 1: @@ -4596,7 +6007,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrderRecordsDetailRequest); i { + switch v := v.(*OrderRecordsRequest); i { case 0: return &v.state case 1: @@ -4608,7 +6019,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrderRecordsDetailResponse); i { + switch v := v.(*OrderRecordsResponse); i { case 0: return &v.state case 1: @@ -4620,7 +6031,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValueAddBundleProfile); i { + switch v := v.(*OrderRecordsDetailRequest); i { case 0: return &v.state case 1: @@ -4632,7 +6043,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateValueAddBundleRequest); i { + switch v := v.(*OrderRecordsDetailResponse); i { case 0: return &v.state case 1: @@ -4644,7 +6055,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateValueAddBundleResponse); i { + switch v := v.(*ValueAddBundleProfile); i { case 0: return &v.state case 1: @@ -4656,7 +6067,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValueAddBundleListRequest); i { + switch v := v.(*CreateValueAddBundleRequest); i { case 0: return &v.state case 1: @@ -4668,7 +6079,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValueAddBundleListResponse); i { + switch v := v.(*CreateValueAddBundleResponse); i { case 0: return &v.state case 1: @@ -4680,7 +6091,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValueAddBundleDetailRequest); i { + switch v := v.(*ValueAddBundleListRequest); i { case 0: return &v.state case 1: @@ -4692,7 +6103,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValueAddBundleDetailResponse); i { + switch v := v.(*ValueAddBundleListResponse); i { case 0: return &v.state case 1: @@ -4704,7 +6115,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FinancialConfirmationRequest); i { + switch v := v.(*ValueAddBundleDetailRequest); i { case 0: return &v.state case 1: @@ -4716,7 +6127,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValueAddService); i { + switch v := v.(*ValueAddBundleDetailResponse); i { case 0: return &v.state case 1: @@ -4728,7 +6139,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValueAddServiceLang); i { + switch v := v.(*FinancialConfirmationRequest); i { case 0: return &v.state case 1: @@ -4740,7 +6151,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValueAddPriceOptions); i { + switch v := v.(*ValueAddService); i { case 0: return &v.state case 1: @@ -4752,7 +6163,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValueAddServiceListRequest); i { + switch v := v.(*ValueAddServiceLang); i { case 0: return &v.state case 1: @@ -4764,7 +6175,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValueAddServiceListResponse); i { + switch v := v.(*ValueAddPriceOptions); i { case 0: return &v.state case 1: @@ -4776,7 +6187,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValueAddServiceDetailRequest); i { + switch v := v.(*ValueAddServiceListRequest); i { case 0: return &v.state case 1: @@ -4788,6 +6199,30 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValueAddServiceListResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValueAddServiceDetailRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ValueAddServiceDetailResponse); i { case 0: return &v.state @@ -4799,6 +6234,126 @@ func file_pb_bundle_proto_init() { return nil } } + file_pb_bundle_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CalculatePriceRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CalculatePriceResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BundleExtendRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BundleExtendResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BundleExtendRecordsListRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BundleExtendRecordsListResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BundleExtendRecordItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBundleBalanceReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BundleBalanceItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBundleBalanceResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -4806,7 +6361,7 @@ func file_pb_bundle_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pb_bundle_proto_rawDesc, NumEnums: 0, - NumMessages: 40, + NumMessages: 52, NumExtensions: 0, NumServices: 1, }, diff --git a/api/bundle/bundle.validator.pb.go b/api/bundle/bundle.validator.pb.go index a2c6f91..0a29d51 100644 --- a/api/bundle/bundle.validator.pb.go +++ b/api/bundle/bundle.validator.pb.go @@ -17,6 +17,19 @@ var _ = proto.Marshal var _ = fmt.Errorf var _ = math.Inf +func (this *OrderCreateRecord) Validate() error { + for _, item := range this.AddRecords { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("AddRecords", err) + } + } + } + return nil +} +func (this *OrderCreateAddRecord) Validate() error { + return nil +} func (this *OrderRecordsRequestV2) Validate() error { return nil } @@ -67,13 +80,6 @@ func (this *BundleProfile) Validate() error { return nil } func (this *BundleProfileLang) Validate() error { - for _, item := range this.ValueAddServiceLang { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("ValueAddServiceLang", err) - } - } - } return nil } func (this *SaveResponse) Validate() error { @@ -118,13 +124,6 @@ func (this *BundleDetailResponseV2) Validate() error { return github_com_mwitkow_go_proto_validators.FieldError("Bundle", err) } } - for _, item := range this.SelectValueAddService { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("SelectValueAddService", err) - } - } - } return nil } func (this *OrderRecord) Validate() error { @@ -259,9 +258,53 @@ func (this *ValueAddServiceDetailRequest) Validate() error { return nil } func (this *ValueAddServiceDetailResponse) Validate() error { - if this.ValueAddServiceLang != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.ValueAddServiceLang); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("ValueAddServiceLang", err) + if this.ValueAddService != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.ValueAddService); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ValueAddService", err) + } + } + return nil +} +func (this *CalculatePriceRequest) Validate() error { + return nil +} +func (this *CalculatePriceResponse) Validate() error { + return nil +} +func (this *BundleExtendRequest) Validate() error { + return nil +} +func (this *BundleExtendResponse) Validate() error { + return nil +} +func (this *BundleExtendRecordsListRequest) Validate() error { + return nil +} +func (this *BundleExtendRecordsListResponse) Validate() error { + for _, item := range this.Data { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Data", err) + } + } + } + return nil +} +func (this *BundleExtendRecordItem) Validate() error { + return nil +} +func (this *GetBundleBalanceReq) Validate() error { + return nil +} +func (this *BundleBalanceItem) Validate() error { + return nil +} +func (this *GetBundleBalanceResp) Validate() error { + for _, item := range this.Data { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Data", err) + } } } return nil diff --git a/api/bundle/bundle_triple.pb.go b/api/bundle/bundle_triple.pb.go index 3cfa116..616e572 100644 --- a/api/bundle/bundle_triple.pb.go +++ b/api/bundle/bundle_triple.pb.go @@ -37,7 +37,7 @@ type BundleClient interface { BundleDetailV2(ctx context.Context, in *BundleDetailRequest, opts ...grpc_go.CallOption) (*BundleDetailResponseV2, common.ErrorWithAttachment) BundleList(ctx context.Context, in *BundleListRequest, opts ...grpc_go.CallOption) (*BundleListResponse, common.ErrorWithAttachment) BundleDetail(ctx context.Context, in *BundleDetailRequest, opts ...grpc_go.CallOption) (*BundleDetailResponse, common.ErrorWithAttachment) - CreateOrderRecord(ctx context.Context, in *OrderRecord, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) + CreateOrderRecord(ctx context.Context, in *OrderCreateRecord, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) UpdateOrderRecord(ctx context.Context, in *OrderRecord, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) UpdateOrderRecordByOrderNo(ctx context.Context, in *OrderRecord, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) OrderRecordsList(ctx context.Context, in *OrderRecordsRequest, opts ...grpc_go.CallOption) (*OrderRecordsResponse, common.ErrorWithAttachment) @@ -54,6 +54,12 @@ type BundleClient interface { SaveValueAddService(ctx context.Context, in *ValueAddServiceLang, opts ...grpc_go.CallOption) (*SaveResponse, common.ErrorWithAttachment) ValueAddServiceList(ctx context.Context, in *ValueAddServiceListRequest, opts ...grpc_go.CallOption) (*ValueAddServiceListResponse, common.ErrorWithAttachment) ValueAddServiceDetail(ctx context.Context, in *ValueAddServiceDetailRequest, opts ...grpc_go.CallOption) (*ValueAddServiceDetailResponse, common.ErrorWithAttachment) + ValueAddServiceLangByUuidAndLanguage(ctx context.Context, in *ValueAddServiceDetailRequest, opts ...grpc_go.CallOption) (*ValueAddServiceLang, common.ErrorWithAttachment) + CalculatePrice(ctx context.Context, in *CalculatePriceRequest, opts ...grpc_go.CallOption) (*CalculatePriceResponse, common.ErrorWithAttachment) + // 余量管理 + BundleExtend(ctx context.Context, in *BundleExtendRequest, opts ...grpc_go.CallOption) (*BundleExtendResponse, common.ErrorWithAttachment) + BundleExtendRecordsList(ctx context.Context, in *BundleExtendRecordsListRequest, opts ...grpc_go.CallOption) (*BundleExtendRecordsListResponse, common.ErrorWithAttachment) + GetBundleBalance(ctx context.Context, in *GetBundleBalanceReq, opts ...grpc_go.CallOption) (*GetBundleBalanceResp, common.ErrorWithAttachment) } type bundleClient struct { @@ -61,30 +67,35 @@ type bundleClient struct { } type BundleClientImpl struct { - CreateBundle func(ctx context.Context, in *BundleProfile) (*CommonResponse, error) - UpdateBundle func(ctx context.Context, in *BundleProfile) (*CommonResponse, error) - DeleteBundle func(ctx context.Context, in *DelBundleRequest) (*CommonResponse, error) - HandShelf func(ctx context.Context, in *HandShelfRequest) (*CommonResponse, error) - SaveBundle func(ctx context.Context, in *BundleProfile) (*SaveResponse, error) - BundleListV2 func(ctx context.Context, in *BundleListRequest) (*BundleListResponse, error) - BundleDetailV2 func(ctx context.Context, in *BundleDetailRequest) (*BundleDetailResponseV2, error) - BundleList func(ctx context.Context, in *BundleListRequest) (*BundleListResponse, error) - BundleDetail func(ctx context.Context, in *BundleDetailRequest) (*BundleDetailResponse, error) - CreateOrderRecord func(ctx context.Context, in *OrderRecord) (*CommonResponse, error) - UpdateOrderRecord func(ctx context.Context, in *OrderRecord) (*CommonResponse, error) - UpdateOrderRecordByOrderNo func(ctx context.Context, in *OrderRecord) (*CommonResponse, error) - OrderRecordsList func(ctx context.Context, in *OrderRecordsRequest) (*OrderRecordsResponse, error) - OrderRecordsDetail func(ctx context.Context, in *OrderRecordsDetailRequest) (*OrderRecordsDetailResponse, error) - UpdateFinancialConfirmationStatus func(ctx context.Context, in *FinancialConfirmationRequest) (*CommonResponse, error) - CreateOrderAddRecord func(ctx context.Context, in *OrderAddRecord) (*CommonResponse, error) - PackagePriceAndTime func(ctx context.Context, in *OrderRecord) (*PackagePriceAndTimeResponse, error) - OrderRecordsListV2 func(ctx context.Context, in *OrderRecordsRequestV2) (*OrderRecordsResponseV2, error) - CreateValueAddBundle func(ctx context.Context, in *CreateValueAddBundleRequest) (*CreateValueAddBundleResponse, error) - ValueAddBundleList func(ctx context.Context, in *ValueAddBundleListRequest) (*ValueAddBundleListResponse, error) - ValueAddBundleDetail func(ctx context.Context, in *ValueAddBundleDetailRequest) (*ValueAddBundleDetailResponse, error) - SaveValueAddService func(ctx context.Context, in *ValueAddServiceLang) (*SaveResponse, error) - ValueAddServiceList func(ctx context.Context, in *ValueAddServiceListRequest) (*ValueAddServiceListResponse, error) - ValueAddServiceDetail func(ctx context.Context, in *ValueAddServiceDetailRequest) (*ValueAddServiceDetailResponse, error) + CreateBundle func(ctx context.Context, in *BundleProfile) (*CommonResponse, error) + UpdateBundle func(ctx context.Context, in *BundleProfile) (*CommonResponse, error) + DeleteBundle func(ctx context.Context, in *DelBundleRequest) (*CommonResponse, error) + HandShelf func(ctx context.Context, in *HandShelfRequest) (*CommonResponse, error) + SaveBundle func(ctx context.Context, in *BundleProfile) (*SaveResponse, error) + BundleListV2 func(ctx context.Context, in *BundleListRequest) (*BundleListResponse, error) + BundleDetailV2 func(ctx context.Context, in *BundleDetailRequest) (*BundleDetailResponseV2, error) + BundleList func(ctx context.Context, in *BundleListRequest) (*BundleListResponse, error) + BundleDetail func(ctx context.Context, in *BundleDetailRequest) (*BundleDetailResponse, error) + CreateOrderRecord func(ctx context.Context, in *OrderCreateRecord) (*CommonResponse, error) + UpdateOrderRecord func(ctx context.Context, in *OrderRecord) (*CommonResponse, error) + UpdateOrderRecordByOrderNo func(ctx context.Context, in *OrderRecord) (*CommonResponse, error) + OrderRecordsList func(ctx context.Context, in *OrderRecordsRequest) (*OrderRecordsResponse, error) + OrderRecordsDetail func(ctx context.Context, in *OrderRecordsDetailRequest) (*OrderRecordsDetailResponse, error) + UpdateFinancialConfirmationStatus func(ctx context.Context, in *FinancialConfirmationRequest) (*CommonResponse, error) + CreateOrderAddRecord func(ctx context.Context, in *OrderAddRecord) (*CommonResponse, error) + PackagePriceAndTime func(ctx context.Context, in *OrderRecord) (*PackagePriceAndTimeResponse, error) + OrderRecordsListV2 func(ctx context.Context, in *OrderRecordsRequestV2) (*OrderRecordsResponseV2, error) + CreateValueAddBundle func(ctx context.Context, in *CreateValueAddBundleRequest) (*CreateValueAddBundleResponse, error) + ValueAddBundleList func(ctx context.Context, in *ValueAddBundleListRequest) (*ValueAddBundleListResponse, error) + ValueAddBundleDetail func(ctx context.Context, in *ValueAddBundleDetailRequest) (*ValueAddBundleDetailResponse, error) + SaveValueAddService func(ctx context.Context, in *ValueAddServiceLang) (*SaveResponse, error) + ValueAddServiceList func(ctx context.Context, in *ValueAddServiceListRequest) (*ValueAddServiceListResponse, error) + ValueAddServiceDetail func(ctx context.Context, in *ValueAddServiceDetailRequest) (*ValueAddServiceDetailResponse, error) + ValueAddServiceLangByUuidAndLanguage func(ctx context.Context, in *ValueAddServiceDetailRequest) (*ValueAddServiceLang, error) + CalculatePrice func(ctx context.Context, in *CalculatePriceRequest) (*CalculatePriceResponse, error) + BundleExtend func(ctx context.Context, in *BundleExtendRequest) (*BundleExtendResponse, error) + BundleExtendRecordsList func(ctx context.Context, in *BundleExtendRecordsListRequest) (*BundleExtendRecordsListResponse, error) + GetBundleBalance func(ctx context.Context, in *GetBundleBalanceReq) (*GetBundleBalanceResp, error) } func (c *BundleClientImpl) GetDubboStub(cc *triple.TripleConn) BundleClient { @@ -153,7 +164,7 @@ func (c *bundleClient) BundleDetail(ctx context.Context, in *BundleDetailRequest return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/BundleDetail", in, out) } -func (c *bundleClient) CreateOrderRecord(ctx context.Context, in *OrderRecord, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) { +func (c *bundleClient) CreateOrderRecord(ctx context.Context, in *OrderCreateRecord, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) { out := new(CommonResponse) interfaceKey := ctx.Value(constant.InterfaceKey).(string) return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CreateOrderRecord", in, out) @@ -243,6 +254,36 @@ func (c *bundleClient) ValueAddServiceDetail(ctx context.Context, in *ValueAddSe return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ValueAddServiceDetail", in, out) } +func (c *bundleClient) ValueAddServiceLangByUuidAndLanguage(ctx context.Context, in *ValueAddServiceDetailRequest, opts ...grpc_go.CallOption) (*ValueAddServiceLang, common.ErrorWithAttachment) { + out := new(ValueAddServiceLang) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ValueAddServiceLangByUuidAndLanguage", in, out) +} + +func (c *bundleClient) CalculatePrice(ctx context.Context, in *CalculatePriceRequest, opts ...grpc_go.CallOption) (*CalculatePriceResponse, common.ErrorWithAttachment) { + out := new(CalculatePriceResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CalculatePrice", in, out) +} + +func (c *bundleClient) BundleExtend(ctx context.Context, in *BundleExtendRequest, opts ...grpc_go.CallOption) (*BundleExtendResponse, common.ErrorWithAttachment) { + out := new(BundleExtendResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/BundleExtend", in, out) +} + +func (c *bundleClient) BundleExtendRecordsList(ctx context.Context, in *BundleExtendRecordsListRequest, opts ...grpc_go.CallOption) (*BundleExtendRecordsListResponse, common.ErrorWithAttachment) { + out := new(BundleExtendRecordsListResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/BundleExtendRecordsList", in, out) +} + +func (c *bundleClient) GetBundleBalance(ctx context.Context, in *GetBundleBalanceReq, opts ...grpc_go.CallOption) (*GetBundleBalanceResp, common.ErrorWithAttachment) { + out := new(GetBundleBalanceResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetBundleBalance", in, out) +} + // BundleServer is the server API for Bundle service. // All implementations must embed UnimplementedBundleServer // for forward compatibility @@ -256,7 +297,7 @@ type BundleServer interface { BundleDetailV2(context.Context, *BundleDetailRequest) (*BundleDetailResponseV2, error) BundleList(context.Context, *BundleListRequest) (*BundleListResponse, error) BundleDetail(context.Context, *BundleDetailRequest) (*BundleDetailResponse, error) - CreateOrderRecord(context.Context, *OrderRecord) (*CommonResponse, error) + CreateOrderRecord(context.Context, *OrderCreateRecord) (*CommonResponse, error) UpdateOrderRecord(context.Context, *OrderRecord) (*CommonResponse, error) UpdateOrderRecordByOrderNo(context.Context, *OrderRecord) (*CommonResponse, error) OrderRecordsList(context.Context, *OrderRecordsRequest) (*OrderRecordsResponse, error) @@ -273,6 +314,12 @@ type BundleServer interface { SaveValueAddService(context.Context, *ValueAddServiceLang) (*SaveResponse, error) ValueAddServiceList(context.Context, *ValueAddServiceListRequest) (*ValueAddServiceListResponse, error) ValueAddServiceDetail(context.Context, *ValueAddServiceDetailRequest) (*ValueAddServiceDetailResponse, error) + ValueAddServiceLangByUuidAndLanguage(context.Context, *ValueAddServiceDetailRequest) (*ValueAddServiceLang, error) + CalculatePrice(context.Context, *CalculatePriceRequest) (*CalculatePriceResponse, error) + // 余量管理 + BundleExtend(context.Context, *BundleExtendRequest) (*BundleExtendResponse, error) + BundleExtendRecordsList(context.Context, *BundleExtendRecordsListRequest) (*BundleExtendRecordsListResponse, error) + GetBundleBalance(context.Context, *GetBundleBalanceReq) (*GetBundleBalanceResp, error) mustEmbedUnimplementedBundleServer() } @@ -308,7 +355,7 @@ func (UnimplementedBundleServer) BundleList(context.Context, *BundleListRequest) func (UnimplementedBundleServer) BundleDetail(context.Context, *BundleDetailRequest) (*BundleDetailResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method BundleDetail not implemented") } -func (UnimplementedBundleServer) CreateOrderRecord(context.Context, *OrderRecord) (*CommonResponse, error) { +func (UnimplementedBundleServer) CreateOrderRecord(context.Context, *OrderCreateRecord) (*CommonResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateOrderRecord not implemented") } func (UnimplementedBundleServer) UpdateOrderRecord(context.Context, *OrderRecord) (*CommonResponse, error) { @@ -353,6 +400,21 @@ func (UnimplementedBundleServer) ValueAddServiceList(context.Context, *ValueAddS func (UnimplementedBundleServer) ValueAddServiceDetail(context.Context, *ValueAddServiceDetailRequest) (*ValueAddServiceDetailResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ValueAddServiceDetail not implemented") } +func (UnimplementedBundleServer) ValueAddServiceLangByUuidAndLanguage(context.Context, *ValueAddServiceDetailRequest) (*ValueAddServiceLang, error) { + return nil, status.Errorf(codes.Unimplemented, "method ValueAddServiceLangByUuidAndLanguage not implemented") +} +func (UnimplementedBundleServer) CalculatePrice(context.Context, *CalculatePriceRequest) (*CalculatePriceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CalculatePrice not implemented") +} +func (UnimplementedBundleServer) BundleExtend(context.Context, *BundleExtendRequest) (*BundleExtendResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method BundleExtend not implemented") +} +func (UnimplementedBundleServer) BundleExtendRecordsList(context.Context, *BundleExtendRecordsListRequest) (*BundleExtendRecordsListResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method BundleExtendRecordsList not implemented") +} +func (UnimplementedBundleServer) GetBundleBalance(context.Context, *GetBundleBalanceReq) (*GetBundleBalanceResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetBundleBalance not implemented") +} func (s *UnimplementedBundleServer) XXX_SetProxyImpl(impl protocol.Invoker) { s.proxyImpl = impl } @@ -643,7 +705,7 @@ func _Bundle_BundleDetail_Handler(srv interface{}, ctx context.Context, dec func } func _Bundle_CreateOrderRecord_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { - in := new(OrderRecord) + in := new(OrderCreateRecord) if err := dec(in); err != nil { return nil, err } @@ -1077,6 +1139,151 @@ func _Bundle_ValueAddServiceDetail_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _Bundle_ValueAddServiceLangByUuidAndLanguage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ValueAddServiceDetailRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("ValueAddServiceLangByUuidAndLanguage", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Bundle_CalculatePrice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(CalculatePriceRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("CalculatePrice", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Bundle_BundleExtend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(BundleExtendRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("BundleExtend", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Bundle_BundleExtendRecordsList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(BundleExtendRecordsListRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("BundleExtendRecordsList", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Bundle_GetBundleBalance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetBundleBalanceReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetBundleBalance", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + // Bundle_ServiceDesc is the grpc_go.ServiceDesc for Bundle service. // It's only intended for direct use with grpc_go.RegisterService, // and not to be introspected or modified (even as a copy) @@ -1180,6 +1387,26 @@ var Bundle_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "ValueAddServiceDetail", Handler: _Bundle_ValueAddServiceDetail_Handler, }, + { + MethodName: "ValueAddServiceLangByUuidAndLanguage", + Handler: _Bundle_ValueAddServiceLangByUuidAndLanguage_Handler, + }, + { + MethodName: "CalculatePrice", + Handler: _Bundle_CalculatePrice_Handler, + }, + { + MethodName: "BundleExtend", + Handler: _Bundle_BundleExtend_Handler, + }, + { + MethodName: "BundleExtendRecordsList", + Handler: _Bundle_BundleExtendRecordsList_Handler, + }, + { + MethodName: "GetBundleBalance", + Handler: _Bundle_GetBundleBalance_Handler, + }, }, Streams: []grpc_go.StreamDesc{}, Metadata: "pb/bundle.proto", diff --git a/pkg/router/router.go b/pkg/router/router.go index 6fb0709..cbe3552 100644 --- a/pkg/router/router.go +++ b/pkg/router/router.go @@ -63,7 +63,7 @@ func NewRouter() *gin.Engine { } webAcRouter := privateGroup.Group("/user") //webAcRouter.Use(middleware.CheckWebLogin(service.AccountProvider)) - webAcRouter.Use(middleware.CheckLogin(service.AccountFieeProvider)) + webAcRouter.Use(middleware.CheckWebLogin(service.AccountProvider)) { webAcRouter.POST("list", account.UserList) //用户列表 webAcRouter.POST("approval", account.UserApproval) //实名审核 diff --git a/pkg/service/bundle/bundleOrder.go b/pkg/service/bundle/bundleOrder.go index 8e096da..25d1886 100644 --- a/pkg/service/bundle/bundleOrder.go +++ b/pkg/service/bundle/bundleOrder.go @@ -79,77 +79,57 @@ func CreateBundleOrderAddSignature(c *gin.Context) { Options *bundle.ValueAddPriceOptions ID int32 } - - var ( - valueAddServices []ValueAddServiceInfo - totalAmount float64 - mainDeadline = orderRecordResp.OrderRecord.ExpirationTime - ) - for _, opt := range req.AddPriceOptionsList { - valueAddInfo, err := service.BundleProvider.ValueAddServiceDetail(context.Background(), &bundle.ValueAddServiceDetailRequest{ - Uuid: opt.ValueUid, + // 计算总金额和确定截止日期 + var expirationDate string + var addPriceList []*bundle.AddPriceOptionsInfo + var totalAmount float32 + for _, svc := range req.AddPriceOptionsList { + valueAddInfo, err := service.BundleProvider.ValueAddServiceLangByUuidAndLanguage(context.Background(), &bundle.ValueAddServiceDetailRequest{ + Uuid: svc.ValueUid, Language: req.Language, }) if err != nil { service.Error(c, err) return } - // 找到匹配的选项 - var selectedOption *bundle.ValueAddPriceOptions - for _, option := range valueAddInfo.ValueAddServiceLang.Options { - if int32(option.Id) == opt.Id { - selectedOption = option - break - } - } - if selectedOption == nil { - service.Error(c, errors.New("未找到匹配的价格选项")) - return - } - valueAddServices = append(valueAddServices, ValueAddServiceInfo{ - Service: valueAddInfo.ValueAddServiceLang, - Options: selectedOption, - ID: opt.Id, + valuePrice, err := service.BundleProvider.CalculatePrice(context.Background(), &bundle.CalculatePriceRequest{ + Uuid: svc.ValueUid, + Num: svc.Num, + Language: req.Language, }) - } - // 计算总金额和确定截止日期 - var expirationDate string - var addPriceList []*bundle.AddPriceOptionsInfo - for _, svc := range valueAddServices { - price, err := strconv.ParseFloat(svc.Options.Price, 64) if err != nil { - service.Error(c, errors.New("价格格式错误")) + service.Error(c, err) return } - var nowAmount float64 - switch svc.Service.PriceMode { - case 1: // 数量×单价模式 - nowAmount = float64(svc.Options.Num) * price - totalAmount += float64(svc.Options.Num) * price - case 2: // 固定价格模式 - nowAmount = price - totalAmount += price - } - + totalAmount += valuePrice.Price addPriceList = append(addPriceList, &bundle.AddPriceOptionsInfo{ - ValueUid: svc.Service.Uuid, - ServiceType: svc.Service.ServiceType, - CurrencyType: svc.Service.PriceType, - Amount: float32(nowAmount), - Num: svc.Options.Num, - Unit: svc.Service.Unit, + ValueUid: valueAddInfo.Uuid, + ServiceType: valueAddInfo.ServiceType, + CurrencyType: valueAddInfo.PriceType, + Amount: valuePrice.Price, + Num: svc.Num, + Unit: valueAddInfo.Unit, }) // 如果是可用时长服务,计算新的截止日期 - if svc.Service.ServiceType == 5 { - newDeadline := calculateExpirationDate(svc.Options.Num, svc.Service.Unit) - if expirationDate == "" || newDeadline > expirationDate { - expirationDate = newDeadline + if valueAddInfo.ServiceType == 5 { + endDate := orderRecordResp.OrderRecord.ExpirationTime + if endDate == "9999-12-31" { + service.Error(c, errors.New(common.ErrorPermanentPackage)) + return } + t, err := time.Parse("2006-01-02", endDate) + if err != nil { + fmt.Println("解析时间出错:", err) + return + } + newDeadline := calculateExpirationDate(t, svc.Num, valueAddInfo.Unit) + expirationDate = newDeadline + //} } } // 如果没有可用时长服务,使用主套餐截止日期 if expirationDate == "" { - expirationDate = mainDeadline + expirationDate = orderRecordResp.OrderRecord.ExpirationTime } req.CustomerNum = userInfo.SubNum req.CustomerName = userInfo.Name @@ -159,7 +139,7 @@ func CreateBundleOrderAddSignature(c *gin.Context) { req.ExpirationDate = expirationDate req.AddPriceOptionsList = addPriceList // 当前 未将 签名 写入合同中 - signContract, signContractErr := logic.SignContractV2(req.CustomerNum, bundleDetail.Bundle.Contract, float32(totalAmount), expirationDate) + signContract, signContractErr := logic.SignContractV2(req.CustomerNum, bundleDetail.Bundle.Contract, totalAmount, expirationDate) if signContractErr != nil { service.Error(c, signContractErr) return @@ -175,21 +155,21 @@ func CreateBundleOrderAddSignature(c *gin.Context) { } // 计算截止日期辅助函数 -func calculateExpirationDate(num int32, unit string) string { - now := time.Now() +func calculateExpirationDate(startDate time.Time, num int32, unit string) string { + //now := time.Now() switch unit { case "天": - return now.AddDate(0, 0, int(num)).Format("2006-01-02") + return startDate.AddDate(0, 0, int(num)).Format("2006-01-02") case "月": - return now.AddDate(0, int(num), 0).Format("2006-01-02") + return startDate.AddDate(0, int(num), 0).Format("2006-01-02") case "年": - return now.AddDate(int(num), 0, 0).Format("2006-01-02") + return startDate.AddDate(int(num), 0, 0).Format("2006-01-02") default: return "" } } func CreateBundleOrderSignature(c *gin.Context) { - var req bundle.OrderRecord + var req bundle.OrderCreateRecord if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil { service.Error(c, err) @@ -254,19 +234,12 @@ func CreateBundleOrderSignature(c *gin.Context) { service.Error(c, lastOrderRecordErr) return } - lastContractNo := "" - if lastOrderRecord.OrderRecords != nil { for _, lastOrder := range lastOrderRecord.OrderRecords { lastContractNo = lastOrder.ContractNo } } - - req.CustomerNum = userInfo.SubNum - req.CustomerName = userInfo.Name - req.CustomerID = strconv.FormatUint(userInfo.ID, 10) - // 获取 套餐信息 bundleDetailReq := &bundle.BundleDetailRequest{ Uuid: req.BundleUuid, @@ -276,69 +249,70 @@ func CreateBundleOrderSignature(c *gin.Context) { service.Error(c, detailErr) return } - - //获取增值套餐信息 - //if req.ValueAddBundleUuid != "" { - // valueAddBundleDetail, err := service.BundleProvider.ValueAddBundleDetail(context.Background(), &bundle.ValueAddBundleDetailRequest{ - // Uuid: req.ValueAddBundleUuid, - // }) - // if err != nil { - // service.Error(c, err) - // return - // } - // - // req.ValueAddBundleUuid = valueAddBundleDetail.Data.Uuid - // req.ValueAddOriginalPrice = valueAddBundleDetail.Data.OriginalPrice - // req.ValueAddDiscountPrice = valueAddBundleDetail.Data.DiscountPrice - // req.AddBundleCommonUid = valueAddBundleDetail.Data.AddBundleCommonUid - // - // if valueAddBundleDetail.Data.Choose { // 可选条数 - // req.ValueAddBundleAmount = valueAddBundleDetail.Data.DiscountPrice * float32(req.Num) - // discount, _ := new(big.Float).Sub(big.NewFloat(float64(valueAddBundleDetail.Data.OriginalPrice)), big.NewFloat(float64(valueAddBundleDetail.Data.DiscountPrice))).Float32() - // req.ValueAddSavedAmount = discount * float32(req.Num) - // } else { // 固定条数 - // req.ValueAddBundleAmount = valueAddBundleDetail.Data.TotalPrice - // req.ValueAddSavedAmount = valueAddBundleDetail.Data.SavedAmount - // } - // - // req.TotalAmount, _ = new(big.Float).Add(big.NewFloat(float64(req.ValueAddBundleAmount)), big.NewFloat(float64(bundleDetail.Bundle.Price))).Float32() - //} - - req.BundleName = bundleDetail.Bundle.Name - req.Amount = bundleDetail.Bundle.Price - req.AmountType = bundleDetail.Bundle.PriceType - req.BundleCommonUid = bundleDetail.Bundle.BundleCommonUid - req.TotalAmount = bundleDetail.Bundle.Price - req.PayType = 1 // 默认 人民币 //获取过期时间和增值服务金额 - PriceAndTime, err := service.BundleProvider.PackagePriceAndTime(context.Background(), &req) - if err != nil { - service.Error(c, err) - return + var addRecords []*bundle.OrderCreateAddRecord + var addTotalPrice float32 + var expirationDay string + for _, i := range req.AddRecords { + price, err := service.BundleProvider.CalculatePrice(context.Background(), &bundle.CalculatePriceRequest{ + Uuid: i.ValueUid, + Num: i.Num, + Language: req.Language, + }) + if err != nil { + service.Error(c, err) + return + } + addTotalPrice += price.Price + addService, err := service.BundleProvider.ValueAddServiceLangByUuidAndLanguage(context.Background(), &bundle.ValueAddServiceDetailRequest{ + Uuid: i.ValueUid, + Language: req.Language, + }) + if err != nil { + service.Error(c, err) + return + } + addRecords = append(addRecords, &bundle.OrderCreateAddRecord{ + ServiceType: addService.ServiceType, + ValueUid: i.ValueUid, + CurrencyType: addService.PriceType, + Amount: price.Price, + Num: i.Num, + Unit: addService.Unit, + Source: 1, + PaymentStatus: 1, + }) + //服务类型为时长 计算 + if addService.ServiceType == 5 { + expirationDay = calculateExpirationDate(time.Now(), i.Num, addService.Unit) + } } - //套餐金额+增值服务金额 - totalAmount := PriceAndTime.Price + bundleDetail.Bundle.Price - req.ContractNo = common.GenerateContractNo(lastContractNo) - // 当前 未将 签名 写入合同中 todo 金额和有效时间待修改 - signContract, signContractErr := logic.SignContractV2(req.CustomerNum, bundleDetail.Bundle.Contract, totalAmount, PriceAndTime.Time) + signContract, signContractErr := logic.SignContractV2(req.CustomerNum, bundleDetail.Bundle.Contract, addTotalPrice, expirationDay) if signContractErr != nil { service.Error(c, signContractErr) return } - + req.CustomerNum = userInfo.SubNum + req.CustomerName = userInfo.Name + req.CustomerID = strconv.FormatUint(userInfo.ID, 10) + req.BundleName = bundleDetail.Bundle.Name + req.Amount = bundleDetail.Bundle.Price + req.AmountType = bundleDetail.Bundle.PriceType + req.BundleCommonUid = bundleDetail.Bundle.BundleCommonUid + req.TotalAmount = bundleDetail.Bundle.Price + addTotalPrice + req.ContractNo = common.GenerateContractNo(lastContractNo) req.SignContract = signContract - req.SignedTime = common.GetBeijingTime() - req.Status = bundleModel.OrderSigned + req.AddRecords = addRecords + req.ExpirationTime = expirationDay res, err := service.BundleProvider.CreateOrderRecord(context.Background(), &req) if err != nil { service.Error(c, err) return } - service.Success(c, res) } diff --git a/pkg/service/bundle/common/msg.go b/pkg/service/bundle/common/msg.go index 376feb4..eb6d841 100644 --- a/pkg/service/bundle/common/msg.go +++ b/pkg/service/bundle/common/msg.go @@ -21,6 +21,7 @@ const ( HadOrder = "您已购买过套餐,无法再次购买" InvalidValueAddBundleNum = "套餐数量无效" ThePackageHasExpired = "当前套餐已过期" + ErrorPermanentPackage = "永久套餐无需购买" ) const ( From 2b30a246c436a57f3bc69805f6c65adad1534a72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A1=80=E5=B0=BC=E9=BE=9F?= <365252428@qq.com> Date: Fri, 13 Jun 2025 19:57:31 +0800 Subject: [PATCH 05/18] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/bundle/bundle.pb.go | 861 ++++++++++++++++++------------ api/bundle/bundle.validator.pb.go | 15 +- api/bundle/bundle_triple.pb.go | 45 ++ 3 files changed, 592 insertions(+), 329 deletions(-) diff --git a/api/bundle/bundle.pb.go b/api/bundle/bundle.pb.go index f83c2cf..04f1a7b 100644 --- a/api/bundle/bundle.pb.go +++ b/api/bundle/bundle.pb.go @@ -4451,6 +4451,101 @@ func (x *GetBundleBalanceListReq) GetPageSize() int32 { return 0 } +type GetBundleBalanceReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName"` + Status int32 `protobuf:"varint,2,opt,name=status,proto3" json:"status"` + BundleName string `protobuf:"bytes,3,opt,name=bundleName,proto3" json:"bundleName"` + ExpiredTimeStart int64 `protobuf:"varint,4,opt,name=expiredTimeStart,proto3" json:"expiredTimeStart"` + ExpiredTimeEnd int64 `protobuf:"varint,5,opt,name=expiredTimeEnd,proto3" json:"expiredTimeEnd"` + Page int32 `protobuf:"varint,6,opt,name=page,proto3" json:"page"` + PageSize int32 `protobuf:"varint,7,opt,name=pageSize,proto3" json:"pageSize"` +} + +func (x *GetBundleBalanceReq) Reset() { + *x = GetBundleBalanceReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetBundleBalanceReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetBundleBalanceReq) ProtoMessage() {} + +func (x *GetBundleBalanceReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[50] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetBundleBalanceReq.ProtoReflect.Descriptor instead. +func (*GetBundleBalanceReq) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{50} +} + +func (x *GetBundleBalanceReq) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +func (x *GetBundleBalanceReq) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *GetBundleBalanceReq) GetBundleName() string { + if x != nil { + return x.BundleName + } + return "" +} + +func (x *GetBundleBalanceReq) GetExpiredTimeStart() int64 { + if x != nil { + return x.ExpiredTimeStart + } + return 0 +} + +func (x *GetBundleBalanceReq) GetExpiredTimeEnd() int64 { + if x != nil { + return x.ExpiredTimeEnd + } + return 0 +} + +func (x *GetBundleBalanceReq) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *GetBundleBalanceReq) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + type BundleBalanceItem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4476,7 +4571,7 @@ type BundleBalanceItem struct { func (x *BundleBalanceItem) Reset() { *x = BundleBalanceItem{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[50] + mi := &file_pb_bundle_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4489,7 +4584,7 @@ func (x *BundleBalanceItem) String() string { func (*BundleBalanceItem) ProtoMessage() {} func (x *BundleBalanceItem) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[50] + mi := &file_pb_bundle_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4502,7 +4597,7 @@ func (x *BundleBalanceItem) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleBalanceItem.ProtoReflect.Descriptor instead. func (*BundleBalanceItem) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{50} + return file_pb_bundle_proto_rawDescGZIP(), []int{51} } func (x *BundleBalanceItem) GetUserId() int32 { @@ -4610,6 +4705,61 @@ func (x *BundleBalanceItem) GetExpansionPacksNumber() int32 { return 0 } +type GetBundleBalanceResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total"` + Data []*BundleBalanceItem `protobuf:"bytes,2,rep,name=data,proto3" json:"data"` +} + +func (x *GetBundleBalanceResp) Reset() { + *x = GetBundleBalanceResp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetBundleBalanceResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetBundleBalanceResp) ProtoMessage() {} + +func (x *GetBundleBalanceResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[52] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetBundleBalanceResp.ProtoReflect.Descriptor instead. +func (*GetBundleBalanceResp) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{52} +} + +func (x *GetBundleBalanceResp) GetTotal() int64 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *GetBundleBalanceResp) GetData() []*BundleBalanceItem { + if x != nil { + return x.Data + } + return nil +} + type GetBundleBalanceListResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4622,7 +4772,7 @@ type GetBundleBalanceListResp struct { func (x *GetBundleBalanceListResp) Reset() { *x = GetBundleBalanceListResp{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[51] + mi := &file_pb_bundle_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4635,7 +4785,7 @@ func (x *GetBundleBalanceListResp) String() string { func (*GetBundleBalanceListResp) ProtoMessage() {} func (x *GetBundleBalanceListResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[51] + mi := &file_pb_bundle_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4648,7 +4798,7 @@ func (x *GetBundleBalanceListResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBundleBalanceListResp.ProtoReflect.Descriptor instead. func (*GetBundleBalanceListResp) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{51} + return file_pb_bundle_proto_rawDescGZIP(), []int{53} } func (x *GetBundleBalanceListResp) GetTotal() int64 { @@ -4686,7 +4836,7 @@ type CreateBundleBalanceReq struct { func (x *CreateBundleBalanceReq) Reset() { *x = CreateBundleBalanceReq{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[52] + mi := &file_pb_bundle_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4699,7 +4849,7 @@ func (x *CreateBundleBalanceReq) String() string { func (*CreateBundleBalanceReq) ProtoMessage() {} func (x *CreateBundleBalanceReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[52] + mi := &file_pb_bundle_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4712,7 +4862,7 @@ func (x *CreateBundleBalanceReq) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateBundleBalanceReq.ProtoReflect.Descriptor instead. func (*CreateBundleBalanceReq) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{52} + return file_pb_bundle_proto_rawDescGZIP(), []int{54} } func (x *CreateBundleBalanceReq) GetUserId() int32 { @@ -4801,7 +4951,7 @@ type CreateBundleBalanceResp struct { func (x *CreateBundleBalanceResp) Reset() { *x = CreateBundleBalanceResp{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[53] + mi := &file_pb_bundle_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4814,7 +4964,7 @@ func (x *CreateBundleBalanceResp) String() string { func (*CreateBundleBalanceResp) ProtoMessage() {} func (x *CreateBundleBalanceResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[53] + mi := &file_pb_bundle_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4827,7 +4977,7 @@ func (x *CreateBundleBalanceResp) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateBundleBalanceResp.ProtoReflect.Descriptor instead. func (*CreateBundleBalanceResp) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{53} + return file_pb_bundle_proto_rawDescGZIP(), []int{55} } type AddBundleBalanceReq struct { @@ -4852,7 +5002,7 @@ type AddBundleBalanceReq struct { func (x *AddBundleBalanceReq) Reset() { *x = AddBundleBalanceReq{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[54] + mi := &file_pb_bundle_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4865,7 +5015,7 @@ func (x *AddBundleBalanceReq) String() string { func (*AddBundleBalanceReq) ProtoMessage() {} func (x *AddBundleBalanceReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[54] + mi := &file_pb_bundle_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4878,7 +5028,7 @@ func (x *AddBundleBalanceReq) ProtoReflect() protoreflect.Message { // Deprecated: Use AddBundleBalanceReq.ProtoReflect.Descriptor instead. func (*AddBundleBalanceReq) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{54} + return file_pb_bundle_proto_rawDescGZIP(), []int{56} } func (x *AddBundleBalanceReq) GetId() int32 { @@ -4974,7 +5124,7 @@ type AddBundleBalanceResp struct { func (x *AddBundleBalanceResp) Reset() { *x = AddBundleBalanceResp{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[55] + mi := &file_pb_bundle_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4987,7 +5137,7 @@ func (x *AddBundleBalanceResp) String() string { func (*AddBundleBalanceResp) ProtoMessage() {} func (x *AddBundleBalanceResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[55] + mi := &file_pb_bundle_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5000,7 +5150,7 @@ func (x *AddBundleBalanceResp) ProtoReflect() protoreflect.Message { // Deprecated: Use AddBundleBalanceResp.ProtoReflect.Descriptor instead. func (*AddBundleBalanceResp) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{55} + return file_pb_bundle_proto_rawDescGZIP(), []int{57} } var File_pb_bundle_proto protoreflect.FileDescriptor @@ -5717,6 +5867,21 @@ var file_pb_bundle_proto_rawDesc = []byte{ 0x65, 0x45, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x22, 0xed, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, + 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x2a, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x65, 0x78, 0x70, 0x69, + 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x26, 0x0a, 0x0e, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x45, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x8b, 0x05, 0x0a, 0x11, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, @@ -5758,246 +5923,257 @@ var file_pb_bundle_proto_rawDesc = []byte{ 0x0a, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x22, 0x5f, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, - 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x22, 0x8e, 0x04, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x16, - 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x55, - 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x55, 0x55, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, 0x69, 0x64, - 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x76, 0x69, 0x64, 0x65, - 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, - 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, - 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x64, 0x61, - 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, - 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1d, 0x64, 0x61, - 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, - 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x32, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, - 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, - 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x22, 0x19, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x9b, 0x04, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x1c, 0x0a, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x55, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x55, 0x55, 0x49, 0x44, 0x12, 0x24, 0x0a, - 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, + 0x65, 0x72, 0x22, 0x5b, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x12, 0x2d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0x5f, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x12, 0x2d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x22, 0x8e, 0x04, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x55, 0x55, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x55, 0x55, 0x49, + 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, - 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x20, 0x0a, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x12, 0x36, 0x0a, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6d, 0x61, - 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, - 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x69, - 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x69, 0x6d, 0x61, - 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, - 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, - 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1d, 0x64, 0x61, 0x74, 0x61, - 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x14, 0x65, 0x78, 0x70, + 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, + 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x36, 0x0a, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, + 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, + 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, + 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1d, + 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x32, 0x0a, + 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x16, 0x0a, - 0x14, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x32, 0xa0, 0x14, 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x12, 0x3f, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x3f, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x12, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x09, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, - 0x65, 0x6c, 0x66, 0x12, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x48, 0x61, 0x6e, - 0x64, 0x53, 0x68, 0x65, 0x6c, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x0a, 0x53, 0x61, 0x76, 0x65, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x14, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x56, 0x32, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, - 0x0e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x56, 0x32, 0x12, - 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32, 0x22, 0x00, 0x12, 0x45, - 0x0a, 0x0a, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x62, + 0x72, 0x22, 0x19, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9b, 0x04, 0x0a, + 0x13, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x55, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x55, 0x55, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x3a, 0x0a, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, + 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, + 0x0a, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, + 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6d, 0x61, + 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, + 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x2e, 0x0a, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x64, 0x61, + 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x44, 0x0a, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, + 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, + 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, + 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x16, 0x0a, 0x14, 0x41, 0x64, + 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x32, 0xf1, 0x14, 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x3f, 0x0a, + 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, + 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x42, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, + 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x09, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x65, 0x6c, 0x66, + 0x12, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, + 0x65, 0x6c, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x0a, 0x53, 0x61, 0x76, 0x65, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x14, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x47, 0x0a, 0x0c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x56, + 0x32, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x48, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x11, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x4b, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x13, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x56, 0x32, 0x12, 0x1b, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0a, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x48, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, + 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x11, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, - 0x10, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, + 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x42, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x13, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x10, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, - 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, + 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x12, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, - 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x46, 0x69, 0x6e, 0x61, - 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x48, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x13, - 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x41, 0x6e, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x55, 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, - 0x69, 0x73, 0x74, 0x56, 0x32, 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x56, 0x32, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x56, 0x32, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x23, - 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x12, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x14, 0x56, 0x61, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x21, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, + 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x48, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, + 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, + 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x13, 0x50, 0x61, 0x63, + 0x6b, 0x61, 0x67, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x50, + 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x12, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, + 0x56, 0x32, 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, + 0x32, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, + 0x32, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x23, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x12, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, + 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, + 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x12, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x4a, 0x0a, 0x13, 0x53, 0x61, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, - 0x61, 0x6e, 0x67, 0x1a, 0x14, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x61, 0x76, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x13, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x66, 0x0a, - 0x15, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x24, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, - 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x42, 0x79, 0x55, 0x75, - 0x69, 0x64, 0x41, 0x6e, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x24, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, + 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x13, + 0x53, 0x61, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, - 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x61, - 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x61, 0x6c, - 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x17, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x26, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x5b, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1f, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x58, 0x0a, - 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, + 0x1a, 0x14, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, + 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x15, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x24, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x42, 0x79, 0x55, 0x75, 0x69, 0x64, 0x41, + 0x6e, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, + 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x22, 0x00, 0x12, + 0x51, 0x0a, 0x0e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, + 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, + 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x6c, 0x0a, 0x17, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x26, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, + 0x14, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1f, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, + 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1b, 0x2e, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x12, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, + 0x71, 0x1a, 0x1f, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2f, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, + 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2f, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -6012,7 +6188,7 @@ func file_pb_bundle_proto_rawDescGZIP() []byte { return file_pb_bundle_proto_rawDescData } -var file_pb_bundle_proto_msgTypes = make([]protoimpl.MessageInfo, 56) +var file_pb_bundle_proto_msgTypes = make([]protoimpl.MessageInfo, 58) var file_pb_bundle_proto_goTypes = []interface{}{ (*OrderCreateRecord)(nil), // 0: bundle.OrderCreateRecord (*OrderCreateAddRecord)(nil), // 1: bundle.OrderCreateAddRecord @@ -6064,12 +6240,14 @@ var file_pb_bundle_proto_goTypes = []interface{}{ (*BundleExtendRecordsListResponse)(nil), // 47: bundle.BundleExtendRecordsListResponse (*BundleExtendRecordItem)(nil), // 48: bundle.BundleExtendRecordItem (*GetBundleBalanceListReq)(nil), // 49: bundle.GetBundleBalanceListReq - (*BundleBalanceItem)(nil), // 50: bundle.BundleBalanceItem - (*GetBundleBalanceListResp)(nil), // 51: bundle.GetBundleBalanceListResp - (*CreateBundleBalanceReq)(nil), // 52: bundle.CreateBundleBalanceReq - (*CreateBundleBalanceResp)(nil), // 53: bundle.CreateBundleBalanceResp - (*AddBundleBalanceReq)(nil), // 54: bundle.AddBundleBalanceReq - (*AddBundleBalanceResp)(nil), // 55: bundle.AddBundleBalanceResp + (*GetBundleBalanceReq)(nil), // 50: bundle.GetBundleBalanceReq + (*BundleBalanceItem)(nil), // 51: bundle.BundleBalanceItem + (*GetBundleBalanceResp)(nil), // 52: bundle.GetBundleBalanceResp + (*GetBundleBalanceListResp)(nil), // 53: bundle.GetBundleBalanceListResp + (*CreateBundleBalanceReq)(nil), // 54: bundle.CreateBundleBalanceReq + (*CreateBundleBalanceResp)(nil), // 55: bundle.CreateBundleBalanceResp + (*AddBundleBalanceReq)(nil), // 56: bundle.AddBundleBalanceReq + (*AddBundleBalanceResp)(nil), // 57: bundle.AddBundleBalanceResp } var file_pb_bundle_proto_depIdxs = []int32{ 1, // 0: bundle.OrderCreateRecord.addRecords:type_name -> bundle.OrderCreateAddRecord @@ -6091,74 +6269,77 @@ var file_pb_bundle_proto_depIdxs = []int32{ 35, // 16: bundle.ValueAddServiceListResponse.valueAddServiceList:type_name -> bundle.ValueAddService 35, // 17: bundle.ValueAddServiceDetailResponse.valueAddService:type_name -> bundle.ValueAddService 48, // 18: bundle.BundleExtendRecordsListResponse.data:type_name -> bundle.BundleExtendRecordItem - 50, // 19: bundle.GetBundleBalanceListResp.data:type_name -> bundle.BundleBalanceItem - 8, // 20: bundle.Bundle.CreateBundle:input_type -> bundle.BundleProfile - 8, // 21: bundle.Bundle.UpdateBundle:input_type -> bundle.BundleProfile - 12, // 22: bundle.Bundle.DeleteBundle:input_type -> bundle.DelBundleRequest - 16, // 23: bundle.Bundle.HandShelf:input_type -> bundle.HandShelfRequest - 8, // 24: bundle.Bundle.SaveBundle:input_type -> bundle.BundleProfile - 13, // 25: bundle.Bundle.BundleListV2:input_type -> bundle.BundleListRequest - 15, // 26: bundle.Bundle.BundleDetailV2:input_type -> bundle.BundleDetailRequest - 13, // 27: bundle.Bundle.BundleList:input_type -> bundle.BundleListRequest - 15, // 28: bundle.Bundle.BundleDetail:input_type -> bundle.BundleDetailRequest - 0, // 29: bundle.Bundle.CreateOrderRecord:input_type -> bundle.OrderCreateRecord - 19, // 30: bundle.Bundle.UpdateOrderRecord:input_type -> bundle.OrderRecord - 19, // 31: bundle.Bundle.UpdateOrderRecordByOrderNo:input_type -> bundle.OrderRecord - 23, // 32: bundle.Bundle.OrderRecordsList:input_type -> bundle.OrderRecordsRequest - 25, // 33: bundle.Bundle.OrderRecordsDetail:input_type -> bundle.OrderRecordsDetailRequest - 34, // 34: bundle.Bundle.UpdateFinancialConfirmationStatus:input_type -> bundle.FinancialConfirmationRequest - 20, // 35: bundle.Bundle.CreateOrderAddRecord:input_type -> bundle.OrderAddRecord - 19, // 36: bundle.Bundle.PackagePriceAndTime:input_type -> bundle.OrderRecord - 2, // 37: bundle.Bundle.OrderRecordsListV2:input_type -> bundle.OrderRecordsRequestV2 - 28, // 38: bundle.Bundle.CreateValueAddBundle:input_type -> bundle.CreateValueAddBundleRequest - 30, // 39: bundle.Bundle.ValueAddBundleList:input_type -> bundle.ValueAddBundleListRequest - 32, // 40: bundle.Bundle.ValueAddBundleDetail:input_type -> bundle.ValueAddBundleDetailRequest - 36, // 41: bundle.Bundle.SaveValueAddService:input_type -> bundle.ValueAddServiceLang - 38, // 42: bundle.Bundle.ValueAddServiceList:input_type -> bundle.ValueAddServiceListRequest - 40, // 43: bundle.Bundle.ValueAddServiceDetail:input_type -> bundle.ValueAddServiceDetailRequest - 40, // 44: bundle.Bundle.ValueAddServiceLangByUuidAndLanguage:input_type -> bundle.ValueAddServiceDetailRequest - 42, // 45: bundle.Bundle.CalculatePrice:input_type -> bundle.CalculatePriceRequest - 44, // 46: bundle.Bundle.BundleExtend:input_type -> bundle.BundleExtendRequest - 46, // 47: bundle.Bundle.BundleExtendRecordsList:input_type -> bundle.BundleExtendRecordsListRequest - 49, // 48: bundle.Bundle.GetBundleBalanceList:input_type -> bundle.GetBundleBalanceListReq - 52, // 49: bundle.Bundle.CreateBundleBalance:input_type -> bundle.CreateBundleBalanceReq - 54, // 50: bundle.Bundle.AddBundleBalance:input_type -> bundle.AddBundleBalanceReq - 7, // 51: bundle.Bundle.CreateBundle:output_type -> bundle.CommonResponse - 7, // 52: bundle.Bundle.UpdateBundle:output_type -> bundle.CommonResponse - 7, // 53: bundle.Bundle.DeleteBundle:output_type -> bundle.CommonResponse - 7, // 54: bundle.Bundle.HandShelf:output_type -> bundle.CommonResponse - 10, // 55: bundle.Bundle.SaveBundle:output_type -> bundle.SaveResponse - 14, // 56: bundle.Bundle.BundleListV2:output_type -> bundle.BundleListResponse - 18, // 57: bundle.Bundle.BundleDetailV2:output_type -> bundle.BundleDetailResponseV2 - 14, // 58: bundle.Bundle.BundleList:output_type -> bundle.BundleListResponse - 17, // 59: bundle.Bundle.BundleDetail:output_type -> bundle.BundleDetailResponse - 7, // 60: bundle.Bundle.CreateOrderRecord:output_type -> bundle.CommonResponse - 7, // 61: bundle.Bundle.UpdateOrderRecord:output_type -> bundle.CommonResponse - 7, // 62: bundle.Bundle.UpdateOrderRecordByOrderNo:output_type -> bundle.CommonResponse - 24, // 63: bundle.Bundle.OrderRecordsList:output_type -> bundle.OrderRecordsResponse - 26, // 64: bundle.Bundle.OrderRecordsDetail:output_type -> bundle.OrderRecordsDetailResponse - 7, // 65: bundle.Bundle.UpdateFinancialConfirmationStatus:output_type -> bundle.CommonResponse - 7, // 66: bundle.Bundle.CreateOrderAddRecord:output_type -> bundle.CommonResponse - 6, // 67: bundle.Bundle.PackagePriceAndTime:output_type -> bundle.PackagePriceAndTimeResponse - 3, // 68: bundle.Bundle.OrderRecordsListV2:output_type -> bundle.OrderRecordsResponseV2 - 29, // 69: bundle.Bundle.CreateValueAddBundle:output_type -> bundle.CreateValueAddBundleResponse - 31, // 70: bundle.Bundle.ValueAddBundleList:output_type -> bundle.ValueAddBundleListResponse - 33, // 71: bundle.Bundle.ValueAddBundleDetail:output_type -> bundle.ValueAddBundleDetailResponse - 10, // 72: bundle.Bundle.SaveValueAddService:output_type -> bundle.SaveResponse - 39, // 73: bundle.Bundle.ValueAddServiceList:output_type -> bundle.ValueAddServiceListResponse - 41, // 74: bundle.Bundle.ValueAddServiceDetail:output_type -> bundle.ValueAddServiceDetailResponse - 36, // 75: bundle.Bundle.ValueAddServiceLangByUuidAndLanguage:output_type -> bundle.ValueAddServiceLang - 43, // 76: bundle.Bundle.CalculatePrice:output_type -> bundle.CalculatePriceResponse - 45, // 77: bundle.Bundle.BundleExtend:output_type -> bundle.BundleExtendResponse - 47, // 78: bundle.Bundle.BundleExtendRecordsList:output_type -> bundle.BundleExtendRecordsListResponse - 51, // 79: bundle.Bundle.GetBundleBalanceList:output_type -> bundle.GetBundleBalanceListResp - 53, // 80: bundle.Bundle.CreateBundleBalance:output_type -> bundle.CreateBundleBalanceResp - 55, // 81: bundle.Bundle.AddBundleBalance:output_type -> bundle.AddBundleBalanceResp - 51, // [51:82] is the sub-list for method output_type - 20, // [20:51] is the sub-list for method input_type - 20, // [20:20] is the sub-list for extension type_name - 20, // [20:20] is the sub-list for extension extendee - 0, // [0:20] is the sub-list for field type_name + 51, // 19: bundle.GetBundleBalanceResp.data:type_name -> bundle.BundleBalanceItem + 51, // 20: bundle.GetBundleBalanceListResp.data:type_name -> bundle.BundleBalanceItem + 8, // 21: bundle.Bundle.CreateBundle:input_type -> bundle.BundleProfile + 8, // 22: bundle.Bundle.UpdateBundle:input_type -> bundle.BundleProfile + 12, // 23: bundle.Bundle.DeleteBundle:input_type -> bundle.DelBundleRequest + 16, // 24: bundle.Bundle.HandShelf:input_type -> bundle.HandShelfRequest + 8, // 25: bundle.Bundle.SaveBundle:input_type -> bundle.BundleProfile + 13, // 26: bundle.Bundle.BundleListV2:input_type -> bundle.BundleListRequest + 15, // 27: bundle.Bundle.BundleDetailV2:input_type -> bundle.BundleDetailRequest + 13, // 28: bundle.Bundle.BundleList:input_type -> bundle.BundleListRequest + 15, // 29: bundle.Bundle.BundleDetail:input_type -> bundle.BundleDetailRequest + 0, // 30: bundle.Bundle.CreateOrderRecord:input_type -> bundle.OrderCreateRecord + 19, // 31: bundle.Bundle.UpdateOrderRecord:input_type -> bundle.OrderRecord + 19, // 32: bundle.Bundle.UpdateOrderRecordByOrderNo:input_type -> bundle.OrderRecord + 23, // 33: bundle.Bundle.OrderRecordsList:input_type -> bundle.OrderRecordsRequest + 25, // 34: bundle.Bundle.OrderRecordsDetail:input_type -> bundle.OrderRecordsDetailRequest + 34, // 35: bundle.Bundle.UpdateFinancialConfirmationStatus:input_type -> bundle.FinancialConfirmationRequest + 20, // 36: bundle.Bundle.CreateOrderAddRecord:input_type -> bundle.OrderAddRecord + 19, // 37: bundle.Bundle.PackagePriceAndTime:input_type -> bundle.OrderRecord + 2, // 38: bundle.Bundle.OrderRecordsListV2:input_type -> bundle.OrderRecordsRequestV2 + 28, // 39: bundle.Bundle.CreateValueAddBundle:input_type -> bundle.CreateValueAddBundleRequest + 30, // 40: bundle.Bundle.ValueAddBundleList:input_type -> bundle.ValueAddBundleListRequest + 32, // 41: bundle.Bundle.ValueAddBundleDetail:input_type -> bundle.ValueAddBundleDetailRequest + 36, // 42: bundle.Bundle.SaveValueAddService:input_type -> bundle.ValueAddServiceLang + 38, // 43: bundle.Bundle.ValueAddServiceList:input_type -> bundle.ValueAddServiceListRequest + 40, // 44: bundle.Bundle.ValueAddServiceDetail:input_type -> bundle.ValueAddServiceDetailRequest + 40, // 45: bundle.Bundle.ValueAddServiceLangByUuidAndLanguage:input_type -> bundle.ValueAddServiceDetailRequest + 42, // 46: bundle.Bundle.CalculatePrice:input_type -> bundle.CalculatePriceRequest + 44, // 47: bundle.Bundle.BundleExtend:input_type -> bundle.BundleExtendRequest + 46, // 48: bundle.Bundle.BundleExtendRecordsList:input_type -> bundle.BundleExtendRecordsListRequest + 49, // 49: bundle.Bundle.GetBundleBalanceList:input_type -> bundle.GetBundleBalanceListReq + 54, // 50: bundle.Bundle.CreateBundleBalance:input_type -> bundle.CreateBundleBalanceReq + 56, // 51: bundle.Bundle.AddBundleBalance:input_type -> bundle.AddBundleBalanceReq + 50, // 52: bundle.Bundle.GetBundleBalance:input_type -> bundle.GetBundleBalanceReq + 7, // 53: bundle.Bundle.CreateBundle:output_type -> bundle.CommonResponse + 7, // 54: bundle.Bundle.UpdateBundle:output_type -> bundle.CommonResponse + 7, // 55: bundle.Bundle.DeleteBundle:output_type -> bundle.CommonResponse + 7, // 56: bundle.Bundle.HandShelf:output_type -> bundle.CommonResponse + 10, // 57: bundle.Bundle.SaveBundle:output_type -> bundle.SaveResponse + 14, // 58: bundle.Bundle.BundleListV2:output_type -> bundle.BundleListResponse + 18, // 59: bundle.Bundle.BundleDetailV2:output_type -> bundle.BundleDetailResponseV2 + 14, // 60: bundle.Bundle.BundleList:output_type -> bundle.BundleListResponse + 17, // 61: bundle.Bundle.BundleDetail:output_type -> bundle.BundleDetailResponse + 7, // 62: bundle.Bundle.CreateOrderRecord:output_type -> bundle.CommonResponse + 7, // 63: bundle.Bundle.UpdateOrderRecord:output_type -> bundle.CommonResponse + 7, // 64: bundle.Bundle.UpdateOrderRecordByOrderNo:output_type -> bundle.CommonResponse + 24, // 65: bundle.Bundle.OrderRecordsList:output_type -> bundle.OrderRecordsResponse + 26, // 66: bundle.Bundle.OrderRecordsDetail:output_type -> bundle.OrderRecordsDetailResponse + 7, // 67: bundle.Bundle.UpdateFinancialConfirmationStatus:output_type -> bundle.CommonResponse + 7, // 68: bundle.Bundle.CreateOrderAddRecord:output_type -> bundle.CommonResponse + 6, // 69: bundle.Bundle.PackagePriceAndTime:output_type -> bundle.PackagePriceAndTimeResponse + 3, // 70: bundle.Bundle.OrderRecordsListV2:output_type -> bundle.OrderRecordsResponseV2 + 29, // 71: bundle.Bundle.CreateValueAddBundle:output_type -> bundle.CreateValueAddBundleResponse + 31, // 72: bundle.Bundle.ValueAddBundleList:output_type -> bundle.ValueAddBundleListResponse + 33, // 73: bundle.Bundle.ValueAddBundleDetail:output_type -> bundle.ValueAddBundleDetailResponse + 10, // 74: bundle.Bundle.SaveValueAddService:output_type -> bundle.SaveResponse + 39, // 75: bundle.Bundle.ValueAddServiceList:output_type -> bundle.ValueAddServiceListResponse + 41, // 76: bundle.Bundle.ValueAddServiceDetail:output_type -> bundle.ValueAddServiceDetailResponse + 36, // 77: bundle.Bundle.ValueAddServiceLangByUuidAndLanguage:output_type -> bundle.ValueAddServiceLang + 43, // 78: bundle.Bundle.CalculatePrice:output_type -> bundle.CalculatePriceResponse + 45, // 79: bundle.Bundle.BundleExtend:output_type -> bundle.BundleExtendResponse + 47, // 80: bundle.Bundle.BundleExtendRecordsList:output_type -> bundle.BundleExtendRecordsListResponse + 53, // 81: bundle.Bundle.GetBundleBalanceList:output_type -> bundle.GetBundleBalanceListResp + 55, // 82: bundle.Bundle.CreateBundleBalance:output_type -> bundle.CreateBundleBalanceResp + 57, // 83: bundle.Bundle.AddBundleBalance:output_type -> bundle.AddBundleBalanceResp + 52, // 84: bundle.Bundle.GetBundleBalance:output_type -> bundle.GetBundleBalanceResp + 53, // [53:85] is the sub-list for method output_type + 21, // [21:53] is the sub-list for method input_type + 21, // [21:21] is the sub-list for extension type_name + 21, // [21:21] is the sub-list for extension extendee + 0, // [0:21] is the sub-list for field type_name } func init() { file_pb_bundle_proto_init() } @@ -6768,7 +6949,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BundleBalanceItem); i { + switch v := v.(*GetBundleBalanceReq); i { case 0: return &v.state case 1: @@ -6780,7 +6961,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBundleBalanceListResp); i { + switch v := v.(*BundleBalanceItem); i { case 0: return &v.state case 1: @@ -6792,7 +6973,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateBundleBalanceReq); i { + switch v := v.(*GetBundleBalanceResp); i { case 0: return &v.state case 1: @@ -6804,7 +6985,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateBundleBalanceResp); i { + switch v := v.(*GetBundleBalanceListResp); i { case 0: return &v.state case 1: @@ -6816,7 +6997,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddBundleBalanceReq); i { + switch v := v.(*CreateBundleBalanceReq); i { case 0: return &v.state case 1: @@ -6828,6 +7009,30 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateBundleBalanceResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddBundleBalanceReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddBundleBalanceResp); i { case 0: return &v.state @@ -6846,7 +7051,7 @@ func file_pb_bundle_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pb_bundle_proto_rawDesc, NumEnums: 0, - NumMessages: 56, + NumMessages: 58, NumExtensions: 0, NumServices: 1, }, diff --git a/api/bundle/bundle.validator.pb.go b/api/bundle/bundle.validator.pb.go index a5b459f..ef8aa9d 100644 --- a/api/bundle/bundle.validator.pb.go +++ b/api/bundle/bundle.validator.pb.go @@ -7,8 +7,8 @@ import ( fmt "fmt" math "math" proto "github.com/golang/protobuf/proto" - _ "github.com/mwitkow/go-proto-validators" _ "google.golang.org/protobuf/types/descriptorpb" + _ "github.com/mwitkow/go-proto-validators" github_com_mwitkow_go_proto_validators "github.com/mwitkow/go-proto-validators" ) @@ -296,9 +296,22 @@ func (this *BundleExtendRecordItem) Validate() error { func (this *GetBundleBalanceListReq) Validate() error { return nil } +func (this *GetBundleBalanceReq) Validate() error { + return nil +} func (this *BundleBalanceItem) Validate() error { return nil } +func (this *GetBundleBalanceResp) Validate() error { + for _, item := range this.Data { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Data", err) + } + } + } + return nil +} func (this *GetBundleBalanceListResp) Validate() error { for _, item := range this.Data { if item != nil { diff --git a/api/bundle/bundle_triple.pb.go b/api/bundle/bundle_triple.pb.go index f6948bf..160a442 100644 --- a/api/bundle/bundle_triple.pb.go +++ b/api/bundle/bundle_triple.pb.go @@ -62,6 +62,7 @@ type BundleClient interface { GetBundleBalanceList(ctx context.Context, in *GetBundleBalanceListReq, opts ...grpc_go.CallOption) (*GetBundleBalanceListResp, common.ErrorWithAttachment) CreateBundleBalance(ctx context.Context, in *CreateBundleBalanceReq, opts ...grpc_go.CallOption) (*CreateBundleBalanceResp, common.ErrorWithAttachment) AddBundleBalance(ctx context.Context, in *AddBundleBalanceReq, opts ...grpc_go.CallOption) (*AddBundleBalanceResp, common.ErrorWithAttachment) + GetBundleBalance(ctx context.Context, in *GetBundleBalanceReq, opts ...grpc_go.CallOption) (*GetBundleBalanceResp, common.ErrorWithAttachment) } type bundleClient struct { @@ -100,6 +101,7 @@ type BundleClientImpl struct { GetBundleBalanceList func(ctx context.Context, in *GetBundleBalanceListReq) (*GetBundleBalanceListResp, error) CreateBundleBalance func(ctx context.Context, in *CreateBundleBalanceReq) (*CreateBundleBalanceResp, error) AddBundleBalance func(ctx context.Context, in *AddBundleBalanceReq) (*AddBundleBalanceResp, error) + GetBundleBalance func(ctx context.Context, in *GetBundleBalanceReq) (*GetBundleBalanceResp, error) } func (c *BundleClientImpl) GetDubboStub(cc *triple.TripleConn) BundleClient { @@ -300,6 +302,12 @@ func (c *bundleClient) AddBundleBalance(ctx context.Context, in *AddBundleBalanc return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/AddBundleBalance", in, out) } +func (c *bundleClient) GetBundleBalance(ctx context.Context, in *GetBundleBalanceReq, opts ...grpc_go.CallOption) (*GetBundleBalanceResp, common.ErrorWithAttachment) { + out := new(GetBundleBalanceResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetBundleBalance", in, out) +} + // BundleServer is the server API for Bundle service. // All implementations must embed UnimplementedBundleServer // for forward compatibility @@ -338,6 +346,7 @@ type BundleServer interface { GetBundleBalanceList(context.Context, *GetBundleBalanceListReq) (*GetBundleBalanceListResp, error) CreateBundleBalance(context.Context, *CreateBundleBalanceReq) (*CreateBundleBalanceResp, error) AddBundleBalance(context.Context, *AddBundleBalanceReq) (*AddBundleBalanceResp, error) + GetBundleBalance(context.Context, *GetBundleBalanceReq) (*GetBundleBalanceResp, error) mustEmbedUnimplementedBundleServer() } @@ -439,6 +448,9 @@ func (UnimplementedBundleServer) CreateBundleBalance(context.Context, *CreateBun func (UnimplementedBundleServer) AddBundleBalance(context.Context, *AddBundleBalanceReq) (*AddBundleBalanceResp, error) { return nil, status.Errorf(codes.Unimplemented, "method AddBundleBalance not implemented") } +func (UnimplementedBundleServer) GetBundleBalance(context.Context, *GetBundleBalanceReq) (*GetBundleBalanceResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetBundleBalance not implemented") +} func (s *UnimplementedBundleServer) XXX_SetProxyImpl(impl protocol.Invoker) { s.proxyImpl = impl } @@ -1366,6 +1378,35 @@ func _Bundle_AddBundleBalance_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } +func _Bundle_GetBundleBalance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetBundleBalanceReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetBundleBalance", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + // Bundle_ServiceDesc is the grpc_go.ServiceDesc for Bundle service. // It's only intended for direct use with grpc_go.RegisterService, // and not to be introspected or modified (even as a copy) @@ -1497,6 +1538,10 @@ var Bundle_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "AddBundleBalance", Handler: _Bundle_AddBundleBalance_Handler, }, + { + MethodName: "GetBundleBalance", + Handler: _Bundle_GetBundleBalance_Handler, + }, }, Streams: []grpc_go.StreamDesc{}, Metadata: "pb/bundle.proto", From 8449969682a17b802e350c3b847ac906c9ba9e18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A1=80=E5=B0=BC=E9=BE=9F?= <365252428@qq.com> Date: Fri, 13 Jun 2025 22:38:03 +0800 Subject: [PATCH 06/18] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/bundle/bundle.pb.go | 1707 +++++++++++++++-------------- pkg/service/bundle/bundleOrder.go | 4 + pkg/service/init.go | 6 +- 3 files changed, 870 insertions(+), 847 deletions(-) diff --git a/api/bundle/bundle.pb.go b/api/bundle/bundle.pb.go index ae776f1..c0b3078 100644 --- a/api/bundle/bundle.pb.go +++ b/api/bundle/bundle.pb.go @@ -45,7 +45,8 @@ type OrderCreateRecord struct { TotalAmount float32 `protobuf:"fixed32,16,opt,name=totalAmount,proto3" json:"totalAmount"` //总金额 BundleCommonUid string `protobuf:"bytes,17,opt,name=bundleCommonUid,proto3" json:"bundleCommonUid"` Snapshot string `protobuf:"bytes,18,opt,name=snapshot,proto3" json:"snapshot"` - AddRecords []*OrderCreateAddRecord `protobuf:"bytes,19,rep,name=addRecords,proto3" json:"addRecords"` //增值服务 + PayType int32 `protobuf:"varint,19,opt,name=payType,proto3" json:"payType"` + AddRecords []*OrderCreateAddRecord `protobuf:"bytes,20,rep,name=addRecords,proto3" json:"addRecords"` //增值服务 } func (x *OrderCreateRecord) Reset() { @@ -206,6 +207,13 @@ func (x *OrderCreateRecord) GetSnapshot() string { return "" } +func (x *OrderCreateRecord) GetPayType() int32 { + if x != nil { + return x.PayType + } + return 0 +} + func (x *OrderCreateRecord) GetAddRecords() []*OrderCreateAddRecord { if x != nil { return x.AddRecords @@ -2068,6 +2076,7 @@ type OrderAddRecord struct { SignedTime string `protobuf:"bytes,10,opt,name=signedTime,proto3" json:"signedTime"` ExpirationDate string `protobuf:"bytes,11,opt,name=expirationDate,proto3" json:"expirationDate"` Snapshot string `protobuf:"bytes,38,opt,name=snapshot,proto3" json:"snapshot"` + OrderUUID string `protobuf:"bytes,39,opt,name=orderUUID,proto3" json:"orderUUID"` } func (x *OrderAddRecord) Reset() { @@ -2186,6 +2195,13 @@ func (x *OrderAddRecord) GetSnapshot() string { return "" } +func (x *OrderAddRecord) GetOrderUUID() string { + if x != nil { + return x.OrderUUID + } + return "" +} + type AddPriceOptionsInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4664,7 +4680,7 @@ var file_pb_bundle_proto_rawDesc = []byte{ 0x6f, 0x12, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x1a, 0x13, 0x70, 0x62, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x12, 0x70, 0x62, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x22, 0x8f, 0x05, 0x0a, 0x11, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x6f, 0x22, 0xa9, 0x05, 0x0a, 0x11, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, @@ -4701,165 +4717,125 @@ var file_pb_bundle_proto_rawDesc = []byte{ 0x55, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x3c, 0x0a, 0x0a, 0x61, 0x64, 0x64, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, - 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0a, 0x61, 0x64, 0x64, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x73, 0x22, 0xf4, 0x01, 0x0a, 0x14, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x20, 0x0a, - 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x63, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, - 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, 0x61, - 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x81, 0x04, 0x0a, 0x15, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x56, 0x32, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, - 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, - 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, - 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x22, 0x0a, 0x0c, 0x61, 0x64, 0x64, 0x50, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x61, 0x64, 0x64, 0x50, 0x61, 0x79, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x06, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x3c, 0x0a, 0x0a, 0x61, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x14, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x52, 0x0a, 0x61, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x22, 0xf4, + 0x01, 0x0a, 0x14, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x64, + 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x55, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, + 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x6e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, + 0x24, 0x0a, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x81, 0x04, 0x0a, 0x15, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x32, 0x12, + 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, + 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, + 0x70, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x64, 0x64, + 0x50, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0c, 0x61, 0x64, 0x64, 0x50, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, + 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x12, 0x30, 0x0a, 0x13, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x41, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x45, 0x6e, 0x64, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x41, 0x74, 0x45, 0x6e, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x30, 0x0a, + 0x13, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, + 0x74, 0x45, 0x6e, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x45, 0x6e, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, + 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x03, + 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x9d, 0x01, 0x0a, 0x16, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x56, 0x32, 0x12, 0x3d, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0xd3, 0x02, 0x0a, 0x15, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, - 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x12, 0x30, 0x0a, - 0x13, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, - 0x2c, 0x0a, 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, - 0x74, 0x45, 0x6e, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x45, 0x6e, 0x64, 0x12, 0x34, 0x0a, - 0x15, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, - 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x45, 0x6e, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x13, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x41, 0x74, 0x45, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, - 0x18, 0x0e, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, - 0x9d, 0x01, 0x0a, 0x16, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32, 0x12, 0x3d, 0x0a, 0x0a, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, - 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, - 0xd3, 0x02, 0x0a, 0x15, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, - 0x0e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x46, 0x0a, - 0x0d, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x08, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, - 0x72, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x65, 0x72, 0x49, 0x64, 0x22, 0xf0, 0x02, 0x0a, 0x18, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, - 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x4e, 0x6f, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, - 0x4e, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, - 0x74, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x73, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x68, 0x61, - 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x46, 0x65, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, - 0x0b, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x46, 0x65, 0x65, 0x12, 0x22, 0x0a, 0x0c, - 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x02, 0x52, 0x0c, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, - 0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x41, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x12, 0x22, 0x0a, 0x0c, - 0x61, 0x64, 0x64, 0x50, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0c, 0x61, 0x64, 0x64, 0x50, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x1a, 0x0a, 0x08, - 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x22, 0x47, 0x0a, 0x1b, 0x50, 0x61, 0x63, 0x6b, - 0x61, 0x67, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x69, 0x6d, - 0x65, 0x22, 0x50, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x4e, 0x6f, 0x22, 0x93, 0x05, 0x0a, 0x0d, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, - 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, - 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, - 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, - 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x53, 0x69, 0x67, - 0x6e, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x44, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, - 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x62, - 0x67, 0x49, 0x6d, 0x67, 0x31, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x67, 0x49, - 0x6d, 0x67, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x32, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x32, 0x12, 0x20, 0x0a, 0x0b, 0x73, - 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0b, 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x53, 0x0a, - 0x15, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x15, 0x53, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x12, 0x47, 0x0a, 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x52, 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x69, - 0x6d, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, - 0x69, 0x6d, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xe1, 0x01, 0x0a, 0x11, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x12, + 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x70, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x70, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74, + 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, + 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0d, 0x61, 0x64, 0x64, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x0d, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x22, + 0xf0, 0x02, 0x0a, 0x18, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x12, 0x16, 0x0a, 0x06, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, + 0x73, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, + 0x46, 0x65, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x68, 0x61, 0x6e, 0x64, 0x6c, + 0x69, 0x6e, 0x67, 0x46, 0x65, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x65, 0x78, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x64, 0x64, 0x50, 0x61, 0x79, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x61, 0x64, + 0x64, 0x50, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x22, 0x47, 0x0a, 0x1b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x50, 0x0a, 0x0e, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, + 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x22, 0x93, 0x05, + 0x0a, 0x0d, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, @@ -4867,708 +4843,751 @@ var file_pb_bundle_proto_rawDesc = []byte{ 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, - 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x52, 0x0a, - 0x0c, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, - 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4e, 0x75, 0x6d, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4e, 0x75, - 0x6d, 0x22, 0x7b, 0x0a, 0x15, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x55, 0x75, 0x69, 0x64, 0x12, 0x20, - 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x22, 0x26, - 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x8d, 0x01, 0x0a, 0x11, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, - 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, - 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x5b, 0x0a, 0x12, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x07, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x52, 0x07, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, - 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x22, 0x45, 0x0a, 0x13, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x48, 0x0a, 0x10, 0x48, 0x61, - 0x6e, 0x64, 0x53, 0x68, 0x65, 0x6c, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, - 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, - 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x22, 0x57, 0x0a, 0x14, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x06, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, - 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x59, 0x0a, - 0x16, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32, 0x12, 0x2d, 0x0a, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x06, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xf9, 0x0a, 0x0a, 0x0b, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, + 0x70, 0x61, 0x6e, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x2a, 0x0a, 0x10, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x44, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x31, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x31, 0x12, 0x16, 0x0a, + 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x32, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, + 0x67, 0x49, 0x6d, 0x67, 0x32, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, 0x68, 0x65, 0x6c, + 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x53, 0x0a, 0x15, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x15, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x47, 0x0a, 0x11, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x6e, + 0x67, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, + 0x6e, 0x67, 0x52, 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x67, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x6d, 0x67, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0xe1, 0x01, 0x0a, 0x11, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, + 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x52, 0x0a, 0x0c, 0x53, 0x61, 0x76, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, + 0x09, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x09, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x22, 0x7b, 0x0a, 0x15, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x41, 0x64, 0x64, 0x55, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, + 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, + 0x73, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x22, 0x26, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, + 0x22, 0x8d, 0x01, 0x0a, 0x11, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, + 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, + 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, + 0x22, 0x5b, 0x0a, 0x12, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x07, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x07, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x45, 0x0a, + 0x13, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x22, 0x48, 0x0a, 0x10, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x65, 0x6c, + 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, + 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0b, 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x57, + 0x0a, 0x14, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x06, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x59, 0x0a, 0x16, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, + 0x32, 0x12, 0x2d, 0x0a, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x22, 0xf9, 0x0a, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x55, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x69, 0x67, 0x6e, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x68, + 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x6f, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x6f, 0x12, 0x2e, 0x0a, 0x12, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, + 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x02, 0x52, 0x14, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, + 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, + 0x0a, 0x15, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x16, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x15, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x44, 0x69, 0x73, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, + 0x64, 0x53, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x6e, 0x75, 0x6d, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x20, + 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x19, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, + 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, + 0x79, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x69, 0x74, 0x79, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x12, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x50, 0x69, 0x63, + 0x74, 0x75, 0x72, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x4f, 0x66, 0x52, + 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, + 0x70, 0x6c, 0x61, 0x63, 0x65, 0x4f, 0x66, 0x52, 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x1e, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x68, 0x6f, 0x74, 0x6f, + 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x55, 0x69, 0x64, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x64, + 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, + 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x66, 0x69, + 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x21, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6e, + 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x12, 0x44, 0x0a, 0x10, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x24, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x10, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, + 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x25, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x26, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x22, 0xdd, + 0x03, 0x0a, 0x0e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, + 0x64, 0x12, 0x4d, 0x0a, 0x13, 0x61, 0x64, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x13, 0x61, 0x64, 0x64, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, - 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, + 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, - 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x69, + 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x70, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x70, - 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, - 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x68, 0x65, - 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2e, - 0x0a, 0x12, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x55, 0x72, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x68, 0x65, 0x63, - 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, - 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, - 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x11, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x6f, 0x18, 0x12, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x6f, - 0x12, 0x2e, 0x0a, 0x12, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, - 0x12, 0x32, 0x0a, 0x14, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x02, 0x52, 0x14, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, - 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x15, 0x20, - 0x01, 0x28, 0x02, 0x52, 0x15, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x41, 0x64, 0x64, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x12, 0x30, 0x0a, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x61, 0x76, 0x65, - 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x1a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x65, - 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, - 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x6c, - 0x61, 0x63, 0x65, 0x4f, 0x66, 0x52, 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x1d, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x4f, 0x66, 0x52, 0x65, 0x73, - 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, - 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, - 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x64, - 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, - 0x12, 0x34, 0x0a, 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x21, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, - 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, - 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x1a, - 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x44, 0x0a, 0x10, 0x70, 0x72, - 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x24, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x10, - 0x70, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, - 0x73, 0x68, 0x6f, 0x74, 0x18, 0x26, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, - 0x73, 0x68, 0x6f, 0x74, 0x22, 0xbf, 0x03, 0x0a, 0x0e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, - 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x4d, 0x0a, 0x13, 0x61, 0x64, 0x64, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x64, - 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x13, 0x61, 0x64, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, - 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, - 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, - 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, - 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, - 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x26, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x22, 0xc5, 0x01, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, - 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, - 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x22, 0x50, - 0x0a, 0x10, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x69, 0x64, 0x12, 0x10, - 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, - 0x22, 0xa7, 0x04, 0x0a, 0x13, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, - 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, - 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x55, 0x49, 0x44, 0x12, 0x18, - 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x65, 0x6e, - 0x64, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x64, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x61, 0x79, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, - 0x49, 0x44, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x73, 0x48, 0x61, 0x76, 0x65, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x69, 0x73, - 0x48, 0x61, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x12, 0x34, 0x0a, 0x15, - 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x66, 0x69, 0x6e, - 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x22, 0x65, 0x0a, 0x14, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0c, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x22, 0x89, 0x01, 0x0a, 0x19, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, - 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, - 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, - 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x55, 0x49, 0x44, 0x22, 0x65, 0x0a, - 0x1a, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x0b, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x18, 0x26, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x55, 0x55, 0x49, 0x44, 0x18, 0x27, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x55, 0x55, 0x49, 0x44, 0x22, 0xc5, + 0x01, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, + 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, + 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x22, 0x50, 0x0a, 0x10, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x55, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x22, 0xa7, 0x04, 0x0a, 0x13, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, + 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x55, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x55, 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, + 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x65, 0x6e, 0x64, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x64, 0x53, 0x69, + 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, + 0x69, 0x73, 0x48, 0x61, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x69, 0x73, 0x48, 0x61, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x41, 0x64, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, + 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, + 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, + 0x75, 0x6d, 0x22, 0x65, 0x0a, 0x14, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6d, 0x73, 0x67, 0x22, 0xdd, 0x02, 0x0a, 0x15, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, - 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, - 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, - 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x69, - 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x02, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x13, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x12, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x55, 0x69, 0x64, 0x22, 0x59, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x42, 0x28, 0xe2, 0xdf, 0x1f, 0x24, 0x10, 0x1d, 0x18, 0x65, 0x2a, 0x1e, 0xe8, 0x87, 0xb3, 0xe5, - 0xb0, 0x91, 0xe6, 0x95, 0xb0, 0xe4, 0xb8, 0xba, 0x33, 0x30, 0x2c, 0xe6, 0x9c, 0x80, 0xe5, 0xa4, - 0x9a, 0xe6, 0x95, 0xb0, 0xe4, 0xb8, 0xba, 0x31, 0x30, 0x30, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x22, - 0x86, 0x01, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, - 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x75, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, - 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x71, 0x0a, 0x19, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, - 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, - 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0xf7, 0x01, 0x0a, 0x1a, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x02, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x31, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, - 0x6e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x4e, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x31, 0x0a, 0x1b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, - 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x7d, 0x0a, 0x1c, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x70, - 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, - 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x38, 0x0a, 0x1c, 0x46, 0x69, 0x6e, 0x61, 0x6e, - 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, - 0x6f, 0x22, 0xa8, 0x01, 0x0a, 0x0f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, - 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x52, - 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x22, 0xf3, 0x02, 0x0a, - 0x13, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x70, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x75, 0x6e, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x22, 0x86, 0x01, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6e, - 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, - 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, - 0x61, 0x76, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x73, 0x61, 0x76, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x7c, 0x0a, 0x1a, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x1b, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, - 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, - 0x67, 0x12, 0x49, 0x0a, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, - 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x4e, 0x0a, 0x1c, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x89, 0x01, 0x0a, 0x19, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, + 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, + 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x55, 0x55, 0x49, 0x44, 0x22, 0x65, 0x0a, 0x1a, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0b, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xdd, 0x02, 0x0a, + 0x15, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, + 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x61, 0x76, 0x65, + 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x73, + 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x64, 0x69, + 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x6f, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2e, 0x0a, 0x12, + 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, + 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x22, 0x59, 0x0a, 0x1b, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x03, 0x6e, + 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x28, 0xe2, 0xdf, 0x1f, 0x24, 0x10, 0x1d, + 0x18, 0x65, 0x2a, 0x1e, 0xe8, 0x87, 0xb3, 0xe5, 0xb0, 0x91, 0xe6, 0x95, 0xb0, 0xe4, 0xb8, 0xba, + 0x33, 0x30, 0x2c, 0xe6, 0x9c, 0x80, 0xe5, 0xa4, 0x9a, 0xe6, 0x95, 0xb0, 0xe4, 0xb8, 0xba, 0x31, + 0x30, 0x30, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x22, 0x86, 0x01, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, + 0x73, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x22, 0x71, 0x0a, 0x19, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, + 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x22, 0xf7, 0x01, 0x0a, 0x1a, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x31, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x6d, + 0x73, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x31, 0x0a, + 0x1b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, - 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x74, 0x0a, 0x1d, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, - 0x41, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x52, 0x0f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x22, 0x59, 0x0a, 0x15, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, - 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, - 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, - 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x40, 0x0a, - 0x16, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, - 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x22, - 0xbf, 0x03, 0x0a, 0x13, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x2c, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x28, 0x0a, - 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x64, 0x61, 0x74, - 0x61, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x40, 0x0a, 0x1b, 0x61, - 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x16, 0x0a, - 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, - 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x34, 0x0a, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, - 0x74, 0x65, 0x64, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x30, 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x22, 0x16, 0x0a, 0x14, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x82, 0x02, 0x0a, 0x1e, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x75, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, - 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x65, 0x6e, 0x64, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x61, 0x73, 0x73, 0x6f, - 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, - 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x6b, - 0x0a, 0x1f, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xa2, 0x04, 0x0a, 0x16, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x73, 0x65, - 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x76, 0x69, - 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, + 0x22, 0x7d, 0x0a, 0x1c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x31, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, + 0x38, 0x0a, 0x1c, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x22, 0xa8, 0x01, 0x0a, 0x0f, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, + 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x4c, 0x61, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x4c, 0x61, 0x6e, 0x67, 0x22, 0xf3, 0x02, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, + 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, + 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, + 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, + 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, + 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, + 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, + 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0c, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x41, 0x64, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x86, 0x01, 0x0a, 0x14, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x14, 0x0a, + 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, + 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x61, 0x76, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x61, 0x76, 0x65, 0x41, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x7c, 0x0a, 0x1a, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, + 0x65, 0x22, 0x90, 0x01, 0x0a, 0x1b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x49, 0x0a, 0x13, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, + 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x22, 0x4e, 0x0a, 0x1c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x22, 0x74, 0x0a, 0x1d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x41, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, + 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x0f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x22, 0x59, 0x0a, 0x15, 0x43, 0x61, + 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, + 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, + 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x40, 0x0a, 0x16, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, + 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, + 0x67, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x22, 0xbf, 0x03, 0x0a, 0x13, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, + 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, + 0x2a, 0x0a, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x26, 0x0a, 0x0e, 0x64, + 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x12, 0x40, 0x0a, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x34, 0x0a, + 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x73, + 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, + 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x16, 0x0a, 0x14, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x82, 0x02, 0x0a, 0x1e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x34, 0x0a, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x6b, 0x0a, 0x1f, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, + 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x22, 0xa2, 0x04, 0x0a, 0x16, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1a, + 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x73, + 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x76, 0x69, 0x64, + 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x40, 0x0a, 0x1b, 0x61, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x61, - 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, - 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, - 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x34, 0x0a, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, - 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, - 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x22, 0xed, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, - 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, - 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, - 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x22, 0xf3, 0x04, 0x0a, 0x11, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x73, 0x65, - 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x12, 0x40, 0x0a, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x34, 0x0a, 0x15, + 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x73, 0x73, + 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, + 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xed, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, + 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, - 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x69, 0x64, 0x65, - 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, - 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x76, 0x69, - 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x76, 0x69, 0x64, 0x65, - 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, - 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, - 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x12, - 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, - 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1d, - 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, - 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, - 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x32, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, - 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x5b, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, - 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x32, 0xe9, 0x12, 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x3f, - 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, - 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x3f, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, - 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x42, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x12, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x09, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x65, 0x6c, - 0x66, 0x12, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x53, - 0x68, 0x65, 0x6c, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x0a, 0x53, 0x61, 0x76, 0x65, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x14, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x56, 0x32, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x56, 0x32, 0x12, 0x1b, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0a, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x45, + 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xf3, 0x04, 0x0a, 0x11, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1a, + 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x73, + 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, + 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, + 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, + 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1d, 0x64, 0x61, 0x74, + 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x14, 0x65, 0x78, + 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x5b, + 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2d, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x32, 0xe9, 0x12, 0x0a, 0x06, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x16, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x16, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x09, + 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x65, 0x6c, 0x66, 0x12, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x65, 0x6c, 0x66, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, + 0x0a, 0x53, 0x61, 0x76, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x1a, 0x14, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0c, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x32, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x48, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x11, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, - 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, - 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x42, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x13, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x10, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x12, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x21, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, - 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x48, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, - 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x13, 0x50, 0x61, - 0x63, 0x6b, 0x61, 0x67, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, - 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, - 0x74, 0x56, 0x32, 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x56, 0x32, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x56, 0x32, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x23, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x12, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, - 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x12, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, - 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4a, 0x0a, - 0x13, 0x53, 0x61, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, - 0x67, 0x1a, 0x14, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x13, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, - 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x15, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x24, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x42, 0x79, 0x55, 0x75, 0x69, 0x64, - 0x41, 0x6e, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x24, 0x2e, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x22, 0x00, - 0x12, 0x51, 0x0a, 0x0e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x61, 0x6c, 0x63, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, - 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x64, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x6c, 0x0a, 0x17, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x26, 0x2e, 0x62, 0x75, + 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x56, 0x32, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x56, 0x32, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0a, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, + 0x73, 0x74, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0c, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x19, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x42, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x79, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x10, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6e, + 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x12, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, + 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x51, 0x0a, 0x13, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x23, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x32, 0x12, 0x1d, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x32, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x14, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, + 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x5d, 0x0a, 0x12, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x63, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x13, 0x53, 0x61, 0x76, 0x65, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1b, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x1a, 0x14, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x60, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x15, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x24, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x24, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, + 0x6e, 0x67, 0x42, 0x79, 0x55, 0x75, 0x69, 0x64, 0x41, 0x6e, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, + 0x61, 0x67, 0x65, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0e, 0x43, 0x61, 0x6c, 0x63, + 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0c, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x17, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x26, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, - 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, - 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x42, - 0x0a, 0x5a, 0x08, 0x2e, 0x2f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2f, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pkg/service/bundle/bundleOrder.go b/pkg/service/bundle/bundleOrder.go index 25d1886..367fb88 100644 --- a/pkg/service/bundle/bundleOrder.go +++ b/pkg/service/bundle/bundleOrder.go @@ -138,6 +138,7 @@ func CreateBundleOrderAddSignature(c *gin.Context) { req.SignedTime = common.GetBeijingTime() req.ExpirationDate = expirationDate req.AddPriceOptionsList = addPriceList + req.OrderUUID = orderRecordResp.OrderRecord.Uuid // 当前 未将 签名 写入合同中 signContract, signContractErr := logic.SignContractV2(req.CustomerNum, bundleDetail.Bundle.Contract, totalAmount, expirationDate) if signContractErr != nil { @@ -285,6 +286,8 @@ func CreateBundleOrderSignature(c *gin.Context) { //服务类型为时长 计算 if addService.ServiceType == 5 { expirationDay = calculateExpirationDate(time.Now(), i.Num, addService.Unit) + } else { + expirationDay = time.Now().AddDate(0, 0, 7).Format("2006-01-02") } } // 当前 未将 签名 写入合同中 todo 金额和有效时间待修改 @@ -307,6 +310,7 @@ func CreateBundleOrderSignature(c *gin.Context) { req.Status = bundleModel.OrderSigned req.AddRecords = addRecords req.ExpirationTime = expirationDay + req.PayType = 1 res, err := service.BundleProvider.CreateOrderRecord(context.Background(), &req) if err != nil { diff --git a/pkg/service/init.go b/pkg/service/init.go index d849aca..1c3dbb2 100644 --- a/pkg/service/init.go +++ b/pkg/service/init.go @@ -23,9 +23,9 @@ var PaymentProvider = new(payment.PaymentCentClientImpl) func init() { config.SetConsumerService(BundleProvider) - config.SetConsumerService(OrderProvider) - config.SetConsumerService(AccountProvider) - config.SetConsumerService(PaymentProvider) + //config.SetConsumerService(OrderProvider) + //config.SetConsumerService(AccountProvider) + //config.SetConsumerService(PaymentProvider) config.SetConsumerService(AccountFieeProvider) if err := config.Load(); err != nil { From e447ff1d42c95877a49709162f375f506700f574 Mon Sep 17 00:00:00 2001 From: lzh <1625167628@qq.com> Date: Sat, 14 Jun 2025 09:50:12 +0800 Subject: [PATCH 07/18] =?UTF-8?q?=E7=B4=A0=E6=9D=90=E5=BA=93=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E9=89=B4=E6=9D=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/router/router.go | 2 +- pkg/service/file/file.go | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/pkg/router/router.go b/pkg/router/router.go index ea44d94..1c16b28 100644 --- a/pkg/router/router.go +++ b/pkg/router/router.go @@ -113,7 +113,7 @@ func NewRouter() *gin.Engine { { // 素材库 - resourceRoute := v1.Group("/resource") + resourceRoute := v1.Group("/resource").Use(middleware.CheckWebLogin(service.AccountProvider)) resourceRoute.GET("", file.Info) resourceRoute.DELETE("", file.Delete) diff --git a/pkg/service/file/file.go b/pkg/service/file/file.go index f7dd321..88dda02 100644 --- a/pkg/service/file/file.go +++ b/pkg/service/file/file.go @@ -5,7 +5,6 @@ import ( "errors" "fmt" "fonchain-fiee/api/files" - "fonchain-fiee/pkg/model/login" "fonchain-fiee/pkg/service" "io" "net/http" @@ -249,6 +248,8 @@ func getUploadOffset(r *http.Request) (int64, error) { } func getUserSpacePath(ctx *gin.Context) string { - user := login.GetUserInfoFromC(ctx) - return strconv.Itoa(int(user.ID)) + // user := login.GetUserInfoFromC(ctx) + // return strconv.Itoa(int(user.ID)) + + return "" } From d4b50302fa4c096e80d24226a7597c66db2ab0ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A1=80=E5=B0=BC=E9=BE=9F?= <365252428@qq.com> Date: Sat, 14 Jun 2025 10:22:02 +0800 Subject: [PATCH 08/18] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=BD=AE=E6=92=AD?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/router/bundleOrder.go | 2 +- pkg/service/bundle/pay.go | 54 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 1 deletion(-) diff --git a/pkg/router/bundleOrder.go b/pkg/router/bundleOrder.go index f1b5f7c..0c8ffd4 100644 --- a/pkg/router/bundleOrder.go +++ b/pkg/router/bundleOrder.go @@ -12,7 +12,7 @@ func BundleOrderRouter(r *gin.RouterGroup) { r.POST("/stripe-pay/callback", bundle.StripeCheckoutSessionWebhook) r.POST("/antom/callback", bundle.AntomWebhook) // Antom回调 - + r.POST("/home-page/roll", bundle.HomePageRoll) bundleOrderRoute := r.Group("bundle-order") bundleOrderRoute.Use(middleware.CheckLogin(service.AccountFieeProvider)) //bundleOrderWebRoute := r.Group("bundle-order") diff --git a/pkg/service/bundle/pay.go b/pkg/service/bundle/pay.go index 473e90e..d62d3b8 100644 --- a/pkg/service/bundle/pay.go +++ b/pkg/service/bundle/pay.go @@ -5,6 +5,7 @@ import ( "encoding/json" "errors" "fmt" + "fonchain-fiee/api/accountFiee" "fonchain-fiee/api/bundle" "fonchain-fiee/api/order" "fonchain-fiee/api/payment" @@ -366,3 +367,56 @@ func AntomWebhook(c *gin.Context) { } service.Success(c) } +func HomePageRoll(c *gin.Context) { + //var req order.HomePageRollRequest + res, err := service.BundleProvider.OrderRecordsListV2(context.Background(), &bundle.OrderRecordsRequestV2{ + Page: 1, + PageSize: 5, + }) + if err != nil { + service.Error(c, err) + return + } + if len(res.BundleInfo) == 0 { + service.Success(c, nil) + return + } + type Roll struct { + Tel string `json:"tel"` + Name string `json:"name"` + } + var userIds []int64 + for _, i := range res.BundleInfo { + userIds = append(userIds, i.CustomerId) + } + userListResp, err := service.AccountFieeProvider.UserList(context.Background(), &accountFiee.UserListRequest{ + Ids: userIds, + Domain: "app", + }) + if err != nil { + service.Error(c, err) + return + } + + // 建立用户ID -> 用户信息映射 + userMap := make(map[int64]*accountFiee.UserListInfo, len(userListResp.UserList)) + for _, u := range userListResp.UserList { + userMap[int64(u.Id)] = u + } + + var roll []Roll + for _, i := range res.BundleInfo { + maskedTel := userMap[i.CustomerId].TelNum + if len(userMap[i.CustomerId].TelNum) >= 11 { // 标准11位手机号 + maskedTel = userMap[i.CustomerId].TelNum[:3] + "****" + userMap[i.CustomerId].TelNum[7:] + } else if len(userMap[i.CustomerId].TelNum) >= 7 { // 短号处理 + maskedTel = userMap[i.CustomerId].TelNum[:3] + "****" + userMap[i.CustomerId].TelNum[7:] + } + roll = append(roll, Roll{ + Tel: maskedTel, + Name: i.BundleName, + }) + } + service.Success(c, roll) + return +} From 4f9f8e66db2b29ca765745c226df7ec08503ca6d Mon Sep 17 00:00:00 2001 From: lzh <1625167628@qq.com> Date: Sat, 14 Jun 2025 10:33:53 +0800 Subject: [PATCH 09/18] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/bundle/bundle.pb.go | 1943 ++++++++++++++++++--------- api/bundle/bundle.validator.pb.go | 28 + api/bundle/bundle_triple.pb.go | 128 +- pkg/service/bundle/bundleBalance.go | 4 +- 4 files changed, 1484 insertions(+), 619 deletions(-) diff --git a/api/bundle/bundle.pb.go b/api/bundle/bundle.pb.go index f8a1108..5c263b3 100644 --- a/api/bundle/bundle.pb.go +++ b/api/bundle/bundle.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.31.0 -// protoc v4.24.0--rc1 +// protoc-gen-go v1.29.1 +// protoc v3.20.3 // source: pb/bundle.proto package bundle @@ -27,26 +27,26 @@ type OrderCreateRecord struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - BundleUuid string `protobuf:"bytes,1,opt,name=bundleUuid,proto3" json:"bundleUuid"` - Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language"` - ExpirationTime string `protobuf:"bytes,3,opt,name=expirationTime,proto3" json:"expirationTime"` - BundleName string `protobuf:"bytes,4,opt,name=bundleName,proto3" json:"bundleName"` - CustomerID string `protobuf:"bytes,5,opt,name=customerID,proto3" json:"customerID"` - CustomerNum string `protobuf:"bytes,6,opt,name=customerNum,proto3" json:"customerNum"` - CustomerName string `protobuf:"bytes,7,opt,name=customerName,proto3" json:"customerName"` - Amount float32 `protobuf:"fixed32,8,opt,name=amount,proto3" json:"amount"` - AmountType int64 `protobuf:"varint,9,opt,name=amountType,proto3" json:"amountType"` - SignContract string `protobuf:"bytes,10,opt,name=signContract,proto3" json:"signContract"` - Signature string `protobuf:"bytes,11,opt,name=signature,proto3" json:"signature"` - SignedTime string `protobuf:"bytes,12,opt,name=signedTime,proto3" json:"signedTime"` - Status int64 `protobuf:"varint,13,opt,name=status,proto3" json:"status"` - PayTime string `protobuf:"bytes,14,opt,name=payTime,proto3" json:"payTime"` - ContractNo string `protobuf:"bytes,15,opt,name=contractNo,proto3" json:"contractNo"` - TotalAmount float32 `protobuf:"fixed32,16,opt,name=totalAmount,proto3" json:"totalAmount"` //总金额 - BundleCommonUid string `protobuf:"bytes,17,opt,name=bundleCommonUid,proto3" json:"bundleCommonUid"` - Snapshot string `protobuf:"bytes,18,opt,name=snapshot,proto3" json:"snapshot"` - PayType int32 `protobuf:"varint,19,opt,name=payType,proto3" json:"payType"` - AddRecords []*OrderCreateAddRecord `protobuf:"bytes,20,rep,name=addRecords,proto3" json:"addRecords"` //增值服务 + BundleUuid string `protobuf:"bytes,1,opt,name=bundleUuid,proto3" json:"bundleUuid,omitempty"` + Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language,omitempty"` + ExpirationTime string `protobuf:"bytes,3,opt,name=expirationTime,proto3" json:"expirationTime,omitempty"` + BundleName string `protobuf:"bytes,4,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + CustomerID string `protobuf:"bytes,5,opt,name=customerID,proto3" json:"customerID,omitempty"` + CustomerNum string `protobuf:"bytes,6,opt,name=customerNum,proto3" json:"customerNum,omitempty"` + CustomerName string `protobuf:"bytes,7,opt,name=customerName,proto3" json:"customerName,omitempty"` + Amount float32 `protobuf:"fixed32,8,opt,name=amount,proto3" json:"amount,omitempty"` + AmountType int64 `protobuf:"varint,9,opt,name=amountType,proto3" json:"amountType,omitempty"` + SignContract string `protobuf:"bytes,10,opt,name=signContract,proto3" json:"signContract,omitempty"` + Signature string `protobuf:"bytes,11,opt,name=signature,proto3" json:"signature,omitempty"` + SignedTime string `protobuf:"bytes,12,opt,name=signedTime,proto3" json:"signedTime,omitempty"` + Status int64 `protobuf:"varint,13,opt,name=status,proto3" json:"status,omitempty"` + PayTime string `protobuf:"bytes,14,opt,name=payTime,proto3" json:"payTime,omitempty"` + ContractNo string `protobuf:"bytes,15,opt,name=contractNo,proto3" json:"contractNo,omitempty"` + TotalAmount float32 `protobuf:"fixed32,16,opt,name=totalAmount,proto3" json:"totalAmount,omitempty"` //总金额 + BundleCommonUid string `protobuf:"bytes,17,opt,name=bundleCommonUid,proto3" json:"bundleCommonUid,omitempty"` + Snapshot string `protobuf:"bytes,18,opt,name=snapshot,proto3" json:"snapshot,omitempty"` + PayType int32 `protobuf:"varint,19,opt,name=payType,proto3" json:"payType,omitempty"` + AddRecords []*OrderCreateAddRecord `protobuf:"bytes,20,rep,name=addRecords,proto3" json:"addRecords,omitempty"` //增值服务 } func (x *OrderCreateRecord) Reset() { @@ -226,14 +226,14 @@ type OrderCreateAddRecord struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ServiceType int32 `protobuf:"varint,1,opt,name=serviceType,proto3" json:"serviceType"` - ValueUid string `protobuf:"bytes,2,opt,name=valueUid,proto3" json:"valueUid"` - CurrencyType int64 `protobuf:"varint,3,opt,name=currencyType,proto3" json:"currencyType"` - Amount float32 `protobuf:"fixed32,4,opt,name=amount,proto3" json:"amount"` - Num int32 `protobuf:"varint,5,opt,name=num,proto3" json:"num"` - Unit string `protobuf:"bytes,6,opt,name=unit,proto3" json:"unit"` - Source int32 `protobuf:"varint,7,opt,name=source,proto3" json:"source"` - PaymentStatus int32 `protobuf:"varint,8,opt,name=paymentStatus,proto3" json:"paymentStatus"` + ServiceType int32 `protobuf:"varint,1,opt,name=serviceType,proto3" json:"serviceType,omitempty"` + ValueUid string `protobuf:"bytes,2,opt,name=valueUid,proto3" json:"valueUid,omitempty"` + CurrencyType int64 `protobuf:"varint,3,opt,name=currencyType,proto3" json:"currencyType,omitempty"` + Amount float32 `protobuf:"fixed32,4,opt,name=amount,proto3" json:"amount,omitempty"` + Num int32 `protobuf:"varint,5,opt,name=num,proto3" json:"num,omitempty"` + Unit string `protobuf:"bytes,6,opt,name=unit,proto3" json:"unit,omitempty"` + Source int32 `protobuf:"varint,7,opt,name=source,proto3" json:"source,omitempty"` + PaymentStatus int32 `protobuf:"varint,8,opt,name=paymentStatus,proto3" json:"paymentStatus,omitempty"` } func (x *OrderCreateAddRecord) Reset() { @@ -329,20 +329,20 @@ type OrderRecordsRequestV2 struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - CustomerName string `protobuf:"bytes,1,opt,name=customerName,proto3" json:"customerName"` - TelNum string `protobuf:"bytes,2,opt,name=telNum,proto3" json:"telNum"` - BundleName string `protobuf:"bytes,3,opt,name=bundleName,proto3" json:"bundleName"` - PayStatus int32 `protobuf:"varint,4,opt,name=payStatus,proto3" json:"payStatus"` - AddPayStatus int32 `protobuf:"varint,5,opt,name=addPayStatus,proto3" json:"addPayStatus"` - OrderNo string `protobuf:"bytes,6,opt,name=orderNo,proto3" json:"orderNo"` - OrderAddNo string `protobuf:"bytes,7,opt,name=orderAddNo,proto3" json:"orderAddNo"` - BundleCreateAtStart string `protobuf:"bytes,8,opt,name=bundleCreateAtStart,proto3" json:"bundleCreateAtStart"` - BundleCreateAtEnd string `protobuf:"bytes,9,opt,name=bundleCreateAtEnd,proto3" json:"bundleCreateAtEnd"` - OrderAddCreateAtStart string `protobuf:"bytes,10,opt,name=orderAddCreateAtStart,proto3" json:"orderAddCreateAtStart"` - OrderAddCreateAtEnd string `protobuf:"bytes,11,opt,name=orderAddCreateAtEnd,proto3" json:"orderAddCreateAtEnd"` - Page int32 `protobuf:"varint,12,opt,name=page,proto3" json:"page"` - PageSize int32 `protobuf:"varint,13,opt,name=pageSize,proto3" json:"pageSize"` - UserIds []int64 `protobuf:"varint,14,rep,packed,name=userIds,proto3" json:"userIds"` + CustomerName string `protobuf:"bytes,1,opt,name=customerName,proto3" json:"customerName,omitempty"` + TelNum string `protobuf:"bytes,2,opt,name=telNum,proto3" json:"telNum,omitempty"` + BundleName string `protobuf:"bytes,3,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + PayStatus int32 `protobuf:"varint,4,opt,name=payStatus,proto3" json:"payStatus,omitempty"` + AddPayStatus int32 `protobuf:"varint,5,opt,name=addPayStatus,proto3" json:"addPayStatus,omitempty"` + OrderNo string `protobuf:"bytes,6,opt,name=orderNo,proto3" json:"orderNo,omitempty"` + OrderAddNo string `protobuf:"bytes,7,opt,name=orderAddNo,proto3" json:"orderAddNo,omitempty"` + BundleCreateAtStart string `protobuf:"bytes,8,opt,name=bundleCreateAtStart,proto3" json:"bundleCreateAtStart,omitempty"` + BundleCreateAtEnd string `protobuf:"bytes,9,opt,name=bundleCreateAtEnd,proto3" json:"bundleCreateAtEnd,omitempty"` + OrderAddCreateAtStart string `protobuf:"bytes,10,opt,name=orderAddCreateAtStart,proto3" json:"orderAddCreateAtStart,omitempty"` + OrderAddCreateAtEnd string `protobuf:"bytes,11,opt,name=orderAddCreateAtEnd,proto3" json:"orderAddCreateAtEnd,omitempty"` + Page int32 `protobuf:"varint,12,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,13,opt,name=pageSize,proto3" json:"pageSize,omitempty"` + UserIds []int64 `protobuf:"varint,14,rep,packed,name=userIds,proto3" json:"userIds,omitempty"` } func (x *OrderRecordsRequestV2) Reset() { @@ -480,10 +480,10 @@ type OrderRecordsResponseV2 struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - BundleInfo []*OrderBundleRecordInfo `protobuf:"bytes,1,rep,name=bundleInfo,proto3" json:"bundleInfo"` - Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page"` - PageSize int32 `protobuf:"varint,3,opt,name=pageSize,proto3" json:"pageSize"` - Total int32 `protobuf:"varint,4,opt,name=total,proto3" json:"total"` + BundleInfo []*OrderBundleRecordInfo `protobuf:"bytes,1,rep,name=bundleInfo,proto3" json:"bundleInfo,omitempty"` + Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,3,opt,name=pageSize,proto3" json:"pageSize,omitempty"` + Total int32 `protobuf:"varint,4,opt,name=total,proto3" json:"total,omitempty"` } func (x *OrderRecordsResponseV2) Reset() { @@ -551,15 +551,15 @@ type OrderBundleRecordInfo struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - OrderNo string `protobuf:"bytes,1,opt,name=orderNo,proto3" json:"orderNo"` - BundleName string `protobuf:"bytes,2,opt,name=bundleName,proto3" json:"bundleName"` - PayStatus int32 `protobuf:"varint,3,opt,name=payStatus,proto3" json:"payStatus"` - TelNum string `protobuf:"bytes,4,opt,name=telNum,proto3" json:"telNum"` - CustomerName string `protobuf:"bytes,5,opt,name=customerName,proto3" json:"customerName"` - BundleCreateAt string `protobuf:"bytes,6,opt,name=bundleCreateAt,proto3" json:"bundleCreateAt"` - Amount float32 `protobuf:"fixed32,7,opt,name=amount,proto3" json:"amount"` - AddBundleInfo []*OrderAddBundleRecordInfo `protobuf:"bytes,8,rep,name=addBundleInfo,proto3" json:"addBundleInfo"` - CustomerId int64 `protobuf:"varint,9,opt,name=customerId,proto3" json:"customerId"` + OrderNo string `protobuf:"bytes,1,opt,name=orderNo,proto3" json:"orderNo,omitempty"` + BundleName string `protobuf:"bytes,2,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + PayStatus int32 `protobuf:"varint,3,opt,name=payStatus,proto3" json:"payStatus,omitempty"` + TelNum string `protobuf:"bytes,4,opt,name=telNum,proto3" json:"telNum,omitempty"` + CustomerName string `protobuf:"bytes,5,opt,name=customerName,proto3" json:"customerName,omitempty"` + BundleCreateAt string `protobuf:"bytes,6,opt,name=bundleCreateAt,proto3" json:"bundleCreateAt,omitempty"` + Amount float32 `protobuf:"fixed32,7,opt,name=amount,proto3" json:"amount,omitempty"` + AddBundleInfo []*OrderAddBundleRecordInfo `protobuf:"bytes,8,rep,name=addBundleInfo,proto3" json:"addBundleInfo,omitempty"` + CustomerId int64 `protobuf:"varint,9,opt,name=customerId,proto3" json:"customerId,omitempty"` } func (x *OrderBundleRecordInfo) Reset() { @@ -662,16 +662,16 @@ type OrderAddBundleRecordInfo struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - OrderAddNo string `protobuf:"bytes,1,opt,name=orderAddNo,proto3" json:"orderAddNo"` - Amount float32 `protobuf:"fixed32,2,opt,name=amount,proto3" json:"amount"` - SettlementAmount float32 `protobuf:"fixed32,3,opt,name=settlementAmount,proto3" json:"settlementAmount"` - CurrencyType int32 `protobuf:"varint,4,opt,name=currencyType,proto3" json:"currencyType"` - HandlingFee float32 `protobuf:"fixed32,5,opt,name=handlingFee,proto3" json:"handlingFee"` - ExchangeRate float32 `protobuf:"fixed32,6,opt,name=exchangeRate,proto3" json:"exchangeRate"` - OrderAddCreateAt string `protobuf:"bytes,7,opt,name=orderAddCreateAt,proto3" json:"orderAddCreateAt"` - AddPayStatus int32 `protobuf:"varint,8,opt,name=addPayStatus,proto3" json:"addPayStatus"` - Contract string `protobuf:"bytes,9,opt,name=contract,proto3" json:"contract"` - Snapshot string `protobuf:"bytes,10,opt,name=snapshot,proto3" json:"snapshot"` + OrderAddNo string `protobuf:"bytes,1,opt,name=orderAddNo,proto3" json:"orderAddNo,omitempty"` + Amount float32 `protobuf:"fixed32,2,opt,name=amount,proto3" json:"amount,omitempty"` + SettlementAmount float32 `protobuf:"fixed32,3,opt,name=settlementAmount,proto3" json:"settlementAmount,omitempty"` + CurrencyType int32 `protobuf:"varint,4,opt,name=currencyType,proto3" json:"currencyType,omitempty"` + HandlingFee float32 `protobuf:"fixed32,5,opt,name=handlingFee,proto3" json:"handlingFee,omitempty"` + ExchangeRate float32 `protobuf:"fixed32,6,opt,name=exchangeRate,proto3" json:"exchangeRate,omitempty"` + OrderAddCreateAt string `protobuf:"bytes,7,opt,name=orderAddCreateAt,proto3" json:"orderAddCreateAt,omitempty"` + AddPayStatus int32 `protobuf:"varint,8,opt,name=addPayStatus,proto3" json:"addPayStatus,omitempty"` + Contract string `protobuf:"bytes,9,opt,name=contract,proto3" json:"contract,omitempty"` + Snapshot string `protobuf:"bytes,10,opt,name=snapshot,proto3" json:"snapshot,omitempty"` } func (x *OrderAddBundleRecordInfo) Reset() { @@ -781,8 +781,8 @@ type PackagePriceAndTimeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Price float32 `protobuf:"fixed32,1,opt,name=price,proto3" json:"price"` - Time string `protobuf:"bytes,2,opt,name=time,proto3" json:"time"` + Price float32 `protobuf:"fixed32,1,opt,name=price,proto3" json:"price,omitempty"` + Time string `protobuf:"bytes,2,opt,name=time,proto3" json:"time,omitempty"` } func (x *PackagePriceAndTimeResponse) Reset() { @@ -836,9 +836,9 @@ type CommonResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg"` - Uuid string `protobuf:"bytes,2,opt,name=uuid,proto3" json:"uuid"` - OrderNo string `protobuf:"bytes,3,opt,name=orderNo,proto3" json:"orderNo"` + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` + Uuid string `protobuf:"bytes,2,opt,name=uuid,proto3" json:"uuid,omitempty"` + OrderNo string `protobuf:"bytes,3,opt,name=orderNo,proto3" json:"orderNo,omitempty"` } func (x *CommonResponse) Reset() { @@ -899,25 +899,25 @@ type BundleProfile struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"` - Price float32 `protobuf:"fixed32,3,opt,name=price,proto3" json:"price"` - PriceType int64 `protobuf:"varint,4,opt,name=priceType,proto3" json:"priceType"` - Content string `protobuf:"bytes,5,opt,name=content,proto3" json:"content"` - Contract string `protobuf:"bytes,6,opt,name=contract,proto3" json:"contract"` - Language string `protobuf:"bytes,7,opt,name=language,proto3" json:"language"` - CreatedAt string `protobuf:"bytes,8,opt,name=createdAt,proto3" json:"createdAt"` - UpdatedAt string `protobuf:"bytes,9,opt,name=updatedAt,proto3" json:"updatedAt"` - CompanySign string `protobuf:"bytes,10,opt,name=companySign,proto3" json:"companySign"` - ContractDuration int64 `protobuf:"varint,11,opt,name=contractDuration,proto3" json:"contractDuration"` - BundleCommonUid string `protobuf:"bytes,12,opt,name=bundleCommonUid,proto3" json:"bundleCommonUid"` - Sort int64 `protobuf:"varint,13,opt,name=sort,proto3" json:"sort"` - BgImg1 string `protobuf:"bytes,14,opt,name=bgImg1,proto3" json:"bgImg1"` - BgImg2 string `protobuf:"bytes,15,opt,name=bgImg2,proto3" json:"bgImg2"` - ShelfStatus int64 `protobuf:"varint,16,opt,name=shelfStatus,proto3" json:"shelfStatus"` // 1 上架 2 下架 - SelectValueAddService []*SelectValueAddService `protobuf:"bytes,17,rep,name=selectValueAddService,json=SelectValueAddService,proto3" json:"selectValueAddService"` - BundleProfileLang []*BundleProfileLang `protobuf:"bytes,18,rep,name=bundleProfileLang,proto3" json:"bundleProfileLang"` - ImgOption int32 `protobuf:"varint,19,opt,name=imgOption,proto3" json:"imgOption"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Price float32 `protobuf:"fixed32,3,opt,name=price,proto3" json:"price,omitempty"` + PriceType int64 `protobuf:"varint,4,opt,name=priceType,proto3" json:"priceType,omitempty"` + Content string `protobuf:"bytes,5,opt,name=content,proto3" json:"content,omitempty"` + Contract string `protobuf:"bytes,6,opt,name=contract,proto3" json:"contract,omitempty"` + Language string `protobuf:"bytes,7,opt,name=language,proto3" json:"language,omitempty"` + CreatedAt string `protobuf:"bytes,8,opt,name=createdAt,proto3" json:"createdAt,omitempty"` + UpdatedAt string `protobuf:"bytes,9,opt,name=updatedAt,proto3" json:"updatedAt,omitempty"` + CompanySign string `protobuf:"bytes,10,opt,name=companySign,proto3" json:"companySign,omitempty"` + ContractDuration int64 `protobuf:"varint,11,opt,name=contractDuration,proto3" json:"contractDuration,omitempty"` + BundleCommonUid string `protobuf:"bytes,12,opt,name=bundleCommonUid,proto3" json:"bundleCommonUid,omitempty"` + Sort int64 `protobuf:"varint,13,opt,name=sort,proto3" json:"sort,omitempty"` + BgImg1 string `protobuf:"bytes,14,opt,name=bgImg1,proto3" json:"bgImg1,omitempty"` + BgImg2 string `protobuf:"bytes,15,opt,name=bgImg2,proto3" json:"bgImg2,omitempty"` + ShelfStatus int64 `protobuf:"varint,16,opt,name=shelfStatus,proto3" json:"shelfStatus,omitempty"` // 1 上架 2 下架 + SelectValueAddService []*SelectValueAddService `protobuf:"bytes,17,rep,name=selectValueAddService,json=SelectValueAddService,proto3" json:"selectValueAddService,omitempty"` + BundleProfileLang []*BundleProfileLang `protobuf:"bytes,18,rep,name=bundleProfileLang,proto3" json:"bundleProfileLang,omitempty"` + ImgOption int32 `protobuf:"varint,19,opt,name=imgOption,proto3" json:"imgOption,omitempty"` } func (x *BundleProfile) Reset() { @@ -1090,14 +1090,14 @@ type BundleProfileLang struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"` - Price float32 `protobuf:"fixed32,3,opt,name=price,proto3" json:"price"` - PriceType int64 `protobuf:"varint,4,opt,name=priceType,proto3" json:"priceType"` - Content string `protobuf:"bytes,5,opt,name=content,proto3" json:"content"` - Language string `protobuf:"bytes,6,opt,name=language,proto3" json:"language"` - CreatedAt string `protobuf:"bytes,7,opt,name=createdAt,proto3" json:"createdAt"` - UpdatedAt string `protobuf:"bytes,8,opt,name=updatedAt,proto3" json:"updatedAt"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Price float32 `protobuf:"fixed32,3,opt,name=price,proto3" json:"price,omitempty"` + PriceType int64 `protobuf:"varint,4,opt,name=priceType,proto3" json:"priceType,omitempty"` + Content string `protobuf:"bytes,5,opt,name=content,proto3" json:"content,omitempty"` + Language string `protobuf:"bytes,6,opt,name=language,proto3" json:"language,omitempty"` + CreatedAt string `protobuf:"bytes,7,opt,name=createdAt,proto3" json:"createdAt,omitempty"` + UpdatedAt string `protobuf:"bytes,8,opt,name=updatedAt,proto3" json:"updatedAt,omitempty"` } func (x *BundleProfileLang) Reset() { @@ -1193,9 +1193,9 @@ type SaveResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg"` - Uuid string `protobuf:"bytes,2,opt,name=uuid,proto3" json:"uuid"` - CancelNum int64 `protobuf:"varint,3,opt,name=cancelNum,proto3" json:"cancelNum"` + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` + Uuid string `protobuf:"bytes,2,opt,name=uuid,proto3" json:"uuid,omitempty"` + CancelNum int64 `protobuf:"varint,3,opt,name=cancelNum,proto3" json:"cancelNum,omitempty"` } func (x *SaveResponse) Reset() { @@ -1256,9 +1256,9 @@ type SelectValueAddService struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ValueAddUuid string `protobuf:"bytes,1,opt,name=valueAddUuid,proto3" json:"valueAddUuid"` - ServiceName string `protobuf:"bytes,2,opt,name=serviceName,proto3" json:"serviceName"` - IsDisplay bool `protobuf:"varint,3,opt,name=isDisplay,proto3" json:"isDisplay"` + ValueAddUuid string `protobuf:"bytes,1,opt,name=valueAddUuid,proto3" json:"valueAddUuid,omitempty"` + ServiceName string `protobuf:"bytes,2,opt,name=serviceName,proto3" json:"serviceName,omitempty"` + IsDisplay bool `protobuf:"varint,3,opt,name=isDisplay,proto3" json:"isDisplay,omitempty"` } func (x *SelectValueAddService) Reset() { @@ -1319,7 +1319,7 @@ type DelBundleRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` } func (x *DelBundleRequest) Reset() { @@ -1366,11 +1366,11 @@ type BundleListRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page"` - PageSize int32 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize"` - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name"` - Content string `protobuf:"bytes,4,opt,name=content,proto3" json:"content"` - Language string `protobuf:"bytes,5,opt,name=language,proto3" json:"language"` + Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + Content string `protobuf:"bytes,4,opt,name=content,proto3" json:"content,omitempty"` + Language string `protobuf:"bytes,5,opt,name=language,proto3" json:"language,omitempty"` } func (x *BundleListRequest) Reset() { @@ -1445,8 +1445,8 @@ type BundleListResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Bundles []*BundleProfile `protobuf:"bytes,1,rep,name=bundles,proto3" json:"bundles"` - Total int32 `protobuf:"varint,2,opt,name=total,proto3" json:"total"` + Bundles []*BundleProfile `protobuf:"bytes,1,rep,name=bundles,proto3" json:"bundles,omitempty"` + Total int32 `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"` } func (x *BundleListResponse) Reset() { @@ -1500,8 +1500,8 @@ type BundleDetailRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language"` //语言 默认zh-CN, zh-CN zh-TW EN de-DE js-JP + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language,omitempty"` //语言 默认zh-CN, zh-CN zh-TW EN de-DE js-JP } func (x *BundleDetailRequest) Reset() { @@ -1555,8 +1555,8 @@ type HandShelfRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - ShelfStatus int64 `protobuf:"varint,2,opt,name=shelfStatus,proto3" json:"shelfStatus"` // 1 上架 2 下架 + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + ShelfStatus int64 `protobuf:"varint,2,opt,name=shelfStatus,proto3" json:"shelfStatus,omitempty"` // 1 上架 2 下架 } func (x *HandShelfRequest) Reset() { @@ -1610,8 +1610,8 @@ type BundleDetailResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Bundle *BundleProfile `protobuf:"bytes,1,opt,name=bundle,proto3" json:"bundle"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg"` + Bundle *BundleProfile `protobuf:"bytes,1,opt,name=bundle,proto3" json:"bundle,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` } func (x *BundleDetailResponse) Reset() { @@ -1665,8 +1665,8 @@ type BundleDetailResponseV2 struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Bundle *BundleProfile `protobuf:"bytes,1,opt,name=bundle,proto3" json:"bundle"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg"` + Bundle *BundleProfile `protobuf:"bytes,1,opt,name=bundle,proto3" json:"bundle,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` } func (x *BundleDetailResponseV2) Reset() { @@ -1720,44 +1720,44 @@ type OrderRecord struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - BundleUuid string `protobuf:"bytes,2,opt,name=bundleUuid,proto3" json:"bundleUuid"` - CustomerID string `protobuf:"bytes,3,opt,name=customerID,proto3" json:"customerID"` - CustomerNum string `protobuf:"bytes,4,opt,name=customerNum,proto3" json:"customerNum"` - CustomerName string `protobuf:"bytes,5,opt,name=customerName,proto3" json:"customerName"` - Amount float32 `protobuf:"fixed32,6,opt,name=amount,proto3" json:"amount"` - AmountType int64 `protobuf:"varint,7,opt,name=amountType,proto3" json:"amountType"` - SignContract string `protobuf:"bytes,8,opt,name=signContract,proto3" json:"signContract"` - Signature string `protobuf:"bytes,9,opt,name=signature,proto3" json:"signature"` - SignedTime string `protobuf:"bytes,10,opt,name=signedTime,proto3" json:"signedTime"` - PayType int64 `protobuf:"varint,11,opt,name=payType,proto3" json:"payType"` - PayTime string `protobuf:"bytes,12,opt,name=payTime,proto3" json:"payTime"` - CheckoutSessionId string `protobuf:"bytes,13,opt,name=checkoutSessionId,proto3" json:"checkoutSessionId"` - CheckoutSessionUrl string `protobuf:"bytes,14,opt,name=checkoutSessionUrl,proto3" json:"checkoutSessionUrl"` - Status int64 `protobuf:"varint,15,opt,name=status,proto3" json:"status"` - OrderNo string `protobuf:"bytes,16,opt,name=orderNo,proto3" json:"orderNo"` - BundleName string `protobuf:"bytes,17,opt,name=bundleName,proto3" json:"bundleName"` - ContractNo string `protobuf:"bytes,18,opt,name=contractNo,proto3" json:"contractNo"` - ValueAddBundleUuid string `protobuf:"bytes,19,opt,name=valueAddBundleUuid,proto3" json:"valueAddBundleUuid"` //增值套餐UUID - ValueAddBundleAmount float32 `protobuf:"fixed32,20,opt,name=valueAddBundleAmount,proto3" json:"valueAddBundleAmount"` //增值套餐金额 - ValueAddOriginalPrice float32 `protobuf:"fixed32,21,opt,name=valueAddOriginalPrice,proto3" json:"valueAddOriginalPrice"` //原单价 - ValueAddDiscountPrice float32 `protobuf:"fixed32,22,opt,name=valueAddDiscountPrice,proto3" json:"valueAddDiscountPrice"` //优惠单价 - ValueAddSavedAmount float32 `protobuf:"fixed32,23,opt,name=valueAddSavedAmount,proto3" json:"valueAddSavedAmount"` //节省金额 - Num int32 `protobuf:"varint,24,opt,name=num,proto3" json:"num"` - TotalAmount float32 `protobuf:"fixed32,25,opt,name=totalAmount,proto3" json:"totalAmount"` //总金额 - Sex string `protobuf:"bytes,26,opt,name=sex,proto3" json:"sex"` - Nationality string `protobuf:"bytes,27,opt,name=nationality,proto3" json:"nationality"` - CertificatePicture string `protobuf:"bytes,28,opt,name=certificatePicture,proto3" json:"certificatePicture"` - PlaceOfResidence string `protobuf:"bytes,29,opt,name=placeOfResidence,proto3" json:"placeOfResidence"` - GroupPhoto string `protobuf:"bytes,30,opt,name=groupPhoto,proto3" json:"groupPhoto"` - BundleCommonUid string `protobuf:"bytes,31,opt,name=bundleCommonUid,proto3" json:"bundleCommonUid"` - AddBundleCommonUid string `protobuf:"bytes,32,opt,name=addBundleCommonUid,proto3" json:"addBundleCommonUid"` - FinancialConfirmation int32 `protobuf:"varint,33,opt,name=financialConfirmation,proto3" json:"financialConfirmation"` - TelNum string `protobuf:"bytes,34,opt,name=telNum,proto3" json:"telNum"` - Language string `protobuf:"bytes,35,opt,name=language,proto3" json:"language"` - PriceOptionsInfo []*PriceOptionsInfo `protobuf:"bytes,36,rep,name=priceOptionsInfo,proto3" json:"priceOptionsInfo"` - ExpirationTime string `protobuf:"bytes,37,opt,name=expirationTime,proto3" json:"expirationTime"` - Snapshot string `protobuf:"bytes,38,opt,name=snapshot,proto3" json:"snapshot"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + BundleUuid string `protobuf:"bytes,2,opt,name=bundleUuid,proto3" json:"bundleUuid,omitempty"` + CustomerID string `protobuf:"bytes,3,opt,name=customerID,proto3" json:"customerID,omitempty"` + CustomerNum string `protobuf:"bytes,4,opt,name=customerNum,proto3" json:"customerNum,omitempty"` + CustomerName string `protobuf:"bytes,5,opt,name=customerName,proto3" json:"customerName,omitempty"` + Amount float32 `protobuf:"fixed32,6,opt,name=amount,proto3" json:"amount,omitempty"` + AmountType int64 `protobuf:"varint,7,opt,name=amountType,proto3" json:"amountType,omitempty"` + SignContract string `protobuf:"bytes,8,opt,name=signContract,proto3" json:"signContract,omitempty"` + Signature string `protobuf:"bytes,9,opt,name=signature,proto3" json:"signature,omitempty"` + SignedTime string `protobuf:"bytes,10,opt,name=signedTime,proto3" json:"signedTime,omitempty"` + PayType int64 `protobuf:"varint,11,opt,name=payType,proto3" json:"payType,omitempty"` + PayTime string `protobuf:"bytes,12,opt,name=payTime,proto3" json:"payTime,omitempty"` + CheckoutSessionId string `protobuf:"bytes,13,opt,name=checkoutSessionId,proto3" json:"checkoutSessionId,omitempty"` + CheckoutSessionUrl string `protobuf:"bytes,14,opt,name=checkoutSessionUrl,proto3" json:"checkoutSessionUrl,omitempty"` + Status int64 `protobuf:"varint,15,opt,name=status,proto3" json:"status,omitempty"` + OrderNo string `protobuf:"bytes,16,opt,name=orderNo,proto3" json:"orderNo,omitempty"` + BundleName string `protobuf:"bytes,17,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + ContractNo string `protobuf:"bytes,18,opt,name=contractNo,proto3" json:"contractNo,omitempty"` + ValueAddBundleUuid string `protobuf:"bytes,19,opt,name=valueAddBundleUuid,proto3" json:"valueAddBundleUuid,omitempty"` //增值套餐UUID + ValueAddBundleAmount float32 `protobuf:"fixed32,20,opt,name=valueAddBundleAmount,proto3" json:"valueAddBundleAmount,omitempty"` //增值套餐金额 + ValueAddOriginalPrice float32 `protobuf:"fixed32,21,opt,name=valueAddOriginalPrice,proto3" json:"valueAddOriginalPrice,omitempty"` //原单价 + ValueAddDiscountPrice float32 `protobuf:"fixed32,22,opt,name=valueAddDiscountPrice,proto3" json:"valueAddDiscountPrice,omitempty"` //优惠单价 + ValueAddSavedAmount float32 `protobuf:"fixed32,23,opt,name=valueAddSavedAmount,proto3" json:"valueAddSavedAmount,omitempty"` //节省金额 + Num int32 `protobuf:"varint,24,opt,name=num,proto3" json:"num,omitempty"` + TotalAmount float32 `protobuf:"fixed32,25,opt,name=totalAmount,proto3" json:"totalAmount,omitempty"` //总金额 + Sex string `protobuf:"bytes,26,opt,name=sex,proto3" json:"sex,omitempty"` + Nationality string `protobuf:"bytes,27,opt,name=nationality,proto3" json:"nationality,omitempty"` + CertificatePicture string `protobuf:"bytes,28,opt,name=certificatePicture,proto3" json:"certificatePicture,omitempty"` + PlaceOfResidence string `protobuf:"bytes,29,opt,name=placeOfResidence,proto3" json:"placeOfResidence,omitempty"` + GroupPhoto string `protobuf:"bytes,30,opt,name=groupPhoto,proto3" json:"groupPhoto,omitempty"` + BundleCommonUid string `protobuf:"bytes,31,opt,name=bundleCommonUid,proto3" json:"bundleCommonUid,omitempty"` + AddBundleCommonUid string `protobuf:"bytes,32,opt,name=addBundleCommonUid,proto3" json:"addBundleCommonUid,omitempty"` + FinancialConfirmation int32 `protobuf:"varint,33,opt,name=financialConfirmation,proto3" json:"financialConfirmation,omitempty"` + TelNum string `protobuf:"bytes,34,opt,name=telNum,proto3" json:"telNum,omitempty"` + Language string `protobuf:"bytes,35,opt,name=language,proto3" json:"language,omitempty"` + PriceOptionsInfo []*PriceOptionsInfo `protobuf:"bytes,36,rep,name=priceOptionsInfo,proto3" json:"priceOptionsInfo,omitempty"` + ExpirationTime string `protobuf:"bytes,37,opt,name=expirationTime,proto3" json:"expirationTime,omitempty"` + Snapshot string `protobuf:"bytes,38,opt,name=snapshot,proto3" json:"snapshot,omitempty"` } func (x *OrderRecord) Reset() { @@ -2063,20 +2063,20 @@ type OrderAddRecord struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - BundleUuid string `protobuf:"bytes,1,opt,name=bundleUuid,proto3" json:"bundleUuid"` - AddPriceOptionsList []*AddPriceOptionsInfo `protobuf:"bytes,2,rep,name=addPriceOptionsList,proto3" json:"addPriceOptionsList"` - Language string `protobuf:"bytes,3,opt,name=language,proto3" json:"language"` - CustomerID string `protobuf:"bytes,4,opt,name=customerID,proto3" json:"customerID"` - CustomerNum string `protobuf:"bytes,5,opt,name=customerNum,proto3" json:"customerNum"` - CustomerName string `protobuf:"bytes,6,opt,name=customerName,proto3" json:"customerName"` - // string valueAddUUID = 12 [json_name = "valueAddUUID"]; - Source int32 `protobuf:"varint,7,opt,name=source,proto3" json:"source"` - SignContract string `protobuf:"bytes,8,opt,name=signContract,proto3" json:"signContract"` - Signature string `protobuf:"bytes,9,opt,name=signature,proto3" json:"signature"` - SignedTime string `protobuf:"bytes,10,opt,name=signedTime,proto3" json:"signedTime"` - ExpirationDate string `protobuf:"bytes,11,opt,name=expirationDate,proto3" json:"expirationDate"` - Snapshot string `protobuf:"bytes,38,opt,name=snapshot,proto3" json:"snapshot"` - OrderUUID string `protobuf:"bytes,39,opt,name=orderUUID,proto3" json:"orderUUID"` + BundleUuid string `protobuf:"bytes,1,opt,name=bundleUuid,proto3" json:"bundleUuid,omitempty"` + AddPriceOptionsList []*AddPriceOptionsInfo `protobuf:"bytes,2,rep,name=addPriceOptionsList,proto3" json:"addPriceOptionsList,omitempty"` + Language string `protobuf:"bytes,3,opt,name=language,proto3" json:"language,omitempty"` + CustomerID string `protobuf:"bytes,4,opt,name=customerID,proto3" json:"customerID,omitempty"` + CustomerNum string `protobuf:"bytes,5,opt,name=customerNum,proto3" json:"customerNum,omitempty"` + CustomerName string `protobuf:"bytes,6,opt,name=customerName,proto3" json:"customerName,omitempty"` + // string valueAddUUID = 12 [json_name = "valueAddUUID"]; + Source int32 `protobuf:"varint,7,opt,name=source,proto3" json:"source,omitempty"` + SignContract string `protobuf:"bytes,8,opt,name=signContract,proto3" json:"signContract,omitempty"` + Signature string `protobuf:"bytes,9,opt,name=signature,proto3" json:"signature,omitempty"` + SignedTime string `protobuf:"bytes,10,opt,name=signedTime,proto3" json:"signedTime,omitempty"` + ExpirationDate string `protobuf:"bytes,11,opt,name=expirationDate,proto3" json:"expirationDate,omitempty"` + Snapshot string `protobuf:"bytes,38,opt,name=snapshot,proto3" json:"snapshot,omitempty"` + OrderUUID string `protobuf:"bytes,39,opt,name=orderUUID,proto3" json:"orderUUID,omitempty"` } func (x *OrderAddRecord) Reset() { @@ -2207,13 +2207,13 @@ type AddPriceOptionsInfo struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` - ValueUid string `protobuf:"bytes,2,opt,name=valueUid,proto3" json:"valueUid"` - ServiceType int32 `protobuf:"varint,3,opt,name=serviceType,proto3" json:"serviceType"` - CurrencyType int64 `protobuf:"varint,4,opt,name=currencyType,proto3" json:"currencyType"` - Amount float32 `protobuf:"fixed32,5,opt,name=amount,proto3" json:"amount"` - Num int32 `protobuf:"varint,6,opt,name=num,proto3" json:"num"` - Unit string `protobuf:"bytes,7,opt,name=unit,proto3" json:"unit"` + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + ValueUid string `protobuf:"bytes,2,opt,name=valueUid,proto3" json:"valueUid,omitempty"` + ServiceType int32 `protobuf:"varint,3,opt,name=serviceType,proto3" json:"serviceType,omitempty"` + CurrencyType int64 `protobuf:"varint,4,opt,name=currencyType,proto3" json:"currencyType,omitempty"` + Amount float32 `protobuf:"fixed32,5,opt,name=amount,proto3" json:"amount,omitempty"` + Num int32 `protobuf:"varint,6,opt,name=num,proto3" json:"num,omitempty"` + Unit string `protobuf:"bytes,7,opt,name=unit,proto3" json:"unit,omitempty"` } func (x *AddPriceOptionsInfo) Reset() { @@ -2302,9 +2302,9 @@ type PriceOptionsInfo struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` - ValueUid string `protobuf:"bytes,2,opt,name=valueUid,proto3" json:"valueUid"` - Num int32 `protobuf:"varint,3,opt,name=num,proto3" json:"num"` + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + ValueUid string `protobuf:"bytes,2,opt,name=valueUid,proto3" json:"valueUid,omitempty"` + Num int32 `protobuf:"varint,3,opt,name=num,proto3" json:"num,omitempty"` } func (x *PriceOptionsInfo) Reset() { @@ -2365,22 +2365,22 @@ type OrderRecordsRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page"` - PageSize int32 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize"` - CustomerNum string `protobuf:"bytes,3,opt,name=customerNum,proto3" json:"customerNum"` - CustomerName string `protobuf:"bytes,4,opt,name=customerName,proto3" json:"customerName"` - BundleUUID string `protobuf:"bytes,5,opt,name=bundleUUID,proto3" json:"bundleUUID"` - OrderNo string `protobuf:"bytes,6,opt,name=orderNo,proto3" json:"orderNo"` - Status int64 `protobuf:"varint,7,opt,name=status,proto3" json:"status"` - BundleName string `protobuf:"bytes,8,opt,name=bundleName,proto3" json:"bundleName"` - StartSignedTime string `protobuf:"bytes,9,opt,name=startSignedTime,proto3" json:"startSignedTime"` - EndSignedTime string `protobuf:"bytes,10,opt,name=endSignedTime,proto3" json:"endSignedTime"` - StartPayTime string `protobuf:"bytes,11,opt,name=startPayTime,proto3" json:"startPayTime"` - EndPayTime string `protobuf:"bytes,12,opt,name=endPayTime,proto3" json:"endPayTime"` - CustomerID string `protobuf:"bytes,13,opt,name=customerID,proto3" json:"customerID"` - IsHaveValueAdd int64 `protobuf:"varint,14,opt,name=isHaveValueAdd,proto3" json:"isHaveValueAdd"` //有无增值选项 - FinancialConfirmation int32 `protobuf:"varint,15,opt,name=financialConfirmation,proto3" json:"financialConfirmation"` - TelNum string `protobuf:"bytes,16,opt,name=telNum,proto3" json:"telNum"` + Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize,omitempty"` + CustomerNum string `protobuf:"bytes,3,opt,name=customerNum,proto3" json:"customerNum,omitempty"` + CustomerName string `protobuf:"bytes,4,opt,name=customerName,proto3" json:"customerName,omitempty"` + BundleUUID string `protobuf:"bytes,5,opt,name=bundleUUID,proto3" json:"bundleUUID,omitempty"` + OrderNo string `protobuf:"bytes,6,opt,name=orderNo,proto3" json:"orderNo,omitempty"` + Status int64 `protobuf:"varint,7,opt,name=status,proto3" json:"status,omitempty"` + BundleName string `protobuf:"bytes,8,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + StartSignedTime string `protobuf:"bytes,9,opt,name=startSignedTime,proto3" json:"startSignedTime,omitempty"` + EndSignedTime string `protobuf:"bytes,10,opt,name=endSignedTime,proto3" json:"endSignedTime,omitempty"` + StartPayTime string `protobuf:"bytes,11,opt,name=startPayTime,proto3" json:"startPayTime,omitempty"` + EndPayTime string `protobuf:"bytes,12,opt,name=endPayTime,proto3" json:"endPayTime,omitempty"` + CustomerID string `protobuf:"bytes,13,opt,name=customerID,proto3" json:"customerID,omitempty"` + IsHaveValueAdd int64 `protobuf:"varint,14,opt,name=isHaveValueAdd,proto3" json:"isHaveValueAdd,omitempty"` //有无增值选项 + FinancialConfirmation int32 `protobuf:"varint,15,opt,name=financialConfirmation,proto3" json:"financialConfirmation,omitempty"` + TelNum string `protobuf:"bytes,16,opt,name=telNum,proto3" json:"telNum,omitempty"` } func (x *OrderRecordsRequest) Reset() { @@ -2532,8 +2532,8 @@ type OrderRecordsResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - OrderRecords []*OrderRecord `protobuf:"bytes,1,rep,name=orderRecords,proto3" json:"orderRecords"` - Total int32 `protobuf:"varint,2,opt,name=total,proto3" json:"total"` + OrderRecords []*OrderRecord `protobuf:"bytes,1,rep,name=orderRecords,proto3" json:"orderRecords,omitempty"` + Total int32 `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"` } func (x *OrderRecordsResponse) Reset() { @@ -2587,10 +2587,10 @@ type OrderRecordsDetailRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - OrderNo string `protobuf:"bytes,2,opt,name=orderNo,proto3" json:"orderNo"` - CustomerID string `protobuf:"bytes,3,opt,name=customerID,proto3" json:"customerID"` - BundleUUID string `protobuf:"bytes,4,opt,name=bundleUUID,proto3" json:"bundleUUID"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + OrderNo string `protobuf:"bytes,2,opt,name=orderNo,proto3" json:"orderNo,omitempty"` + CustomerID string `protobuf:"bytes,3,opt,name=customerID,proto3" json:"customerID,omitempty"` + BundleUUID string `protobuf:"bytes,4,opt,name=bundleUUID,proto3" json:"bundleUUID,omitempty"` } func (x *OrderRecordsDetailRequest) Reset() { @@ -2658,8 +2658,8 @@ type OrderRecordsDetailResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - OrderRecord *OrderRecord `protobuf:"bytes,1,opt,name=orderRecord,proto3" json:"orderRecord"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg"` + OrderRecord *OrderRecord `protobuf:"bytes,1,opt,name=orderRecord,proto3" json:"orderRecord,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` } func (x *OrderRecordsDetailResponse) Reset() { @@ -2714,16 +2714,16 @@ type ValueAddBundleProfile struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - Num int32 `protobuf:"varint,2,opt,name=num,proto3" json:"num"` - OriginalPrice float32 `protobuf:"fixed32,3,opt,name=originalPrice,proto3" json:"originalPrice"` - DiscountPrice float32 `protobuf:"fixed32,4,opt,name=discountPrice,proto3" json:"discountPrice"` - TotalPrice float32 `protobuf:"fixed32,6,opt,name=totalPrice,proto3" json:"totalPrice"` - SavedAmount float32 `protobuf:"fixed32,7,opt,name=savedAmount,proto3" json:"savedAmount"` - DiscountPriceStatus bool `protobuf:"varint,8,opt,name=discountPriceStatus,proto3" json:"discountPriceStatus"` - Choose bool `protobuf:"varint,9,opt,name=choose,proto3" json:"choose"` - Status bool `protobuf:"varint,10,opt,name=status,proto3" json:"status"` - AddBundleCommonUid string `protobuf:"bytes,11,opt,name=addBundleCommonUid,proto3" json:"addBundleCommonUid"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + Num int32 `protobuf:"varint,2,opt,name=num,proto3" json:"num,omitempty"` + OriginalPrice float32 `protobuf:"fixed32,3,opt,name=originalPrice,proto3" json:"originalPrice,omitempty"` + DiscountPrice float32 `protobuf:"fixed32,4,opt,name=discountPrice,proto3" json:"discountPrice,omitempty"` + TotalPrice float32 `protobuf:"fixed32,6,opt,name=totalPrice,proto3" json:"totalPrice,omitempty"` + SavedAmount float32 `protobuf:"fixed32,7,opt,name=savedAmount,proto3" json:"savedAmount,omitempty"` + DiscountPriceStatus bool `protobuf:"varint,8,opt,name=discountPriceStatus,proto3" json:"discountPriceStatus,omitempty"` + Choose bool `protobuf:"varint,9,opt,name=choose,proto3" json:"choose,omitempty"` + Status bool `protobuf:"varint,10,opt,name=status,proto3" json:"status,omitempty"` + AddBundleCommonUid string `protobuf:"bytes,11,opt,name=addBundleCommonUid,proto3" json:"addBundleCommonUid,omitempty"` } func (x *ValueAddBundleProfile) Reset() { @@ -2833,7 +2833,7 @@ type CreateValueAddBundleRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Num int32 `protobuf:"varint,1,opt,name=num,proto3" json:"num"` + Num int32 `protobuf:"varint,1,opt,name=num,proto3" json:"num,omitempty"` } func (x *CreateValueAddBundleRequest) Reset() { @@ -2880,10 +2880,10 @@ type CreateValueAddBundleResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - TotalPrice float32 `protobuf:"fixed32,2,opt,name=totalPrice,proto3" json:"totalPrice"` - SavedAmount float32 `protobuf:"fixed32,3,opt,name=savedAmount,proto3" json:"savedAmount"` - Msg string `protobuf:"bytes,4,opt,name=msg,proto3" json:"msg"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + TotalPrice float32 `protobuf:"fixed32,2,opt,name=totalPrice,proto3" json:"totalPrice,omitempty"` + SavedAmount float32 `protobuf:"fixed32,3,opt,name=savedAmount,proto3" json:"savedAmount,omitempty"` + Msg string `protobuf:"bytes,4,opt,name=msg,proto3" json:"msg,omitempty"` } func (x *CreateValueAddBundleResponse) Reset() { @@ -2952,9 +2952,9 @@ type ValueAddBundleListRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId"` - BundleUuid string `protobuf:"bytes,2,opt,name=bundleUuid,proto3" json:"bundleUuid"` - PriceType int32 `protobuf:"varint,3,opt,name=priceType,proto3" json:"priceType"` + UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + BundleUuid string `protobuf:"bytes,2,opt,name=bundleUuid,proto3" json:"bundleUuid,omitempty"` + PriceType int32 `protobuf:"varint,3,opt,name=priceType,proto3" json:"priceType,omitempty"` } func (x *ValueAddBundleListRequest) Reset() { @@ -3015,14 +3015,14 @@ type ValueAddBundleListResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - OriginalPrice float32 `protobuf:"fixed32,1,opt,name=originalPrice,proto3" json:"originalPrice"` - Total int32 `protobuf:"varint,2,opt,name=total,proto3" json:"total"` - Data []*ValueAddBundleProfile `protobuf:"bytes,3,rep,name=data,proto3" json:"data"` - Status bool `protobuf:"varint,4,opt,name=status,proto3" json:"status"` - Num int32 `protobuf:"varint,5,opt,name=num,proto3" json:"num"` - Price float32 `protobuf:"fixed32,6,opt,name=price,proto3" json:"price"` - OrderNo bool `protobuf:"varint,7,opt,name=orderNo,proto3" json:"orderNo"` - Msg string `protobuf:"bytes,8,opt,name=msg,proto3" json:"msg"` + OriginalPrice float32 `protobuf:"fixed32,1,opt,name=originalPrice,proto3" json:"originalPrice,omitempty"` + Total int32 `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"` + Data []*ValueAddBundleProfile `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` + Status bool `protobuf:"varint,4,opt,name=status,proto3" json:"status,omitempty"` + Num int32 `protobuf:"varint,5,opt,name=num,proto3" json:"num,omitempty"` + Price float32 `protobuf:"fixed32,6,opt,name=price,proto3" json:"price,omitempty"` + OrderNo bool `protobuf:"varint,7,opt,name=orderNo,proto3" json:"orderNo,omitempty"` + Msg string `protobuf:"bytes,8,opt,name=msg,proto3" json:"msg,omitempty"` } func (x *ValueAddBundleListResponse) Reset() { @@ -3118,7 +3118,7 @@ type ValueAddBundleDetailRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` } func (x *ValueAddBundleDetailRequest) Reset() { @@ -3165,9 +3165,9 @@ type ValueAddBundleDetailResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Data *ValueAddBundleProfile `protobuf:"bytes,1,opt,name=data,proto3" json:"data"` - PayTime string `protobuf:"bytes,2,opt,name=payTime,proto3" json:"payTime"` - Msg string `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg"` + Data *ValueAddBundleProfile `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + PayTime string `protobuf:"bytes,2,opt,name=payTime,proto3" json:"payTime,omitempty"` + Msg string `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"` } func (x *ValueAddBundleDetailResponse) Reset() { @@ -3228,7 +3228,7 @@ type FinancialConfirmationRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - OrderNo string `protobuf:"bytes,1,opt,name=orderNo,proto3" json:"orderNo"` + OrderNo string `protobuf:"bytes,1,opt,name=orderNo,proto3" json:"orderNo,omitempty"` } func (x *FinancialConfirmationRequest) Reset() { @@ -3271,16 +3271,16 @@ func (x *FinancialConfirmationRequest) GetOrderNo() string { } // ****************************************************新增值服务*********************** -//增值服务 +// 增值服务 type ValueAddService struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - ServiceName string `protobuf:"bytes,2,opt,name=serviceName,proto3" json:"serviceName"` //服务名称 - ServiceType int32 `protobuf:"varint,3,opt,name=serviceType,proto3" json:"serviceType"` - ServiceLang []*ValueAddServiceLang `protobuf:"bytes,4,rep,name=serviceLang,proto3" json:"serviceLang"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + ServiceName string `protobuf:"bytes,2,opt,name=serviceName,proto3" json:"serviceName,omitempty"` //服务名称 + ServiceType int32 `protobuf:"varint,3,opt,name=serviceType,proto3" json:"serviceType,omitempty"` + ServiceLang []*ValueAddServiceLang `protobuf:"bytes,4,rep,name=serviceLang,proto3" json:"serviceLang,omitempty"` } func (x *ValueAddService) Reset() { @@ -3348,17 +3348,17 @@ type ValueAddServiceLang struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - ServiceName string `protobuf:"bytes,2,opt,name=serviceName,proto3" json:"serviceName"` //服务名称 - ServiceType int32 `protobuf:"varint,3,opt,name=serviceType,proto3" json:"serviceType"` - PriceMode int32 `protobuf:"varint,4,opt,name=priceMode,proto3" json:"priceMode"` - OriginalPrice string `protobuf:"bytes,5,opt,name=originalPrice,proto3" json:"originalPrice"` - Unit string `protobuf:"bytes,6,opt,name=unit,proto3" json:"unit"` - PriceType int64 `protobuf:"varint,7,opt,name=priceType,proto3" json:"priceType"` - Language string `protobuf:"bytes,8,opt,name=language,proto3" json:"language"` - CreatedAt string `protobuf:"bytes,9,opt,name=createdAt,proto3" json:"createdAt"` - UpdatedAt string `protobuf:"bytes,10,opt,name=updatedAt,proto3" json:"updatedAt"` - Options []*ValueAddPriceOptions `protobuf:"bytes,12,rep,name=options,proto3" json:"options"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + ServiceName string `protobuf:"bytes,2,opt,name=serviceName,proto3" json:"serviceName,omitempty"` //服务名称 + ServiceType int32 `protobuf:"varint,3,opt,name=serviceType,proto3" json:"serviceType,omitempty"` + PriceMode int32 `protobuf:"varint,4,opt,name=priceMode,proto3" json:"priceMode,omitempty"` + OriginalPrice string `protobuf:"bytes,5,opt,name=originalPrice,proto3" json:"originalPrice,omitempty"` + Unit string `protobuf:"bytes,6,opt,name=unit,proto3" json:"unit,omitempty"` + PriceType int64 `protobuf:"varint,7,opt,name=priceType,proto3" json:"priceType,omitempty"` + Language string `protobuf:"bytes,8,opt,name=language,proto3" json:"language,omitempty"` + CreatedAt string `protobuf:"bytes,9,opt,name=createdAt,proto3" json:"createdAt,omitempty"` + UpdatedAt string `protobuf:"bytes,10,opt,name=updatedAt,proto3" json:"updatedAt,omitempty"` + Options []*ValueAddPriceOptions `protobuf:"bytes,12,rep,name=options,proto3" json:"options,omitempty"` } func (x *ValueAddServiceLang) Reset() { @@ -3470,17 +3470,17 @@ func (x *ValueAddServiceLang) GetOptions() []*ValueAddPriceOptions { return nil } -//增值服务价格选项 +// 增值服务价格选项 type ValueAddPriceOptions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` - Num int32 `protobuf:"varint,2,opt,name=num,proto3" json:"num"` - Symbol string `protobuf:"bytes,3,opt,name=symbol,proto3" json:"symbol"` - Price string `protobuf:"bytes,4,opt,name=price,proto3" json:"price"` - SaveAmount string `protobuf:"bytes,5,opt,name=saveAmount,proto3" json:"saveAmount"` + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Num int32 `protobuf:"varint,2,opt,name=num,proto3" json:"num,omitempty"` + Symbol string `protobuf:"bytes,3,opt,name=symbol,proto3" json:"symbol,omitempty"` + Price string `protobuf:"bytes,4,opt,name=price,proto3" json:"price,omitempty"` + SaveAmount string `protobuf:"bytes,5,opt,name=saveAmount,proto3" json:"saveAmount,omitempty"` } func (x *ValueAddPriceOptions) Reset() { @@ -3550,16 +3550,16 @@ func (x *ValueAddPriceOptions) GetSaveAmount() string { return "" } -//增值服务列表 +// 增值服务列表 type ValueAddServiceListRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page"` - PageSize int32 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize"` - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name"` - Language string `protobuf:"bytes,4,opt,name=language,proto3" json:"language"` + Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + Language string `protobuf:"bytes,4,opt,name=language,proto3" json:"language,omitempty"` } func (x *ValueAddServiceListRequest) Reset() { @@ -3627,9 +3627,9 @@ type ValueAddServiceListResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Total int32 `protobuf:"varint,1,opt,name=total,proto3" json:"total"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg"` - ValueAddServiceList []*ValueAddService `protobuf:"bytes,3,rep,name=valueAddServiceList,proto3" json:"valueAddServiceList"` + Total int32 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + ValueAddServiceList []*ValueAddService `protobuf:"bytes,3,rep,name=valueAddServiceList,proto3" json:"valueAddServiceList,omitempty"` } func (x *ValueAddServiceListResponse) Reset() { @@ -3685,14 +3685,14 @@ func (x *ValueAddServiceListResponse) GetValueAddServiceList() []*ValueAddServic return nil } -//增值服务详情 +// 增值服务详情 type ValueAddServiceDetailRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language"` //语言 默认zh-CN, zh-CN zh-TW EN de-DE js-JP + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language,omitempty"` //语言 默认zh-CN, zh-CN zh-TW EN de-DE js-JP } func (x *ValueAddServiceDetailRequest) Reset() { @@ -3746,8 +3746,8 @@ type ValueAddServiceDetailResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg"` - ValueAddService *ValueAddService `protobuf:"bytes,2,opt,name=valueAddService,proto3" json:"valueAddService"` + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` + ValueAddService *ValueAddService `protobuf:"bytes,2,opt,name=valueAddService,proto3" json:"valueAddService,omitempty"` } func (x *ValueAddServiceDetailResponse) Reset() { @@ -3801,9 +3801,9 @@ type CalculatePriceRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - Num int32 `protobuf:"varint,2,opt,name=num,proto3" json:"num"` - Language string `protobuf:"bytes,3,opt,name=language,proto3" json:"language"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + Num int32 `protobuf:"varint,2,opt,name=num,proto3" json:"num,omitempty"` + Language string `protobuf:"bytes,3,opt,name=language,proto3" json:"language,omitempty"` } func (x *CalculatePriceRequest) Reset() { @@ -3864,8 +3864,8 @@ type CalculatePriceResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg"` - Price float32 `protobuf:"fixed32,2,opt,name=price,proto3" json:"price"` + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` + Price float32 `protobuf:"fixed32,2,opt,name=price,proto3" json:"price,omitempty"` } func (x *CalculatePriceResponse) Reset() { @@ -3919,16 +3919,16 @@ type BundleExtendRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId"` - AccountAdditional uint32 `protobuf:"varint,2,opt,name=accountAdditional,proto3" json:"accountAdditional"` - VideoAdditional uint32 `protobuf:"varint,3,opt,name=videoAdditional,proto3" json:"videoAdditional"` - ImagesAdditional uint32 `protobuf:"varint,4,opt,name=imagesAdditional,proto3" json:"imagesAdditional"` - DataAdditional uint32 `protobuf:"varint,5,opt,name=dataAdditional,proto3" json:"dataAdditional"` - AvailableDurationAdditional uint32 `protobuf:"varint,6,opt,name=availableDurationAdditional,proto3" json:"availableDurationAdditional"` - Remark string `protobuf:"bytes,7,opt,name=remark,proto3" json:"remark"` - AssociatedorderNumber string `protobuf:"bytes,8,opt,name=associatedorderNumber,proto3" json:"associatedorderNumber"` - OperatorName string `protobuf:"bytes,9,opt,name=operatorName,proto3" json:"operatorName"` - OperatorPhoneNumber string `protobuf:"bytes,10,opt,name=operatorPhoneNumber,proto3" json:"operatorPhoneNumber"` + UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + AccountAdditional uint32 `protobuf:"varint,2,opt,name=accountAdditional,proto3" json:"accountAdditional,omitempty"` + VideoAdditional uint32 `protobuf:"varint,3,opt,name=videoAdditional,proto3" json:"videoAdditional,omitempty"` + ImagesAdditional uint32 `protobuf:"varint,4,opt,name=imagesAdditional,proto3" json:"imagesAdditional,omitempty"` + DataAdditional uint32 `protobuf:"varint,5,opt,name=dataAdditional,proto3" json:"dataAdditional,omitempty"` + AvailableDurationAdditional uint32 `protobuf:"varint,6,opt,name=availableDurationAdditional,proto3" json:"availableDurationAdditional,omitempty"` + Remark string `protobuf:"bytes,7,opt,name=remark,proto3" json:"remark,omitempty"` + AssociatedorderNumber string `protobuf:"bytes,8,opt,name=associatedorderNumber,proto3" json:"associatedorderNumber,omitempty"` + OperatorName string `protobuf:"bytes,9,opt,name=operatorName,proto3" json:"operatorName,omitempty"` + OperatorPhoneNumber string `protobuf:"bytes,10,opt,name=operatorPhoneNumber,proto3" json:"operatorPhoneNumber,omitempty"` } func (x *BundleExtendRequest) Reset() { @@ -4076,14 +4076,14 @@ type BundleExtendRecordsListRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page"` - PageSize int32 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize"` - User string `protobuf:"bytes,3,opt,name=user,proto3" json:"user"` - Operator string `protobuf:"bytes,4,opt,name=operator,proto3" json:"operator"` - StartTime uint64 `protobuf:"varint,5,opt,name=startTime,proto3" json:"startTime"` - EndTime uint64 `protobuf:"varint,6,opt,name=endTime,proto3" json:"endTime"` - Type uint32 `protobuf:"varint,7,opt,name=type,proto3" json:"type"` - AssociatedOrderNumber string `protobuf:"bytes,8,opt,name=associatedOrderNumber,proto3" json:"associatedOrderNumber"` + Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize,omitempty"` + User string `protobuf:"bytes,3,opt,name=user,proto3" json:"user,omitempty"` + Operator string `protobuf:"bytes,4,opt,name=operator,proto3" json:"operator,omitempty"` + StartTime uint64 `protobuf:"varint,5,opt,name=startTime,proto3" json:"startTime,omitempty"` + EndTime uint64 `protobuf:"varint,6,opt,name=endTime,proto3" json:"endTime,omitempty"` + Type uint32 `protobuf:"varint,7,opt,name=type,proto3" json:"type,omitempty"` + AssociatedOrderNumber string `protobuf:"bytes,8,opt,name=associatedOrderNumber,proto3" json:"associatedOrderNumber,omitempty"` } func (x *BundleExtendRecordsListRequest) Reset() { @@ -4179,8 +4179,8 @@ type BundleExtendRecordsListResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total"` - Data []*BundleExtendRecordItem `protobuf:"bytes,2,rep,name=data,proto3" json:"data"` + Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` + Data []*BundleExtendRecordItem `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` } func (x *BundleExtendRecordsListResponse) Reset() { @@ -4234,19 +4234,19 @@ type BundleExtendRecordItem struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName"` - UserPhoneNumber string `protobuf:"bytes,2,opt,name=userPhoneNumber,proto3" json:"userPhoneNumber"` - AccountAdditional uint32 `protobuf:"varint,3,opt,name=accountAdditional,proto3" json:"accountAdditional"` - VideoAdditional uint32 `protobuf:"varint,4,opt,name=videoAdditional,proto3" json:"videoAdditional"` - ImagesAdditional uint32 `protobuf:"varint,5,opt,name=imagesAdditional,proto3" json:"imagesAdditional"` - DataAdditional uint32 `protobuf:"varint,6,opt,name=dataAdditional,proto3" json:"dataAdditional"` - AvailableDurationAdditional uint32 `protobuf:"varint,7,opt,name=availableDurationAdditional,proto3" json:"availableDurationAdditional"` - Type int32 `protobuf:"varint,8,opt,name=type,proto3" json:"type"` - CreatedAt uint64 `protobuf:"varint,9,opt,name=createdAt,proto3" json:"createdAt"` - Remark string `protobuf:"bytes,10,opt,name=remark,proto3" json:"remark"` - AssociatedOrderNumber string `protobuf:"bytes,11,opt,name=associatedOrderNumber,proto3" json:"associatedOrderNumber"` - OperatorName string `protobuf:"bytes,12,opt,name=operatorName,proto3" json:"operatorName"` - OperatorPhoneNumber string `protobuf:"bytes,13,opt,name=operatorPhoneNumber,proto3" json:"operatorPhoneNumber"` + UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName,omitempty"` + UserPhoneNumber string `protobuf:"bytes,2,opt,name=userPhoneNumber,proto3" json:"userPhoneNumber,omitempty"` + AccountAdditional uint32 `protobuf:"varint,3,opt,name=accountAdditional,proto3" json:"accountAdditional,omitempty"` + VideoAdditional uint32 `protobuf:"varint,4,opt,name=videoAdditional,proto3" json:"videoAdditional,omitempty"` + ImagesAdditional uint32 `protobuf:"varint,5,opt,name=imagesAdditional,proto3" json:"imagesAdditional,omitempty"` + DataAdditional uint32 `protobuf:"varint,6,opt,name=dataAdditional,proto3" json:"dataAdditional,omitempty"` + AvailableDurationAdditional uint32 `protobuf:"varint,7,opt,name=availableDurationAdditional,proto3" json:"availableDurationAdditional,omitempty"` + Type int32 `protobuf:"varint,8,opt,name=type,proto3" json:"type,omitempty"` + CreatedAt uint64 `protobuf:"varint,9,opt,name=createdAt,proto3" json:"createdAt,omitempty"` + Remark string `protobuf:"bytes,10,opt,name=remark,proto3" json:"remark,omitempty"` + AssociatedOrderNumber string `protobuf:"bytes,11,opt,name=associatedOrderNumber,proto3" json:"associatedOrderNumber,omitempty"` + OperatorName string `protobuf:"bytes,12,opt,name=operatorName,proto3" json:"operatorName,omitempty"` + OperatorPhoneNumber string `protobuf:"bytes,13,opt,name=operatorPhoneNumber,proto3" json:"operatorPhoneNumber,omitempty"` } func (x *BundleExtendRecordItem) Reset() { @@ -4377,13 +4377,13 @@ type GetBundleBalanceListReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName"` - Status int32 `protobuf:"varint,2,opt,name=status,proto3" json:"status"` - BundleName string `protobuf:"bytes,3,opt,name=bundleName,proto3" json:"bundleName"` - ExpiredTimeStart int64 `protobuf:"varint,4,opt,name=expiredTimeStart,proto3" json:"expiredTimeStart"` - ExpiredTimeEnd int64 `protobuf:"varint,5,opt,name=expiredTimeEnd,proto3" json:"expiredTimeEnd"` - Page int32 `protobuf:"varint,6,opt,name=page,proto3" json:"page"` - PageSize int32 `protobuf:"varint,7,opt,name=pageSize,proto3" json:"pageSize"` + UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName,omitempty"` + Status int32 `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"` + BundleName string `protobuf:"bytes,3,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + ExpiredTimeStart int64 `protobuf:"varint,4,opt,name=expiredTimeStart,proto3" json:"expiredTimeStart,omitempty"` + ExpiredTimeEnd int64 `protobuf:"varint,5,opt,name=expiredTimeEnd,proto3" json:"expiredTimeEnd,omitempty"` + Page int32 `protobuf:"varint,6,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,7,opt,name=pageSize,proto3" json:"pageSize,omitempty"` } func (x *GetBundleBalanceListReq) Reset() { @@ -4472,13 +4472,13 @@ type GetBundleBalanceReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName"` - Status int32 `protobuf:"varint,2,opt,name=status,proto3" json:"status"` - BundleName string `protobuf:"bytes,3,opt,name=bundleName,proto3" json:"bundleName"` - ExpiredTimeStart int64 `protobuf:"varint,4,opt,name=expiredTimeStart,proto3" json:"expiredTimeStart"` - ExpiredTimeEnd int64 `protobuf:"varint,5,opt,name=expiredTimeEnd,proto3" json:"expiredTimeEnd"` - Page int32 `protobuf:"varint,6,opt,name=page,proto3" json:"page"` - PageSize int32 `protobuf:"varint,7,opt,name=pageSize,proto3" json:"pageSize"` + UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName,omitempty"` + Status int32 `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"` + BundleName string `protobuf:"bytes,3,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + ExpiredTimeStart int64 `protobuf:"varint,4,opt,name=expiredTimeStart,proto3" json:"expiredTimeStart,omitempty"` + ExpiredTimeEnd int64 `protobuf:"varint,5,opt,name=expiredTimeEnd,proto3" json:"expiredTimeEnd,omitempty"` + Page int32 `protobuf:"varint,6,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,7,opt,name=pageSize,proto3" json:"pageSize,omitempty"` } func (x *GetBundleBalanceReq) Reset() { @@ -4567,21 +4567,21 @@ type BundleBalanceItem struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId"` - UserName string `protobuf:"bytes,2,opt,name=userName,proto3" json:"userName"` - UserPhoneNumber string `protobuf:"bytes,3,opt,name=userPhoneNumber,proto3" json:"userPhoneNumber"` - Status int32 `protobuf:"varint,4,opt,name=status,proto3" json:"status"` - BundleName string `protobuf:"bytes,5,opt,name=bundleName,proto3" json:"bundleName"` - ExpiredTime int64 `protobuf:"varint,6,opt,name=expiredTime,proto3" json:"expiredTime"` - AccountNumber int32 `protobuf:"varint,7,opt,name=accountNumber,proto3" json:"accountNumber"` - AccountConsumptionNumber int32 `protobuf:"varint,8,opt,name=accountConsumptionNumber,proto3" json:"accountConsumptionNumber"` - VideoNumber int32 `protobuf:"varint,9,opt,name=videoNumber,proto3" json:"videoNumber"` - VideoConsumptionNumber int32 `protobuf:"varint,10,opt,name=videoConsumptionNumber,proto3" json:"videoConsumptionNumber"` - ImageNumber int32 `protobuf:"varint,11,opt,name=imageNumber,proto3" json:"imageNumber"` - ImageConsumptionNumber int32 `protobuf:"varint,12,opt,name=imageConsumptionNumber,proto3" json:"imageConsumptionNumber"` - DataAnalysisNumber int32 `protobuf:"varint,13,opt,name=dataAnalysisNumber,proto3" json:"dataAnalysisNumber"` - DataAnalysisConsumptionNumber int32 `protobuf:"varint,14,opt,name=dataAnalysisConsumptionNumber,proto3" json:"dataAnalysisConsumptionNumber"` - ExpansionPacksNumber int32 `protobuf:"varint,15,opt,name=expansionPacksNumber,proto3" json:"expansionPacksNumber"` + UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + UserName string `protobuf:"bytes,2,opt,name=userName,proto3" json:"userName,omitempty"` + UserPhoneNumber string `protobuf:"bytes,3,opt,name=userPhoneNumber,proto3" json:"userPhoneNumber,omitempty"` + Status int32 `protobuf:"varint,4,opt,name=status,proto3" json:"status,omitempty"` + BundleName string `protobuf:"bytes,5,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + ExpiredTime int64 `protobuf:"varint,6,opt,name=expiredTime,proto3" json:"expiredTime,omitempty"` + AccountNumber int32 `protobuf:"varint,7,opt,name=accountNumber,proto3" json:"accountNumber,omitempty"` + AccountConsumptionNumber int32 `protobuf:"varint,8,opt,name=accountConsumptionNumber,proto3" json:"accountConsumptionNumber,omitempty"` + VideoNumber int32 `protobuf:"varint,9,opt,name=videoNumber,proto3" json:"videoNumber,omitempty"` + VideoConsumptionNumber int32 `protobuf:"varint,10,opt,name=videoConsumptionNumber,proto3" json:"videoConsumptionNumber,omitempty"` + ImageNumber int32 `protobuf:"varint,11,opt,name=imageNumber,proto3" json:"imageNumber,omitempty"` + ImageConsumptionNumber int32 `protobuf:"varint,12,opt,name=imageConsumptionNumber,proto3" json:"imageConsumptionNumber,omitempty"` + DataAnalysisNumber int32 `protobuf:"varint,13,opt,name=dataAnalysisNumber,proto3" json:"dataAnalysisNumber,omitempty"` + DataAnalysisConsumptionNumber int32 `protobuf:"varint,14,opt,name=dataAnalysisConsumptionNumber,proto3" json:"dataAnalysisConsumptionNumber,omitempty"` + ExpansionPacksNumber int32 `protobuf:"varint,15,opt,name=expansionPacksNumber,proto3" json:"expansionPacksNumber,omitempty"` } func (x *BundleBalanceItem) Reset() { @@ -4726,8 +4726,8 @@ type GetBundleBalanceResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total"` - Data []*BundleBalanceItem `protobuf:"bytes,2,rep,name=data,proto3" json:"data"` + Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` + Data []*BundleBalanceItem `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` } func (x *GetBundleBalanceResp) Reset() { @@ -4781,8 +4781,8 @@ type GetBundleBalanceListResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total"` - Data []*BundleBalanceItem `protobuf:"bytes,2,rep,name=data,proto3" json:"data"` + Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` + Data []*BundleBalanceItem `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` } func (x *GetBundleBalanceListResp) Reset() { @@ -4836,17 +4836,17 @@ type CreateBundleBalanceReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId"` - OrderUUID string `protobuf:"bytes,2,opt,name=orderUUID,proto3" json:"orderUUID"` - AccountNumber int32 `protobuf:"varint,3,opt,name=accountNumber,proto3" json:"accountNumber"` - AccountConsumptionNumber int32 `protobuf:"varint,4,opt,name=accountConsumptionNumber,proto3" json:"accountConsumptionNumber"` - VideoNumber int32 `protobuf:"varint,5,opt,name=videoNumber,proto3" json:"videoNumber"` - VideoConsumptionNumber int32 `protobuf:"varint,6,opt,name=videoConsumptionNumber,proto3" json:"videoConsumptionNumber"` - ImageNumber int32 `protobuf:"varint,7,opt,name=imageNumber,proto3" json:"imageNumber"` - ImageConsumptionNumber int32 `protobuf:"varint,8,opt,name=imageConsumptionNumber,proto3" json:"imageConsumptionNumber"` - DataAnalysisNumber int32 `protobuf:"varint,9,opt,name=dataAnalysisNumber,proto3" json:"dataAnalysisNumber"` - DataAnalysisConsumptionNumber int32 `protobuf:"varint,10,opt,name=dataAnalysisConsumptionNumber,proto3" json:"dataAnalysisConsumptionNumber"` - ExpansionPacksNumber int32 `protobuf:"varint,11,opt,name=expansionPacksNumber,proto3" json:"expansionPacksNumber"` + UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + OrderUUID string `protobuf:"bytes,2,opt,name=orderUUID,proto3" json:"orderUUID,omitempty"` + AccountNumber int32 `protobuf:"varint,3,opt,name=accountNumber,proto3" json:"accountNumber,omitempty"` + AccountConsumptionNumber int32 `protobuf:"varint,4,opt,name=accountConsumptionNumber,proto3" json:"accountConsumptionNumber,omitempty"` + VideoNumber int32 `protobuf:"varint,5,opt,name=videoNumber,proto3" json:"videoNumber,omitempty"` + VideoConsumptionNumber int32 `protobuf:"varint,6,opt,name=videoConsumptionNumber,proto3" json:"videoConsumptionNumber,omitempty"` + ImageNumber int32 `protobuf:"varint,7,opt,name=imageNumber,proto3" json:"imageNumber,omitempty"` + ImageConsumptionNumber int32 `protobuf:"varint,8,opt,name=imageConsumptionNumber,proto3" json:"imageConsumptionNumber,omitempty"` + DataAnalysisNumber int32 `protobuf:"varint,9,opt,name=dataAnalysisNumber,proto3" json:"dataAnalysisNumber,omitempty"` + DataAnalysisConsumptionNumber int32 `protobuf:"varint,10,opt,name=dataAnalysisConsumptionNumber,proto3" json:"dataAnalysisConsumptionNumber,omitempty"` + ExpansionPacksNumber int32 `protobuf:"varint,11,opt,name=expansionPacksNumber,proto3" json:"expansionPacksNumber,omitempty"` } func (x *CreateBundleBalanceReq) Reset() { @@ -5001,18 +5001,18 @@ type AddBundleBalanceReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` - UserId int32 `protobuf:"varint,2,opt,name=userId,proto3" json:"userId"` - OrderUUID string `protobuf:"bytes,3,opt,name=orderUUID,proto3" json:"orderUUID"` - AccountNumber int32 `protobuf:"varint,4,opt,name=accountNumber,proto3" json:"accountNumber"` - AccountConsumptionNumber int32 `protobuf:"varint,5,opt,name=accountConsumptionNumber,proto3" json:"accountConsumptionNumber"` - VideoNumber int32 `protobuf:"varint,6,opt,name=videoNumber,proto3" json:"videoNumber"` - VideoConsumptionNumber int32 `protobuf:"varint,7,opt,name=videoConsumptionNumber,proto3" json:"videoConsumptionNumber"` - ImageNumber int32 `protobuf:"varint,8,opt,name=imageNumber,proto3" json:"imageNumber"` - ImageConsumptionNumber int32 `protobuf:"varint,9,opt,name=imageConsumptionNumber,proto3" json:"imageConsumptionNumber"` - DataAnalysisNumber int32 `protobuf:"varint,10,opt,name=dataAnalysisNumber,proto3" json:"dataAnalysisNumber"` - DataAnalysisConsumptionNumber int32 `protobuf:"varint,11,opt,name=dataAnalysisConsumptionNumber,proto3" json:"dataAnalysisConsumptionNumber"` - ExpansionPacksNumber int32 `protobuf:"varint,12,opt,name=expansionPacksNumber,proto3" json:"expansionPacksNumber"` + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + UserId int32 `protobuf:"varint,2,opt,name=userId,proto3" json:"userId,omitempty"` + OrderUUID string `protobuf:"bytes,3,opt,name=orderUUID,proto3" json:"orderUUID,omitempty"` + AccountNumber int32 `protobuf:"varint,4,opt,name=accountNumber,proto3" json:"accountNumber,omitempty"` + AccountConsumptionNumber int32 `protobuf:"varint,5,opt,name=accountConsumptionNumber,proto3" json:"accountConsumptionNumber,omitempty"` + VideoNumber int32 `protobuf:"varint,6,opt,name=videoNumber,proto3" json:"videoNumber,omitempty"` + VideoConsumptionNumber int32 `protobuf:"varint,7,opt,name=videoConsumptionNumber,proto3" json:"videoConsumptionNumber,omitempty"` + ImageNumber int32 `protobuf:"varint,8,opt,name=imageNumber,proto3" json:"imageNumber,omitempty"` + ImageConsumptionNumber int32 `protobuf:"varint,9,opt,name=imageConsumptionNumber,proto3" json:"imageConsumptionNumber,omitempty"` + DataAnalysisNumber int32 `protobuf:"varint,10,opt,name=dataAnalysisNumber,proto3" json:"dataAnalysisNumber,omitempty"` + DataAnalysisConsumptionNumber int32 `protobuf:"varint,11,opt,name=dataAnalysisConsumptionNumber,proto3" json:"dataAnalysisConsumptionNumber,omitempty"` + ExpansionPacksNumber int32 `protobuf:"varint,12,opt,name=expansionPacksNumber,proto3" json:"expansionPacksNumber,omitempty"` } func (x *AddBundleBalanceReq) Reset() { @@ -5169,6 +5169,567 @@ func (*AddBundleBalanceResp) Descriptor() ([]byte, []int) { return file_pb_bundle_proto_rawDescGZIP(), []int{57} } +type GetUsedRecordListReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + User string `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` + Operator string `protobuf:"bytes,2,opt,name=operator,proto3" json:"operator,omitempty"` + Account int32 `protobuf:"varint,3,opt,name=account,proto3" json:"account,omitempty"` + Platform int32 `protobuf:"varint,4,opt,name=platform,proto3" json:"platform,omitempty"` + Type int32 `protobuf:"varint,5,opt,name=type,proto3" json:"type,omitempty"` + Title string `protobuf:"bytes,6,opt,name=title,proto3" json:"title,omitempty"` + SubmitTimeStart int64 `protobuf:"varint,7,opt,name=submitTimeStart,proto3" json:"submitTimeStart,omitempty"` + SubmitTimeEnd int64 `protobuf:"varint,8,opt,name=submitTimeEnd,proto3" json:"submitTimeEnd,omitempty"` + Page int32 `protobuf:"varint,9,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,10,opt,name=pageSize,proto3" json:"pageSize,omitempty"` +} + +func (x *GetUsedRecordListReq) Reset() { + *x = GetUsedRecordListReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUsedRecordListReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUsedRecordListReq) ProtoMessage() {} + +func (x *GetUsedRecordListReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[58] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUsedRecordListReq.ProtoReflect.Descriptor instead. +func (*GetUsedRecordListReq) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{58} +} + +func (x *GetUsedRecordListReq) GetUser() string { + if x != nil { + return x.User + } + return "" +} + +func (x *GetUsedRecordListReq) GetOperator() string { + if x != nil { + return x.Operator + } + return "" +} + +func (x *GetUsedRecordListReq) GetAccount() int32 { + if x != nil { + return x.Account + } + return 0 +} + +func (x *GetUsedRecordListReq) GetPlatform() int32 { + if x != nil { + return x.Platform + } + return 0 +} + +func (x *GetUsedRecordListReq) GetType() int32 { + if x != nil { + return x.Type + } + return 0 +} + +func (x *GetUsedRecordListReq) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *GetUsedRecordListReq) GetSubmitTimeStart() int64 { + if x != nil { + return x.SubmitTimeStart + } + return 0 +} + +func (x *GetUsedRecordListReq) GetSubmitTimeEnd() int64 { + if x != nil { + return x.SubmitTimeEnd + } + return 0 +} + +func (x *GetUsedRecordListReq) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *GetUsedRecordListReq) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +type GetUsedRecordListResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` + Data []*WorkCastItem `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetUsedRecordListResp) Reset() { + *x = GetUsedRecordListResp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUsedRecordListResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUsedRecordListResp) ProtoMessage() {} + +func (x *GetUsedRecordListResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[59] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUsedRecordListResp.ProtoReflect.Descriptor instead. +func (*GetUsedRecordListResp) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{59} +} + +func (x *GetUsedRecordListResp) GetTotal() int64 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *GetUsedRecordListResp) GetData() []*WorkCastItem { + if x != nil { + return x.Data + } + return nil +} + +type WorkCastItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ArtistUuid string `protobuf:"bytes,1,opt,name=artistUuid,proto3" json:"artistUuid,omitempty"` // 艺人ID + ArtistName string `protobuf:"bytes,2,opt,name=artistName,proto3" json:"artistName,omitempty"` // 艺人名称 + ArtistPhone string `protobuf:"bytes,3,opt,name=artistPhone,proto3" json:"artistPhone,omitempty"` // 艺人手机号 + WorkUuid string `protobuf:"bytes,4,opt,name=workUuid,proto3" json:"workUuid,omitempty"` // 作品uuid + WorkCategory uint32 `protobuf:"varint,5,opt,name=workCategory,proto3" json:"workCategory,omitempty"` // 1 图文 2 视频 + BundleUuid string `protobuf:"bytes,6,opt,name=bundleUuid,proto3" json:"bundleUuid,omitempty"` // 套餐ID uuid + BundleName string `protobuf:"bytes,7,opt,name=bundleName,proto3" json:"bundleName,omitempty"` // 套餐名称 + PlatformIDs string `protobuf:"bytes,8,opt,name=platformIDs,proto3" json:"platformIDs,omitempty"` // 发布平台ID集合 (json 格式字符串) + MediaNames string `protobuf:"bytes,9,opt,name=mediaNames,proto3" json:"mediaNames,omitempty"` // 自媒体账号名称集合 + MediaAccIDs string `protobuf:"bytes,10,opt,name=mediaAccIDs,proto3" json:"mediaAccIDs,omitempty"` // 自媒体账号ID集合 + WorkTitle string `protobuf:"bytes,11,opt,name=workTitle,proto3" json:"workTitle,omitempty"` // 作品标题 + SubmitTime string `protobuf:"bytes,12,opt,name=submitTime,proto3" json:"submitTime,omitempty"` // 提交时间 + OperatorName string `protobuf:"bytes,13,opt,name=operatorName,proto3" json:"operatorName,omitempty"` // 操作人名称 + OperatorPhone string `protobuf:"bytes,14,opt,name=operatorPhone,proto3" json:"operatorPhone,omitempty"` // 操作人手机号 + Status uint32 `protobuf:"varint,15,opt,name=status,proto3" json:"status,omitempty"` // 1 有效 2 失效 +} + +func (x *WorkCastItem) Reset() { + *x = WorkCastItem{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WorkCastItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkCastItem) ProtoMessage() {} + +func (x *WorkCastItem) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[60] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkCastItem.ProtoReflect.Descriptor instead. +func (*WorkCastItem) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{60} +} + +func (x *WorkCastItem) GetArtistUuid() string { + if x != nil { + return x.ArtistUuid + } + return "" +} + +func (x *WorkCastItem) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + +func (x *WorkCastItem) GetArtistPhone() string { + if x != nil { + return x.ArtistPhone + } + return "" +} + +func (x *WorkCastItem) GetWorkUuid() string { + if x != nil { + return x.WorkUuid + } + return "" +} + +func (x *WorkCastItem) GetWorkCategory() uint32 { + if x != nil { + return x.WorkCategory + } + return 0 +} + +func (x *WorkCastItem) GetBundleUuid() string { + if x != nil { + return x.BundleUuid + } + return "" +} + +func (x *WorkCastItem) GetBundleName() string { + if x != nil { + return x.BundleName + } + return "" +} + +func (x *WorkCastItem) GetPlatformIDs() string { + if x != nil { + return x.PlatformIDs + } + return "" +} + +func (x *WorkCastItem) GetMediaNames() string { + if x != nil { + return x.MediaNames + } + return "" +} + +func (x *WorkCastItem) GetMediaAccIDs() string { + if x != nil { + return x.MediaAccIDs + } + return "" +} + +func (x *WorkCastItem) GetWorkTitle() string { + if x != nil { + return x.WorkTitle + } + return "" +} + +func (x *WorkCastItem) GetSubmitTime() string { + if x != nil { + return x.SubmitTime + } + return "" +} + +func (x *WorkCastItem) GetOperatorName() string { + if x != nil { + return x.OperatorName + } + return "" +} + +func (x *WorkCastItem) GetOperatorPhone() string { + if x != nil { + return x.OperatorPhone + } + return "" +} + +func (x *WorkCastItem) GetStatus() uint32 { + if x != nil { + return x.Status + } + return 0 +} + +type GetImageWorkDetailReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkId string `protobuf:"bytes,1,opt,name=workId,proto3" json:"workId,omitempty"` +} + +func (x *GetImageWorkDetailReq) Reset() { + *x = GetImageWorkDetailReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetImageWorkDetailReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetImageWorkDetailReq) ProtoMessage() {} + +func (x *GetImageWorkDetailReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[61] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetImageWorkDetailReq.ProtoReflect.Descriptor instead. +func (*GetImageWorkDetailReq) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{61} +} + +func (x *GetImageWorkDetailReq) GetWorkId() string { + if x != nil { + return x.WorkId + } + return "" +} + +type GetVedioWorkDetailReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkId string `protobuf:"bytes,1,opt,name=workId,proto3" json:"workId,omitempty"` +} + +func (x *GetVedioWorkDetailReq) Reset() { + *x = GetVedioWorkDetailReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetVedioWorkDetailReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetVedioWorkDetailReq) ProtoMessage() {} + +func (x *GetVedioWorkDetailReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[62] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetVedioWorkDetailReq.ProtoReflect.Descriptor instead. +func (*GetVedioWorkDetailReq) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{62} +} + +func (x *GetVedioWorkDetailReq) GetWorkId() string { + if x != nil { + return x.WorkId + } + return "" +} + +type GetImageWorkDetailResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkId string `protobuf:"bytes,1,opt,name=workId,proto3" json:"workId,omitempty"` + CoverUrl string `protobuf:"bytes,2,opt,name=coverUrl,proto3" json:"coverUrl,omitempty"` + VideoUrl string `protobuf:"bytes,3,opt,name=videoUrl,proto3" json:"videoUrl,omitempty"` + CreatedAt int64 `protobuf:"varint,4,opt,name=createdAt,proto3" json:"createdAt,omitempty"` +} + +func (x *GetImageWorkDetailResp) Reset() { + *x = GetImageWorkDetailResp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetImageWorkDetailResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetImageWorkDetailResp) ProtoMessage() {} + +func (x *GetImageWorkDetailResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[63] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetImageWorkDetailResp.ProtoReflect.Descriptor instead. +func (*GetImageWorkDetailResp) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{63} +} + +func (x *GetImageWorkDetailResp) GetWorkId() string { + if x != nil { + return x.WorkId + } + return "" +} + +func (x *GetImageWorkDetailResp) GetCoverUrl() string { + if x != nil { + return x.CoverUrl + } + return "" +} + +func (x *GetImageWorkDetailResp) GetVideoUrl() string { + if x != nil { + return x.VideoUrl + } + return "" +} + +func (x *GetImageWorkDetailResp) GetCreatedAt() int64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +type GetVedioeWorkDetailResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkId string `protobuf:"bytes,1,opt,name=workId,proto3" json:"workId,omitempty"` + ImageUrls []string `protobuf:"bytes,2,rep,name=imageUrls,proto3" json:"imageUrls,omitempty"` + CreatedAt int64 `protobuf:"varint,3,opt,name=createdAt,proto3" json:"createdAt,omitempty"` +} + +func (x *GetVedioeWorkDetailResp) Reset() { + *x = GetVedioeWorkDetailResp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetVedioeWorkDetailResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetVedioeWorkDetailResp) ProtoMessage() {} + +func (x *GetVedioeWorkDetailResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[64] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetVedioeWorkDetailResp.ProtoReflect.Descriptor instead. +func (*GetVedioeWorkDetailResp) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{64} +} + +func (x *GetVedioeWorkDetailResp) GetWorkId() string { + if x != nil { + return x.WorkId + } + return "" +} + +func (x *GetVedioeWorkDetailResp) GetImageUrls() []string { + if x != nil { + return x.ImageUrls + } + return nil +} + +func (x *GetVedioeWorkDetailResp) GetCreatedAt() int64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + var File_pb_bundle_proto protoreflect.FileDescriptor var file_pb_bundle_proto_rawDesc = []byte{ @@ -6024,176 +6585,264 @@ var file_pb_bundle_proto_rawDesc = []byte{ 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x16, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x32, 0xf1, 0x14, 0x0a, 0x06, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x16, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x16, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x44, 0x65, 0x6c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x09, 0x48, - 0x61, 0x6e, 0x64, 0x53, 0x68, 0x65, 0x6c, 0x66, 0x12, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x65, 0x6c, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x0a, - 0x53, 0x61, 0x76, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x1a, 0x14, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0c, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x32, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x56, 0x32, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, - 0x32, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0a, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x62, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa6, 0x02, 0x0a, 0x14, 0x47, + 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, + 0x74, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x73, 0x75, + 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x24, 0x0a, + 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x45, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x22, 0x57, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x43, 0x61, + 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xf4, 0x03, 0x0a, + 0x0c, 0x57, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1e, 0x0a, + 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, + 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x77, + 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, + 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, + 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, + 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x49, 0x44, 0x73, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, + 0x49, 0x44, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x69, 0x74, 0x6c, 0x65, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x69, 0x74, 0x6c, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x22, 0x2f, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x57, + 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, + 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x6f, + 0x72, 0x6b, 0x49, 0x64, 0x22, 0x2f, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x56, 0x65, 0x64, 0x69, 0x6f, + 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, + 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, + 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x22, 0x86, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x16, 0x0a, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x76, 0x65, + 0x72, 0x55, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x76, 0x65, + 0x72, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, + 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x6d, + 0x0a, 0x17, 0x47, 0x65, 0x74, 0x56, 0x65, 0x64, 0x69, 0x6f, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x6f, 0x72, + 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, + 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x12, + 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x32, 0xa3, 0x16, + 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, + 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0c, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0c, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x18, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, + 0x0a, 0x09, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x65, 0x6c, 0x66, 0x12, 0x18, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x65, 0x6c, 0x66, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x3b, 0x0a, 0x0a, 0x53, 0x61, 0x76, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x14, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x61, + 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0c, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x32, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0c, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x56, 0x32, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x56, 0x32, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0a, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, + 0x0c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x19, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x42, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x11, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, + 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x79, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x79, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x4e, 0x6f, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x10, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x63, 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6e, 0x61, - 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, - 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, - 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, - 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x51, 0x0a, 0x13, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x50, 0x72, 0x69, 0x63, - 0x65, 0x41, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x23, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x32, 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x32, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x10, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x14, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x12, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x5d, 0x0a, 0x12, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x21, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, + 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x14, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x12, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x13, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x13, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x1a, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x32, 0x12, 0x1d, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x32, 0x1a, 0x1e, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32, 0x22, 0x00, 0x12, 0x63, + 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x12, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x63, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x62, + 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x13, 0x53, 0x61, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1b, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x63, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x23, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, + 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x13, 0x53, 0x61, 0x76, 0x65, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1b, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x1a, 0x14, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x15, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, + 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x24, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, + 0x24, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x4c, 0x61, 0x6e, 0x67, 0x42, 0x79, 0x55, 0x75, 0x69, 0x64, 0x41, 0x6e, 0x64, 0x4c, 0x61, 0x6e, + 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x1a, 0x14, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x60, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x66, 0x0a, 0x15, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x24, 0x2e, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x25, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x24, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, - 0x67, 0x42, 0x79, 0x55, 0x75, 0x69, 0x64, 0x41, 0x6e, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, - 0x67, 0x65, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0e, 0x43, 0x61, 0x6c, 0x63, 0x75, - 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0c, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, + 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0e, 0x43, 0x61, + 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1d, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, + 0x0c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x12, 0x1b, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x17, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x26, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1f, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x20, - 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x00, 0x12, 0x58, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x10, - 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4f, 0x0a, - 0x10, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, - 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x42, 0x0a, - 0x5a, 0x08, 0x2e, 0x2f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x17, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x26, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x1f, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x1a, 0x20, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, + 0x4f, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x64, 0x64, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, + 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, + 0x12, 0x52, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, + 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x6f, 0x72, 0x6b, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x12, 0x47, + 0x65, 0x74, 0x56, 0x65, 0x64, 0x69, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, + 0x64, 0x69, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, + 0x1a, 0x1f, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x64, + 0x69, 0x6f, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x00, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -6208,7 +6857,7 @@ func file_pb_bundle_proto_rawDescGZIP() []byte { return file_pb_bundle_proto_rawDescData } -var file_pb_bundle_proto_msgTypes = make([]protoimpl.MessageInfo, 58) +var file_pb_bundle_proto_msgTypes = make([]protoimpl.MessageInfo, 65) var file_pb_bundle_proto_goTypes = []interface{}{ (*OrderCreateRecord)(nil), // 0: bundle.OrderCreateRecord (*OrderCreateAddRecord)(nil), // 1: bundle.OrderCreateAddRecord @@ -6268,6 +6917,13 @@ var file_pb_bundle_proto_goTypes = []interface{}{ (*CreateBundleBalanceResp)(nil), // 55: bundle.CreateBundleBalanceResp (*AddBundleBalanceReq)(nil), // 56: bundle.AddBundleBalanceReq (*AddBundleBalanceResp)(nil), // 57: bundle.AddBundleBalanceResp + (*GetUsedRecordListReq)(nil), // 58: bundle.GetUsedRecordListReq + (*GetUsedRecordListResp)(nil), // 59: bundle.GetUsedRecordListResp + (*WorkCastItem)(nil), // 60: bundle.WorkCastItem + (*GetImageWorkDetailReq)(nil), // 61: bundle.GetImageWorkDetailReq + (*GetVedioWorkDetailReq)(nil), // 62: bundle.GetVedioWorkDetailReq + (*GetImageWorkDetailResp)(nil), // 63: bundle.GetImageWorkDetailResp + (*GetVedioeWorkDetailResp)(nil), // 64: bundle.GetVedioeWorkDetailResp } var file_pb_bundle_proto_depIdxs = []int32{ 1, // 0: bundle.OrderCreateRecord.addRecords:type_name -> bundle.OrderCreateAddRecord @@ -6291,75 +6947,80 @@ var file_pb_bundle_proto_depIdxs = []int32{ 48, // 18: bundle.BundleExtendRecordsListResponse.data:type_name -> bundle.BundleExtendRecordItem 51, // 19: bundle.GetBundleBalanceResp.data:type_name -> bundle.BundleBalanceItem 51, // 20: bundle.GetBundleBalanceListResp.data:type_name -> bundle.BundleBalanceItem - 8, // 21: bundle.Bundle.CreateBundle:input_type -> bundle.BundleProfile - 8, // 22: bundle.Bundle.UpdateBundle:input_type -> bundle.BundleProfile - 12, // 23: bundle.Bundle.DeleteBundle:input_type -> bundle.DelBundleRequest - 16, // 24: bundle.Bundle.HandShelf:input_type -> bundle.HandShelfRequest - 8, // 25: bundle.Bundle.SaveBundle:input_type -> bundle.BundleProfile - 13, // 26: bundle.Bundle.BundleListV2:input_type -> bundle.BundleListRequest - 15, // 27: bundle.Bundle.BundleDetailV2:input_type -> bundle.BundleDetailRequest - 13, // 28: bundle.Bundle.BundleList:input_type -> bundle.BundleListRequest - 15, // 29: bundle.Bundle.BundleDetail:input_type -> bundle.BundleDetailRequest - 0, // 30: bundle.Bundle.CreateOrderRecord:input_type -> bundle.OrderCreateRecord - 19, // 31: bundle.Bundle.UpdateOrderRecord:input_type -> bundle.OrderRecord - 19, // 32: bundle.Bundle.UpdateOrderRecordByOrderNo:input_type -> bundle.OrderRecord - 23, // 33: bundle.Bundle.OrderRecordsList:input_type -> bundle.OrderRecordsRequest - 25, // 34: bundle.Bundle.OrderRecordsDetail:input_type -> bundle.OrderRecordsDetailRequest - 34, // 35: bundle.Bundle.UpdateFinancialConfirmationStatus:input_type -> bundle.FinancialConfirmationRequest - 20, // 36: bundle.Bundle.CreateOrderAddRecord:input_type -> bundle.OrderAddRecord - 19, // 37: bundle.Bundle.PackagePriceAndTime:input_type -> bundle.OrderRecord - 2, // 38: bundle.Bundle.OrderRecordsListV2:input_type -> bundle.OrderRecordsRequestV2 - 28, // 39: bundle.Bundle.CreateValueAddBundle:input_type -> bundle.CreateValueAddBundleRequest - 30, // 40: bundle.Bundle.ValueAddBundleList:input_type -> bundle.ValueAddBundleListRequest - 32, // 41: bundle.Bundle.ValueAddBundleDetail:input_type -> bundle.ValueAddBundleDetailRequest - 36, // 42: bundle.Bundle.SaveValueAddService:input_type -> bundle.ValueAddServiceLang - 38, // 43: bundle.Bundle.ValueAddServiceList:input_type -> bundle.ValueAddServiceListRequest - 40, // 44: bundle.Bundle.ValueAddServiceDetail:input_type -> bundle.ValueAddServiceDetailRequest - 40, // 45: bundle.Bundle.ValueAddServiceLangByUuidAndLanguage:input_type -> bundle.ValueAddServiceDetailRequest - 42, // 46: bundle.Bundle.CalculatePrice:input_type -> bundle.CalculatePriceRequest - 44, // 47: bundle.Bundle.BundleExtend:input_type -> bundle.BundleExtendRequest - 46, // 48: bundle.Bundle.BundleExtendRecordsList:input_type -> bundle.BundleExtendRecordsListRequest - 49, // 49: bundle.Bundle.GetBundleBalanceList:input_type -> bundle.GetBundleBalanceListReq - 54, // 50: bundle.Bundle.CreateBundleBalance:input_type -> bundle.CreateBundleBalanceReq - 56, // 51: bundle.Bundle.AddBundleBalance:input_type -> bundle.AddBundleBalanceReq - 50, // 52: bundle.Bundle.GetBundleBalance:input_type -> bundle.GetBundleBalanceReq - 7, // 53: bundle.Bundle.CreateBundle:output_type -> bundle.CommonResponse - 7, // 54: bundle.Bundle.UpdateBundle:output_type -> bundle.CommonResponse - 7, // 55: bundle.Bundle.DeleteBundle:output_type -> bundle.CommonResponse - 7, // 56: bundle.Bundle.HandShelf:output_type -> bundle.CommonResponse - 10, // 57: bundle.Bundle.SaveBundle:output_type -> bundle.SaveResponse - 14, // 58: bundle.Bundle.BundleListV2:output_type -> bundle.BundleListResponse - 18, // 59: bundle.Bundle.BundleDetailV2:output_type -> bundle.BundleDetailResponseV2 - 14, // 60: bundle.Bundle.BundleList:output_type -> bundle.BundleListResponse - 17, // 61: bundle.Bundle.BundleDetail:output_type -> bundle.BundleDetailResponse - 7, // 62: bundle.Bundle.CreateOrderRecord:output_type -> bundle.CommonResponse - 7, // 63: bundle.Bundle.UpdateOrderRecord:output_type -> bundle.CommonResponse - 7, // 64: bundle.Bundle.UpdateOrderRecordByOrderNo:output_type -> bundle.CommonResponse - 24, // 65: bundle.Bundle.OrderRecordsList:output_type -> bundle.OrderRecordsResponse - 26, // 66: bundle.Bundle.OrderRecordsDetail:output_type -> bundle.OrderRecordsDetailResponse - 7, // 67: bundle.Bundle.UpdateFinancialConfirmationStatus:output_type -> bundle.CommonResponse - 7, // 68: bundle.Bundle.CreateOrderAddRecord:output_type -> bundle.CommonResponse - 6, // 69: bundle.Bundle.PackagePriceAndTime:output_type -> bundle.PackagePriceAndTimeResponse - 3, // 70: bundle.Bundle.OrderRecordsListV2:output_type -> bundle.OrderRecordsResponseV2 - 29, // 71: bundle.Bundle.CreateValueAddBundle:output_type -> bundle.CreateValueAddBundleResponse - 31, // 72: bundle.Bundle.ValueAddBundleList:output_type -> bundle.ValueAddBundleListResponse - 33, // 73: bundle.Bundle.ValueAddBundleDetail:output_type -> bundle.ValueAddBundleDetailResponse - 10, // 74: bundle.Bundle.SaveValueAddService:output_type -> bundle.SaveResponse - 39, // 75: bundle.Bundle.ValueAddServiceList:output_type -> bundle.ValueAddServiceListResponse - 41, // 76: bundle.Bundle.ValueAddServiceDetail:output_type -> bundle.ValueAddServiceDetailResponse - 36, // 77: bundle.Bundle.ValueAddServiceLangByUuidAndLanguage:output_type -> bundle.ValueAddServiceLang - 43, // 78: bundle.Bundle.CalculatePrice:output_type -> bundle.CalculatePriceResponse - 45, // 79: bundle.Bundle.BundleExtend:output_type -> bundle.BundleExtendResponse - 47, // 80: bundle.Bundle.BundleExtendRecordsList:output_type -> bundle.BundleExtendRecordsListResponse - 53, // 81: bundle.Bundle.GetBundleBalanceList:output_type -> bundle.GetBundleBalanceListResp - 55, // 82: bundle.Bundle.CreateBundleBalance:output_type -> bundle.CreateBundleBalanceResp - 57, // 83: bundle.Bundle.AddBundleBalance:output_type -> bundle.AddBundleBalanceResp - 52, // 84: bundle.Bundle.GetBundleBalance:output_type -> bundle.GetBundleBalanceResp - 53, // [53:85] is the sub-list for method output_type - 21, // [21:53] is the sub-list for method input_type - 21, // [21:21] is the sub-list for extension type_name - 21, // [21:21] is the sub-list for extension extendee - 0, // [0:21] is the sub-list for field type_name + 60, // 21: bundle.GetUsedRecordListResp.data:type_name -> bundle.WorkCastItem + 8, // 22: bundle.Bundle.CreateBundle:input_type -> bundle.BundleProfile + 8, // 23: bundle.Bundle.UpdateBundle:input_type -> bundle.BundleProfile + 12, // 24: bundle.Bundle.DeleteBundle:input_type -> bundle.DelBundleRequest + 16, // 25: bundle.Bundle.HandShelf:input_type -> bundle.HandShelfRequest + 8, // 26: bundle.Bundle.SaveBundle:input_type -> bundle.BundleProfile + 13, // 27: bundle.Bundle.BundleListV2:input_type -> bundle.BundleListRequest + 15, // 28: bundle.Bundle.BundleDetailV2:input_type -> bundle.BundleDetailRequest + 13, // 29: bundle.Bundle.BundleList:input_type -> bundle.BundleListRequest + 15, // 30: bundle.Bundle.BundleDetail:input_type -> bundle.BundleDetailRequest + 0, // 31: bundle.Bundle.CreateOrderRecord:input_type -> bundle.OrderCreateRecord + 19, // 32: bundle.Bundle.UpdateOrderRecord:input_type -> bundle.OrderRecord + 19, // 33: bundle.Bundle.UpdateOrderRecordByOrderNo:input_type -> bundle.OrderRecord + 23, // 34: bundle.Bundle.OrderRecordsList:input_type -> bundle.OrderRecordsRequest + 25, // 35: bundle.Bundle.OrderRecordsDetail:input_type -> bundle.OrderRecordsDetailRequest + 34, // 36: bundle.Bundle.UpdateFinancialConfirmationStatus:input_type -> bundle.FinancialConfirmationRequest + 20, // 37: bundle.Bundle.CreateOrderAddRecord:input_type -> bundle.OrderAddRecord + 19, // 38: bundle.Bundle.PackagePriceAndTime:input_type -> bundle.OrderRecord + 2, // 39: bundle.Bundle.OrderRecordsListV2:input_type -> bundle.OrderRecordsRequestV2 + 28, // 40: bundle.Bundle.CreateValueAddBundle:input_type -> bundle.CreateValueAddBundleRequest + 30, // 41: bundle.Bundle.ValueAddBundleList:input_type -> bundle.ValueAddBundleListRequest + 32, // 42: bundle.Bundle.ValueAddBundleDetail:input_type -> bundle.ValueAddBundleDetailRequest + 36, // 43: bundle.Bundle.SaveValueAddService:input_type -> bundle.ValueAddServiceLang + 38, // 44: bundle.Bundle.ValueAddServiceList:input_type -> bundle.ValueAddServiceListRequest + 40, // 45: bundle.Bundle.ValueAddServiceDetail:input_type -> bundle.ValueAddServiceDetailRequest + 40, // 46: bundle.Bundle.ValueAddServiceLangByUuidAndLanguage:input_type -> bundle.ValueAddServiceDetailRequest + 42, // 47: bundle.Bundle.CalculatePrice:input_type -> bundle.CalculatePriceRequest + 44, // 48: bundle.Bundle.BundleExtend:input_type -> bundle.BundleExtendRequest + 46, // 49: bundle.Bundle.BundleExtendRecordsList:input_type -> bundle.BundleExtendRecordsListRequest + 49, // 50: bundle.Bundle.GetBundleBalanceList:input_type -> bundle.GetBundleBalanceListReq + 54, // 51: bundle.Bundle.CreateBundleBalance:input_type -> bundle.CreateBundleBalanceReq + 56, // 52: bundle.Bundle.AddBundleBalance:input_type -> bundle.AddBundleBalanceReq + 58, // 53: bundle.Bundle.GetUsedRecordList:input_type -> bundle.GetUsedRecordListReq + 61, // 54: bundle.Bundle.GetImageWorkDetail:input_type -> bundle.GetImageWorkDetailReq + 62, // 55: bundle.Bundle.GetVedioWorkDetail:input_type -> bundle.GetVedioWorkDetailReq + 7, // 56: bundle.Bundle.CreateBundle:output_type -> bundle.CommonResponse + 7, // 57: bundle.Bundle.UpdateBundle:output_type -> bundle.CommonResponse + 7, // 58: bundle.Bundle.DeleteBundle:output_type -> bundle.CommonResponse + 7, // 59: bundle.Bundle.HandShelf:output_type -> bundle.CommonResponse + 10, // 60: bundle.Bundle.SaveBundle:output_type -> bundle.SaveResponse + 14, // 61: bundle.Bundle.BundleListV2:output_type -> bundle.BundleListResponse + 18, // 62: bundle.Bundle.BundleDetailV2:output_type -> bundle.BundleDetailResponseV2 + 14, // 63: bundle.Bundle.BundleList:output_type -> bundle.BundleListResponse + 17, // 64: bundle.Bundle.BundleDetail:output_type -> bundle.BundleDetailResponse + 7, // 65: bundle.Bundle.CreateOrderRecord:output_type -> bundle.CommonResponse + 7, // 66: bundle.Bundle.UpdateOrderRecord:output_type -> bundle.CommonResponse + 7, // 67: bundle.Bundle.UpdateOrderRecordByOrderNo:output_type -> bundle.CommonResponse + 24, // 68: bundle.Bundle.OrderRecordsList:output_type -> bundle.OrderRecordsResponse + 26, // 69: bundle.Bundle.OrderRecordsDetail:output_type -> bundle.OrderRecordsDetailResponse + 7, // 70: bundle.Bundle.UpdateFinancialConfirmationStatus:output_type -> bundle.CommonResponse + 7, // 71: bundle.Bundle.CreateOrderAddRecord:output_type -> bundle.CommonResponse + 6, // 72: bundle.Bundle.PackagePriceAndTime:output_type -> bundle.PackagePriceAndTimeResponse + 3, // 73: bundle.Bundle.OrderRecordsListV2:output_type -> bundle.OrderRecordsResponseV2 + 29, // 74: bundle.Bundle.CreateValueAddBundle:output_type -> bundle.CreateValueAddBundleResponse + 31, // 75: bundle.Bundle.ValueAddBundleList:output_type -> bundle.ValueAddBundleListResponse + 33, // 76: bundle.Bundle.ValueAddBundleDetail:output_type -> bundle.ValueAddBundleDetailResponse + 10, // 77: bundle.Bundle.SaveValueAddService:output_type -> bundle.SaveResponse + 39, // 78: bundle.Bundle.ValueAddServiceList:output_type -> bundle.ValueAddServiceListResponse + 41, // 79: bundle.Bundle.ValueAddServiceDetail:output_type -> bundle.ValueAddServiceDetailResponse + 36, // 80: bundle.Bundle.ValueAddServiceLangByUuidAndLanguage:output_type -> bundle.ValueAddServiceLang + 43, // 81: bundle.Bundle.CalculatePrice:output_type -> bundle.CalculatePriceResponse + 45, // 82: bundle.Bundle.BundleExtend:output_type -> bundle.BundleExtendResponse + 47, // 83: bundle.Bundle.BundleExtendRecordsList:output_type -> bundle.BundleExtendRecordsListResponse + 53, // 84: bundle.Bundle.GetBundleBalanceList:output_type -> bundle.GetBundleBalanceListResp + 55, // 85: bundle.Bundle.CreateBundleBalance:output_type -> bundle.CreateBundleBalanceResp + 57, // 86: bundle.Bundle.AddBundleBalance:output_type -> bundle.AddBundleBalanceResp + 59, // 87: bundle.Bundle.GetUsedRecordList:output_type -> bundle.GetUsedRecordListResp + 63, // 88: bundle.Bundle.GetImageWorkDetail:output_type -> bundle.GetImageWorkDetailResp + 64, // 89: bundle.Bundle.GetVedioWorkDetail:output_type -> bundle.GetVedioeWorkDetailResp + 56, // [56:90] is the sub-list for method output_type + 22, // [22:56] is the sub-list for method input_type + 22, // [22:22] is the sub-list for extension type_name + 22, // [22:22] is the sub-list for extension extendee + 0, // [0:22] is the sub-list for field type_name } func init() { file_pb_bundle_proto_init() } @@ -7064,6 +7725,90 @@ func file_pb_bundle_proto_init() { return nil } } + file_pb_bundle_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUsedRecordListReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUsedRecordListResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WorkCastItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetImageWorkDetailReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetVedioWorkDetailReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetImageWorkDetailResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetVedioeWorkDetailResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -7071,7 +7816,7 @@ func file_pb_bundle_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pb_bundle_proto_rawDesc, NumEnums: 0, - NumMessages: 58, + NumMessages: 65, NumExtensions: 0, NumServices: 1, }, diff --git a/api/bundle/bundle.validator.pb.go b/api/bundle/bundle.validator.pb.go index ef8aa9d..26d9ce6 100644 --- a/api/bundle/bundle.validator.pb.go +++ b/api/bundle/bundle.validator.pb.go @@ -334,3 +334,31 @@ func (this *AddBundleBalanceReq) Validate() error { func (this *AddBundleBalanceResp) Validate() error { return nil } +func (this *GetUsedRecordListReq) Validate() error { + return nil +} +func (this *GetUsedRecordListResp) Validate() error { + for _, item := range this.Data { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Data", err) + } + } + } + return nil +} +func (this *WorkCastItem) Validate() error { + return nil +} +func (this *GetImageWorkDetailReq) Validate() error { + return nil +} +func (this *GetVedioWorkDetailReq) Validate() error { + return nil +} +func (this *GetImageWorkDetailResp) Validate() error { + return nil +} +func (this *GetVedioeWorkDetailResp) Validate() error { + return nil +} diff --git a/api/bundle/bundle_triple.pb.go b/api/bundle/bundle_triple.pb.go index 160a442..09e3109 100644 --- a/api/bundle/bundle_triple.pb.go +++ b/api/bundle/bundle_triple.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-triple. DO NOT EDIT. // versions: // - protoc-gen-go-triple v1.0.8 -// - protoc v4.24.0--rc1 +// - protoc v3.20.3 // source: pb/bundle.proto package bundle @@ -46,11 +46,11 @@ type BundleClient interface { CreateOrderAddRecord(ctx context.Context, in *OrderAddRecord, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) PackagePriceAndTime(ctx context.Context, in *OrderRecord, opts ...grpc_go.CallOption) (*PackagePriceAndTimeResponse, common.ErrorWithAttachment) OrderRecordsListV2(ctx context.Context, in *OrderRecordsRequestV2, opts ...grpc_go.CallOption) (*OrderRecordsResponseV2, common.ErrorWithAttachment) - //增值套餐 + // 增值套餐 CreateValueAddBundle(ctx context.Context, in *CreateValueAddBundleRequest, opts ...grpc_go.CallOption) (*CreateValueAddBundleResponse, common.ErrorWithAttachment) ValueAddBundleList(ctx context.Context, in *ValueAddBundleListRequest, opts ...grpc_go.CallOption) (*ValueAddBundleListResponse, common.ErrorWithAttachment) ValueAddBundleDetail(ctx context.Context, in *ValueAddBundleDetailRequest, opts ...grpc_go.CallOption) (*ValueAddBundleDetailResponse, common.ErrorWithAttachment) - //新增值服务 + // 新增值服务 SaveValueAddService(ctx context.Context, in *ValueAddServiceLang, opts ...grpc_go.CallOption) (*SaveResponse, common.ErrorWithAttachment) ValueAddServiceList(ctx context.Context, in *ValueAddServiceListRequest, opts ...grpc_go.CallOption) (*ValueAddServiceListResponse, common.ErrorWithAttachment) ValueAddServiceDetail(ctx context.Context, in *ValueAddServiceDetailRequest, opts ...grpc_go.CallOption) (*ValueAddServiceDetailResponse, common.ErrorWithAttachment) @@ -62,7 +62,10 @@ type BundleClient interface { GetBundleBalanceList(ctx context.Context, in *GetBundleBalanceListReq, opts ...grpc_go.CallOption) (*GetBundleBalanceListResp, common.ErrorWithAttachment) CreateBundleBalance(ctx context.Context, in *CreateBundleBalanceReq, opts ...grpc_go.CallOption) (*CreateBundleBalanceResp, common.ErrorWithAttachment) AddBundleBalance(ctx context.Context, in *AddBundleBalanceReq, opts ...grpc_go.CallOption) (*AddBundleBalanceResp, common.ErrorWithAttachment) - GetBundleBalance(ctx context.Context, in *GetBundleBalanceReq, opts ...grpc_go.CallOption) (*GetBundleBalanceResp, common.ErrorWithAttachment) + // 使用记录 + GetUsedRecordList(ctx context.Context, in *GetUsedRecordListReq, opts ...grpc_go.CallOption) (*GetUsedRecordListResp, common.ErrorWithAttachment) + GetImageWorkDetail(ctx context.Context, in *GetImageWorkDetailReq, opts ...grpc_go.CallOption) (*GetImageWorkDetailResp, common.ErrorWithAttachment) + GetVedioWorkDetail(ctx context.Context, in *GetVedioWorkDetailReq, opts ...grpc_go.CallOption) (*GetVedioeWorkDetailResp, common.ErrorWithAttachment) } type bundleClient struct { @@ -101,7 +104,9 @@ type BundleClientImpl struct { GetBundleBalanceList func(ctx context.Context, in *GetBundleBalanceListReq) (*GetBundleBalanceListResp, error) CreateBundleBalance func(ctx context.Context, in *CreateBundleBalanceReq) (*CreateBundleBalanceResp, error) AddBundleBalance func(ctx context.Context, in *AddBundleBalanceReq) (*AddBundleBalanceResp, error) - GetBundleBalance func(ctx context.Context, in *GetBundleBalanceReq) (*GetBundleBalanceResp, error) + GetUsedRecordList func(ctx context.Context, in *GetUsedRecordListReq) (*GetUsedRecordListResp, error) + GetImageWorkDetail func(ctx context.Context, in *GetImageWorkDetailReq) (*GetImageWorkDetailResp, error) + GetVedioWorkDetail func(ctx context.Context, in *GetVedioWorkDetailReq) (*GetVedioeWorkDetailResp, error) } func (c *BundleClientImpl) GetDubboStub(cc *triple.TripleConn) BundleClient { @@ -302,10 +307,22 @@ func (c *bundleClient) AddBundleBalance(ctx context.Context, in *AddBundleBalanc return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/AddBundleBalance", in, out) } -func (c *bundleClient) GetBundleBalance(ctx context.Context, in *GetBundleBalanceReq, opts ...grpc_go.CallOption) (*GetBundleBalanceResp, common.ErrorWithAttachment) { - out := new(GetBundleBalanceResp) +func (c *bundleClient) GetUsedRecordList(ctx context.Context, in *GetUsedRecordListReq, opts ...grpc_go.CallOption) (*GetUsedRecordListResp, common.ErrorWithAttachment) { + out := new(GetUsedRecordListResp) interfaceKey := ctx.Value(constant.InterfaceKey).(string) - return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetBundleBalance", in, out) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetUsedRecordList", in, out) +} + +func (c *bundleClient) GetImageWorkDetail(ctx context.Context, in *GetImageWorkDetailReq, opts ...grpc_go.CallOption) (*GetImageWorkDetailResp, common.ErrorWithAttachment) { + out := new(GetImageWorkDetailResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetImageWorkDetail", in, out) +} + +func (c *bundleClient) GetVedioWorkDetail(ctx context.Context, in *GetVedioWorkDetailReq, opts ...grpc_go.CallOption) (*GetVedioeWorkDetailResp, common.ErrorWithAttachment) { + out := new(GetVedioeWorkDetailResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetVedioWorkDetail", in, out) } // BundleServer is the server API for Bundle service. @@ -330,11 +347,11 @@ type BundleServer interface { CreateOrderAddRecord(context.Context, *OrderAddRecord) (*CommonResponse, error) PackagePriceAndTime(context.Context, *OrderRecord) (*PackagePriceAndTimeResponse, error) OrderRecordsListV2(context.Context, *OrderRecordsRequestV2) (*OrderRecordsResponseV2, error) - //增值套餐 + // 增值套餐 CreateValueAddBundle(context.Context, *CreateValueAddBundleRequest) (*CreateValueAddBundleResponse, error) ValueAddBundleList(context.Context, *ValueAddBundleListRequest) (*ValueAddBundleListResponse, error) ValueAddBundleDetail(context.Context, *ValueAddBundleDetailRequest) (*ValueAddBundleDetailResponse, error) - //新增值服务 + // 新增值服务 SaveValueAddService(context.Context, *ValueAddServiceLang) (*SaveResponse, error) ValueAddServiceList(context.Context, *ValueAddServiceListRequest) (*ValueAddServiceListResponse, error) ValueAddServiceDetail(context.Context, *ValueAddServiceDetailRequest) (*ValueAddServiceDetailResponse, error) @@ -346,7 +363,10 @@ type BundleServer interface { GetBundleBalanceList(context.Context, *GetBundleBalanceListReq) (*GetBundleBalanceListResp, error) CreateBundleBalance(context.Context, *CreateBundleBalanceReq) (*CreateBundleBalanceResp, error) AddBundleBalance(context.Context, *AddBundleBalanceReq) (*AddBundleBalanceResp, error) - GetBundleBalance(context.Context, *GetBundleBalanceReq) (*GetBundleBalanceResp, error) + // 使用记录 + GetUsedRecordList(context.Context, *GetUsedRecordListReq) (*GetUsedRecordListResp, error) + GetImageWorkDetail(context.Context, *GetImageWorkDetailReq) (*GetImageWorkDetailResp, error) + GetVedioWorkDetail(context.Context, *GetVedioWorkDetailReq) (*GetVedioeWorkDetailResp, error) mustEmbedUnimplementedBundleServer() } @@ -448,8 +468,14 @@ func (UnimplementedBundleServer) CreateBundleBalance(context.Context, *CreateBun func (UnimplementedBundleServer) AddBundleBalance(context.Context, *AddBundleBalanceReq) (*AddBundleBalanceResp, error) { return nil, status.Errorf(codes.Unimplemented, "method AddBundleBalance not implemented") } -func (UnimplementedBundleServer) GetBundleBalance(context.Context, *GetBundleBalanceReq) (*GetBundleBalanceResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetBundleBalance not implemented") +func (UnimplementedBundleServer) GetUsedRecordList(context.Context, *GetUsedRecordListReq) (*GetUsedRecordListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetUsedRecordList not implemented") +} +func (UnimplementedBundleServer) GetImageWorkDetail(context.Context, *GetImageWorkDetailReq) (*GetImageWorkDetailResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetImageWorkDetail not implemented") +} +func (UnimplementedBundleServer) GetVedioWorkDetail(context.Context, *GetVedioWorkDetailReq) (*GetVedioeWorkDetailResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetVedioWorkDetail not implemented") } func (s *UnimplementedBundleServer) XXX_SetProxyImpl(impl protocol.Invoker) { s.proxyImpl = impl @@ -1378,8 +1404,8 @@ func _Bundle_AddBundleBalance_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } -func _Bundle_GetBundleBalance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { - in := new(GetBundleBalanceReq) +func _Bundle_GetUsedRecordList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUsedRecordListReq) if err := dec(in); err != nil { return nil, err } @@ -1391,7 +1417,65 @@ func _Bundle_GetBundleBalance_Handler(srv interface{}, ctx context.Context, dec for k, v := range md { invAttachment[k] = v } - invo := invocation.NewRPCInvocation("GetBundleBalance", args, invAttachment) + invo := invocation.NewRPCInvocation("GetUsedRecordList", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Bundle_GetImageWorkDetail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetImageWorkDetailReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetImageWorkDetail", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Bundle_GetVedioWorkDetail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetVedioWorkDetailReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetVedioWorkDetail", args, invAttachment) if interceptor == nil { result := base.XXX_GetProxyImpl().Invoke(ctx, invo) return result, result.Error() @@ -1539,8 +1623,16 @@ var Bundle_ServiceDesc = grpc_go.ServiceDesc{ Handler: _Bundle_AddBundleBalance_Handler, }, { - MethodName: "GetBundleBalance", - Handler: _Bundle_GetBundleBalance_Handler, + MethodName: "GetUsedRecordList", + Handler: _Bundle_GetUsedRecordList_Handler, + }, + { + MethodName: "GetImageWorkDetail", + Handler: _Bundle_GetImageWorkDetail_Handler, + }, + { + MethodName: "GetVedioWorkDetail", + Handler: _Bundle_GetVedioWorkDetail_Handler, }, }, Streams: []grpc_go.StreamDesc{}, diff --git a/pkg/service/bundle/bundleBalance.go b/pkg/service/bundle/bundleBalance.go index eaa15f3..bdf04bd 100644 --- a/pkg/service/bundle/bundleBalance.go +++ b/pkg/service/bundle/bundleBalance.go @@ -37,12 +37,12 @@ func BundleExtendRecordsList(c *gin.Context) { } func GetBundleBalance(c *gin.Context) { - var req bundle.GetBundleBalanceReq + var req bundle.GetBundleBalanceListReq if err := c.ShouldBindJSON(&req); err != nil { service.Error(c, err) return } - res, err := service.BundleProvider.GetBundleBalance(context.Background(), &req) + res, err := service.BundleProvider.GetBundleBalanceList(context.Background(), &req) if err != nil { service.Error(c, err) return From 99cfbbf6f7447a1fe1713e54e6812135323083df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A1=80=E5=B0=BC=E9=BE=9F?= <365252428@qq.com> Date: Sat, 14 Jun 2025 11:29:21 +0800 Subject: [PATCH 10/18] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/service/bundle/bundleOrder.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/service/bundle/bundleOrder.go b/pkg/service/bundle/bundleOrder.go index 367fb88..43b3330 100644 --- a/pkg/service/bundle/bundleOrder.go +++ b/pkg/service/bundle/bundleOrder.go @@ -534,10 +534,10 @@ func OrderRecordsDetail(c *gin.Context) { return } - /*// 获取 用户信息 + // 获取 用户信息 userInfo := login.GetUserInfoFromC(c) - req.CustomerID = strconv.FormatUint(userInfo.ID, 10)*/ + req.CustomerID = strconv.FormatUint(userInfo.ID, 10) res, err := service.BundleProvider.OrderRecordsDetail(context.Background(), &req) if err != nil { From 4e89a5830adf84112a0275786402a33e8c8bd9fb Mon Sep 17 00:00:00 2001 From: lzh <1625167628@qq.com> Date: Sat, 14 Jun 2025 11:31:30 +0800 Subject: [PATCH 11/18] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E6=89=A9=E5=B1=95=E5=8D=95=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/bundle/bundle.pb.go | 1296 +++++++++++++++++------------ api/bundle/bundle.validator.pb.go | 6 + api/bundle/bundle_triple.pb.go | 45 + 3 files changed, 830 insertions(+), 517 deletions(-) diff --git a/api/bundle/bundle.pb.go b/api/bundle/bundle.pb.go index 5c263b3..02a4ca8 100644 --- a/api/bundle/bundle.pb.go +++ b/api/bundle/bundle.pb.go @@ -3925,10 +3925,11 @@ type BundleExtendRequest struct { ImagesAdditional uint32 `protobuf:"varint,4,opt,name=imagesAdditional,proto3" json:"imagesAdditional,omitempty"` DataAdditional uint32 `protobuf:"varint,5,opt,name=dataAdditional,proto3" json:"dataAdditional,omitempty"` AvailableDurationAdditional uint32 `protobuf:"varint,6,opt,name=availableDurationAdditional,proto3" json:"availableDurationAdditional,omitempty"` - Remark string `protobuf:"bytes,7,opt,name=remark,proto3" json:"remark,omitempty"` - AssociatedorderNumber string `protobuf:"bytes,8,opt,name=associatedorderNumber,proto3" json:"associatedorderNumber,omitempty"` - OperatorName string `protobuf:"bytes,9,opt,name=operatorName,proto3" json:"operatorName,omitempty"` - OperatorPhoneNumber string `protobuf:"bytes,10,opt,name=operatorPhoneNumber,proto3" json:"operatorPhoneNumber,omitempty"` + TimeUnit uint32 `protobuf:"varint,7,opt,name=timeUnit,proto3" json:"timeUnit,omitempty"` // 1 日 2 月 3年 + Remark string `protobuf:"bytes,8,opt,name=remark,proto3" json:"remark,omitempty"` + AssociatedorderNumber string `protobuf:"bytes,9,opt,name=associatedorderNumber,proto3" json:"associatedorderNumber,omitempty"` + OperatorName string `protobuf:"bytes,10,opt,name=operatorName,proto3" json:"operatorName,omitempty"` + OperatorPhoneNumber string `protobuf:"bytes,11,opt,name=operatorPhoneNumber,proto3" json:"operatorPhoneNumber,omitempty"` } func (x *BundleExtendRequest) Reset() { @@ -4005,6 +4006,13 @@ func (x *BundleExtendRequest) GetAvailableDurationAdditional() uint32 { return 0 } +func (x *BundleExtendRequest) GetTimeUnit() uint32 { + if x != nil { + return x.TimeUnit + } + return 0 +} + func (x *BundleExtendRequest) GetRemark() string { if x != nil { return x.Remark @@ -5730,6 +5738,196 @@ func (x *GetVedioeWorkDetailResp) GetCreatedAt() int64 { return 0 } +type ToBeComfirmedWorksReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ArtistUuid string `protobuf:"bytes,1,opt,name=artistUuid,proto3" json:"artistUuid,omitempty"` + Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,3,opt,name=pageSize,proto3" json:"pageSize,omitempty"` +} + +func (x *ToBeComfirmedWorksReq) Reset() { + *x = ToBeComfirmedWorksReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ToBeComfirmedWorksReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ToBeComfirmedWorksReq) ProtoMessage() {} + +func (x *ToBeComfirmedWorksReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[65] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ToBeComfirmedWorksReq.ProtoReflect.Descriptor instead. +func (*ToBeComfirmedWorksReq) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{65} +} + +func (x *ToBeComfirmedWorksReq) GetArtistUuid() string { + if x != nil { + return x.ArtistUuid + } + return "" +} + +func (x *ToBeComfirmedWorksReq) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *ToBeComfirmedWorksReq) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +type ToBeComfirmedWorksResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` // 作品uuid + WorkCategory uint32 `protobuf:"varint,2,opt,name=workCategory,proto3" json:"workCategory,omitempty"` // 1 图文 2 视频 + PlatformIDs string `protobuf:"bytes,3,opt,name=platformIDs,proto3" json:"platformIDs,omitempty"` // 发布平台ID集合 (json 格式字符串) + MediaNames string `protobuf:"bytes,4,opt,name=mediaNames,proto3" json:"mediaNames,omitempty"` // 自媒体账号名称集合 + MediaAccIDs string `protobuf:"bytes,5,opt,name=mediaAccIDs,proto3" json:"mediaAccIDs,omitempty"` // 自媒体账号ID集合 + Title string `protobuf:"bytes,6,opt,name=title,proto3" json:"title,omitempty"` // 作品标题 + Content string `protobuf:"bytes,7,opt,name=content,proto3" json:"content,omitempty"` // 作品标题 + SubmitTime string `protobuf:"bytes,8,opt,name=submitTime,proto3" json:"submitTime,omitempty"` // 提交时间 + OperatorName string `protobuf:"bytes,9,opt,name=operatorName,proto3" json:"operatorName,omitempty"` // 操作人名称 + OperatorPhone string `protobuf:"bytes,10,opt,name=operatorPhone,proto3" json:"operatorPhone,omitempty"` // 操作人手机号 + Status uint32 `protobuf:"varint,11,opt,name=status,proto3" json:"status,omitempty"` // 1 待提交 2 审核中 3 审核失败 4 待艺人确认 5 艺人驳回 6 发布成功 7 发布失败 +} + +func (x *ToBeComfirmedWorksResp) Reset() { + *x = ToBeComfirmedWorksResp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ToBeComfirmedWorksResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ToBeComfirmedWorksResp) ProtoMessage() {} + +func (x *ToBeComfirmedWorksResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[66] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ToBeComfirmedWorksResp.ProtoReflect.Descriptor instead. +func (*ToBeComfirmedWorksResp) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{66} +} + +func (x *ToBeComfirmedWorksResp) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +func (x *ToBeComfirmedWorksResp) GetWorkCategory() uint32 { + if x != nil { + return x.WorkCategory + } + return 0 +} + +func (x *ToBeComfirmedWorksResp) GetPlatformIDs() string { + if x != nil { + return x.PlatformIDs + } + return "" +} + +func (x *ToBeComfirmedWorksResp) GetMediaNames() string { + if x != nil { + return x.MediaNames + } + return "" +} + +func (x *ToBeComfirmedWorksResp) GetMediaAccIDs() string { + if x != nil { + return x.MediaAccIDs + } + return "" +} + +func (x *ToBeComfirmedWorksResp) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *ToBeComfirmedWorksResp) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +func (x *ToBeComfirmedWorksResp) GetSubmitTime() string { + if x != nil { + return x.SubmitTime + } + return "" +} + +func (x *ToBeComfirmedWorksResp) GetOperatorName() string { + if x != nil { + return x.OperatorName + } + return "" +} + +func (x *ToBeComfirmedWorksResp) GetOperatorPhone() string { + if x != nil { + return x.OperatorPhone + } + return "" +} + +func (x *ToBeComfirmedWorksResp) GetStatus() uint32 { + if x != nil { + return x.Status + } + return 0 +} + var File_pb_bundle_proto protoreflect.FileDescriptor var file_pb_bundle_proto_rawDesc = []byte{ @@ -6345,7 +6543,7 @@ var file_pb_bundle_proto_rawDesc = []byte{ 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x22, 0xbf, 0x03, 0x0a, 0x13, 0x42, 0x75, 0x6e, 0x64, + 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x22, 0xdb, 0x03, 0x0a, 0x13, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, @@ -6363,486 +6561,522 @@ var file_pb_bundle_proto_rawDesc = []byte{ 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x34, 0x0a, - 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x73, - 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, - 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x16, 0x0a, 0x14, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x82, 0x02, 0x0a, 0x1e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x12, 0x34, 0x0a, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x6b, 0x0a, 0x1f, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, - 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x22, 0xa2, 0x04, 0x0a, 0x16, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1a, - 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x73, - 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x76, 0x69, 0x64, - 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x2a, 0x0a, 0x10, - 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x12, 0x40, 0x0a, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x34, 0x0a, 0x15, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x6e, 0x69, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x6e, 0x69, + 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x34, 0x0a, 0x15, 0x61, 0x73, 0x73, + 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, + 0x61, 0x74, 0x65, 0x64, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, + 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x16, 0x0a, 0x14, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x82, 0x02, + 0x0a, 0x1e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x75, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x73, 0x73, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, - 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xf1, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x69, - 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x10, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x65, 0x78, - 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x70, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xed, 0x01, 0x0a, - 0x13, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x69, - 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x10, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x65, 0x78, - 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x70, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x8b, 0x05, 0x0a, - 0x11, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x74, - 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, - 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x22, 0x6b, 0x0a, 0x1f, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x32, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0xa2, 0x04, 0x0a, 0x16, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, - 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, - 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x65, - 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x3a, 0x0a, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, - 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, - 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, - 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, - 0x0a, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, - 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6d, 0x61, - 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x69, 0x6d, 0x61, 0x67, - 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, - 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x2e, 0x0a, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x64, 0x61, - 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x44, 0x0a, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, - 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, - 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, - 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x5b, 0x0a, 0x14, 0x47, 0x65, - 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x74, 0x65, - 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x5f, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2d, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x74, - 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x8e, 0x04, 0x0a, 0x16, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x55, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x55, 0x55, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x3a, 0x0a, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x76, - 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, - 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x76, - 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6d, 0x61, 0x67, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, - 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x2e, 0x0a, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x64, 0x61, 0x74, - 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x44, 0x0a, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, - 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, - 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, - 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x19, 0x0a, 0x17, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x9b, 0x04, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, - 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, - 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x55, 0x55, 0x49, - 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x55, 0x55, - 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, - 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, - 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, - 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x36, 0x0a, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x64, 0x61, 0x74, 0x61, - 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, - 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1d, 0x64, 0x61, 0x74, 0x61, - 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, - 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x32, - 0x0a, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x65, 0x78, - 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x22, 0x16, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa6, 0x02, 0x0a, 0x14, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, - 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, - 0x74, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x73, 0x75, - 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x24, 0x0a, - 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, - 0x45, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, - 0x69, 0x7a, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, - 0x69, 0x7a, 0x65, 0x22, 0x57, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x43, 0x61, - 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xf4, 0x03, 0x0a, - 0x0c, 0x57, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1e, 0x0a, - 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, - 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, - 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x77, - 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, - 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, - 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, - 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4e, 0x61, 0x6d, 0x65, - 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x49, 0x44, 0x73, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, - 0x49, 0x44, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x69, 0x74, 0x6c, 0x65, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x69, 0x74, 0x6c, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x22, 0x2f, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x57, - 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, - 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x6f, - 0x72, 0x6b, 0x49, 0x64, 0x22, 0x2f, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x56, 0x65, 0x64, 0x69, 0x6f, - 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, - 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, - 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x22, 0x86, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, - 0x67, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x16, 0x0a, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x76, 0x65, - 0x72, 0x55, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x76, 0x65, - 0x72, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, - 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x6d, - 0x0a, 0x17, 0x47, 0x65, 0x74, 0x56, 0x65, 0x64, 0x69, 0x6f, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x6f, 0x72, - 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, - 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x12, - 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x32, 0xa3, 0x16, - 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, - 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0c, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0c, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x18, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, - 0x0a, 0x09, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x65, 0x6c, 0x66, 0x12, 0x18, 0x2e, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x65, 0x6c, 0x66, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x3b, 0x0a, 0x0a, 0x53, 0x61, 0x76, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x14, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x61, - 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0c, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x32, 0x12, 0x19, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x56, 0x32, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x56, 0x32, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0a, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, - 0x0c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x11, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, - 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, - 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x79, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x10, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x21, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, - 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x14, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x12, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x13, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x13, 0x2e, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x1a, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, - 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x32, 0x12, 0x1d, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x32, 0x1a, 0x1e, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32, 0x22, 0x00, 0x12, 0x63, - 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x12, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x63, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x23, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, - 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x13, 0x53, 0x61, 0x76, 0x65, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1b, - 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x1a, 0x14, 0x2e, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, - 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x15, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, - 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x24, - 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, - 0x24, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x4c, 0x61, 0x6e, 0x67, 0x42, 0x79, 0x55, 0x75, 0x69, 0x64, 0x41, 0x6e, 0x64, 0x4c, 0x61, 0x6e, - 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0e, 0x43, 0x61, - 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1d, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, - 0x0c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x12, 0x1b, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x17, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x26, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x1f, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x1a, 0x20, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, - 0x4f, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x64, 0x64, + 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x28, + 0x0a, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x64, 0x61, + 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x40, 0x0a, 0x1b, + 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x34, 0x0a, 0x15, 0x61, 0x73, 0x73, 0x6f, + 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, + 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x22, + 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, + 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x22, 0xf1, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x45, + 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xed, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, - 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, - 0x12, 0x52, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, + 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x45, + 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x8b, 0x05, 0x0a, 0x11, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, + 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x73, 0x65, + 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, + 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x69, 0x64, 0x65, + 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, + 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x76, 0x69, + 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x76, 0x69, 0x64, 0x65, + 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, + 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x12, + 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, + 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1d, + 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, + 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x32, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, + 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x5b, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, + 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x22, 0x5f, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x22, 0x8e, 0x04, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, + 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x55, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x55, 0x55, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, 0x69, + 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x76, 0x69, 0x64, + 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x64, + 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, + 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1d, 0x64, + 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, + 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x32, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, + 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x19, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x9b, 0x04, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x55, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x55, 0x55, 0x49, 0x44, 0x12, 0x24, + 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, + 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, + 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1d, 0x64, 0x61, 0x74, + 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x14, 0x65, 0x78, + 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x16, + 0x0a, 0x14, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa6, 0x02, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, + 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, + 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, + 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, + 0x28, 0x0a, 0x0f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x75, 0x62, + 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, + 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, + 0x57, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x28, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x73, 0x74, 0x49, 0x74, + 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xf4, 0x03, 0x0a, 0x0c, 0x57, 0x6f, 0x72, + 0x6b, 0x43, 0x61, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, + 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, + 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, + 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x77, + 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, 0x12, 0x1e, 0x0a, + 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, + 0x0b, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x49, 0x44, 0x73, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x49, 0x44, 0x73, 0x12, + 0x1c, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1e, 0x0a, + 0x0a, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, + 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, + 0x6e, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, + 0x2f, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x6f, 0x72, 0x6b, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, + 0x22, 0x2f, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x56, 0x65, 0x64, 0x69, 0x6f, 0x57, 0x6f, 0x72, 0x6b, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x6f, 0x72, + 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, + 0x64, 0x22, 0x86, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x6f, + 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, + 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x6f, + 0x72, 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, + 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x6d, 0x0a, 0x17, 0x47, 0x65, + 0x74, 0x56, 0x65, 0x64, 0x69, 0x6f, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x12, 0x1c, 0x0a, + 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x67, 0x0a, 0x15, 0x54, 0x6f, 0x42, + 0x65, 0x43, 0x6f, 0x6d, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x52, + 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, + 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x22, 0xe6, 0x02, 0x0a, 0x16, 0x54, 0x6f, 0x42, 0x65, 0x43, 0x6f, 0x6d, 0x66, 0x69, + 0x72, 0x6d, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, + 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, + 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, + 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x49, 0x44, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x64, + 0x69, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x41, 0x63, 0x63, 0x49, 0x44, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, + 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x49, 0x44, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x75, 0x62, + 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, + 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, + 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, + 0x6f, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x32, 0xfa, 0x16, 0x0a, 0x06, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x16, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x16, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x09, + 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x65, 0x6c, 0x66, 0x12, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x65, 0x6c, 0x66, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, + 0x0a, 0x53, 0x61, 0x76, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x1a, 0x14, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0c, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x32, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x56, 0x32, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x56, 0x32, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0a, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, + 0x73, 0x74, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0c, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x19, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x42, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x79, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x10, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6e, + 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x12, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, + 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x51, 0x0a, 0x13, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x23, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x32, 0x12, 0x1d, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x32, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x14, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, + 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x5d, 0x0a, 0x12, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x63, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x13, 0x53, 0x61, 0x76, 0x65, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1b, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x1a, 0x14, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x60, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x15, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x24, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x24, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, + 0x6e, 0x67, 0x42, 0x79, 0x55, 0x75, 0x69, 0x64, 0x41, 0x6e, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, + 0x61, 0x67, 0x65, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0e, 0x43, 0x61, 0x6c, 0x63, + 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0c, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x12, 0x1b, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x17, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x26, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1f, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, + 0x20, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4f, 0x0a, + 0x10, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x52, + 0x0a, 0x11, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x6f, 0x72, 0x6b, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x12, 0x47, - 0x65, 0x74, 0x56, 0x65, 0x64, 0x69, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, - 0x64, 0x69, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, - 0x1a, 0x1f, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x64, - 0x69, 0x6f, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x00, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x71, 0x1a, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x12, 0x55, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x6f, + 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x12, 0x47, 0x65, 0x74, + 0x56, 0x65, 0x64, 0x69, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, + 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x64, 0x69, + 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x1f, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x64, 0x69, 0x6f, + 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x00, 0x12, 0x55, 0x0a, 0x12, 0x54, 0x6f, 0x42, 0x65, 0x43, 0x6f, 0x6d, 0x66, 0x69, 0x72, 0x6d, + 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x54, 0x6f, 0x42, 0x65, 0x43, 0x6f, 0x6d, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x57, 0x6f, + 0x72, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x54, 0x6f, 0x42, 0x65, 0x43, 0x6f, 0x6d, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x57, 0x6f, 0x72, + 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2f, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -6857,7 +7091,7 @@ func file_pb_bundle_proto_rawDescGZIP() []byte { return file_pb_bundle_proto_rawDescData } -var file_pb_bundle_proto_msgTypes = make([]protoimpl.MessageInfo, 65) +var file_pb_bundle_proto_msgTypes = make([]protoimpl.MessageInfo, 67) var file_pb_bundle_proto_goTypes = []interface{}{ (*OrderCreateRecord)(nil), // 0: bundle.OrderCreateRecord (*OrderCreateAddRecord)(nil), // 1: bundle.OrderCreateAddRecord @@ -6924,6 +7158,8 @@ var file_pb_bundle_proto_goTypes = []interface{}{ (*GetVedioWorkDetailReq)(nil), // 62: bundle.GetVedioWorkDetailReq (*GetImageWorkDetailResp)(nil), // 63: bundle.GetImageWorkDetailResp (*GetVedioeWorkDetailResp)(nil), // 64: bundle.GetVedioeWorkDetailResp + (*ToBeComfirmedWorksReq)(nil), // 65: bundle.ToBeComfirmedWorksReq + (*ToBeComfirmedWorksResp)(nil), // 66: bundle.ToBeComfirmedWorksResp } var file_pb_bundle_proto_depIdxs = []int32{ 1, // 0: bundle.OrderCreateRecord.addRecords:type_name -> bundle.OrderCreateAddRecord @@ -6982,42 +7218,44 @@ var file_pb_bundle_proto_depIdxs = []int32{ 58, // 53: bundle.Bundle.GetUsedRecordList:input_type -> bundle.GetUsedRecordListReq 61, // 54: bundle.Bundle.GetImageWorkDetail:input_type -> bundle.GetImageWorkDetailReq 62, // 55: bundle.Bundle.GetVedioWorkDetail:input_type -> bundle.GetVedioWorkDetailReq - 7, // 56: bundle.Bundle.CreateBundle:output_type -> bundle.CommonResponse - 7, // 57: bundle.Bundle.UpdateBundle:output_type -> bundle.CommonResponse - 7, // 58: bundle.Bundle.DeleteBundle:output_type -> bundle.CommonResponse - 7, // 59: bundle.Bundle.HandShelf:output_type -> bundle.CommonResponse - 10, // 60: bundle.Bundle.SaveBundle:output_type -> bundle.SaveResponse - 14, // 61: bundle.Bundle.BundleListV2:output_type -> bundle.BundleListResponse - 18, // 62: bundle.Bundle.BundleDetailV2:output_type -> bundle.BundleDetailResponseV2 - 14, // 63: bundle.Bundle.BundleList:output_type -> bundle.BundleListResponse - 17, // 64: bundle.Bundle.BundleDetail:output_type -> bundle.BundleDetailResponse - 7, // 65: bundle.Bundle.CreateOrderRecord:output_type -> bundle.CommonResponse - 7, // 66: bundle.Bundle.UpdateOrderRecord:output_type -> bundle.CommonResponse - 7, // 67: bundle.Bundle.UpdateOrderRecordByOrderNo:output_type -> bundle.CommonResponse - 24, // 68: bundle.Bundle.OrderRecordsList:output_type -> bundle.OrderRecordsResponse - 26, // 69: bundle.Bundle.OrderRecordsDetail:output_type -> bundle.OrderRecordsDetailResponse - 7, // 70: bundle.Bundle.UpdateFinancialConfirmationStatus:output_type -> bundle.CommonResponse - 7, // 71: bundle.Bundle.CreateOrderAddRecord:output_type -> bundle.CommonResponse - 6, // 72: bundle.Bundle.PackagePriceAndTime:output_type -> bundle.PackagePriceAndTimeResponse - 3, // 73: bundle.Bundle.OrderRecordsListV2:output_type -> bundle.OrderRecordsResponseV2 - 29, // 74: bundle.Bundle.CreateValueAddBundle:output_type -> bundle.CreateValueAddBundleResponse - 31, // 75: bundle.Bundle.ValueAddBundleList:output_type -> bundle.ValueAddBundleListResponse - 33, // 76: bundle.Bundle.ValueAddBundleDetail:output_type -> bundle.ValueAddBundleDetailResponse - 10, // 77: bundle.Bundle.SaveValueAddService:output_type -> bundle.SaveResponse - 39, // 78: bundle.Bundle.ValueAddServiceList:output_type -> bundle.ValueAddServiceListResponse - 41, // 79: bundle.Bundle.ValueAddServiceDetail:output_type -> bundle.ValueAddServiceDetailResponse - 36, // 80: bundle.Bundle.ValueAddServiceLangByUuidAndLanguage:output_type -> bundle.ValueAddServiceLang - 43, // 81: bundle.Bundle.CalculatePrice:output_type -> bundle.CalculatePriceResponse - 45, // 82: bundle.Bundle.BundleExtend:output_type -> bundle.BundleExtendResponse - 47, // 83: bundle.Bundle.BundleExtendRecordsList:output_type -> bundle.BundleExtendRecordsListResponse - 53, // 84: bundle.Bundle.GetBundleBalanceList:output_type -> bundle.GetBundleBalanceListResp - 55, // 85: bundle.Bundle.CreateBundleBalance:output_type -> bundle.CreateBundleBalanceResp - 57, // 86: bundle.Bundle.AddBundleBalance:output_type -> bundle.AddBundleBalanceResp - 59, // 87: bundle.Bundle.GetUsedRecordList:output_type -> bundle.GetUsedRecordListResp - 63, // 88: bundle.Bundle.GetImageWorkDetail:output_type -> bundle.GetImageWorkDetailResp - 64, // 89: bundle.Bundle.GetVedioWorkDetail:output_type -> bundle.GetVedioeWorkDetailResp - 56, // [56:90] is the sub-list for method output_type - 22, // [22:56] is the sub-list for method input_type + 65, // 56: bundle.Bundle.ToBeComfirmedWorks:input_type -> bundle.ToBeComfirmedWorksReq + 7, // 57: bundle.Bundle.CreateBundle:output_type -> bundle.CommonResponse + 7, // 58: bundle.Bundle.UpdateBundle:output_type -> bundle.CommonResponse + 7, // 59: bundle.Bundle.DeleteBundle:output_type -> bundle.CommonResponse + 7, // 60: bundle.Bundle.HandShelf:output_type -> bundle.CommonResponse + 10, // 61: bundle.Bundle.SaveBundle:output_type -> bundle.SaveResponse + 14, // 62: bundle.Bundle.BundleListV2:output_type -> bundle.BundleListResponse + 18, // 63: bundle.Bundle.BundleDetailV2:output_type -> bundle.BundleDetailResponseV2 + 14, // 64: bundle.Bundle.BundleList:output_type -> bundle.BundleListResponse + 17, // 65: bundle.Bundle.BundleDetail:output_type -> bundle.BundleDetailResponse + 7, // 66: bundle.Bundle.CreateOrderRecord:output_type -> bundle.CommonResponse + 7, // 67: bundle.Bundle.UpdateOrderRecord:output_type -> bundle.CommonResponse + 7, // 68: bundle.Bundle.UpdateOrderRecordByOrderNo:output_type -> bundle.CommonResponse + 24, // 69: bundle.Bundle.OrderRecordsList:output_type -> bundle.OrderRecordsResponse + 26, // 70: bundle.Bundle.OrderRecordsDetail:output_type -> bundle.OrderRecordsDetailResponse + 7, // 71: bundle.Bundle.UpdateFinancialConfirmationStatus:output_type -> bundle.CommonResponse + 7, // 72: bundle.Bundle.CreateOrderAddRecord:output_type -> bundle.CommonResponse + 6, // 73: bundle.Bundle.PackagePriceAndTime:output_type -> bundle.PackagePriceAndTimeResponse + 3, // 74: bundle.Bundle.OrderRecordsListV2:output_type -> bundle.OrderRecordsResponseV2 + 29, // 75: bundle.Bundle.CreateValueAddBundle:output_type -> bundle.CreateValueAddBundleResponse + 31, // 76: bundle.Bundle.ValueAddBundleList:output_type -> bundle.ValueAddBundleListResponse + 33, // 77: bundle.Bundle.ValueAddBundleDetail:output_type -> bundle.ValueAddBundleDetailResponse + 10, // 78: bundle.Bundle.SaveValueAddService:output_type -> bundle.SaveResponse + 39, // 79: bundle.Bundle.ValueAddServiceList:output_type -> bundle.ValueAddServiceListResponse + 41, // 80: bundle.Bundle.ValueAddServiceDetail:output_type -> bundle.ValueAddServiceDetailResponse + 36, // 81: bundle.Bundle.ValueAddServiceLangByUuidAndLanguage:output_type -> bundle.ValueAddServiceLang + 43, // 82: bundle.Bundle.CalculatePrice:output_type -> bundle.CalculatePriceResponse + 45, // 83: bundle.Bundle.BundleExtend:output_type -> bundle.BundleExtendResponse + 47, // 84: bundle.Bundle.BundleExtendRecordsList:output_type -> bundle.BundleExtendRecordsListResponse + 53, // 85: bundle.Bundle.GetBundleBalanceList:output_type -> bundle.GetBundleBalanceListResp + 55, // 86: bundle.Bundle.CreateBundleBalance:output_type -> bundle.CreateBundleBalanceResp + 57, // 87: bundle.Bundle.AddBundleBalance:output_type -> bundle.AddBundleBalanceResp + 59, // 88: bundle.Bundle.GetUsedRecordList:output_type -> bundle.GetUsedRecordListResp + 63, // 89: bundle.Bundle.GetImageWorkDetail:output_type -> bundle.GetImageWorkDetailResp + 64, // 90: bundle.Bundle.GetVedioWorkDetail:output_type -> bundle.GetVedioeWorkDetailResp + 66, // 91: bundle.Bundle.ToBeComfirmedWorks:output_type -> bundle.ToBeComfirmedWorksResp + 57, // [57:92] is the sub-list for method output_type + 22, // [22:57] is the sub-list for method input_type 22, // [22:22] is the sub-list for extension type_name 22, // [22:22] is the sub-list for extension extendee 0, // [0:22] is the sub-list for field type_name @@ -7809,6 +8047,30 @@ func file_pb_bundle_proto_init() { return nil } } + file_pb_bundle_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ToBeComfirmedWorksReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ToBeComfirmedWorksResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -7816,7 +8078,7 @@ func file_pb_bundle_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pb_bundle_proto_rawDesc, NumEnums: 0, - NumMessages: 65, + NumMessages: 67, NumExtensions: 0, NumServices: 1, }, diff --git a/api/bundle/bundle.validator.pb.go b/api/bundle/bundle.validator.pb.go index 26d9ce6..1beb46c 100644 --- a/api/bundle/bundle.validator.pb.go +++ b/api/bundle/bundle.validator.pb.go @@ -362,3 +362,9 @@ func (this *GetImageWorkDetailResp) Validate() error { func (this *GetVedioeWorkDetailResp) Validate() error { return nil } +func (this *ToBeComfirmedWorksReq) Validate() error { + return nil +} +func (this *ToBeComfirmedWorksResp) Validate() error { + return nil +} diff --git a/api/bundle/bundle_triple.pb.go b/api/bundle/bundle_triple.pb.go index 09e3109..d84df15 100644 --- a/api/bundle/bundle_triple.pb.go +++ b/api/bundle/bundle_triple.pb.go @@ -66,6 +66,7 @@ type BundleClient interface { GetUsedRecordList(ctx context.Context, in *GetUsedRecordListReq, opts ...grpc_go.CallOption) (*GetUsedRecordListResp, common.ErrorWithAttachment) GetImageWorkDetail(ctx context.Context, in *GetImageWorkDetailReq, opts ...grpc_go.CallOption) (*GetImageWorkDetailResp, common.ErrorWithAttachment) GetVedioWorkDetail(ctx context.Context, in *GetVedioWorkDetailReq, opts ...grpc_go.CallOption) (*GetVedioeWorkDetailResp, common.ErrorWithAttachment) + ToBeComfirmedWorks(ctx context.Context, in *ToBeComfirmedWorksReq, opts ...grpc_go.CallOption) (*ToBeComfirmedWorksResp, common.ErrorWithAttachment) } type bundleClient struct { @@ -107,6 +108,7 @@ type BundleClientImpl struct { GetUsedRecordList func(ctx context.Context, in *GetUsedRecordListReq) (*GetUsedRecordListResp, error) GetImageWorkDetail func(ctx context.Context, in *GetImageWorkDetailReq) (*GetImageWorkDetailResp, error) GetVedioWorkDetail func(ctx context.Context, in *GetVedioWorkDetailReq) (*GetVedioeWorkDetailResp, error) + ToBeComfirmedWorks func(ctx context.Context, in *ToBeComfirmedWorksReq) (*ToBeComfirmedWorksResp, error) } func (c *BundleClientImpl) GetDubboStub(cc *triple.TripleConn) BundleClient { @@ -325,6 +327,12 @@ func (c *bundleClient) GetVedioWorkDetail(ctx context.Context, in *GetVedioWorkD return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetVedioWorkDetail", in, out) } +func (c *bundleClient) ToBeComfirmedWorks(ctx context.Context, in *ToBeComfirmedWorksReq, opts ...grpc_go.CallOption) (*ToBeComfirmedWorksResp, common.ErrorWithAttachment) { + out := new(ToBeComfirmedWorksResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ToBeComfirmedWorks", in, out) +} + // BundleServer is the server API for Bundle service. // All implementations must embed UnimplementedBundleServer // for forward compatibility @@ -367,6 +375,7 @@ type BundleServer interface { GetUsedRecordList(context.Context, *GetUsedRecordListReq) (*GetUsedRecordListResp, error) GetImageWorkDetail(context.Context, *GetImageWorkDetailReq) (*GetImageWorkDetailResp, error) GetVedioWorkDetail(context.Context, *GetVedioWorkDetailReq) (*GetVedioeWorkDetailResp, error) + ToBeComfirmedWorks(context.Context, *ToBeComfirmedWorksReq) (*ToBeComfirmedWorksResp, error) mustEmbedUnimplementedBundleServer() } @@ -477,6 +486,9 @@ func (UnimplementedBundleServer) GetImageWorkDetail(context.Context, *GetImageWo func (UnimplementedBundleServer) GetVedioWorkDetail(context.Context, *GetVedioWorkDetailReq) (*GetVedioeWorkDetailResp, error) { return nil, status.Errorf(codes.Unimplemented, "method GetVedioWorkDetail not implemented") } +func (UnimplementedBundleServer) ToBeComfirmedWorks(context.Context, *ToBeComfirmedWorksReq) (*ToBeComfirmedWorksResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ToBeComfirmedWorks not implemented") +} func (s *UnimplementedBundleServer) XXX_SetProxyImpl(impl protocol.Invoker) { s.proxyImpl = impl } @@ -1491,6 +1503,35 @@ func _Bundle_GetVedioWorkDetail_Handler(srv interface{}, ctx context.Context, de return interceptor(ctx, in, info, handler) } +func _Bundle_ToBeComfirmedWorks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ToBeComfirmedWorksReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("ToBeComfirmedWorks", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + // Bundle_ServiceDesc is the grpc_go.ServiceDesc for Bundle service. // It's only intended for direct use with grpc_go.RegisterService, // and not to be introspected or modified (even as a copy) @@ -1634,6 +1675,10 @@ var Bundle_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "GetVedioWorkDetail", Handler: _Bundle_GetVedioWorkDetail_Handler, }, + { + MethodName: "ToBeComfirmedWorks", + Handler: _Bundle_ToBeComfirmedWorks_Handler, + }, }, Streams: []grpc_go.StreamDesc{}, Metadata: "pb/bundle.proto", From 73ad76501c8886b28081eac8bc60edd4b6063f00 Mon Sep 17 00:00:00 2001 From: lzh <1625167628@qq.com> Date: Sat, 14 Jun 2025 11:32:06 +0800 Subject: [PATCH 12/18] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E6=89=A9=E5=B1=95=E5=8D=95=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/bundle/bundle.pb.go | 5624 +++++++++++++++++++++++------ api/bundle/bundle.validator.pb.go | 140 +- api/bundle/bundle_triple.pb.go | 579 ++- 3 files changed, 5099 insertions(+), 1244 deletions(-) diff --git a/api/bundle/bundle.pb.go b/api/bundle/bundle.pb.go index 28d0020..02a4ca8 100644 --- a/api/bundle/bundle.pb.go +++ b/api/bundle/bundle.pb.go @@ -22,20 +22,829 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type OrderCreateRecord struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BundleUuid string `protobuf:"bytes,1,opt,name=bundleUuid,proto3" json:"bundleUuid,omitempty"` + Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language,omitempty"` + ExpirationTime string `protobuf:"bytes,3,opt,name=expirationTime,proto3" json:"expirationTime,omitempty"` + BundleName string `protobuf:"bytes,4,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + CustomerID string `protobuf:"bytes,5,opt,name=customerID,proto3" json:"customerID,omitempty"` + CustomerNum string `protobuf:"bytes,6,opt,name=customerNum,proto3" json:"customerNum,omitempty"` + CustomerName string `protobuf:"bytes,7,opt,name=customerName,proto3" json:"customerName,omitempty"` + Amount float32 `protobuf:"fixed32,8,opt,name=amount,proto3" json:"amount,omitempty"` + AmountType int64 `protobuf:"varint,9,opt,name=amountType,proto3" json:"amountType,omitempty"` + SignContract string `protobuf:"bytes,10,opt,name=signContract,proto3" json:"signContract,omitempty"` + Signature string `protobuf:"bytes,11,opt,name=signature,proto3" json:"signature,omitempty"` + SignedTime string `protobuf:"bytes,12,opt,name=signedTime,proto3" json:"signedTime,omitempty"` + Status int64 `protobuf:"varint,13,opt,name=status,proto3" json:"status,omitempty"` + PayTime string `protobuf:"bytes,14,opt,name=payTime,proto3" json:"payTime,omitempty"` + ContractNo string `protobuf:"bytes,15,opt,name=contractNo,proto3" json:"contractNo,omitempty"` + TotalAmount float32 `protobuf:"fixed32,16,opt,name=totalAmount,proto3" json:"totalAmount,omitempty"` //总金额 + BundleCommonUid string `protobuf:"bytes,17,opt,name=bundleCommonUid,proto3" json:"bundleCommonUid,omitempty"` + Snapshot string `protobuf:"bytes,18,opt,name=snapshot,proto3" json:"snapshot,omitempty"` + PayType int32 `protobuf:"varint,19,opt,name=payType,proto3" json:"payType,omitempty"` + AddRecords []*OrderCreateAddRecord `protobuf:"bytes,20,rep,name=addRecords,proto3" json:"addRecords,omitempty"` //增值服务 +} + +func (x *OrderCreateRecord) Reset() { + *x = OrderCreateRecord{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrderCreateRecord) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrderCreateRecord) ProtoMessage() {} + +func (x *OrderCreateRecord) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrderCreateRecord.ProtoReflect.Descriptor instead. +func (*OrderCreateRecord) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{0} +} + +func (x *OrderCreateRecord) GetBundleUuid() string { + if x != nil { + return x.BundleUuid + } + return "" +} + +func (x *OrderCreateRecord) GetLanguage() string { + if x != nil { + return x.Language + } + return "" +} + +func (x *OrderCreateRecord) GetExpirationTime() string { + if x != nil { + return x.ExpirationTime + } + return "" +} + +func (x *OrderCreateRecord) GetBundleName() string { + if x != nil { + return x.BundleName + } + return "" +} + +func (x *OrderCreateRecord) GetCustomerID() string { + if x != nil { + return x.CustomerID + } + return "" +} + +func (x *OrderCreateRecord) GetCustomerNum() string { + if x != nil { + return x.CustomerNum + } + return "" +} + +func (x *OrderCreateRecord) GetCustomerName() string { + if x != nil { + return x.CustomerName + } + return "" +} + +func (x *OrderCreateRecord) GetAmount() float32 { + if x != nil { + return x.Amount + } + return 0 +} + +func (x *OrderCreateRecord) GetAmountType() int64 { + if x != nil { + return x.AmountType + } + return 0 +} + +func (x *OrderCreateRecord) GetSignContract() string { + if x != nil { + return x.SignContract + } + return "" +} + +func (x *OrderCreateRecord) GetSignature() string { + if x != nil { + return x.Signature + } + return "" +} + +func (x *OrderCreateRecord) GetSignedTime() string { + if x != nil { + return x.SignedTime + } + return "" +} + +func (x *OrderCreateRecord) GetStatus() int64 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *OrderCreateRecord) GetPayTime() string { + if x != nil { + return x.PayTime + } + return "" +} + +func (x *OrderCreateRecord) GetContractNo() string { + if x != nil { + return x.ContractNo + } + return "" +} + +func (x *OrderCreateRecord) GetTotalAmount() float32 { + if x != nil { + return x.TotalAmount + } + return 0 +} + +func (x *OrderCreateRecord) GetBundleCommonUid() string { + if x != nil { + return x.BundleCommonUid + } + return "" +} + +func (x *OrderCreateRecord) GetSnapshot() string { + if x != nil { + return x.Snapshot + } + return "" +} + +func (x *OrderCreateRecord) GetPayType() int32 { + if x != nil { + return x.PayType + } + return 0 +} + +func (x *OrderCreateRecord) GetAddRecords() []*OrderCreateAddRecord { + if x != nil { + return x.AddRecords + } + return nil +} + +type OrderCreateAddRecord struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ServiceType int32 `protobuf:"varint,1,opt,name=serviceType,proto3" json:"serviceType,omitempty"` + ValueUid string `protobuf:"bytes,2,opt,name=valueUid,proto3" json:"valueUid,omitempty"` + CurrencyType int64 `protobuf:"varint,3,opt,name=currencyType,proto3" json:"currencyType,omitempty"` + Amount float32 `protobuf:"fixed32,4,opt,name=amount,proto3" json:"amount,omitempty"` + Num int32 `protobuf:"varint,5,opt,name=num,proto3" json:"num,omitempty"` + Unit string `protobuf:"bytes,6,opt,name=unit,proto3" json:"unit,omitempty"` + Source int32 `protobuf:"varint,7,opt,name=source,proto3" json:"source,omitempty"` + PaymentStatus int32 `protobuf:"varint,8,opt,name=paymentStatus,proto3" json:"paymentStatus,omitempty"` +} + +func (x *OrderCreateAddRecord) Reset() { + *x = OrderCreateAddRecord{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrderCreateAddRecord) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrderCreateAddRecord) ProtoMessage() {} + +func (x *OrderCreateAddRecord) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrderCreateAddRecord.ProtoReflect.Descriptor instead. +func (*OrderCreateAddRecord) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{1} +} + +func (x *OrderCreateAddRecord) GetServiceType() int32 { + if x != nil { + return x.ServiceType + } + return 0 +} + +func (x *OrderCreateAddRecord) GetValueUid() string { + if x != nil { + return x.ValueUid + } + return "" +} + +func (x *OrderCreateAddRecord) GetCurrencyType() int64 { + if x != nil { + return x.CurrencyType + } + return 0 +} + +func (x *OrderCreateAddRecord) GetAmount() float32 { + if x != nil { + return x.Amount + } + return 0 +} + +func (x *OrderCreateAddRecord) GetNum() int32 { + if x != nil { + return x.Num + } + return 0 +} + +func (x *OrderCreateAddRecord) GetUnit() string { + if x != nil { + return x.Unit + } + return "" +} + +func (x *OrderCreateAddRecord) GetSource() int32 { + if x != nil { + return x.Source + } + return 0 +} + +func (x *OrderCreateAddRecord) GetPaymentStatus() int32 { + if x != nil { + return x.PaymentStatus + } + return 0 +} + +type OrderRecordsRequestV2 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CustomerName string `protobuf:"bytes,1,opt,name=customerName,proto3" json:"customerName,omitempty"` + TelNum string `protobuf:"bytes,2,opt,name=telNum,proto3" json:"telNum,omitempty"` + BundleName string `protobuf:"bytes,3,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + PayStatus int32 `protobuf:"varint,4,opt,name=payStatus,proto3" json:"payStatus,omitempty"` + AddPayStatus int32 `protobuf:"varint,5,opt,name=addPayStatus,proto3" json:"addPayStatus,omitempty"` + OrderNo string `protobuf:"bytes,6,opt,name=orderNo,proto3" json:"orderNo,omitempty"` + OrderAddNo string `protobuf:"bytes,7,opt,name=orderAddNo,proto3" json:"orderAddNo,omitempty"` + BundleCreateAtStart string `protobuf:"bytes,8,opt,name=bundleCreateAtStart,proto3" json:"bundleCreateAtStart,omitempty"` + BundleCreateAtEnd string `protobuf:"bytes,9,opt,name=bundleCreateAtEnd,proto3" json:"bundleCreateAtEnd,omitempty"` + OrderAddCreateAtStart string `protobuf:"bytes,10,opt,name=orderAddCreateAtStart,proto3" json:"orderAddCreateAtStart,omitempty"` + OrderAddCreateAtEnd string `protobuf:"bytes,11,opt,name=orderAddCreateAtEnd,proto3" json:"orderAddCreateAtEnd,omitempty"` + Page int32 `protobuf:"varint,12,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,13,opt,name=pageSize,proto3" json:"pageSize,omitempty"` + UserIds []int64 `protobuf:"varint,14,rep,packed,name=userIds,proto3" json:"userIds,omitempty"` +} + +func (x *OrderRecordsRequestV2) Reset() { + *x = OrderRecordsRequestV2{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrderRecordsRequestV2) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrderRecordsRequestV2) ProtoMessage() {} + +func (x *OrderRecordsRequestV2) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrderRecordsRequestV2.ProtoReflect.Descriptor instead. +func (*OrderRecordsRequestV2) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{2} +} + +func (x *OrderRecordsRequestV2) GetCustomerName() string { + if x != nil { + return x.CustomerName + } + return "" +} + +func (x *OrderRecordsRequestV2) GetTelNum() string { + if x != nil { + return x.TelNum + } + return "" +} + +func (x *OrderRecordsRequestV2) GetBundleName() string { + if x != nil { + return x.BundleName + } + return "" +} + +func (x *OrderRecordsRequestV2) GetPayStatus() int32 { + if x != nil { + return x.PayStatus + } + return 0 +} + +func (x *OrderRecordsRequestV2) GetAddPayStatus() int32 { + if x != nil { + return x.AddPayStatus + } + return 0 +} + +func (x *OrderRecordsRequestV2) GetOrderNo() string { + if x != nil { + return x.OrderNo + } + return "" +} + +func (x *OrderRecordsRequestV2) GetOrderAddNo() string { + if x != nil { + return x.OrderAddNo + } + return "" +} + +func (x *OrderRecordsRequestV2) GetBundleCreateAtStart() string { + if x != nil { + return x.BundleCreateAtStart + } + return "" +} + +func (x *OrderRecordsRequestV2) GetBundleCreateAtEnd() string { + if x != nil { + return x.BundleCreateAtEnd + } + return "" +} + +func (x *OrderRecordsRequestV2) GetOrderAddCreateAtStart() string { + if x != nil { + return x.OrderAddCreateAtStart + } + return "" +} + +func (x *OrderRecordsRequestV2) GetOrderAddCreateAtEnd() string { + if x != nil { + return x.OrderAddCreateAtEnd + } + return "" +} + +func (x *OrderRecordsRequestV2) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *OrderRecordsRequestV2) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *OrderRecordsRequestV2) GetUserIds() []int64 { + if x != nil { + return x.UserIds + } + return nil +} + +type OrderRecordsResponseV2 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BundleInfo []*OrderBundleRecordInfo `protobuf:"bytes,1,rep,name=bundleInfo,proto3" json:"bundleInfo,omitempty"` + Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,3,opt,name=pageSize,proto3" json:"pageSize,omitempty"` + Total int32 `protobuf:"varint,4,opt,name=total,proto3" json:"total,omitempty"` +} + +func (x *OrderRecordsResponseV2) Reset() { + *x = OrderRecordsResponseV2{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrderRecordsResponseV2) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrderRecordsResponseV2) ProtoMessage() {} + +func (x *OrderRecordsResponseV2) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrderRecordsResponseV2.ProtoReflect.Descriptor instead. +func (*OrderRecordsResponseV2) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{3} +} + +func (x *OrderRecordsResponseV2) GetBundleInfo() []*OrderBundleRecordInfo { + if x != nil { + return x.BundleInfo + } + return nil +} + +func (x *OrderRecordsResponseV2) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *OrderRecordsResponseV2) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *OrderRecordsResponseV2) GetTotal() int32 { + if x != nil { + return x.Total + } + return 0 +} + +type OrderBundleRecordInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OrderNo string `protobuf:"bytes,1,opt,name=orderNo,proto3" json:"orderNo,omitempty"` + BundleName string `protobuf:"bytes,2,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + PayStatus int32 `protobuf:"varint,3,opt,name=payStatus,proto3" json:"payStatus,omitempty"` + TelNum string `protobuf:"bytes,4,opt,name=telNum,proto3" json:"telNum,omitempty"` + CustomerName string `protobuf:"bytes,5,opt,name=customerName,proto3" json:"customerName,omitempty"` + BundleCreateAt string `protobuf:"bytes,6,opt,name=bundleCreateAt,proto3" json:"bundleCreateAt,omitempty"` + Amount float32 `protobuf:"fixed32,7,opt,name=amount,proto3" json:"amount,omitempty"` + AddBundleInfo []*OrderAddBundleRecordInfo `protobuf:"bytes,8,rep,name=addBundleInfo,proto3" json:"addBundleInfo,omitempty"` + CustomerId int64 `protobuf:"varint,9,opt,name=customerId,proto3" json:"customerId,omitempty"` +} + +func (x *OrderBundleRecordInfo) Reset() { + *x = OrderBundleRecordInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrderBundleRecordInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrderBundleRecordInfo) ProtoMessage() {} + +func (x *OrderBundleRecordInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrderBundleRecordInfo.ProtoReflect.Descriptor instead. +func (*OrderBundleRecordInfo) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{4} +} + +func (x *OrderBundleRecordInfo) GetOrderNo() string { + if x != nil { + return x.OrderNo + } + return "" +} + +func (x *OrderBundleRecordInfo) GetBundleName() string { + if x != nil { + return x.BundleName + } + return "" +} + +func (x *OrderBundleRecordInfo) GetPayStatus() int32 { + if x != nil { + return x.PayStatus + } + return 0 +} + +func (x *OrderBundleRecordInfo) GetTelNum() string { + if x != nil { + return x.TelNum + } + return "" +} + +func (x *OrderBundleRecordInfo) GetCustomerName() string { + if x != nil { + return x.CustomerName + } + return "" +} + +func (x *OrderBundleRecordInfo) GetBundleCreateAt() string { + if x != nil { + return x.BundleCreateAt + } + return "" +} + +func (x *OrderBundleRecordInfo) GetAmount() float32 { + if x != nil { + return x.Amount + } + return 0 +} + +func (x *OrderBundleRecordInfo) GetAddBundleInfo() []*OrderAddBundleRecordInfo { + if x != nil { + return x.AddBundleInfo + } + return nil +} + +func (x *OrderBundleRecordInfo) GetCustomerId() int64 { + if x != nil { + return x.CustomerId + } + return 0 +} + +type OrderAddBundleRecordInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OrderAddNo string `protobuf:"bytes,1,opt,name=orderAddNo,proto3" json:"orderAddNo,omitempty"` + Amount float32 `protobuf:"fixed32,2,opt,name=amount,proto3" json:"amount,omitempty"` + SettlementAmount float32 `protobuf:"fixed32,3,opt,name=settlementAmount,proto3" json:"settlementAmount,omitempty"` + CurrencyType int32 `protobuf:"varint,4,opt,name=currencyType,proto3" json:"currencyType,omitempty"` + HandlingFee float32 `protobuf:"fixed32,5,opt,name=handlingFee,proto3" json:"handlingFee,omitempty"` + ExchangeRate float32 `protobuf:"fixed32,6,opt,name=exchangeRate,proto3" json:"exchangeRate,omitempty"` + OrderAddCreateAt string `protobuf:"bytes,7,opt,name=orderAddCreateAt,proto3" json:"orderAddCreateAt,omitempty"` + AddPayStatus int32 `protobuf:"varint,8,opt,name=addPayStatus,proto3" json:"addPayStatus,omitempty"` + Contract string `protobuf:"bytes,9,opt,name=contract,proto3" json:"contract,omitempty"` + Snapshot string `protobuf:"bytes,10,opt,name=snapshot,proto3" json:"snapshot,omitempty"` +} + +func (x *OrderAddBundleRecordInfo) Reset() { + *x = OrderAddBundleRecordInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrderAddBundleRecordInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrderAddBundleRecordInfo) ProtoMessage() {} + +func (x *OrderAddBundleRecordInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrderAddBundleRecordInfo.ProtoReflect.Descriptor instead. +func (*OrderAddBundleRecordInfo) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{5} +} + +func (x *OrderAddBundleRecordInfo) GetOrderAddNo() string { + if x != nil { + return x.OrderAddNo + } + return "" +} + +func (x *OrderAddBundleRecordInfo) GetAmount() float32 { + if x != nil { + return x.Amount + } + return 0 +} + +func (x *OrderAddBundleRecordInfo) GetSettlementAmount() float32 { + if x != nil { + return x.SettlementAmount + } + return 0 +} + +func (x *OrderAddBundleRecordInfo) GetCurrencyType() int32 { + if x != nil { + return x.CurrencyType + } + return 0 +} + +func (x *OrderAddBundleRecordInfo) GetHandlingFee() float32 { + if x != nil { + return x.HandlingFee + } + return 0 +} + +func (x *OrderAddBundleRecordInfo) GetExchangeRate() float32 { + if x != nil { + return x.ExchangeRate + } + return 0 +} + +func (x *OrderAddBundleRecordInfo) GetOrderAddCreateAt() string { + if x != nil { + return x.OrderAddCreateAt + } + return "" +} + +func (x *OrderAddBundleRecordInfo) GetAddPayStatus() int32 { + if x != nil { + return x.AddPayStatus + } + return 0 +} + +func (x *OrderAddBundleRecordInfo) GetContract() string { + if x != nil { + return x.Contract + } + return "" +} + +func (x *OrderAddBundleRecordInfo) GetSnapshot() string { + if x != nil { + return x.Snapshot + } + return "" +} + +type PackagePriceAndTimeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Price float32 `protobuf:"fixed32,1,opt,name=price,proto3" json:"price,omitempty"` + Time string `protobuf:"bytes,2,opt,name=time,proto3" json:"time,omitempty"` +} + +func (x *PackagePriceAndTimeResponse) Reset() { + *x = PackagePriceAndTimeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PackagePriceAndTimeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PackagePriceAndTimeResponse) ProtoMessage() {} + +func (x *PackagePriceAndTimeResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PackagePriceAndTimeResponse.ProtoReflect.Descriptor instead. +func (*PackagePriceAndTimeResponse) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{6} +} + +func (x *PackagePriceAndTimeResponse) GetPrice() float32 { + if x != nil { + return x.Price + } + return 0 +} + +func (x *PackagePriceAndTimeResponse) GetTime() string { + if x != nil { + return x.Time + } + return "" +} + type CommonResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg"` - Uuid string `protobuf:"bytes,2,opt,name=uuid,proto3" json:"uuid"` - OrderNo string `protobuf:"bytes,3,opt,name=orderNo,proto3" json:"orderNo"` + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` + Uuid string `protobuf:"bytes,2,opt,name=uuid,proto3" json:"uuid,omitempty"` + OrderNo string `protobuf:"bytes,3,opt,name=orderNo,proto3" json:"orderNo,omitempty"` } func (x *CommonResponse) Reset() { *x = CommonResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[0] + mi := &file_pb_bundle_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -48,7 +857,7 @@ func (x *CommonResponse) String() string { func (*CommonResponse) ProtoMessage() {} func (x *CommonResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[0] + mi := &file_pb_bundle_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -61,7 +870,7 @@ func (x *CommonResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CommonResponse.ProtoReflect.Descriptor instead. func (*CommonResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{0} + return file_pb_bundle_proto_rawDescGZIP(), []int{7} } func (x *CommonResponse) GetMsg() string { @@ -90,30 +899,31 @@ type BundleProfile struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"` - Price float32 `protobuf:"fixed32,3,opt,name=price,proto3" json:"price"` - PriceType int64 `protobuf:"varint,4,opt,name=priceType,proto3" json:"priceType"` - Content string `protobuf:"bytes,5,opt,name=content,proto3" json:"content"` - Contract string `protobuf:"bytes,6,opt,name=contract,proto3" json:"contract"` - Language string `protobuf:"bytes,7,opt,name=language,proto3" json:"language"` - CreatedAt string `protobuf:"bytes,8,opt,name=createdAt,proto3" json:"createdAt"` - UpdatedAt string `protobuf:"bytes,9,opt,name=updatedAt,proto3" json:"updatedAt"` - CompanySign string `protobuf:"bytes,10,opt,name=companySign,proto3" json:"companySign"` - ContractDuration int64 `protobuf:"varint,11,opt,name=contractDuration,proto3" json:"contractDuration"` - BundleCommonUid string `protobuf:"bytes,12,opt,name=bundleCommonUid,proto3" json:"bundleCommonUid"` - Sort int64 `protobuf:"varint,13,opt,name=sort,proto3" json:"sort"` - BgImg1 string `protobuf:"bytes,14,opt,name=bgImg1,proto3" json:"bgImg1"` - BgImg2 string `protobuf:"bytes,15,opt,name=bgImg2,proto3" json:"bgImg2"` - ShelfStatus int64 `protobuf:"varint,16,opt,name=shelfStatus,proto3" json:"shelfStatus"` // 1 上架 2 下架 - SelectValueAddService []*SelectValueAddService `protobuf:"bytes,17,rep,name=selectValueAddService,json=SelectValueAddService,proto3" json:"selectValueAddService"` - BundleProfileLang []*BundleProfileLang `protobuf:"bytes,18,rep,name=bundleProfileLang,proto3" json:"bundleProfileLang"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Price float32 `protobuf:"fixed32,3,opt,name=price,proto3" json:"price,omitempty"` + PriceType int64 `protobuf:"varint,4,opt,name=priceType,proto3" json:"priceType,omitempty"` + Content string `protobuf:"bytes,5,opt,name=content,proto3" json:"content,omitempty"` + Contract string `protobuf:"bytes,6,opt,name=contract,proto3" json:"contract,omitempty"` + Language string `protobuf:"bytes,7,opt,name=language,proto3" json:"language,omitempty"` + CreatedAt string `protobuf:"bytes,8,opt,name=createdAt,proto3" json:"createdAt,omitempty"` + UpdatedAt string `protobuf:"bytes,9,opt,name=updatedAt,proto3" json:"updatedAt,omitempty"` + CompanySign string `protobuf:"bytes,10,opt,name=companySign,proto3" json:"companySign,omitempty"` + ContractDuration int64 `protobuf:"varint,11,opt,name=contractDuration,proto3" json:"contractDuration,omitempty"` + BundleCommonUid string `protobuf:"bytes,12,opt,name=bundleCommonUid,proto3" json:"bundleCommonUid,omitempty"` + Sort int64 `protobuf:"varint,13,opt,name=sort,proto3" json:"sort,omitempty"` + BgImg1 string `protobuf:"bytes,14,opt,name=bgImg1,proto3" json:"bgImg1,omitempty"` + BgImg2 string `protobuf:"bytes,15,opt,name=bgImg2,proto3" json:"bgImg2,omitempty"` + ShelfStatus int64 `protobuf:"varint,16,opt,name=shelfStatus,proto3" json:"shelfStatus,omitempty"` // 1 上架 2 下架 + SelectValueAddService []*SelectValueAddService `protobuf:"bytes,17,rep,name=selectValueAddService,json=SelectValueAddService,proto3" json:"selectValueAddService,omitempty"` + BundleProfileLang []*BundleProfileLang `protobuf:"bytes,18,rep,name=bundleProfileLang,proto3" json:"bundleProfileLang,omitempty"` + ImgOption int32 `protobuf:"varint,19,opt,name=imgOption,proto3" json:"imgOption,omitempty"` } func (x *BundleProfile) Reset() { *x = BundleProfile{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[1] + mi := &file_pb_bundle_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -126,7 +936,7 @@ func (x *BundleProfile) String() string { func (*BundleProfile) ProtoMessage() {} func (x *BundleProfile) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[1] + mi := &file_pb_bundle_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -139,7 +949,7 @@ func (x *BundleProfile) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleProfile.ProtoReflect.Descriptor instead. func (*BundleProfile) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{1} + return file_pb_bundle_proto_rawDescGZIP(), []int{8} } func (x *BundleProfile) GetUuid() string { @@ -268,29 +1078,32 @@ func (x *BundleProfile) GetBundleProfileLang() []*BundleProfileLang { return nil } +func (x *BundleProfile) GetImgOption() int32 { + if x != nil { + return x.ImgOption + } + return 0 +} + type BundleProfileLang struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"` - Price float32 `protobuf:"fixed32,3,opt,name=price,proto3" json:"price"` - PriceType int64 `protobuf:"varint,4,opt,name=priceType,proto3" json:"priceType"` - Content string `protobuf:"bytes,5,opt,name=content,proto3" json:"content"` - Language string `protobuf:"bytes,6,opt,name=language,proto3" json:"language"` - CreatedAt string `protobuf:"bytes,7,opt,name=createdAt,proto3" json:"createdAt"` - UpdatedAt string `protobuf:"bytes,8,opt,name=updatedAt,proto3" json:"updatedAt"` - BgImg1 string `protobuf:"bytes,9,opt,name=bgImg1,proto3" json:"bgImg1"` - BgImg2 string `protobuf:"bytes,10,opt,name=bgImg2,proto3" json:"bgImg2"` - Sort int64 `protobuf:"varint,11,opt,name=sort,proto3" json:"sort"` - ValueAddServiceLang []*ValueAddServiceLang `protobuf:"bytes,12,rep,name=valueAddServiceLang,json=ValueAddServiceLang,proto3" json:"valueAddServiceLang"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Price float32 `protobuf:"fixed32,3,opt,name=price,proto3" json:"price,omitempty"` + PriceType int64 `protobuf:"varint,4,opt,name=priceType,proto3" json:"priceType,omitempty"` + Content string `protobuf:"bytes,5,opt,name=content,proto3" json:"content,omitempty"` + Language string `protobuf:"bytes,6,opt,name=language,proto3" json:"language,omitempty"` + CreatedAt string `protobuf:"bytes,7,opt,name=createdAt,proto3" json:"createdAt,omitempty"` + UpdatedAt string `protobuf:"bytes,8,opt,name=updatedAt,proto3" json:"updatedAt,omitempty"` } func (x *BundleProfileLang) Reset() { *x = BundleProfileLang{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[2] + mi := &file_pb_bundle_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -303,7 +1116,7 @@ func (x *BundleProfileLang) String() string { func (*BundleProfileLang) ProtoMessage() {} func (x *BundleProfileLang) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[2] + mi := &file_pb_bundle_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -316,7 +1129,7 @@ func (x *BundleProfileLang) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleProfileLang.ProtoReflect.Descriptor instead. func (*BundleProfileLang) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{2} + return file_pb_bundle_proto_rawDescGZIP(), []int{9} } func (x *BundleProfileLang) GetUuid() string { @@ -375,48 +1188,20 @@ func (x *BundleProfileLang) GetUpdatedAt() string { return "" } -func (x *BundleProfileLang) GetBgImg1() string { - if x != nil { - return x.BgImg1 - } - return "" -} - -func (x *BundleProfileLang) GetBgImg2() string { - if x != nil { - return x.BgImg2 - } - return "" -} - -func (x *BundleProfileLang) GetSort() int64 { - if x != nil { - return x.Sort - } - return 0 -} - -func (x *BundleProfileLang) GetValueAddServiceLang() []*ValueAddServiceLang { - if x != nil { - return x.ValueAddServiceLang - } - return nil -} - type SaveResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg"` - Uuid string `protobuf:"bytes,2,opt,name=uuid,proto3" json:"uuid"` - CancelNum int64 `protobuf:"varint,3,opt,name=cancelNum,proto3" json:"cancelNum"` + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` + Uuid string `protobuf:"bytes,2,opt,name=uuid,proto3" json:"uuid,omitempty"` + CancelNum int64 `protobuf:"varint,3,opt,name=cancelNum,proto3" json:"cancelNum,omitempty"` } func (x *SaveResponse) Reset() { *x = SaveResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[3] + mi := &file_pb_bundle_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -429,7 +1214,7 @@ func (x *SaveResponse) String() string { func (*SaveResponse) ProtoMessage() {} func (x *SaveResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[3] + mi := &file_pb_bundle_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -442,7 +1227,7 @@ func (x *SaveResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SaveResponse.ProtoReflect.Descriptor instead. func (*SaveResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{3} + return file_pb_bundle_proto_rawDescGZIP(), []int{10} } func (x *SaveResponse) GetMsg() string { @@ -471,15 +1256,15 @@ type SelectValueAddService struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ValueAddUuid string `protobuf:"bytes,1,opt,name=valueAddUuid,proto3" json:"valueAddUuid"` - ServiceName string `protobuf:"bytes,2,opt,name=serviceName,proto3" json:"serviceName"` - IsDisplay bool `protobuf:"varint,3,opt,name=isDisplay,proto3" json:"isDisplay"` + ValueAddUuid string `protobuf:"bytes,1,opt,name=valueAddUuid,proto3" json:"valueAddUuid,omitempty"` + ServiceName string `protobuf:"bytes,2,opt,name=serviceName,proto3" json:"serviceName,omitempty"` + IsDisplay bool `protobuf:"varint,3,opt,name=isDisplay,proto3" json:"isDisplay,omitempty"` } func (x *SelectValueAddService) Reset() { *x = SelectValueAddService{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[4] + mi := &file_pb_bundle_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -492,7 +1277,7 @@ func (x *SelectValueAddService) String() string { func (*SelectValueAddService) ProtoMessage() {} func (x *SelectValueAddService) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[4] + mi := &file_pb_bundle_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -505,7 +1290,7 @@ func (x *SelectValueAddService) ProtoReflect() protoreflect.Message { // Deprecated: Use SelectValueAddService.ProtoReflect.Descriptor instead. func (*SelectValueAddService) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{4} + return file_pb_bundle_proto_rawDescGZIP(), []int{11} } func (x *SelectValueAddService) GetValueAddUuid() string { @@ -534,13 +1319,13 @@ type DelBundleRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` } func (x *DelBundleRequest) Reset() { *x = DelBundleRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[5] + mi := &file_pb_bundle_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -553,7 +1338,7 @@ func (x *DelBundleRequest) String() string { func (*DelBundleRequest) ProtoMessage() {} func (x *DelBundleRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[5] + mi := &file_pb_bundle_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -566,7 +1351,7 @@ func (x *DelBundleRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DelBundleRequest.ProtoReflect.Descriptor instead. func (*DelBundleRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{5} + return file_pb_bundle_proto_rawDescGZIP(), []int{12} } func (x *DelBundleRequest) GetUuid() string { @@ -581,17 +1366,17 @@ type BundleListRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page"` - PageSize int32 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize"` - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name"` - Content string `protobuf:"bytes,4,opt,name=content,proto3" json:"content"` - Language string `protobuf:"bytes,5,opt,name=language,proto3" json:"language"` + Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + Content string `protobuf:"bytes,4,opt,name=content,proto3" json:"content,omitempty"` + Language string `protobuf:"bytes,5,opt,name=language,proto3" json:"language,omitempty"` } func (x *BundleListRequest) Reset() { *x = BundleListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[6] + mi := &file_pb_bundle_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -604,7 +1389,7 @@ func (x *BundleListRequest) String() string { func (*BundleListRequest) ProtoMessage() {} func (x *BundleListRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[6] + mi := &file_pb_bundle_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -617,7 +1402,7 @@ func (x *BundleListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleListRequest.ProtoReflect.Descriptor instead. func (*BundleListRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{6} + return file_pb_bundle_proto_rawDescGZIP(), []int{13} } func (x *BundleListRequest) GetPage() int32 { @@ -660,14 +1445,14 @@ type BundleListResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Bundles []*BundleProfile `protobuf:"bytes,1,rep,name=bundles,proto3" json:"bundles"` - Total int32 `protobuf:"varint,2,opt,name=total,proto3" json:"total"` + Bundles []*BundleProfile `protobuf:"bytes,1,rep,name=bundles,proto3" json:"bundles,omitempty"` + Total int32 `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"` } func (x *BundleListResponse) Reset() { *x = BundleListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[7] + mi := &file_pb_bundle_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -680,7 +1465,7 @@ func (x *BundleListResponse) String() string { func (*BundleListResponse) ProtoMessage() {} func (x *BundleListResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[7] + mi := &file_pb_bundle_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -693,7 +1478,7 @@ func (x *BundleListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleListResponse.ProtoReflect.Descriptor instead. func (*BundleListResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{7} + return file_pb_bundle_proto_rawDescGZIP(), []int{14} } func (x *BundleListResponse) GetBundles() []*BundleProfile { @@ -715,14 +1500,14 @@ type BundleDetailRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language"` //语言 默认zh-CN, zh-CN zh-TW EN de-DE js-JP + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language,omitempty"` //语言 默认zh-CN, zh-CN zh-TW EN de-DE js-JP } func (x *BundleDetailRequest) Reset() { *x = BundleDetailRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[8] + mi := &file_pb_bundle_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -735,7 +1520,7 @@ func (x *BundleDetailRequest) String() string { func (*BundleDetailRequest) ProtoMessage() {} func (x *BundleDetailRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[8] + mi := &file_pb_bundle_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -748,7 +1533,7 @@ func (x *BundleDetailRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleDetailRequest.ProtoReflect.Descriptor instead. func (*BundleDetailRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{8} + return file_pb_bundle_proto_rawDescGZIP(), []int{15} } func (x *BundleDetailRequest) GetUuid() string { @@ -770,14 +1555,14 @@ type HandShelfRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - ShelfStatus int64 `protobuf:"varint,2,opt,name=shelfStatus,proto3" json:"shelfStatus"` // 1 上架 2 下架 + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + ShelfStatus int64 `protobuf:"varint,2,opt,name=shelfStatus,proto3" json:"shelfStatus,omitempty"` // 1 上架 2 下架 } func (x *HandShelfRequest) Reset() { *x = HandShelfRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[9] + mi := &file_pb_bundle_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -790,7 +1575,7 @@ func (x *HandShelfRequest) String() string { func (*HandShelfRequest) ProtoMessage() {} func (x *HandShelfRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[9] + mi := &file_pb_bundle_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -803,7 +1588,7 @@ func (x *HandShelfRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use HandShelfRequest.ProtoReflect.Descriptor instead. func (*HandShelfRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{9} + return file_pb_bundle_proto_rawDescGZIP(), []int{16} } func (x *HandShelfRequest) GetUuid() string { @@ -825,14 +1610,14 @@ type BundleDetailResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Bundle *BundleProfile `protobuf:"bytes,1,opt,name=bundle,proto3" json:"bundle"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg"` + Bundle *BundleProfile `protobuf:"bytes,1,opt,name=bundle,proto3" json:"bundle,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` } func (x *BundleDetailResponse) Reset() { *x = BundleDetailResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[10] + mi := &file_pb_bundle_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -845,7 +1630,7 @@ func (x *BundleDetailResponse) String() string { func (*BundleDetailResponse) ProtoMessage() {} func (x *BundleDetailResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[10] + mi := &file_pb_bundle_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -858,7 +1643,7 @@ func (x *BundleDetailResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleDetailResponse.ProtoReflect.Descriptor instead. func (*BundleDetailResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{10} + return file_pb_bundle_proto_rawDescGZIP(), []int{17} } func (x *BundleDetailResponse) GetBundle() *BundleProfile { @@ -880,15 +1665,14 @@ type BundleDetailResponseV2 struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Bundle *BundleProfileLang `protobuf:"bytes,1,opt,name=bundle,proto3" json:"bundle"` - SelectValueAddService []*SelectValueAddService `protobuf:"bytes,2,rep,name=selectValueAddService,json=SelectValueAddService,proto3" json:"selectValueAddService"` - Msg string `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg"` + Bundle *BundleProfile `protobuf:"bytes,1,opt,name=bundle,proto3" json:"bundle,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` } func (x *BundleDetailResponseV2) Reset() { *x = BundleDetailResponseV2{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[11] + mi := &file_pb_bundle_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -901,7 +1685,7 @@ func (x *BundleDetailResponseV2) String() string { func (*BundleDetailResponseV2) ProtoMessage() {} func (x *BundleDetailResponseV2) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[11] + mi := &file_pb_bundle_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -914,23 +1698,16 @@ func (x *BundleDetailResponseV2) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleDetailResponseV2.ProtoReflect.Descriptor instead. func (*BundleDetailResponseV2) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{11} + return file_pb_bundle_proto_rawDescGZIP(), []int{18} } -func (x *BundleDetailResponseV2) GetBundle() *BundleProfileLang { +func (x *BundleDetailResponseV2) GetBundle() *BundleProfile { if x != nil { return x.Bundle } return nil } -func (x *BundleDetailResponseV2) GetSelectValueAddService() []*SelectValueAddService { - if x != nil { - return x.SelectValueAddService - } - return nil -} - func (x *BundleDetailResponseV2) GetMsg() string { if x != nil { return x.Msg @@ -943,48 +1720,50 @@ type OrderRecord struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - BundleUuid string `protobuf:"bytes,2,opt,name=bundleUuid,proto3" json:"bundleUuid"` - CustomerID string `protobuf:"bytes,3,opt,name=customerID,proto3" json:"customerID"` - CustomerNum string `protobuf:"bytes,4,opt,name=customerNum,proto3" json:"customerNum"` - CustomerName string `protobuf:"bytes,5,opt,name=customerName,proto3" json:"customerName"` - Amount float32 `protobuf:"fixed32,6,opt,name=amount,proto3" json:"amount"` - AmountType int64 `protobuf:"varint,7,opt,name=amountType,proto3" json:"amountType"` - SignContract string `protobuf:"bytes,8,opt,name=signContract,proto3" json:"signContract"` - Signature string `protobuf:"bytes,9,opt,name=signature,proto3" json:"signature"` - SignedTime string `protobuf:"bytes,10,opt,name=signedTime,proto3" json:"signedTime"` - PayType int64 `protobuf:"varint,11,opt,name=payType,proto3" json:"payType"` - PayTime string `protobuf:"bytes,12,opt,name=payTime,proto3" json:"payTime"` - CheckoutSessionId string `protobuf:"bytes,13,opt,name=checkoutSessionId,proto3" json:"checkoutSessionId"` - CheckoutSessionUrl string `protobuf:"bytes,14,opt,name=checkoutSessionUrl,proto3" json:"checkoutSessionUrl"` - Status int64 `protobuf:"varint,15,opt,name=status,proto3" json:"status"` - OrderNo string `protobuf:"bytes,16,opt,name=orderNo,proto3" json:"orderNo"` - BundleName string `protobuf:"bytes,17,opt,name=bundleName,proto3" json:"bundleName"` - ContractNo string `protobuf:"bytes,18,opt,name=contractNo,proto3" json:"contractNo"` - ValueAddBundleUuid string `protobuf:"bytes,19,opt,name=valueAddBundleUuid,proto3" json:"valueAddBundleUuid"` //增值套餐UUID - ValueAddBundleAmount float32 `protobuf:"fixed32,20,opt,name=valueAddBundleAmount,proto3" json:"valueAddBundleAmount"` //增值套餐金额 - ValueAddOriginalPrice float32 `protobuf:"fixed32,21,opt,name=valueAddOriginalPrice,proto3" json:"valueAddOriginalPrice"` //原单价 - ValueAddDiscountPrice float32 `protobuf:"fixed32,22,opt,name=valueAddDiscountPrice,proto3" json:"valueAddDiscountPrice"` //优惠单价 - ValueAddSavedAmount float32 `protobuf:"fixed32,23,opt,name=valueAddSavedAmount,proto3" json:"valueAddSavedAmount"` //节省金额 - Num int32 `protobuf:"varint,24,opt,name=num,proto3" json:"num"` - TotalAmount float32 `protobuf:"fixed32,25,opt,name=totalAmount,proto3" json:"totalAmount"` //总金额 - Sex string `protobuf:"bytes,26,opt,name=sex,proto3" json:"sex"` - Nationality string `protobuf:"bytes,27,opt,name=nationality,proto3" json:"nationality"` - CertificatePicture string `protobuf:"bytes,28,opt,name=certificatePicture,proto3" json:"certificatePicture"` - PlaceOfResidence string `protobuf:"bytes,29,opt,name=placeOfResidence,proto3" json:"placeOfResidence"` - GroupPhoto string `protobuf:"bytes,30,opt,name=groupPhoto,proto3" json:"groupPhoto"` - BundleCommonUid string `protobuf:"bytes,31,opt,name=bundleCommonUid,proto3" json:"bundleCommonUid"` - AddBundleCommonUid string `protobuf:"bytes,32,opt,name=addBundleCommonUid,proto3" json:"addBundleCommonUid"` - FinancialConfirmation int32 `protobuf:"varint,33,opt,name=financialConfirmation,proto3" json:"financialConfirmation"` - TelNum string `protobuf:"bytes,34,opt,name=telNum,proto3" json:"telNum"` - Language string `protobuf:"bytes,35,opt,name=language,proto3" json:"language"` - PriceOptionsInfo []*PriceOptionsInfo `protobuf:"bytes,36,rep,name=priceOptionsInfo,proto3" json:"priceOptionsInfo"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + BundleUuid string `protobuf:"bytes,2,opt,name=bundleUuid,proto3" json:"bundleUuid,omitempty"` + CustomerID string `protobuf:"bytes,3,opt,name=customerID,proto3" json:"customerID,omitempty"` + CustomerNum string `protobuf:"bytes,4,opt,name=customerNum,proto3" json:"customerNum,omitempty"` + CustomerName string `protobuf:"bytes,5,opt,name=customerName,proto3" json:"customerName,omitempty"` + Amount float32 `protobuf:"fixed32,6,opt,name=amount,proto3" json:"amount,omitempty"` + AmountType int64 `protobuf:"varint,7,opt,name=amountType,proto3" json:"amountType,omitempty"` + SignContract string `protobuf:"bytes,8,opt,name=signContract,proto3" json:"signContract,omitempty"` + Signature string `protobuf:"bytes,9,opt,name=signature,proto3" json:"signature,omitempty"` + SignedTime string `protobuf:"bytes,10,opt,name=signedTime,proto3" json:"signedTime,omitempty"` + PayType int64 `protobuf:"varint,11,opt,name=payType,proto3" json:"payType,omitempty"` + PayTime string `protobuf:"bytes,12,opt,name=payTime,proto3" json:"payTime,omitempty"` + CheckoutSessionId string `protobuf:"bytes,13,opt,name=checkoutSessionId,proto3" json:"checkoutSessionId,omitempty"` + CheckoutSessionUrl string `protobuf:"bytes,14,opt,name=checkoutSessionUrl,proto3" json:"checkoutSessionUrl,omitempty"` + Status int64 `protobuf:"varint,15,opt,name=status,proto3" json:"status,omitempty"` + OrderNo string `protobuf:"bytes,16,opt,name=orderNo,proto3" json:"orderNo,omitempty"` + BundleName string `protobuf:"bytes,17,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + ContractNo string `protobuf:"bytes,18,opt,name=contractNo,proto3" json:"contractNo,omitempty"` + ValueAddBundleUuid string `protobuf:"bytes,19,opt,name=valueAddBundleUuid,proto3" json:"valueAddBundleUuid,omitempty"` //增值套餐UUID + ValueAddBundleAmount float32 `protobuf:"fixed32,20,opt,name=valueAddBundleAmount,proto3" json:"valueAddBundleAmount,omitempty"` //增值套餐金额 + ValueAddOriginalPrice float32 `protobuf:"fixed32,21,opt,name=valueAddOriginalPrice,proto3" json:"valueAddOriginalPrice,omitempty"` //原单价 + ValueAddDiscountPrice float32 `protobuf:"fixed32,22,opt,name=valueAddDiscountPrice,proto3" json:"valueAddDiscountPrice,omitempty"` //优惠单价 + ValueAddSavedAmount float32 `protobuf:"fixed32,23,opt,name=valueAddSavedAmount,proto3" json:"valueAddSavedAmount,omitempty"` //节省金额 + Num int32 `protobuf:"varint,24,opt,name=num,proto3" json:"num,omitempty"` + TotalAmount float32 `protobuf:"fixed32,25,opt,name=totalAmount,proto3" json:"totalAmount,omitempty"` //总金额 + Sex string `protobuf:"bytes,26,opt,name=sex,proto3" json:"sex,omitempty"` + Nationality string `protobuf:"bytes,27,opt,name=nationality,proto3" json:"nationality,omitempty"` + CertificatePicture string `protobuf:"bytes,28,opt,name=certificatePicture,proto3" json:"certificatePicture,omitempty"` + PlaceOfResidence string `protobuf:"bytes,29,opt,name=placeOfResidence,proto3" json:"placeOfResidence,omitempty"` + GroupPhoto string `protobuf:"bytes,30,opt,name=groupPhoto,proto3" json:"groupPhoto,omitempty"` + BundleCommonUid string `protobuf:"bytes,31,opt,name=bundleCommonUid,proto3" json:"bundleCommonUid,omitempty"` + AddBundleCommonUid string `protobuf:"bytes,32,opt,name=addBundleCommonUid,proto3" json:"addBundleCommonUid,omitempty"` + FinancialConfirmation int32 `protobuf:"varint,33,opt,name=financialConfirmation,proto3" json:"financialConfirmation,omitempty"` + TelNum string `protobuf:"bytes,34,opt,name=telNum,proto3" json:"telNum,omitempty"` + Language string `protobuf:"bytes,35,opt,name=language,proto3" json:"language,omitempty"` + PriceOptionsInfo []*PriceOptionsInfo `protobuf:"bytes,36,rep,name=priceOptionsInfo,proto3" json:"priceOptionsInfo,omitempty"` + ExpirationTime string `protobuf:"bytes,37,opt,name=expirationTime,proto3" json:"expirationTime,omitempty"` + Snapshot string `protobuf:"bytes,38,opt,name=snapshot,proto3" json:"snapshot,omitempty"` } func (x *OrderRecord) Reset() { *x = OrderRecord{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[12] + mi := &file_pb_bundle_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -997,7 +1776,7 @@ func (x *OrderRecord) String() string { func (*OrderRecord) ProtoMessage() {} func (x *OrderRecord) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[12] + mi := &file_pb_bundle_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1010,7 +1789,7 @@ func (x *OrderRecord) ProtoReflect() protoreflect.Message { // Deprecated: Use OrderRecord.ProtoReflect.Descriptor instead. func (*OrderRecord) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{12} + return file_pb_bundle_proto_rawDescGZIP(), []int{19} } func (x *OrderRecord) GetUuid() string { @@ -1265,19 +2044,273 @@ func (x *OrderRecord) GetPriceOptionsInfo() []*PriceOptionsInfo { return nil } +func (x *OrderRecord) GetExpirationTime() string { + if x != nil { + return x.ExpirationTime + } + return "" +} + +func (x *OrderRecord) GetSnapshot() string { + if x != nil { + return x.Snapshot + } + return "" +} + +type OrderAddRecord struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BundleUuid string `protobuf:"bytes,1,opt,name=bundleUuid,proto3" json:"bundleUuid,omitempty"` + AddPriceOptionsList []*AddPriceOptionsInfo `protobuf:"bytes,2,rep,name=addPriceOptionsList,proto3" json:"addPriceOptionsList,omitempty"` + Language string `protobuf:"bytes,3,opt,name=language,proto3" json:"language,omitempty"` + CustomerID string `protobuf:"bytes,4,opt,name=customerID,proto3" json:"customerID,omitempty"` + CustomerNum string `protobuf:"bytes,5,opt,name=customerNum,proto3" json:"customerNum,omitempty"` + CustomerName string `protobuf:"bytes,6,opt,name=customerName,proto3" json:"customerName,omitempty"` + // string valueAddUUID = 12 [json_name = "valueAddUUID"]; + Source int32 `protobuf:"varint,7,opt,name=source,proto3" json:"source,omitempty"` + SignContract string `protobuf:"bytes,8,opt,name=signContract,proto3" json:"signContract,omitempty"` + Signature string `protobuf:"bytes,9,opt,name=signature,proto3" json:"signature,omitempty"` + SignedTime string `protobuf:"bytes,10,opt,name=signedTime,proto3" json:"signedTime,omitempty"` + ExpirationDate string `protobuf:"bytes,11,opt,name=expirationDate,proto3" json:"expirationDate,omitempty"` + Snapshot string `protobuf:"bytes,38,opt,name=snapshot,proto3" json:"snapshot,omitempty"` + OrderUUID string `protobuf:"bytes,39,opt,name=orderUUID,proto3" json:"orderUUID,omitempty"` +} + +func (x *OrderAddRecord) Reset() { + *x = OrderAddRecord{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrderAddRecord) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrderAddRecord) ProtoMessage() {} + +func (x *OrderAddRecord) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrderAddRecord.ProtoReflect.Descriptor instead. +func (*OrderAddRecord) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{20} +} + +func (x *OrderAddRecord) GetBundleUuid() string { + if x != nil { + return x.BundleUuid + } + return "" +} + +func (x *OrderAddRecord) GetAddPriceOptionsList() []*AddPriceOptionsInfo { + if x != nil { + return x.AddPriceOptionsList + } + return nil +} + +func (x *OrderAddRecord) GetLanguage() string { + if x != nil { + return x.Language + } + return "" +} + +func (x *OrderAddRecord) GetCustomerID() string { + if x != nil { + return x.CustomerID + } + return "" +} + +func (x *OrderAddRecord) GetCustomerNum() string { + if x != nil { + return x.CustomerNum + } + return "" +} + +func (x *OrderAddRecord) GetCustomerName() string { + if x != nil { + return x.CustomerName + } + return "" +} + +func (x *OrderAddRecord) GetSource() int32 { + if x != nil { + return x.Source + } + return 0 +} + +func (x *OrderAddRecord) GetSignContract() string { + if x != nil { + return x.SignContract + } + return "" +} + +func (x *OrderAddRecord) GetSignature() string { + if x != nil { + return x.Signature + } + return "" +} + +func (x *OrderAddRecord) GetSignedTime() string { + if x != nil { + return x.SignedTime + } + return "" +} + +func (x *OrderAddRecord) GetExpirationDate() string { + if x != nil { + return x.ExpirationDate + } + return "" +} + +func (x *OrderAddRecord) GetSnapshot() string { + if x != nil { + return x.Snapshot + } + return "" +} + +func (x *OrderAddRecord) GetOrderUUID() string { + if x != nil { + return x.OrderUUID + } + return "" +} + +type AddPriceOptionsInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + ValueUid string `protobuf:"bytes,2,opt,name=valueUid,proto3" json:"valueUid,omitempty"` + ServiceType int32 `protobuf:"varint,3,opt,name=serviceType,proto3" json:"serviceType,omitempty"` + CurrencyType int64 `protobuf:"varint,4,opt,name=currencyType,proto3" json:"currencyType,omitempty"` + Amount float32 `protobuf:"fixed32,5,opt,name=amount,proto3" json:"amount,omitempty"` + Num int32 `protobuf:"varint,6,opt,name=num,proto3" json:"num,omitempty"` + Unit string `protobuf:"bytes,7,opt,name=unit,proto3" json:"unit,omitempty"` +} + +func (x *AddPriceOptionsInfo) Reset() { + *x = AddPriceOptionsInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddPriceOptionsInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddPriceOptionsInfo) ProtoMessage() {} + +func (x *AddPriceOptionsInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddPriceOptionsInfo.ProtoReflect.Descriptor instead. +func (*AddPriceOptionsInfo) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{21} +} + +func (x *AddPriceOptionsInfo) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *AddPriceOptionsInfo) GetValueUid() string { + if x != nil { + return x.ValueUid + } + return "" +} + +func (x *AddPriceOptionsInfo) GetServiceType() int32 { + if x != nil { + return x.ServiceType + } + return 0 +} + +func (x *AddPriceOptionsInfo) GetCurrencyType() int64 { + if x != nil { + return x.CurrencyType + } + return 0 +} + +func (x *AddPriceOptionsInfo) GetAmount() float32 { + if x != nil { + return x.Amount + } + return 0 +} + +func (x *AddPriceOptionsInfo) GetNum() int32 { + if x != nil { + return x.Num + } + return 0 +} + +func (x *AddPriceOptionsInfo) GetUnit() string { + if x != nil { + return x.Unit + } + return "" +} + type PriceOptionsInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` - ValueUid string `protobuf:"bytes,2,opt,name=valueUid,proto3" json:"valueUid"` + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + ValueUid string `protobuf:"bytes,2,opt,name=valueUid,proto3" json:"valueUid,omitempty"` + Num int32 `protobuf:"varint,3,opt,name=num,proto3" json:"num,omitempty"` } func (x *PriceOptionsInfo) Reset() { *x = PriceOptionsInfo{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[13] + mi := &file_pb_bundle_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1290,7 +2323,7 @@ func (x *PriceOptionsInfo) String() string { func (*PriceOptionsInfo) ProtoMessage() {} func (x *PriceOptionsInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[13] + mi := &file_pb_bundle_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1303,7 +2336,7 @@ func (x *PriceOptionsInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use PriceOptionsInfo.ProtoReflect.Descriptor instead. func (*PriceOptionsInfo) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{13} + return file_pb_bundle_proto_rawDescGZIP(), []int{22} } func (x *PriceOptionsInfo) GetId() int32 { @@ -1320,33 +2353,40 @@ func (x *PriceOptionsInfo) GetValueUid() string { return "" } +func (x *PriceOptionsInfo) GetNum() int32 { + if x != nil { + return x.Num + } + return 0 +} + type OrderRecordsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page"` - PageSize int32 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize"` - CustomerNum string `protobuf:"bytes,3,opt,name=customerNum,proto3" json:"customerNum"` - CustomerName string `protobuf:"bytes,4,opt,name=customerName,proto3" json:"customerName"` - BundleUUID string `protobuf:"bytes,5,opt,name=bundleUUID,proto3" json:"bundleUUID"` - OrderNo string `protobuf:"bytes,6,opt,name=orderNo,proto3" json:"orderNo"` - Status int64 `protobuf:"varint,7,opt,name=status,proto3" json:"status"` - BundleName string `protobuf:"bytes,8,opt,name=bundleName,proto3" json:"bundleName"` - StartSignedTime string `protobuf:"bytes,9,opt,name=startSignedTime,proto3" json:"startSignedTime"` - EndSignedTime string `protobuf:"bytes,10,opt,name=endSignedTime,proto3" json:"endSignedTime"` - StartPayTime string `protobuf:"bytes,11,opt,name=startPayTime,proto3" json:"startPayTime"` - EndPayTime string `protobuf:"bytes,12,opt,name=endPayTime,proto3" json:"endPayTime"` - CustomerID string `protobuf:"bytes,13,opt,name=customerID,proto3" json:"customerID"` - IsHaveValueAdd int64 `protobuf:"varint,14,opt,name=isHaveValueAdd,proto3" json:"isHaveValueAdd"` //有无增值选项 - FinancialConfirmation int32 `protobuf:"varint,15,opt,name=financialConfirmation,proto3" json:"financialConfirmation"` - TelNum string `protobuf:"bytes,16,opt,name=telNum,proto3" json:"telNum"` + Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize,omitempty"` + CustomerNum string `protobuf:"bytes,3,opt,name=customerNum,proto3" json:"customerNum,omitempty"` + CustomerName string `protobuf:"bytes,4,opt,name=customerName,proto3" json:"customerName,omitempty"` + BundleUUID string `protobuf:"bytes,5,opt,name=bundleUUID,proto3" json:"bundleUUID,omitempty"` + OrderNo string `protobuf:"bytes,6,opt,name=orderNo,proto3" json:"orderNo,omitempty"` + Status int64 `protobuf:"varint,7,opt,name=status,proto3" json:"status,omitempty"` + BundleName string `protobuf:"bytes,8,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + StartSignedTime string `protobuf:"bytes,9,opt,name=startSignedTime,proto3" json:"startSignedTime,omitempty"` + EndSignedTime string `protobuf:"bytes,10,opt,name=endSignedTime,proto3" json:"endSignedTime,omitempty"` + StartPayTime string `protobuf:"bytes,11,opt,name=startPayTime,proto3" json:"startPayTime,omitempty"` + EndPayTime string `protobuf:"bytes,12,opt,name=endPayTime,proto3" json:"endPayTime,omitempty"` + CustomerID string `protobuf:"bytes,13,opt,name=customerID,proto3" json:"customerID,omitempty"` + IsHaveValueAdd int64 `protobuf:"varint,14,opt,name=isHaveValueAdd,proto3" json:"isHaveValueAdd,omitempty"` //有无增值选项 + FinancialConfirmation int32 `protobuf:"varint,15,opt,name=financialConfirmation,proto3" json:"financialConfirmation,omitempty"` + TelNum string `protobuf:"bytes,16,opt,name=telNum,proto3" json:"telNum,omitempty"` } func (x *OrderRecordsRequest) Reset() { *x = OrderRecordsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[14] + mi := &file_pb_bundle_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1359,7 +2399,7 @@ func (x *OrderRecordsRequest) String() string { func (*OrderRecordsRequest) ProtoMessage() {} func (x *OrderRecordsRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[14] + mi := &file_pb_bundle_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1372,7 +2412,7 @@ func (x *OrderRecordsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use OrderRecordsRequest.ProtoReflect.Descriptor instead. func (*OrderRecordsRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{14} + return file_pb_bundle_proto_rawDescGZIP(), []int{23} } func (x *OrderRecordsRequest) GetPage() int32 { @@ -1492,14 +2532,14 @@ type OrderRecordsResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - OrderRecords []*OrderRecord `protobuf:"bytes,1,rep,name=orderRecords,proto3" json:"orderRecords"` - Total int32 `protobuf:"varint,2,opt,name=total,proto3" json:"total"` + OrderRecords []*OrderRecord `protobuf:"bytes,1,rep,name=orderRecords,proto3" json:"orderRecords,omitempty"` + Total int32 `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"` } func (x *OrderRecordsResponse) Reset() { *x = OrderRecordsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[15] + mi := &file_pb_bundle_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1512,7 +2552,7 @@ func (x *OrderRecordsResponse) String() string { func (*OrderRecordsResponse) ProtoMessage() {} func (x *OrderRecordsResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[15] + mi := &file_pb_bundle_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1525,7 +2565,7 @@ func (x *OrderRecordsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use OrderRecordsResponse.ProtoReflect.Descriptor instead. func (*OrderRecordsResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{15} + return file_pb_bundle_proto_rawDescGZIP(), []int{24} } func (x *OrderRecordsResponse) GetOrderRecords() []*OrderRecord { @@ -1547,15 +2587,16 @@ type OrderRecordsDetailRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - OrderNo string `protobuf:"bytes,2,opt,name=orderNo,proto3" json:"orderNo"` - CustomerID string `protobuf:"bytes,3,opt,name=customerID,proto3" json:"customerID"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + OrderNo string `protobuf:"bytes,2,opt,name=orderNo,proto3" json:"orderNo,omitempty"` + CustomerID string `protobuf:"bytes,3,opt,name=customerID,proto3" json:"customerID,omitempty"` + BundleUUID string `protobuf:"bytes,4,opt,name=bundleUUID,proto3" json:"bundleUUID,omitempty"` } func (x *OrderRecordsDetailRequest) Reset() { *x = OrderRecordsDetailRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[16] + mi := &file_pb_bundle_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1568,7 +2609,7 @@ func (x *OrderRecordsDetailRequest) String() string { func (*OrderRecordsDetailRequest) ProtoMessage() {} func (x *OrderRecordsDetailRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[16] + mi := &file_pb_bundle_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1581,7 +2622,7 @@ func (x *OrderRecordsDetailRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use OrderRecordsDetailRequest.ProtoReflect.Descriptor instead. func (*OrderRecordsDetailRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{16} + return file_pb_bundle_proto_rawDescGZIP(), []int{25} } func (x *OrderRecordsDetailRequest) GetUuid() string { @@ -1605,19 +2646,26 @@ func (x *OrderRecordsDetailRequest) GetCustomerID() string { return "" } +func (x *OrderRecordsDetailRequest) GetBundleUUID() string { + if x != nil { + return x.BundleUUID + } + return "" +} + type OrderRecordsDetailResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - OrderRecord *OrderRecord `protobuf:"bytes,1,opt,name=orderRecord,proto3" json:"orderRecord"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg"` + OrderRecord *OrderRecord `protobuf:"bytes,1,opt,name=orderRecord,proto3" json:"orderRecord,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` } func (x *OrderRecordsDetailResponse) Reset() { *x = OrderRecordsDetailResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[17] + mi := &file_pb_bundle_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1630,7 +2678,7 @@ func (x *OrderRecordsDetailResponse) String() string { func (*OrderRecordsDetailResponse) ProtoMessage() {} func (x *OrderRecordsDetailResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[17] + mi := &file_pb_bundle_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1643,7 +2691,7 @@ func (x *OrderRecordsDetailResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use OrderRecordsDetailResponse.ProtoReflect.Descriptor instead. func (*OrderRecordsDetailResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{17} + return file_pb_bundle_proto_rawDescGZIP(), []int{26} } func (x *OrderRecordsDetailResponse) GetOrderRecord() *OrderRecord { @@ -1666,22 +2714,22 @@ type ValueAddBundleProfile struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - Num int32 `protobuf:"varint,2,opt,name=num,proto3" json:"num"` - OriginalPrice float32 `protobuf:"fixed32,3,opt,name=originalPrice,proto3" json:"originalPrice"` - DiscountPrice float32 `protobuf:"fixed32,4,opt,name=discountPrice,proto3" json:"discountPrice"` - TotalPrice float32 `protobuf:"fixed32,6,opt,name=totalPrice,proto3" json:"totalPrice"` - SavedAmount float32 `protobuf:"fixed32,7,opt,name=savedAmount,proto3" json:"savedAmount"` - DiscountPriceStatus bool `protobuf:"varint,8,opt,name=discountPriceStatus,proto3" json:"discountPriceStatus"` - Choose bool `protobuf:"varint,9,opt,name=choose,proto3" json:"choose"` - Status bool `protobuf:"varint,10,opt,name=status,proto3" json:"status"` - AddBundleCommonUid string `protobuf:"bytes,11,opt,name=addBundleCommonUid,proto3" json:"addBundleCommonUid"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + Num int32 `protobuf:"varint,2,opt,name=num,proto3" json:"num,omitempty"` + OriginalPrice float32 `protobuf:"fixed32,3,opt,name=originalPrice,proto3" json:"originalPrice,omitempty"` + DiscountPrice float32 `protobuf:"fixed32,4,opt,name=discountPrice,proto3" json:"discountPrice,omitempty"` + TotalPrice float32 `protobuf:"fixed32,6,opt,name=totalPrice,proto3" json:"totalPrice,omitempty"` + SavedAmount float32 `protobuf:"fixed32,7,opt,name=savedAmount,proto3" json:"savedAmount,omitempty"` + DiscountPriceStatus bool `protobuf:"varint,8,opt,name=discountPriceStatus,proto3" json:"discountPriceStatus,omitempty"` + Choose bool `protobuf:"varint,9,opt,name=choose,proto3" json:"choose,omitempty"` + Status bool `protobuf:"varint,10,opt,name=status,proto3" json:"status,omitempty"` + AddBundleCommonUid string `protobuf:"bytes,11,opt,name=addBundleCommonUid,proto3" json:"addBundleCommonUid,omitempty"` } func (x *ValueAddBundleProfile) Reset() { *x = ValueAddBundleProfile{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[18] + mi := &file_pb_bundle_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1694,7 +2742,7 @@ func (x *ValueAddBundleProfile) String() string { func (*ValueAddBundleProfile) ProtoMessage() {} func (x *ValueAddBundleProfile) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[18] + mi := &file_pb_bundle_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1707,7 +2755,7 @@ func (x *ValueAddBundleProfile) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddBundleProfile.ProtoReflect.Descriptor instead. func (*ValueAddBundleProfile) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{18} + return file_pb_bundle_proto_rawDescGZIP(), []int{27} } func (x *ValueAddBundleProfile) GetUuid() string { @@ -1785,13 +2833,13 @@ type CreateValueAddBundleRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Num int32 `protobuf:"varint,1,opt,name=num,proto3" json:"num"` + Num int32 `protobuf:"varint,1,opt,name=num,proto3" json:"num,omitempty"` } func (x *CreateValueAddBundleRequest) Reset() { *x = CreateValueAddBundleRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[19] + mi := &file_pb_bundle_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1804,7 +2852,7 @@ func (x *CreateValueAddBundleRequest) String() string { func (*CreateValueAddBundleRequest) ProtoMessage() {} func (x *CreateValueAddBundleRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[19] + mi := &file_pb_bundle_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1817,7 +2865,7 @@ func (x *CreateValueAddBundleRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateValueAddBundleRequest.ProtoReflect.Descriptor instead. func (*CreateValueAddBundleRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{19} + return file_pb_bundle_proto_rawDescGZIP(), []int{28} } func (x *CreateValueAddBundleRequest) GetNum() int32 { @@ -1832,16 +2880,16 @@ type CreateValueAddBundleResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - TotalPrice float32 `protobuf:"fixed32,2,opt,name=totalPrice,proto3" json:"totalPrice"` - SavedAmount float32 `protobuf:"fixed32,3,opt,name=savedAmount,proto3" json:"savedAmount"` - Msg string `protobuf:"bytes,4,opt,name=msg,proto3" json:"msg"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + TotalPrice float32 `protobuf:"fixed32,2,opt,name=totalPrice,proto3" json:"totalPrice,omitempty"` + SavedAmount float32 `protobuf:"fixed32,3,opt,name=savedAmount,proto3" json:"savedAmount,omitempty"` + Msg string `protobuf:"bytes,4,opt,name=msg,proto3" json:"msg,omitempty"` } func (x *CreateValueAddBundleResponse) Reset() { *x = CreateValueAddBundleResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[20] + mi := &file_pb_bundle_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1854,7 +2902,7 @@ func (x *CreateValueAddBundleResponse) String() string { func (*CreateValueAddBundleResponse) ProtoMessage() {} func (x *CreateValueAddBundleResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[20] + mi := &file_pb_bundle_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1867,7 +2915,7 @@ func (x *CreateValueAddBundleResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateValueAddBundleResponse.ProtoReflect.Descriptor instead. func (*CreateValueAddBundleResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{20} + return file_pb_bundle_proto_rawDescGZIP(), []int{29} } func (x *CreateValueAddBundleResponse) GetUuid() string { @@ -1904,15 +2952,15 @@ type ValueAddBundleListRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId"` - BundleUuid string `protobuf:"bytes,2,opt,name=bundleUuid,proto3" json:"bundleUuid"` - PriceType int32 `protobuf:"varint,3,opt,name=priceType,proto3" json:"priceType"` + UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + BundleUuid string `protobuf:"bytes,2,opt,name=bundleUuid,proto3" json:"bundleUuid,omitempty"` + PriceType int32 `protobuf:"varint,3,opt,name=priceType,proto3" json:"priceType,omitempty"` } func (x *ValueAddBundleListRequest) Reset() { *x = ValueAddBundleListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[21] + mi := &file_pb_bundle_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1925,7 +2973,7 @@ func (x *ValueAddBundleListRequest) String() string { func (*ValueAddBundleListRequest) ProtoMessage() {} func (x *ValueAddBundleListRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[21] + mi := &file_pb_bundle_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1938,7 +2986,7 @@ func (x *ValueAddBundleListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddBundleListRequest.ProtoReflect.Descriptor instead. func (*ValueAddBundleListRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{21} + return file_pb_bundle_proto_rawDescGZIP(), []int{30} } func (x *ValueAddBundleListRequest) GetUserId() int32 { @@ -1967,20 +3015,20 @@ type ValueAddBundleListResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - OriginalPrice float32 `protobuf:"fixed32,1,opt,name=originalPrice,proto3" json:"originalPrice"` - Total int32 `protobuf:"varint,2,opt,name=total,proto3" json:"total"` - Data []*ValueAddBundleProfile `protobuf:"bytes,3,rep,name=data,proto3" json:"data"` - Status bool `protobuf:"varint,4,opt,name=status,proto3" json:"status"` - Num int32 `protobuf:"varint,5,opt,name=num,proto3" json:"num"` - Price float32 `protobuf:"fixed32,6,opt,name=price,proto3" json:"price"` - OrderNo bool `protobuf:"varint,7,opt,name=orderNo,proto3" json:"orderNo"` - Msg string `protobuf:"bytes,8,opt,name=msg,proto3" json:"msg"` + OriginalPrice float32 `protobuf:"fixed32,1,opt,name=originalPrice,proto3" json:"originalPrice,omitempty"` + Total int32 `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"` + Data []*ValueAddBundleProfile `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` + Status bool `protobuf:"varint,4,opt,name=status,proto3" json:"status,omitempty"` + Num int32 `protobuf:"varint,5,opt,name=num,proto3" json:"num,omitempty"` + Price float32 `protobuf:"fixed32,6,opt,name=price,proto3" json:"price,omitempty"` + OrderNo bool `protobuf:"varint,7,opt,name=orderNo,proto3" json:"orderNo,omitempty"` + Msg string `protobuf:"bytes,8,opt,name=msg,proto3" json:"msg,omitempty"` } func (x *ValueAddBundleListResponse) Reset() { *x = ValueAddBundleListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[22] + mi := &file_pb_bundle_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1993,7 +3041,7 @@ func (x *ValueAddBundleListResponse) String() string { func (*ValueAddBundleListResponse) ProtoMessage() {} func (x *ValueAddBundleListResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[22] + mi := &file_pb_bundle_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2006,7 +3054,7 @@ func (x *ValueAddBundleListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddBundleListResponse.ProtoReflect.Descriptor instead. func (*ValueAddBundleListResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{22} + return file_pb_bundle_proto_rawDescGZIP(), []int{31} } func (x *ValueAddBundleListResponse) GetOriginalPrice() float32 { @@ -2070,13 +3118,13 @@ type ValueAddBundleDetailRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` } func (x *ValueAddBundleDetailRequest) Reset() { *x = ValueAddBundleDetailRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[23] + mi := &file_pb_bundle_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2089,7 +3137,7 @@ func (x *ValueAddBundleDetailRequest) String() string { func (*ValueAddBundleDetailRequest) ProtoMessage() {} func (x *ValueAddBundleDetailRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[23] + mi := &file_pb_bundle_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2102,7 +3150,7 @@ func (x *ValueAddBundleDetailRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddBundleDetailRequest.ProtoReflect.Descriptor instead. func (*ValueAddBundleDetailRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{23} + return file_pb_bundle_proto_rawDescGZIP(), []int{32} } func (x *ValueAddBundleDetailRequest) GetUuid() string { @@ -2117,15 +3165,15 @@ type ValueAddBundleDetailResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Data *ValueAddBundleProfile `protobuf:"bytes,1,opt,name=data,proto3" json:"data"` - PayTime string `protobuf:"bytes,2,opt,name=payTime,proto3" json:"payTime"` - Msg string `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg"` + Data *ValueAddBundleProfile `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + PayTime string `protobuf:"bytes,2,opt,name=payTime,proto3" json:"payTime,omitempty"` + Msg string `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"` } func (x *ValueAddBundleDetailResponse) Reset() { *x = ValueAddBundleDetailResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[24] + mi := &file_pb_bundle_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2138,7 +3186,7 @@ func (x *ValueAddBundleDetailResponse) String() string { func (*ValueAddBundleDetailResponse) ProtoMessage() {} func (x *ValueAddBundleDetailResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[24] + mi := &file_pb_bundle_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2151,7 +3199,7 @@ func (x *ValueAddBundleDetailResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddBundleDetailResponse.ProtoReflect.Descriptor instead. func (*ValueAddBundleDetailResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{24} + return file_pb_bundle_proto_rawDescGZIP(), []int{33} } func (x *ValueAddBundleDetailResponse) GetData() *ValueAddBundleProfile { @@ -2180,13 +3228,13 @@ type FinancialConfirmationRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - OrderNo string `protobuf:"bytes,1,opt,name=orderNo,proto3" json:"orderNo"` + OrderNo string `protobuf:"bytes,1,opt,name=orderNo,proto3" json:"orderNo,omitempty"` } func (x *FinancialConfirmationRequest) Reset() { *x = FinancialConfirmationRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[25] + mi := &file_pb_bundle_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2199,7 +3247,7 @@ func (x *FinancialConfirmationRequest) String() string { func (*FinancialConfirmationRequest) ProtoMessage() {} func (x *FinancialConfirmationRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[25] + mi := &file_pb_bundle_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2212,7 +3260,7 @@ func (x *FinancialConfirmationRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use FinancialConfirmationRequest.ProtoReflect.Descriptor instead. func (*FinancialConfirmationRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{25} + return file_pb_bundle_proto_rawDescGZIP(), []int{34} } func (x *FinancialConfirmationRequest) GetOrderNo() string { @@ -2229,16 +3277,16 @@ type ValueAddService struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - ServiceName string `protobuf:"bytes,2,opt,name=serviceName,proto3" json:"serviceName"` //服务名称 - ServiceType int32 `protobuf:"varint,3,opt,name=serviceType,proto3" json:"serviceType"` - ServiceLang []*ValueAddServiceLang `protobuf:"bytes,4,rep,name=serviceLang,proto3" json:"serviceLang"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + ServiceName string `protobuf:"bytes,2,opt,name=serviceName,proto3" json:"serviceName,omitempty"` //服务名称 + ServiceType int32 `protobuf:"varint,3,opt,name=serviceType,proto3" json:"serviceType,omitempty"` + ServiceLang []*ValueAddServiceLang `protobuf:"bytes,4,rep,name=serviceLang,proto3" json:"serviceLang,omitempty"` } func (x *ValueAddService) Reset() { *x = ValueAddService{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[26] + mi := &file_pb_bundle_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2251,7 +3299,7 @@ func (x *ValueAddService) String() string { func (*ValueAddService) ProtoMessage() {} func (x *ValueAddService) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[26] + mi := &file_pb_bundle_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2264,7 +3312,7 @@ func (x *ValueAddService) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddService.ProtoReflect.Descriptor instead. func (*ValueAddService) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{26} + return file_pb_bundle_proto_rawDescGZIP(), []int{35} } func (x *ValueAddService) GetUuid() string { @@ -2300,23 +3348,23 @@ type ValueAddServiceLang struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - ServiceName string `protobuf:"bytes,2,opt,name=serviceName,proto3" json:"serviceName"` //服务名称 - ServiceType int32 `protobuf:"varint,3,opt,name=serviceType,proto3" json:"serviceType"` - PriceMode int32 `protobuf:"varint,4,opt,name=priceMode,proto3" json:"priceMode"` - OriginalPrice string `protobuf:"bytes,5,opt,name=originalPrice,proto3" json:"originalPrice"` - Unit string `protobuf:"bytes,6,opt,name=unit,proto3" json:"unit"` - PriceType int64 `protobuf:"varint,7,opt,name=priceType,proto3" json:"priceType"` - Language string `protobuf:"bytes,8,opt,name=language,proto3" json:"language"` - CreatedAt string `protobuf:"bytes,9,opt,name=createdAt,proto3" json:"createdAt"` - UpdatedAt string `protobuf:"bytes,10,opt,name=updatedAt,proto3" json:"updatedAt"` - Options []*ValueAddPriceOptions `protobuf:"bytes,12,rep,name=options,proto3" json:"options"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + ServiceName string `protobuf:"bytes,2,opt,name=serviceName,proto3" json:"serviceName,omitempty"` //服务名称 + ServiceType int32 `protobuf:"varint,3,opt,name=serviceType,proto3" json:"serviceType,omitempty"` + PriceMode int32 `protobuf:"varint,4,opt,name=priceMode,proto3" json:"priceMode,omitempty"` + OriginalPrice string `protobuf:"bytes,5,opt,name=originalPrice,proto3" json:"originalPrice,omitempty"` + Unit string `protobuf:"bytes,6,opt,name=unit,proto3" json:"unit,omitempty"` + PriceType int64 `protobuf:"varint,7,opt,name=priceType,proto3" json:"priceType,omitempty"` + Language string `protobuf:"bytes,8,opt,name=language,proto3" json:"language,omitempty"` + CreatedAt string `protobuf:"bytes,9,opt,name=createdAt,proto3" json:"createdAt,omitempty"` + UpdatedAt string `protobuf:"bytes,10,opt,name=updatedAt,proto3" json:"updatedAt,omitempty"` + Options []*ValueAddPriceOptions `protobuf:"bytes,12,rep,name=options,proto3" json:"options,omitempty"` } func (x *ValueAddServiceLang) Reset() { *x = ValueAddServiceLang{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[27] + mi := &file_pb_bundle_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2329,7 +3377,7 @@ func (x *ValueAddServiceLang) String() string { func (*ValueAddServiceLang) ProtoMessage() {} func (x *ValueAddServiceLang) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[27] + mi := &file_pb_bundle_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2342,7 +3390,7 @@ func (x *ValueAddServiceLang) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddServiceLang.ProtoReflect.Descriptor instead. func (*ValueAddServiceLang) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{27} + return file_pb_bundle_proto_rawDescGZIP(), []int{36} } func (x *ValueAddServiceLang) GetUuid() string { @@ -2428,16 +3476,17 @@ type ValueAddPriceOptions struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` - Num int32 `protobuf:"varint,2,opt,name=num,proto3" json:"num"` - Symbol string `protobuf:"bytes,3,opt,name=symbol,proto3" json:"symbol"` - Price string `protobuf:"bytes,4,opt,name=price,proto3" json:"price"` + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Num int32 `protobuf:"varint,2,opt,name=num,proto3" json:"num,omitempty"` + Symbol string `protobuf:"bytes,3,opt,name=symbol,proto3" json:"symbol,omitempty"` + Price string `protobuf:"bytes,4,opt,name=price,proto3" json:"price,omitempty"` + SaveAmount string `protobuf:"bytes,5,opt,name=saveAmount,proto3" json:"saveAmount,omitempty"` } func (x *ValueAddPriceOptions) Reset() { *x = ValueAddPriceOptions{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[28] + mi := &file_pb_bundle_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2450,7 +3499,7 @@ func (x *ValueAddPriceOptions) String() string { func (*ValueAddPriceOptions) ProtoMessage() {} func (x *ValueAddPriceOptions) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[28] + mi := &file_pb_bundle_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2463,7 +3512,7 @@ func (x *ValueAddPriceOptions) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddPriceOptions.ProtoReflect.Descriptor instead. func (*ValueAddPriceOptions) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{28} + return file_pb_bundle_proto_rawDescGZIP(), []int{37} } func (x *ValueAddPriceOptions) GetId() int64 { @@ -2494,22 +3543,29 @@ func (x *ValueAddPriceOptions) GetPrice() string { return "" } +func (x *ValueAddPriceOptions) GetSaveAmount() string { + if x != nil { + return x.SaveAmount + } + return "" +} + // 增值服务列表 type ValueAddServiceListRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page"` - PageSize int32 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize"` - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name"` - Language string `protobuf:"bytes,4,opt,name=language,proto3" json:"language"` + Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + Language string `protobuf:"bytes,4,opt,name=language,proto3" json:"language,omitempty"` } func (x *ValueAddServiceListRequest) Reset() { *x = ValueAddServiceListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[29] + mi := &file_pb_bundle_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2522,7 +3578,7 @@ func (x *ValueAddServiceListRequest) String() string { func (*ValueAddServiceListRequest) ProtoMessage() {} func (x *ValueAddServiceListRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[29] + mi := &file_pb_bundle_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2535,7 +3591,7 @@ func (x *ValueAddServiceListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddServiceListRequest.ProtoReflect.Descriptor instead. func (*ValueAddServiceListRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{29} + return file_pb_bundle_proto_rawDescGZIP(), []int{38} } func (x *ValueAddServiceListRequest) GetPage() int32 { @@ -2571,15 +3627,15 @@ type ValueAddServiceListResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Total int32 `protobuf:"varint,1,opt,name=total,proto3" json:"total"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg"` - ValueAddServiceList []*ValueAddService `protobuf:"bytes,3,rep,name=valueAddServiceList,proto3" json:"valueAddServiceList"` + Total int32 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + ValueAddServiceList []*ValueAddService `protobuf:"bytes,3,rep,name=valueAddServiceList,proto3" json:"valueAddServiceList,omitempty"` } func (x *ValueAddServiceListResponse) Reset() { *x = ValueAddServiceListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[30] + mi := &file_pb_bundle_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2592,7 +3648,7 @@ func (x *ValueAddServiceListResponse) String() string { func (*ValueAddServiceListResponse) ProtoMessage() {} func (x *ValueAddServiceListResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[30] + mi := &file_pb_bundle_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2605,7 +3661,7 @@ func (x *ValueAddServiceListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddServiceListResponse.ProtoReflect.Descriptor instead. func (*ValueAddServiceListResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{30} + return file_pb_bundle_proto_rawDescGZIP(), []int{39} } func (x *ValueAddServiceListResponse) GetTotal() int32 { @@ -2635,14 +3691,14 @@ type ValueAddServiceDetailRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language"` //语言 默认zh-CN, zh-CN zh-TW EN de-DE js-JP + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language,omitempty"` //语言 默认zh-CN, zh-CN zh-TW EN de-DE js-JP } func (x *ValueAddServiceDetailRequest) Reset() { *x = ValueAddServiceDetailRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[31] + mi := &file_pb_bundle_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2655,7 +3711,7 @@ func (x *ValueAddServiceDetailRequest) String() string { func (*ValueAddServiceDetailRequest) ProtoMessage() {} func (x *ValueAddServiceDetailRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[31] + mi := &file_pb_bundle_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2668,7 +3724,7 @@ func (x *ValueAddServiceDetailRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddServiceDetailRequest.ProtoReflect.Descriptor instead. func (*ValueAddServiceDetailRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{31} + return file_pb_bundle_proto_rawDescGZIP(), []int{40} } func (x *ValueAddServiceDetailRequest) GetUuid() string { @@ -2690,14 +3746,14 @@ type ValueAddServiceDetailResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg"` - ValueAddServiceLang *ValueAddServiceLang `protobuf:"bytes,2,opt,name=valueAddServiceLang,proto3" json:"valueAddServiceLang"` + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` + ValueAddService *ValueAddService `protobuf:"bytes,2,opt,name=valueAddService,proto3" json:"valueAddService,omitempty"` } func (x *ValueAddServiceDetailResponse) Reset() { *x = ValueAddServiceDetailResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[32] + mi := &file_pb_bundle_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2710,7 +3766,7 @@ func (x *ValueAddServiceDetailResponse) String() string { func (*ValueAddServiceDetailResponse) ProtoMessage() {} func (x *ValueAddServiceDetailResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[32] + mi := &file_pb_bundle_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2723,7 +3779,7 @@ func (x *ValueAddServiceDetailResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueAddServiceDetailResponse.ProtoReflect.Descriptor instead. func (*ValueAddServiceDetailResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{32} + return file_pb_bundle_proto_rawDescGZIP(), []int{41} } func (x *ValueAddServiceDetailResponse) GetMsg() string { @@ -2733,34 +3789,153 @@ func (x *ValueAddServiceDetailResponse) GetMsg() string { return "" } -func (x *ValueAddServiceDetailResponse) GetValueAddServiceLang() *ValueAddServiceLang { +func (x *ValueAddServiceDetailResponse) GetValueAddService() *ValueAddService { if x != nil { - return x.ValueAddServiceLang + return x.ValueAddService } return nil } +type CalculatePriceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + Num int32 `protobuf:"varint,2,opt,name=num,proto3" json:"num,omitempty"` + Language string `protobuf:"bytes,3,opt,name=language,proto3" json:"language,omitempty"` +} + +func (x *CalculatePriceRequest) Reset() { + *x = CalculatePriceRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CalculatePriceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CalculatePriceRequest) ProtoMessage() {} + +func (x *CalculatePriceRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CalculatePriceRequest.ProtoReflect.Descriptor instead. +func (*CalculatePriceRequest) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{42} +} + +func (x *CalculatePriceRequest) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +func (x *CalculatePriceRequest) GetNum() int32 { + if x != nil { + return x.Num + } + return 0 +} + +func (x *CalculatePriceRequest) GetLanguage() string { + if x != nil { + return x.Language + } + return "" +} + +type CalculatePriceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` + Price float32 `protobuf:"fixed32,2,opt,name=price,proto3" json:"price,omitempty"` +} + +func (x *CalculatePriceResponse) Reset() { + *x = CalculatePriceResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CalculatePriceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CalculatePriceResponse) ProtoMessage() {} + +func (x *CalculatePriceResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CalculatePriceResponse.ProtoReflect.Descriptor instead. +func (*CalculatePriceResponse) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{43} +} + +func (x *CalculatePriceResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *CalculatePriceResponse) GetPrice() float32 { + if x != nil { + return x.Price + } + return 0 +} + type BundleExtendRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId"` - AccountAdditional uint32 `protobuf:"varint,2,opt,name=accountAdditional,proto3" json:"accountAdditional"` - VideoAdditional uint32 `protobuf:"varint,3,opt,name=videoAdditional,proto3" json:"videoAdditional"` - ImagesAdditional uint32 `protobuf:"varint,4,opt,name=imagesAdditional,proto3" json:"imagesAdditional"` - DataAdditional uint32 `protobuf:"varint,5,opt,name=dataAdditional,proto3" json:"dataAdditional"` - AvailableDurationAdditional uint32 `protobuf:"varint,6,opt,name=availableDurationAdditional,proto3" json:"availableDurationAdditional"` - Remark string `protobuf:"bytes,7,opt,name=remark,proto3" json:"remark"` - AssociatedorderNumber string `protobuf:"bytes,8,opt,name=associatedorderNumber,proto3" json:"associatedorderNumber"` - OperatorName string `protobuf:"bytes,9,opt,name=operatorName,proto3" json:"operatorName"` - OperatorPhoneNumber string `protobuf:"bytes,10,opt,name=operatorPhoneNumber,proto3" json:"operatorPhoneNumber"` + UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + AccountAdditional uint32 `protobuf:"varint,2,opt,name=accountAdditional,proto3" json:"accountAdditional,omitempty"` + VideoAdditional uint32 `protobuf:"varint,3,opt,name=videoAdditional,proto3" json:"videoAdditional,omitempty"` + ImagesAdditional uint32 `protobuf:"varint,4,opt,name=imagesAdditional,proto3" json:"imagesAdditional,omitempty"` + DataAdditional uint32 `protobuf:"varint,5,opt,name=dataAdditional,proto3" json:"dataAdditional,omitempty"` + AvailableDurationAdditional uint32 `protobuf:"varint,6,opt,name=availableDurationAdditional,proto3" json:"availableDurationAdditional,omitempty"` + TimeUnit uint32 `protobuf:"varint,7,opt,name=timeUnit,proto3" json:"timeUnit,omitempty"` // 1 日 2 月 3年 + Remark string `protobuf:"bytes,8,opt,name=remark,proto3" json:"remark,omitempty"` + AssociatedorderNumber string `protobuf:"bytes,9,opt,name=associatedorderNumber,proto3" json:"associatedorderNumber,omitempty"` + OperatorName string `protobuf:"bytes,10,opt,name=operatorName,proto3" json:"operatorName,omitempty"` + OperatorPhoneNumber string `protobuf:"bytes,11,opt,name=operatorPhoneNumber,proto3" json:"operatorPhoneNumber,omitempty"` } func (x *BundleExtendRequest) Reset() { *x = BundleExtendRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[33] + mi := &file_pb_bundle_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2773,7 +3948,7 @@ func (x *BundleExtendRequest) String() string { func (*BundleExtendRequest) ProtoMessage() {} func (x *BundleExtendRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[33] + mi := &file_pb_bundle_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2786,7 +3961,7 @@ func (x *BundleExtendRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleExtendRequest.ProtoReflect.Descriptor instead. func (*BundleExtendRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{33} + return file_pb_bundle_proto_rawDescGZIP(), []int{44} } func (x *BundleExtendRequest) GetUserId() int64 { @@ -2831,6 +4006,13 @@ func (x *BundleExtendRequest) GetAvailableDurationAdditional() uint32 { return 0 } +func (x *BundleExtendRequest) GetTimeUnit() uint32 { + if x != nil { + return x.TimeUnit + } + return 0 +} + func (x *BundleExtendRequest) GetRemark() string { if x != nil { return x.Remark @@ -2868,7 +4050,7 @@ type BundleExtendResponse struct { func (x *BundleExtendResponse) Reset() { *x = BundleExtendResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[34] + mi := &file_pb_bundle_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2881,7 +4063,7 @@ func (x *BundleExtendResponse) String() string { func (*BundleExtendResponse) ProtoMessage() {} func (x *BundleExtendResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[34] + mi := &file_pb_bundle_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2894,7 +4076,7 @@ func (x *BundleExtendResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleExtendResponse.ProtoReflect.Descriptor instead. func (*BundleExtendResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{34} + return file_pb_bundle_proto_rawDescGZIP(), []int{45} } type BundleExtendRecordsListRequest struct { @@ -2902,20 +4084,20 @@ type BundleExtendRecordsListRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page"` - PageSize int32 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize"` - User string `protobuf:"bytes,3,opt,name=user,proto3" json:"user"` - Operator string `protobuf:"bytes,4,opt,name=operator,proto3" json:"operator"` - StartTime uint64 `protobuf:"varint,5,opt,name=startTime,proto3" json:"startTime"` - EndTime uint64 `protobuf:"varint,6,opt,name=endTime,proto3" json:"endTime"` - Type uint32 `protobuf:"varint,7,opt,name=type,proto3" json:"type"` - AssociatedOrderNumber string `protobuf:"bytes,8,opt,name=associatedOrderNumber,proto3" json:"associatedOrderNumber"` + Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize,omitempty"` + User string `protobuf:"bytes,3,opt,name=user,proto3" json:"user,omitempty"` + Operator string `protobuf:"bytes,4,opt,name=operator,proto3" json:"operator,omitempty"` + StartTime uint64 `protobuf:"varint,5,opt,name=startTime,proto3" json:"startTime,omitempty"` + EndTime uint64 `protobuf:"varint,6,opt,name=endTime,proto3" json:"endTime,omitempty"` + Type uint32 `protobuf:"varint,7,opt,name=type,proto3" json:"type,omitempty"` + AssociatedOrderNumber string `protobuf:"bytes,8,opt,name=associatedOrderNumber,proto3" json:"associatedOrderNumber,omitempty"` } func (x *BundleExtendRecordsListRequest) Reset() { *x = BundleExtendRecordsListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[35] + mi := &file_pb_bundle_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2928,7 +4110,7 @@ func (x *BundleExtendRecordsListRequest) String() string { func (*BundleExtendRecordsListRequest) ProtoMessage() {} func (x *BundleExtendRecordsListRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[35] + mi := &file_pb_bundle_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2941,7 +4123,7 @@ func (x *BundleExtendRecordsListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleExtendRecordsListRequest.ProtoReflect.Descriptor instead. func (*BundleExtendRecordsListRequest) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{35} + return file_pb_bundle_proto_rawDescGZIP(), []int{46} } func (x *BundleExtendRecordsListRequest) GetPage() int32 { @@ -3005,14 +4187,14 @@ type BundleExtendRecordsListResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total"` - Data []*BundleExtendRecordItem `protobuf:"bytes,2,rep,name=data,proto3" json:"data"` + Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` + Data []*BundleExtendRecordItem `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` } func (x *BundleExtendRecordsListResponse) Reset() { *x = BundleExtendRecordsListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[36] + mi := &file_pb_bundle_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3025,7 +4207,7 @@ func (x *BundleExtendRecordsListResponse) String() string { func (*BundleExtendRecordsListResponse) ProtoMessage() {} func (x *BundleExtendRecordsListResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[36] + mi := &file_pb_bundle_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3038,7 +4220,7 @@ func (x *BundleExtendRecordsListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleExtendRecordsListResponse.ProtoReflect.Descriptor instead. func (*BundleExtendRecordsListResponse) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{36} + return file_pb_bundle_proto_rawDescGZIP(), []int{47} } func (x *BundleExtendRecordsListResponse) GetTotal() int64 { @@ -3060,25 +4242,25 @@ type BundleExtendRecordItem struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName"` - UserPhoneNumber string `protobuf:"bytes,2,opt,name=userPhoneNumber,proto3" json:"userPhoneNumber"` - AccountAdditional uint32 `protobuf:"varint,3,opt,name=accountAdditional,proto3" json:"accountAdditional"` - VideoAdditional uint32 `protobuf:"varint,4,opt,name=videoAdditional,proto3" json:"videoAdditional"` - ImagesAdditional uint32 `protobuf:"varint,5,opt,name=imagesAdditional,proto3" json:"imagesAdditional"` - DataAdditional uint32 `protobuf:"varint,6,opt,name=dataAdditional,proto3" json:"dataAdditional"` - AvailableDurationAdditional uint32 `protobuf:"varint,7,opt,name=availableDurationAdditional,proto3" json:"availableDurationAdditional"` - Type int32 `protobuf:"varint,8,opt,name=type,proto3" json:"type"` - CreatedAt uint64 `protobuf:"varint,9,opt,name=createdAt,proto3" json:"createdAt"` - Remark string `protobuf:"bytes,10,opt,name=remark,proto3" json:"remark"` - AssociatedOrderNumber string `protobuf:"bytes,11,opt,name=associatedOrderNumber,proto3" json:"associatedOrderNumber"` - OperatorName string `protobuf:"bytes,12,opt,name=operatorName,proto3" json:"operatorName"` - OperatorPhoneNumber string `protobuf:"bytes,13,opt,name=operatorPhoneNumber,proto3" json:"operatorPhoneNumber"` + UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName,omitempty"` + UserPhoneNumber string `protobuf:"bytes,2,opt,name=userPhoneNumber,proto3" json:"userPhoneNumber,omitempty"` + AccountAdditional uint32 `protobuf:"varint,3,opt,name=accountAdditional,proto3" json:"accountAdditional,omitempty"` + VideoAdditional uint32 `protobuf:"varint,4,opt,name=videoAdditional,proto3" json:"videoAdditional,omitempty"` + ImagesAdditional uint32 `protobuf:"varint,5,opt,name=imagesAdditional,proto3" json:"imagesAdditional,omitempty"` + DataAdditional uint32 `protobuf:"varint,6,opt,name=dataAdditional,proto3" json:"dataAdditional,omitempty"` + AvailableDurationAdditional uint32 `protobuf:"varint,7,opt,name=availableDurationAdditional,proto3" json:"availableDurationAdditional,omitempty"` + Type int32 `protobuf:"varint,8,opt,name=type,proto3" json:"type,omitempty"` + CreatedAt uint64 `protobuf:"varint,9,opt,name=createdAt,proto3" json:"createdAt,omitempty"` + Remark string `protobuf:"bytes,10,opt,name=remark,proto3" json:"remark,omitempty"` + AssociatedOrderNumber string `protobuf:"bytes,11,opt,name=associatedOrderNumber,proto3" json:"associatedOrderNumber,omitempty"` + OperatorName string `protobuf:"bytes,12,opt,name=operatorName,proto3" json:"operatorName,omitempty"` + OperatorPhoneNumber string `protobuf:"bytes,13,opt,name=operatorPhoneNumber,proto3" json:"operatorPhoneNumber,omitempty"` } func (x *BundleExtendRecordItem) Reset() { *x = BundleExtendRecordItem{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[37] + mi := &file_pb_bundle_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3091,7 +4273,7 @@ func (x *BundleExtendRecordItem) String() string { func (*BundleExtendRecordItem) ProtoMessage() {} func (x *BundleExtendRecordItem) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[37] + mi := &file_pb_bundle_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3104,7 +4286,7 @@ func (x *BundleExtendRecordItem) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleExtendRecordItem.ProtoReflect.Descriptor instead. func (*BundleExtendRecordItem) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{37} + return file_pb_bundle_proto_rawDescGZIP(), []int{48} } func (x *BundleExtendRecordItem) GetUserName() string { @@ -3198,24 +4380,119 @@ func (x *BundleExtendRecordItem) GetOperatorPhoneNumber() string { return "" } +type GetBundleBalanceListReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName,omitempty"` + Status int32 `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"` + BundleName string `protobuf:"bytes,3,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + ExpiredTimeStart int64 `protobuf:"varint,4,opt,name=expiredTimeStart,proto3" json:"expiredTimeStart,omitempty"` + ExpiredTimeEnd int64 `protobuf:"varint,5,opt,name=expiredTimeEnd,proto3" json:"expiredTimeEnd,omitempty"` + Page int32 `protobuf:"varint,6,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,7,opt,name=pageSize,proto3" json:"pageSize,omitempty"` +} + +func (x *GetBundleBalanceListReq) Reset() { + *x = GetBundleBalanceListReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetBundleBalanceListReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetBundleBalanceListReq) ProtoMessage() {} + +func (x *GetBundleBalanceListReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[49] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetBundleBalanceListReq.ProtoReflect.Descriptor instead. +func (*GetBundleBalanceListReq) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{49} +} + +func (x *GetBundleBalanceListReq) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +func (x *GetBundleBalanceListReq) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *GetBundleBalanceListReq) GetBundleName() string { + if x != nil { + return x.BundleName + } + return "" +} + +func (x *GetBundleBalanceListReq) GetExpiredTimeStart() int64 { + if x != nil { + return x.ExpiredTimeStart + } + return 0 +} + +func (x *GetBundleBalanceListReq) GetExpiredTimeEnd() int64 { + if x != nil { + return x.ExpiredTimeEnd + } + return 0 +} + +func (x *GetBundleBalanceListReq) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *GetBundleBalanceListReq) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + type GetBundleBalanceReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName"` - Status int32 `protobuf:"varint,2,opt,name=status,proto3" json:"status"` - BundleName string `protobuf:"bytes,3,opt,name=bundleName,proto3" json:"bundleName"` - ExpiredTimeStart int64 `protobuf:"varint,4,opt,name=expiredTimeStart,proto3" json:"expiredTimeStart"` - ExpiredTimeEnd int64 `protobuf:"varint,5,opt,name=expiredTimeEnd,proto3" json:"expiredTimeEnd"` - Page int32 `protobuf:"varint,6,opt,name=page,proto3" json:"page"` - PageSize int32 `protobuf:"varint,7,opt,name=pageSize,proto3" json:"pageSize"` + UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName,omitempty"` + Status int32 `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"` + BundleName string `protobuf:"bytes,3,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + ExpiredTimeStart int64 `protobuf:"varint,4,opt,name=expiredTimeStart,proto3" json:"expiredTimeStart,omitempty"` + ExpiredTimeEnd int64 `protobuf:"varint,5,opt,name=expiredTimeEnd,proto3" json:"expiredTimeEnd,omitempty"` + Page int32 `protobuf:"varint,6,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,7,opt,name=pageSize,proto3" json:"pageSize,omitempty"` } func (x *GetBundleBalanceReq) Reset() { *x = GetBundleBalanceReq{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[38] + mi := &file_pb_bundle_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3228,7 +4505,7 @@ func (x *GetBundleBalanceReq) String() string { func (*GetBundleBalanceReq) ProtoMessage() {} func (x *GetBundleBalanceReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[38] + mi := &file_pb_bundle_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3241,7 +4518,7 @@ func (x *GetBundleBalanceReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBundleBalanceReq.ProtoReflect.Descriptor instead. func (*GetBundleBalanceReq) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{38} + return file_pb_bundle_proto_rawDescGZIP(), []int{50} } func (x *GetBundleBalanceReq) GetUserName() string { @@ -3298,26 +4575,27 @@ type BundleBalanceItem struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName"` - UserPhoneNumber string `protobuf:"bytes,2,opt,name=userPhoneNumber,proto3" json:"userPhoneNumber"` - Status int32 `protobuf:"varint,3,opt,name=status,proto3" json:"status"` - BundleName string `protobuf:"bytes,4,opt,name=bundleName,proto3" json:"bundleName"` - ExpiredTime int64 `protobuf:"varint,5,opt,name=expiredTime,proto3" json:"expiredTime"` - AccountNumber int32 `protobuf:"varint,6,opt,name=accountNumber,proto3" json:"accountNumber"` - AccountConsumptionNumber int32 `protobuf:"varint,7,opt,name=accountConsumptionNumber,proto3" json:"accountConsumptionNumber"` - VideoNumber int32 `protobuf:"varint,8,opt,name=videoNumber,proto3" json:"videoNumber"` - VideoConsumptionNumber int32 `protobuf:"varint,9,opt,name=videoConsumptionNumber,proto3" json:"videoConsumptionNumber"` - ImageNumber int32 `protobuf:"varint,10,opt,name=imageNumber,proto3" json:"imageNumber"` - ImageConsumptionNumber int32 `protobuf:"varint,11,opt,name=imageConsumptionNumber,proto3" json:"imageConsumptionNumber"` - DataAnalysisNumber int32 `protobuf:"varint,12,opt,name=dataAnalysisNumber,proto3" json:"dataAnalysisNumber"` - DataAnalysisConsumptionNumber int32 `protobuf:"varint,13,opt,name=dataAnalysisConsumptionNumber,proto3" json:"dataAnalysisConsumptionNumber"` - ExpansionPacksNumber int32 `protobuf:"varint,14,opt,name=expansionPacksNumber,proto3" json:"expansionPacksNumber"` + UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + UserName string `protobuf:"bytes,2,opt,name=userName,proto3" json:"userName,omitempty"` + UserPhoneNumber string `protobuf:"bytes,3,opt,name=userPhoneNumber,proto3" json:"userPhoneNumber,omitempty"` + Status int32 `protobuf:"varint,4,opt,name=status,proto3" json:"status,omitempty"` + BundleName string `protobuf:"bytes,5,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + ExpiredTime int64 `protobuf:"varint,6,opt,name=expiredTime,proto3" json:"expiredTime,omitempty"` + AccountNumber int32 `protobuf:"varint,7,opt,name=accountNumber,proto3" json:"accountNumber,omitempty"` + AccountConsumptionNumber int32 `protobuf:"varint,8,opt,name=accountConsumptionNumber,proto3" json:"accountConsumptionNumber,omitempty"` + VideoNumber int32 `protobuf:"varint,9,opt,name=videoNumber,proto3" json:"videoNumber,omitempty"` + VideoConsumptionNumber int32 `protobuf:"varint,10,opt,name=videoConsumptionNumber,proto3" json:"videoConsumptionNumber,omitempty"` + ImageNumber int32 `protobuf:"varint,11,opt,name=imageNumber,proto3" json:"imageNumber,omitempty"` + ImageConsumptionNumber int32 `protobuf:"varint,12,opt,name=imageConsumptionNumber,proto3" json:"imageConsumptionNumber,omitempty"` + DataAnalysisNumber int32 `protobuf:"varint,13,opt,name=dataAnalysisNumber,proto3" json:"dataAnalysisNumber,omitempty"` + DataAnalysisConsumptionNumber int32 `protobuf:"varint,14,opt,name=dataAnalysisConsumptionNumber,proto3" json:"dataAnalysisConsumptionNumber,omitempty"` + ExpansionPacksNumber int32 `protobuf:"varint,15,opt,name=expansionPacksNumber,proto3" json:"expansionPacksNumber,omitempty"` } func (x *BundleBalanceItem) Reset() { *x = BundleBalanceItem{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[39] + mi := &file_pb_bundle_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3330,7 +4608,7 @@ func (x *BundleBalanceItem) String() string { func (*BundleBalanceItem) ProtoMessage() {} func (x *BundleBalanceItem) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[39] + mi := &file_pb_bundle_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3343,7 +4621,14 @@ func (x *BundleBalanceItem) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleBalanceItem.ProtoReflect.Descriptor instead. func (*BundleBalanceItem) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{39} + return file_pb_bundle_proto_rawDescGZIP(), []int{51} +} + +func (x *BundleBalanceItem) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 } func (x *BundleBalanceItem) GetUserName() string { @@ -3449,14 +4734,14 @@ type GetBundleBalanceResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total"` - Data []*BundleBalanceItem `protobuf:"bytes,2,rep,name=data,proto3" json:"data"` + Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` + Data []*BundleBalanceItem `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` } func (x *GetBundleBalanceResp) Reset() { *x = GetBundleBalanceResp{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[40] + mi := &file_pb_bundle_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3469,7 +4754,7 @@ func (x *GetBundleBalanceResp) String() string { func (*GetBundleBalanceResp) ProtoMessage() {} func (x *GetBundleBalanceResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[40] + mi := &file_pb_bundle_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3482,7 +4767,7 @@ func (x *GetBundleBalanceResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBundleBalanceResp.ProtoReflect.Descriptor instead. func (*GetBundleBalanceResp) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{40} + return file_pb_bundle_proto_rawDescGZIP(), []int{52} } func (x *GetBundleBalanceResp) GetTotal() int64 { @@ -3499,6 +4784,1150 @@ func (x *GetBundleBalanceResp) GetData() []*BundleBalanceItem { return nil } +type GetBundleBalanceListResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` + Data []*BundleBalanceItem `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetBundleBalanceListResp) Reset() { + *x = GetBundleBalanceListResp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetBundleBalanceListResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetBundleBalanceListResp) ProtoMessage() {} + +func (x *GetBundleBalanceListResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[53] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetBundleBalanceListResp.ProtoReflect.Descriptor instead. +func (*GetBundleBalanceListResp) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{53} +} + +func (x *GetBundleBalanceListResp) GetTotal() int64 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *GetBundleBalanceListResp) GetData() []*BundleBalanceItem { + if x != nil { + return x.Data + } + return nil +} + +type CreateBundleBalanceReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + OrderUUID string `protobuf:"bytes,2,opt,name=orderUUID,proto3" json:"orderUUID,omitempty"` + AccountNumber int32 `protobuf:"varint,3,opt,name=accountNumber,proto3" json:"accountNumber,omitempty"` + AccountConsumptionNumber int32 `protobuf:"varint,4,opt,name=accountConsumptionNumber,proto3" json:"accountConsumptionNumber,omitempty"` + VideoNumber int32 `protobuf:"varint,5,opt,name=videoNumber,proto3" json:"videoNumber,omitempty"` + VideoConsumptionNumber int32 `protobuf:"varint,6,opt,name=videoConsumptionNumber,proto3" json:"videoConsumptionNumber,omitempty"` + ImageNumber int32 `protobuf:"varint,7,opt,name=imageNumber,proto3" json:"imageNumber,omitempty"` + ImageConsumptionNumber int32 `protobuf:"varint,8,opt,name=imageConsumptionNumber,proto3" json:"imageConsumptionNumber,omitempty"` + DataAnalysisNumber int32 `protobuf:"varint,9,opt,name=dataAnalysisNumber,proto3" json:"dataAnalysisNumber,omitempty"` + DataAnalysisConsumptionNumber int32 `protobuf:"varint,10,opt,name=dataAnalysisConsumptionNumber,proto3" json:"dataAnalysisConsumptionNumber,omitempty"` + ExpansionPacksNumber int32 `protobuf:"varint,11,opt,name=expansionPacksNumber,proto3" json:"expansionPacksNumber,omitempty"` +} + +func (x *CreateBundleBalanceReq) Reset() { + *x = CreateBundleBalanceReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateBundleBalanceReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateBundleBalanceReq) ProtoMessage() {} + +func (x *CreateBundleBalanceReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[54] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateBundleBalanceReq.ProtoReflect.Descriptor instead. +func (*CreateBundleBalanceReq) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{54} +} + +func (x *CreateBundleBalanceReq) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *CreateBundleBalanceReq) GetOrderUUID() string { + if x != nil { + return x.OrderUUID + } + return "" +} + +func (x *CreateBundleBalanceReq) GetAccountNumber() int32 { + if x != nil { + return x.AccountNumber + } + return 0 +} + +func (x *CreateBundleBalanceReq) GetAccountConsumptionNumber() int32 { + if x != nil { + return x.AccountConsumptionNumber + } + return 0 +} + +func (x *CreateBundleBalanceReq) GetVideoNumber() int32 { + if x != nil { + return x.VideoNumber + } + return 0 +} + +func (x *CreateBundleBalanceReq) GetVideoConsumptionNumber() int32 { + if x != nil { + return x.VideoConsumptionNumber + } + return 0 +} + +func (x *CreateBundleBalanceReq) GetImageNumber() int32 { + if x != nil { + return x.ImageNumber + } + return 0 +} + +func (x *CreateBundleBalanceReq) GetImageConsumptionNumber() int32 { + if x != nil { + return x.ImageConsumptionNumber + } + return 0 +} + +func (x *CreateBundleBalanceReq) GetDataAnalysisNumber() int32 { + if x != nil { + return x.DataAnalysisNumber + } + return 0 +} + +func (x *CreateBundleBalanceReq) GetDataAnalysisConsumptionNumber() int32 { + if x != nil { + return x.DataAnalysisConsumptionNumber + } + return 0 +} + +func (x *CreateBundleBalanceReq) GetExpansionPacksNumber() int32 { + if x != nil { + return x.ExpansionPacksNumber + } + return 0 +} + +type CreateBundleBalanceResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CreateBundleBalanceResp) Reset() { + *x = CreateBundleBalanceResp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateBundleBalanceResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateBundleBalanceResp) ProtoMessage() {} + +func (x *CreateBundleBalanceResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[55] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateBundleBalanceResp.ProtoReflect.Descriptor instead. +func (*CreateBundleBalanceResp) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{55} +} + +type AddBundleBalanceReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + UserId int32 `protobuf:"varint,2,opt,name=userId,proto3" json:"userId,omitempty"` + OrderUUID string `protobuf:"bytes,3,opt,name=orderUUID,proto3" json:"orderUUID,omitempty"` + AccountNumber int32 `protobuf:"varint,4,opt,name=accountNumber,proto3" json:"accountNumber,omitempty"` + AccountConsumptionNumber int32 `protobuf:"varint,5,opt,name=accountConsumptionNumber,proto3" json:"accountConsumptionNumber,omitempty"` + VideoNumber int32 `protobuf:"varint,6,opt,name=videoNumber,proto3" json:"videoNumber,omitempty"` + VideoConsumptionNumber int32 `protobuf:"varint,7,opt,name=videoConsumptionNumber,proto3" json:"videoConsumptionNumber,omitempty"` + ImageNumber int32 `protobuf:"varint,8,opt,name=imageNumber,proto3" json:"imageNumber,omitempty"` + ImageConsumptionNumber int32 `protobuf:"varint,9,opt,name=imageConsumptionNumber,proto3" json:"imageConsumptionNumber,omitempty"` + DataAnalysisNumber int32 `protobuf:"varint,10,opt,name=dataAnalysisNumber,proto3" json:"dataAnalysisNumber,omitempty"` + DataAnalysisConsumptionNumber int32 `protobuf:"varint,11,opt,name=dataAnalysisConsumptionNumber,proto3" json:"dataAnalysisConsumptionNumber,omitempty"` + ExpansionPacksNumber int32 `protobuf:"varint,12,opt,name=expansionPacksNumber,proto3" json:"expansionPacksNumber,omitempty"` +} + +func (x *AddBundleBalanceReq) Reset() { + *x = AddBundleBalanceReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddBundleBalanceReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddBundleBalanceReq) ProtoMessage() {} + +func (x *AddBundleBalanceReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[56] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddBundleBalanceReq.ProtoReflect.Descriptor instead. +func (*AddBundleBalanceReq) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{56} +} + +func (x *AddBundleBalanceReq) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *AddBundleBalanceReq) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *AddBundleBalanceReq) GetOrderUUID() string { + if x != nil { + return x.OrderUUID + } + return "" +} + +func (x *AddBundleBalanceReq) GetAccountNumber() int32 { + if x != nil { + return x.AccountNumber + } + return 0 +} + +func (x *AddBundleBalanceReq) GetAccountConsumptionNumber() int32 { + if x != nil { + return x.AccountConsumptionNumber + } + return 0 +} + +func (x *AddBundleBalanceReq) GetVideoNumber() int32 { + if x != nil { + return x.VideoNumber + } + return 0 +} + +func (x *AddBundleBalanceReq) GetVideoConsumptionNumber() int32 { + if x != nil { + return x.VideoConsumptionNumber + } + return 0 +} + +func (x *AddBundleBalanceReq) GetImageNumber() int32 { + if x != nil { + return x.ImageNumber + } + return 0 +} + +func (x *AddBundleBalanceReq) GetImageConsumptionNumber() int32 { + if x != nil { + return x.ImageConsumptionNumber + } + return 0 +} + +func (x *AddBundleBalanceReq) GetDataAnalysisNumber() int32 { + if x != nil { + return x.DataAnalysisNumber + } + return 0 +} + +func (x *AddBundleBalanceReq) GetDataAnalysisConsumptionNumber() int32 { + if x != nil { + return x.DataAnalysisConsumptionNumber + } + return 0 +} + +func (x *AddBundleBalanceReq) GetExpansionPacksNumber() int32 { + if x != nil { + return x.ExpansionPacksNumber + } + return 0 +} + +type AddBundleBalanceResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *AddBundleBalanceResp) Reset() { + *x = AddBundleBalanceResp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddBundleBalanceResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddBundleBalanceResp) ProtoMessage() {} + +func (x *AddBundleBalanceResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[57] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddBundleBalanceResp.ProtoReflect.Descriptor instead. +func (*AddBundleBalanceResp) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{57} +} + +type GetUsedRecordListReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + User string `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` + Operator string `protobuf:"bytes,2,opt,name=operator,proto3" json:"operator,omitempty"` + Account int32 `protobuf:"varint,3,opt,name=account,proto3" json:"account,omitempty"` + Platform int32 `protobuf:"varint,4,opt,name=platform,proto3" json:"platform,omitempty"` + Type int32 `protobuf:"varint,5,opt,name=type,proto3" json:"type,omitempty"` + Title string `protobuf:"bytes,6,opt,name=title,proto3" json:"title,omitempty"` + SubmitTimeStart int64 `protobuf:"varint,7,opt,name=submitTimeStart,proto3" json:"submitTimeStart,omitempty"` + SubmitTimeEnd int64 `protobuf:"varint,8,opt,name=submitTimeEnd,proto3" json:"submitTimeEnd,omitempty"` + Page int32 `protobuf:"varint,9,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,10,opt,name=pageSize,proto3" json:"pageSize,omitempty"` +} + +func (x *GetUsedRecordListReq) Reset() { + *x = GetUsedRecordListReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUsedRecordListReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUsedRecordListReq) ProtoMessage() {} + +func (x *GetUsedRecordListReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[58] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUsedRecordListReq.ProtoReflect.Descriptor instead. +func (*GetUsedRecordListReq) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{58} +} + +func (x *GetUsedRecordListReq) GetUser() string { + if x != nil { + return x.User + } + return "" +} + +func (x *GetUsedRecordListReq) GetOperator() string { + if x != nil { + return x.Operator + } + return "" +} + +func (x *GetUsedRecordListReq) GetAccount() int32 { + if x != nil { + return x.Account + } + return 0 +} + +func (x *GetUsedRecordListReq) GetPlatform() int32 { + if x != nil { + return x.Platform + } + return 0 +} + +func (x *GetUsedRecordListReq) GetType() int32 { + if x != nil { + return x.Type + } + return 0 +} + +func (x *GetUsedRecordListReq) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *GetUsedRecordListReq) GetSubmitTimeStart() int64 { + if x != nil { + return x.SubmitTimeStart + } + return 0 +} + +func (x *GetUsedRecordListReq) GetSubmitTimeEnd() int64 { + if x != nil { + return x.SubmitTimeEnd + } + return 0 +} + +func (x *GetUsedRecordListReq) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *GetUsedRecordListReq) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +type GetUsedRecordListResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` + Data []*WorkCastItem `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetUsedRecordListResp) Reset() { + *x = GetUsedRecordListResp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUsedRecordListResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUsedRecordListResp) ProtoMessage() {} + +func (x *GetUsedRecordListResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[59] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUsedRecordListResp.ProtoReflect.Descriptor instead. +func (*GetUsedRecordListResp) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{59} +} + +func (x *GetUsedRecordListResp) GetTotal() int64 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *GetUsedRecordListResp) GetData() []*WorkCastItem { + if x != nil { + return x.Data + } + return nil +} + +type WorkCastItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ArtistUuid string `protobuf:"bytes,1,opt,name=artistUuid,proto3" json:"artistUuid,omitempty"` // 艺人ID + ArtistName string `protobuf:"bytes,2,opt,name=artistName,proto3" json:"artistName,omitempty"` // 艺人名称 + ArtistPhone string `protobuf:"bytes,3,opt,name=artistPhone,proto3" json:"artistPhone,omitempty"` // 艺人手机号 + WorkUuid string `protobuf:"bytes,4,opt,name=workUuid,proto3" json:"workUuid,omitempty"` // 作品uuid + WorkCategory uint32 `protobuf:"varint,5,opt,name=workCategory,proto3" json:"workCategory,omitempty"` // 1 图文 2 视频 + BundleUuid string `protobuf:"bytes,6,opt,name=bundleUuid,proto3" json:"bundleUuid,omitempty"` // 套餐ID uuid + BundleName string `protobuf:"bytes,7,opt,name=bundleName,proto3" json:"bundleName,omitempty"` // 套餐名称 + PlatformIDs string `protobuf:"bytes,8,opt,name=platformIDs,proto3" json:"platformIDs,omitempty"` // 发布平台ID集合 (json 格式字符串) + MediaNames string `protobuf:"bytes,9,opt,name=mediaNames,proto3" json:"mediaNames,omitempty"` // 自媒体账号名称集合 + MediaAccIDs string `protobuf:"bytes,10,opt,name=mediaAccIDs,proto3" json:"mediaAccIDs,omitempty"` // 自媒体账号ID集合 + WorkTitle string `protobuf:"bytes,11,opt,name=workTitle,proto3" json:"workTitle,omitempty"` // 作品标题 + SubmitTime string `protobuf:"bytes,12,opt,name=submitTime,proto3" json:"submitTime,omitempty"` // 提交时间 + OperatorName string `protobuf:"bytes,13,opt,name=operatorName,proto3" json:"operatorName,omitempty"` // 操作人名称 + OperatorPhone string `protobuf:"bytes,14,opt,name=operatorPhone,proto3" json:"operatorPhone,omitempty"` // 操作人手机号 + Status uint32 `protobuf:"varint,15,opt,name=status,proto3" json:"status,omitempty"` // 1 有效 2 失效 +} + +func (x *WorkCastItem) Reset() { + *x = WorkCastItem{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WorkCastItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkCastItem) ProtoMessage() {} + +func (x *WorkCastItem) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[60] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkCastItem.ProtoReflect.Descriptor instead. +func (*WorkCastItem) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{60} +} + +func (x *WorkCastItem) GetArtistUuid() string { + if x != nil { + return x.ArtistUuid + } + return "" +} + +func (x *WorkCastItem) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + +func (x *WorkCastItem) GetArtistPhone() string { + if x != nil { + return x.ArtistPhone + } + return "" +} + +func (x *WorkCastItem) GetWorkUuid() string { + if x != nil { + return x.WorkUuid + } + return "" +} + +func (x *WorkCastItem) GetWorkCategory() uint32 { + if x != nil { + return x.WorkCategory + } + return 0 +} + +func (x *WorkCastItem) GetBundleUuid() string { + if x != nil { + return x.BundleUuid + } + return "" +} + +func (x *WorkCastItem) GetBundleName() string { + if x != nil { + return x.BundleName + } + return "" +} + +func (x *WorkCastItem) GetPlatformIDs() string { + if x != nil { + return x.PlatformIDs + } + return "" +} + +func (x *WorkCastItem) GetMediaNames() string { + if x != nil { + return x.MediaNames + } + return "" +} + +func (x *WorkCastItem) GetMediaAccIDs() string { + if x != nil { + return x.MediaAccIDs + } + return "" +} + +func (x *WorkCastItem) GetWorkTitle() string { + if x != nil { + return x.WorkTitle + } + return "" +} + +func (x *WorkCastItem) GetSubmitTime() string { + if x != nil { + return x.SubmitTime + } + return "" +} + +func (x *WorkCastItem) GetOperatorName() string { + if x != nil { + return x.OperatorName + } + return "" +} + +func (x *WorkCastItem) GetOperatorPhone() string { + if x != nil { + return x.OperatorPhone + } + return "" +} + +func (x *WorkCastItem) GetStatus() uint32 { + if x != nil { + return x.Status + } + return 0 +} + +type GetImageWorkDetailReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkId string `protobuf:"bytes,1,opt,name=workId,proto3" json:"workId,omitempty"` +} + +func (x *GetImageWorkDetailReq) Reset() { + *x = GetImageWorkDetailReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetImageWorkDetailReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetImageWorkDetailReq) ProtoMessage() {} + +func (x *GetImageWorkDetailReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[61] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetImageWorkDetailReq.ProtoReflect.Descriptor instead. +func (*GetImageWorkDetailReq) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{61} +} + +func (x *GetImageWorkDetailReq) GetWorkId() string { + if x != nil { + return x.WorkId + } + return "" +} + +type GetVedioWorkDetailReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkId string `protobuf:"bytes,1,opt,name=workId,proto3" json:"workId,omitempty"` +} + +func (x *GetVedioWorkDetailReq) Reset() { + *x = GetVedioWorkDetailReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetVedioWorkDetailReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetVedioWorkDetailReq) ProtoMessage() {} + +func (x *GetVedioWorkDetailReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[62] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetVedioWorkDetailReq.ProtoReflect.Descriptor instead. +func (*GetVedioWorkDetailReq) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{62} +} + +func (x *GetVedioWorkDetailReq) GetWorkId() string { + if x != nil { + return x.WorkId + } + return "" +} + +type GetImageWorkDetailResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkId string `protobuf:"bytes,1,opt,name=workId,proto3" json:"workId,omitempty"` + CoverUrl string `protobuf:"bytes,2,opt,name=coverUrl,proto3" json:"coverUrl,omitempty"` + VideoUrl string `protobuf:"bytes,3,opt,name=videoUrl,proto3" json:"videoUrl,omitempty"` + CreatedAt int64 `protobuf:"varint,4,opt,name=createdAt,proto3" json:"createdAt,omitempty"` +} + +func (x *GetImageWorkDetailResp) Reset() { + *x = GetImageWorkDetailResp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetImageWorkDetailResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetImageWorkDetailResp) ProtoMessage() {} + +func (x *GetImageWorkDetailResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[63] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetImageWorkDetailResp.ProtoReflect.Descriptor instead. +func (*GetImageWorkDetailResp) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{63} +} + +func (x *GetImageWorkDetailResp) GetWorkId() string { + if x != nil { + return x.WorkId + } + return "" +} + +func (x *GetImageWorkDetailResp) GetCoverUrl() string { + if x != nil { + return x.CoverUrl + } + return "" +} + +func (x *GetImageWorkDetailResp) GetVideoUrl() string { + if x != nil { + return x.VideoUrl + } + return "" +} + +func (x *GetImageWorkDetailResp) GetCreatedAt() int64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +type GetVedioeWorkDetailResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkId string `protobuf:"bytes,1,opt,name=workId,proto3" json:"workId,omitempty"` + ImageUrls []string `protobuf:"bytes,2,rep,name=imageUrls,proto3" json:"imageUrls,omitempty"` + CreatedAt int64 `protobuf:"varint,3,opt,name=createdAt,proto3" json:"createdAt,omitempty"` +} + +func (x *GetVedioeWorkDetailResp) Reset() { + *x = GetVedioeWorkDetailResp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetVedioeWorkDetailResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetVedioeWorkDetailResp) ProtoMessage() {} + +func (x *GetVedioeWorkDetailResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[64] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetVedioeWorkDetailResp.ProtoReflect.Descriptor instead. +func (*GetVedioeWorkDetailResp) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{64} +} + +func (x *GetVedioeWorkDetailResp) GetWorkId() string { + if x != nil { + return x.WorkId + } + return "" +} + +func (x *GetVedioeWorkDetailResp) GetImageUrls() []string { + if x != nil { + return x.ImageUrls + } + return nil +} + +func (x *GetVedioeWorkDetailResp) GetCreatedAt() int64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +type ToBeComfirmedWorksReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ArtistUuid string `protobuf:"bytes,1,opt,name=artistUuid,proto3" json:"artistUuid,omitempty"` + Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,3,opt,name=pageSize,proto3" json:"pageSize,omitempty"` +} + +func (x *ToBeComfirmedWorksReq) Reset() { + *x = ToBeComfirmedWorksReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ToBeComfirmedWorksReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ToBeComfirmedWorksReq) ProtoMessage() {} + +func (x *ToBeComfirmedWorksReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[65] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ToBeComfirmedWorksReq.ProtoReflect.Descriptor instead. +func (*ToBeComfirmedWorksReq) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{65} +} + +func (x *ToBeComfirmedWorksReq) GetArtistUuid() string { + if x != nil { + return x.ArtistUuid + } + return "" +} + +func (x *ToBeComfirmedWorksReq) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *ToBeComfirmedWorksReq) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +type ToBeComfirmedWorksResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` // 作品uuid + WorkCategory uint32 `protobuf:"varint,2,opt,name=workCategory,proto3" json:"workCategory,omitempty"` // 1 图文 2 视频 + PlatformIDs string `protobuf:"bytes,3,opt,name=platformIDs,proto3" json:"platformIDs,omitempty"` // 发布平台ID集合 (json 格式字符串) + MediaNames string `protobuf:"bytes,4,opt,name=mediaNames,proto3" json:"mediaNames,omitempty"` // 自媒体账号名称集合 + MediaAccIDs string `protobuf:"bytes,5,opt,name=mediaAccIDs,proto3" json:"mediaAccIDs,omitempty"` // 自媒体账号ID集合 + Title string `protobuf:"bytes,6,opt,name=title,proto3" json:"title,omitempty"` // 作品标题 + Content string `protobuf:"bytes,7,opt,name=content,proto3" json:"content,omitempty"` // 作品标题 + SubmitTime string `protobuf:"bytes,8,opt,name=submitTime,proto3" json:"submitTime,omitempty"` // 提交时间 + OperatorName string `protobuf:"bytes,9,opt,name=operatorName,proto3" json:"operatorName,omitempty"` // 操作人名称 + OperatorPhone string `protobuf:"bytes,10,opt,name=operatorPhone,proto3" json:"operatorPhone,omitempty"` // 操作人手机号 + Status uint32 `protobuf:"varint,11,opt,name=status,proto3" json:"status,omitempty"` // 1 待提交 2 审核中 3 审核失败 4 待艺人确认 5 艺人驳回 6 发布成功 7 发布失败 +} + +func (x *ToBeComfirmedWorksResp) Reset() { + *x = ToBeComfirmedWorksResp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ToBeComfirmedWorksResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ToBeComfirmedWorksResp) ProtoMessage() {} + +func (x *ToBeComfirmedWorksResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[66] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ToBeComfirmedWorksResp.ProtoReflect.Descriptor instead. +func (*ToBeComfirmedWorksResp) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{66} +} + +func (x *ToBeComfirmedWorksResp) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +func (x *ToBeComfirmedWorksResp) GetWorkCategory() uint32 { + if x != nil { + return x.WorkCategory + } + return 0 +} + +func (x *ToBeComfirmedWorksResp) GetPlatformIDs() string { + if x != nil { + return x.PlatformIDs + } + return "" +} + +func (x *ToBeComfirmedWorksResp) GetMediaNames() string { + if x != nil { + return x.MediaNames + } + return "" +} + +func (x *ToBeComfirmedWorksResp) GetMediaAccIDs() string { + if x != nil { + return x.MediaAccIDs + } + return "" +} + +func (x *ToBeComfirmedWorksResp) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *ToBeComfirmedWorksResp) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +func (x *ToBeComfirmedWorksResp) GetSubmitTime() string { + if x != nil { + return x.SubmitTime + } + return "" +} + +func (x *ToBeComfirmedWorksResp) GetOperatorName() string { + if x != nil { + return x.OperatorName + } + return "" +} + +func (x *ToBeComfirmedWorksResp) GetOperatorPhone() string { + if x != nil { + return x.OperatorPhone + } + return "" +} + +func (x *ToBeComfirmedWorksResp) GetStatus() uint32 { + if x != nil { + return x.Status + } + return 0 +} + var File_pb_bundle_proto protoreflect.FileDescriptor var file_pb_bundle_proto_rawDesc = []byte{ @@ -3506,607 +5935,1006 @@ var file_pb_bundle_proto_rawDesc = []byte{ 0x6f, 0x12, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x1a, 0x13, 0x70, 0x62, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x12, 0x70, 0x62, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x22, 0x50, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x4e, 0x6f, 0x22, 0xf5, 0x04, 0x0a, 0x0d, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, - 0x72, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, - 0x75, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, - 0x75, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x53, 0x69, - 0x67, 0x6e, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x44, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, - 0x0a, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, - 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, - 0x62, 0x67, 0x49, 0x6d, 0x67, 0x31, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x67, - 0x49, 0x6d, 0x67, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x32, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x32, 0x12, 0x20, 0x0a, 0x0b, - 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0b, 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x53, - 0x0a, 0x15, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x15, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x12, 0x47, 0x0a, 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x52, 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x22, 0xf4, 0x02, 0x0a, - 0x11, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, - 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, - 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, - 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, - 0x75, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x16, 0x0a, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x31, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x67, 0x49, 0x6d, - 0x67, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x32, - 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, - 0x73, 0x6f, 0x72, 0x74, 0x12, 0x4d, 0x0a, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x18, 0x0c, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x52, 0x13, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, - 0x61, 0x6e, 0x67, 0x22, 0x52, 0x0a, 0x0c, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x6e, - 0x63, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x61, - 0x6e, 0x63, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x22, 0x7b, 0x0a, 0x15, 0x53, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x12, 0x22, 0x0a, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x55, 0x75, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, - 0x55, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x44, 0x69, 0x73, 0x70, - 0x6c, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x44, 0x69, 0x73, - 0x70, 0x6c, 0x61, 0x79, 0x22, 0x26, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x8d, 0x01, 0x0a, - 0x11, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x5b, 0x0a, 0x12, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x07, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x07, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x45, 0x0a, 0x13, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x75, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, - 0x22, 0x48, 0x0a, 0x10, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x65, 0x6c, 0x66, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x68, 0x65, 0x6c, - 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, - 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x57, 0x0a, 0x14, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6d, 0x73, 0x67, 0x22, 0xb2, 0x01, 0x0a, 0x16, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32, 0x12, 0x31, - 0x0a, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x12, 0x53, 0x0a, 0x15, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, - 0x15, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xb5, 0x0a, 0x0a, 0x0b, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x74, 0x6f, 0x22, 0xa9, 0x05, 0x0a, 0x11, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, + 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, - 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, + 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, + 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x69, + 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x1c, + 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x6f, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x6f, 0x12, 0x20, + 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x55, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x3c, 0x0a, 0x0a, 0x61, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x14, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x52, 0x0a, 0x61, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x22, 0xf4, + 0x01, 0x0a, 0x14, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x64, + 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x55, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, + 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x6e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, + 0x24, 0x0a, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x81, 0x04, 0x0a, 0x15, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x32, 0x12, + 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, + 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, + 0x70, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x64, 0x64, + 0x50, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0c, 0x61, 0x64, 0x64, 0x50, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, + 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x12, 0x30, 0x0a, 0x13, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x41, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x45, 0x6e, 0x64, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x41, 0x74, 0x45, 0x6e, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x30, 0x0a, + 0x13, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, + 0x74, 0x45, 0x6e, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x45, 0x6e, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, + 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x03, + 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x9d, 0x01, 0x0a, 0x16, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x56, 0x32, 0x12, 0x3d, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0xd3, 0x02, 0x0a, 0x15, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, + 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x70, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x70, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74, + 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, + 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0d, 0x61, 0x64, 0x64, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x0d, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x22, + 0xf0, 0x02, 0x0a, 0x18, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x12, 0x16, 0x0a, 0x06, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, + 0x73, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, + 0x46, 0x65, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x68, 0x61, 0x6e, 0x64, 0x6c, + 0x69, 0x6e, 0x67, 0x46, 0x65, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x65, 0x78, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x64, 0x64, 0x50, 0x61, 0x79, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x61, 0x64, + 0x64, 0x50, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x22, 0x47, 0x0a, 0x1b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x50, 0x0a, 0x0e, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, + 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x22, 0x93, 0x05, + 0x0a, 0x0d, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, + 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, + 0x70, 0x61, 0x6e, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x2a, 0x0a, 0x10, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x44, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x31, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x31, 0x12, 0x16, 0x0a, + 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x32, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, + 0x67, 0x49, 0x6d, 0x67, 0x32, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, 0x68, 0x65, 0x6c, + 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x53, 0x0a, 0x15, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x15, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x47, 0x0a, 0x11, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x6e, + 0x67, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, + 0x6e, 0x67, 0x52, 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x67, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x6d, 0x67, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0xe1, 0x01, 0x0a, 0x11, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, + 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x52, 0x0a, 0x0c, 0x53, 0x61, 0x76, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, + 0x09, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x09, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x22, 0x7b, 0x0a, 0x15, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x41, 0x64, 0x64, 0x55, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, + 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, + 0x73, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x22, 0x26, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, + 0x22, 0x8d, 0x01, 0x0a, 0x11, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, + 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, + 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, + 0x22, 0x5b, 0x0a, 0x12, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x07, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x07, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x45, 0x0a, + 0x13, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x22, 0x48, 0x0a, 0x10, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x65, 0x6c, + 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, + 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0b, 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x57, + 0x0a, 0x14, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x06, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x59, 0x0a, 0x16, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, + 0x32, 0x12, 0x2d, 0x0a, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x22, 0xf9, 0x0a, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x55, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x69, 0x67, 0x6e, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x68, + 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x6f, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x6f, 0x12, 0x2e, 0x0a, 0x12, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, + 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x02, 0x52, 0x14, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, + 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, + 0x0a, 0x15, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x16, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x15, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x44, 0x69, 0x73, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, + 0x64, 0x53, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x6e, 0x75, 0x6d, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x20, + 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x19, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, + 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, + 0x79, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x69, 0x74, 0x79, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x12, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x50, 0x69, 0x63, + 0x74, 0x75, 0x72, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x4f, 0x66, 0x52, + 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, + 0x70, 0x6c, 0x61, 0x63, 0x65, 0x4f, 0x66, 0x52, 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x1e, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x68, 0x6f, 0x74, 0x6f, + 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x55, 0x69, 0x64, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x64, + 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, + 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x66, 0x69, + 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x21, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6e, + 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x12, 0x44, 0x0a, 0x10, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x24, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x10, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, + 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x25, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x26, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x22, 0xdd, + 0x03, 0x0a, 0x0e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, + 0x64, 0x12, 0x4d, 0x0a, 0x13, 0x61, 0x64, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x13, 0x61, 0x64, 0x64, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, + 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x70, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x70, - 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, - 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x68, 0x65, - 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2e, - 0x0a, 0x12, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x55, 0x72, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x68, 0x65, 0x63, - 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, - 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, - 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x11, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x6f, 0x18, 0x12, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x6f, - 0x12, 0x2e, 0x0a, 0x12, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, - 0x12, 0x32, 0x0a, 0x14, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x02, 0x52, 0x14, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, - 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x15, 0x20, - 0x01, 0x28, 0x02, 0x52, 0x15, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x41, 0x64, 0x64, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x12, 0x30, 0x0a, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x61, 0x76, 0x65, - 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x1a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x65, - 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, - 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x6c, - 0x61, 0x63, 0x65, 0x4f, 0x66, 0x52, 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x1d, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x4f, 0x66, 0x52, 0x65, 0x73, - 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, - 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, - 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x64, - 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, - 0x12, 0x34, 0x0a, 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x21, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, - 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, - 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x1a, - 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x44, 0x0a, 0x10, 0x70, 0x72, - 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x24, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x10, - 0x70, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, - 0x22, 0x3e, 0x0a, 0x10, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x69, 0x64, - 0x22, 0xa7, 0x04, 0x0a, 0x13, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, - 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, - 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x55, 0x49, 0x44, 0x12, 0x18, - 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x65, 0x6e, - 0x64, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x64, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x61, 0x79, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, - 0x49, 0x44, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x73, 0x48, 0x61, 0x76, 0x65, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x69, 0x73, - 0x48, 0x61, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x12, 0x34, 0x0a, 0x15, - 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x66, 0x69, 0x6e, - 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x22, 0x65, 0x0a, 0x14, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0c, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x22, 0x69, 0x0a, 0x19, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, - 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, - 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x22, 0x65, 0x0a, 0x1a, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x0b, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6d, 0x73, 0x67, 0x22, 0xdd, 0x02, 0x0a, 0x15, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, + 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x18, 0x26, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x55, 0x55, 0x49, 0x44, 0x18, 0x27, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x55, 0x55, 0x49, 0x44, 0x22, 0xc5, + 0x01, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, + 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, + 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x22, 0x50, 0x0a, 0x10, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x55, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x22, 0xa7, 0x04, 0x0a, 0x13, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, + 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x55, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x55, 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, + 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x65, 0x6e, 0x64, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x64, 0x53, 0x69, + 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, + 0x69, 0x73, 0x48, 0x61, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x69, 0x73, 0x48, 0x61, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x41, 0x64, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, + 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, + 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, + 0x75, 0x6d, 0x22, 0x65, 0x0a, 0x14, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x89, 0x01, 0x0a, 0x19, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, + 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, + 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x55, 0x55, 0x49, 0x44, 0x22, 0x65, 0x0a, 0x1a, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0b, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xdd, 0x02, 0x0a, + 0x15, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, + 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x61, 0x76, 0x65, + 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x73, + 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x64, 0x69, + 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x6f, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2e, 0x0a, 0x12, + 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, + 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x22, 0x59, 0x0a, 0x1b, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x03, 0x6e, + 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x28, 0xe2, 0xdf, 0x1f, 0x24, 0x10, 0x1d, + 0x18, 0x65, 0x2a, 0x1e, 0xe8, 0x87, 0xb3, 0xe5, 0xb0, 0x91, 0xe6, 0x95, 0xb0, 0xe4, 0xb8, 0xba, + 0x33, 0x30, 0x2c, 0xe6, 0x9c, 0x80, 0xe5, 0xa4, 0x9a, 0xe6, 0x95, 0xb0, 0xe4, 0xb8, 0xba, 0x31, + 0x30, 0x30, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x22, 0x86, 0x01, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, + 0x73, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x22, 0x71, 0x0a, 0x19, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, + 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x22, 0xf7, 0x01, 0x0a, 0x1a, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x31, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x6d, + 0x73, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x31, 0x0a, + 0x1b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, + 0x22, 0x7d, 0x0a, 0x1c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x31, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, + 0x38, 0x0a, 0x1c, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x22, 0xa8, 0x01, 0x0a, 0x0f, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, - 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, - 0x6e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x69, 0x73, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, - 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x02, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, - 0x20, 0x0a, 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x30, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, - 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x12, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x55, 0x69, 0x64, 0x22, 0x59, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, - 0x28, 0xe2, 0xdf, 0x1f, 0x24, 0x10, 0x1d, 0x18, 0x65, 0x2a, 0x1e, 0xe8, 0x87, 0xb3, 0xe5, 0xb0, - 0x91, 0xe6, 0x95, 0xb0, 0xe4, 0xb8, 0xba, 0x33, 0x30, 0x2c, 0xe6, 0x9c, 0x80, 0xe5, 0xa4, 0x9a, - 0xe6, 0x95, 0xb0, 0xe4, 0xb8, 0xba, 0x31, 0x30, 0x30, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x22, 0x86, - 0x01, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, - 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, - 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, 0x41, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x71, 0x0a, 0x19, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, - 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0xf7, 0x01, 0x0a, 0x1a, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x31, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, - 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x4e, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x4e, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6d, 0x73, 0x67, 0x22, 0x31, 0x0a, 0x1b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x7d, 0x0a, 0x1c, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, - 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x79, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x38, 0x0a, 0x1c, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, - 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, - 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, - 0x22, 0xa8, 0x01, 0x0a, 0x0f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x0b, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x52, 0x0b, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x22, 0xf3, 0x02, 0x0a, 0x13, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, - 0x61, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, - 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, - 0x70, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, - 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, - 0x6e, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, - 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x50, 0x72, 0x69, 0x63, - 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x22, 0x66, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, - 0x62, 0x6f, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x22, 0x7c, 0x0a, 0x1a, 0x56, 0x61, 0x6c, + 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x4c, 0x61, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x4c, 0x61, 0x6e, 0x67, 0x22, 0xf3, 0x02, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, + 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, + 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, + 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, + 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, + 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, + 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, + 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0c, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x41, 0x64, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x86, 0x01, 0x0a, 0x14, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x14, 0x0a, + 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, + 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x61, 0x76, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x61, 0x76, 0x65, 0x41, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x7c, 0x0a, 0x1a, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, + 0x65, 0x22, 0x90, 0x01, 0x0a, 0x1b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x49, 0x0a, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, - 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, - 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, - 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, - 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x1b, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x10, 0x0a, - 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, - 0x49, 0x0a, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x4e, 0x0a, 0x1c, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x80, 0x01, 0x0a, 0x1d, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x4d, - 0x0a, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, - 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x22, 0xbf, 0x03, - 0x0a, 0x13, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2c, 0x0a, - 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x76, - 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x40, 0x0a, 0x1b, 0x61, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, - 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x72, - 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, - 0x61, 0x72, 0x6b, 0x12, 0x34, 0x0a, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, - 0x64, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, - 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, - 0x16, 0x0a, 0x14, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x82, 0x02, 0x0a, 0x1e, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, - 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, - 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1a, - 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, - 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, - 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x6b, 0x0a, 0x1f, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, - 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xa2, 0x04, 0x0a, 0x16, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, - 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x76, 0x69, 0x64, 0x65, - 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x41, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x69, 0x6d, - 0x61, 0x67, 0x65, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x26, - 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x40, 0x0a, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, + 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x22, 0x4e, 0x0a, 0x1c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x22, 0x74, 0x0a, 0x1d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x41, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, + 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x0f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x22, 0x59, 0x0a, 0x15, 0x43, 0x61, + 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, + 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, + 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x40, 0x0a, 0x16, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, + 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, + 0x67, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x22, 0xdb, 0x03, 0x0a, 0x13, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, + 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, + 0x2a, 0x0a, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x26, 0x0a, 0x0e, 0x64, + 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x12, 0x40, 0x0a, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x61, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, - 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, - 0x72, 0x6b, 0x12, 0x34, 0x0a, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x13, - 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xed, - 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x65, 0x78, - 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, - 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, - 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xf3, - 0x04, 0x0a, 0x11, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, - 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, 0x69, 0x64, - 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x76, 0x69, 0x64, 0x65, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x6e, 0x69, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x6e, 0x69, + 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x34, 0x0a, 0x15, 0x61, 0x73, 0x73, + 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, + 0x61, 0x74, 0x65, 0x64, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, + 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x16, 0x0a, 0x14, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x82, 0x02, + 0x0a, 0x1e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x75, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x15, + 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x73, 0x73, + 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x22, 0x6b, 0x0a, 0x1f, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x32, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0xa2, 0x04, 0x0a, 0x16, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, + 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x28, + 0x0a, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x64, 0x61, + 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x40, 0x0a, 0x1b, + 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x34, 0x0a, 0x15, 0x61, 0x73, 0x73, 0x6f, + 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, + 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x22, + 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, + 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x22, 0xf1, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x45, + 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xed, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, + 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x45, + 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x8b, 0x05, 0x0a, 0x11, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, + 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x73, 0x65, + 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, + 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x69, 0x64, 0x65, + 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, + 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x76, 0x69, + 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, + 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, + 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x12, + 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, + 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1d, + 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, + 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x32, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, + 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x5b, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, + 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x22, 0x5f, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x22, 0x8e, 0x04, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, + 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x55, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x55, 0x55, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, 0x69, + 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x76, 0x69, 0x64, + 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x64, + 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, + 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1d, 0x64, + 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, + 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x32, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, + 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x19, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x9b, 0x04, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x55, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x55, 0x55, 0x49, 0x44, 0x12, 0x24, + 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, - 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x64, 0x61, - 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, - 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1d, 0x64, 0x61, - 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x32, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, - 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, - 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x22, 0x5b, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x12, 0x2d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x32, 0xaf, 0x0f, 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 0x0c, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, - 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, - 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x18, - 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x09, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x65, 0x6c, 0x66, 0x12, - 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x65, - 0x6c, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x0a, 0x53, 0x61, 0x76, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x14, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x47, 0x0a, 0x0c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x32, - 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x56, 0x32, 0x12, 0x1b, 0x2e, 0x62, 0x75, + 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1d, 0x64, 0x61, 0x74, + 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x14, 0x65, 0x78, + 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x16, + 0x0a, 0x14, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa6, 0x02, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, + 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, + 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, + 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, + 0x28, 0x0a, 0x0f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x75, 0x62, + 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, + 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, + 0x57, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x28, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x73, 0x74, 0x49, 0x74, + 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xf4, 0x03, 0x0a, 0x0c, 0x57, 0x6f, 0x72, + 0x6b, 0x43, 0x61, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, + 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, + 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, + 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x77, + 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, 0x12, 0x1e, 0x0a, + 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, + 0x0b, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x49, 0x44, 0x73, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x49, 0x44, 0x73, 0x12, + 0x1c, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1e, 0x0a, + 0x0a, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, + 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, + 0x6e, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, + 0x2f, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x6f, 0x72, 0x6b, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, + 0x22, 0x2f, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x56, 0x65, 0x64, 0x69, 0x6f, 0x57, 0x6f, 0x72, 0x6b, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x6f, 0x72, + 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, + 0x64, 0x22, 0x86, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x6f, + 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, + 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x6f, + 0x72, 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, + 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x6d, 0x0a, 0x17, 0x47, 0x65, + 0x74, 0x56, 0x65, 0x64, 0x69, 0x6f, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x12, 0x1c, 0x0a, + 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x67, 0x0a, 0x15, 0x54, 0x6f, 0x42, + 0x65, 0x43, 0x6f, 0x6d, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x52, + 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, + 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x22, 0xe6, 0x02, 0x0a, 0x16, 0x54, 0x6f, 0x42, 0x65, 0x43, 0x6f, 0x6d, 0x66, 0x69, + 0x72, 0x6d, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, + 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, + 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, + 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x49, 0x44, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x64, + 0x69, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x41, 0x63, 0x63, 0x49, 0x44, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, + 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x49, 0x44, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x75, 0x62, + 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, + 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, + 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, + 0x6f, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x32, 0xfa, 0x16, 0x0a, 0x06, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x16, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x16, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x09, + 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x65, 0x6c, 0x66, 0x12, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x65, 0x6c, 0x66, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, + 0x0a, 0x53, 0x61, 0x76, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x1a, 0x14, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0c, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x32, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x56, 0x32, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x56, 0x32, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0a, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, + 0x73, 0x74, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0c, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0a, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x4b, 0x0a, 0x0c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, - 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, - 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x19, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, @@ -4134,61 +6962,121 @@ var file_pb_bundle_proto_rawDesc = []byte{ 0x65, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x12, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, - 0x12, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, - 0x69, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x14, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x12, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x4a, 0x0a, 0x13, 0x53, 0x61, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, - 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x12, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, + 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x51, 0x0a, 0x13, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x23, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x32, 0x12, 0x1d, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x32, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x14, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, + 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x5d, 0x0a, 0x12, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x63, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x13, 0x53, 0x61, 0x76, 0x65, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1b, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x1a, 0x14, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x60, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x1a, 0x14, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, - 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, - 0x13, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x66, 0x0a, 0x15, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, - 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0c, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x17, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x26, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x00, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x15, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x24, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x24, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, + 0x6e, 0x67, 0x42, 0x79, 0x55, 0x75, 0x69, 0x64, 0x41, 0x6e, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, + 0x61, 0x67, 0x65, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0e, 0x43, 0x61, 0x6c, 0x63, + 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0c, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x12, 0x1b, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x17, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x26, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1f, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, + 0x20, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4f, 0x0a, + 0x10, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x52, + 0x0a, 0x11, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x1a, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x12, 0x55, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x6f, + 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x12, 0x47, 0x65, 0x74, + 0x56, 0x65, 0x64, 0x69, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, + 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x64, 0x69, + 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x1f, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x64, 0x69, 0x6f, + 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x00, 0x12, 0x55, 0x0a, 0x12, 0x54, 0x6f, 0x42, 0x65, 0x43, 0x6f, 0x6d, 0x66, 0x69, 0x72, 0x6d, + 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x54, 0x6f, 0x42, 0x65, 0x43, 0x6f, 0x6d, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x57, 0x6f, + 0x72, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x54, 0x6f, 0x42, 0x65, 0x43, 0x6f, 0x6d, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x57, 0x6f, 0x72, + 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2f, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -4203,122 +7091,174 @@ func file_pb_bundle_proto_rawDescGZIP() []byte { return file_pb_bundle_proto_rawDescData } -var file_pb_bundle_proto_msgTypes = make([]protoimpl.MessageInfo, 41) +var file_pb_bundle_proto_msgTypes = make([]protoimpl.MessageInfo, 67) var file_pb_bundle_proto_goTypes = []interface{}{ - (*CommonResponse)(nil), // 0: bundle.CommonResponse - (*BundleProfile)(nil), // 1: bundle.BundleProfile - (*BundleProfileLang)(nil), // 2: bundle.BundleProfileLang - (*SaveResponse)(nil), // 3: bundle.SaveResponse - (*SelectValueAddService)(nil), // 4: bundle.SelectValueAddService - (*DelBundleRequest)(nil), // 5: bundle.DelBundleRequest - (*BundleListRequest)(nil), // 6: bundle.BundleListRequest - (*BundleListResponse)(nil), // 7: bundle.BundleListResponse - (*BundleDetailRequest)(nil), // 8: bundle.BundleDetailRequest - (*HandShelfRequest)(nil), // 9: bundle.HandShelfRequest - (*BundleDetailResponse)(nil), // 10: bundle.BundleDetailResponse - (*BundleDetailResponseV2)(nil), // 11: bundle.BundleDetailResponseV2 - (*OrderRecord)(nil), // 12: bundle.OrderRecord - (*PriceOptionsInfo)(nil), // 13: bundle.PriceOptionsInfo - (*OrderRecordsRequest)(nil), // 14: bundle.OrderRecordsRequest - (*OrderRecordsResponse)(nil), // 15: bundle.OrderRecordsResponse - (*OrderRecordsDetailRequest)(nil), // 16: bundle.OrderRecordsDetailRequest - (*OrderRecordsDetailResponse)(nil), // 17: bundle.OrderRecordsDetailResponse - (*ValueAddBundleProfile)(nil), // 18: bundle.ValueAddBundleProfile - (*CreateValueAddBundleRequest)(nil), // 19: bundle.CreateValueAddBundleRequest - (*CreateValueAddBundleResponse)(nil), // 20: bundle.CreateValueAddBundleResponse - (*ValueAddBundleListRequest)(nil), // 21: bundle.ValueAddBundleListRequest - (*ValueAddBundleListResponse)(nil), // 22: bundle.ValueAddBundleListResponse - (*ValueAddBundleDetailRequest)(nil), // 23: bundle.ValueAddBundleDetailRequest - (*ValueAddBundleDetailResponse)(nil), // 24: bundle.ValueAddBundleDetailResponse - (*FinancialConfirmationRequest)(nil), // 25: bundle.FinancialConfirmationRequest - (*ValueAddService)(nil), // 26: bundle.ValueAddService - (*ValueAddServiceLang)(nil), // 27: bundle.ValueAddServiceLang - (*ValueAddPriceOptions)(nil), // 28: bundle.ValueAddPriceOptions - (*ValueAddServiceListRequest)(nil), // 29: bundle.ValueAddServiceListRequest - (*ValueAddServiceListResponse)(nil), // 30: bundle.ValueAddServiceListResponse - (*ValueAddServiceDetailRequest)(nil), // 31: bundle.ValueAddServiceDetailRequest - (*ValueAddServiceDetailResponse)(nil), // 32: bundle.ValueAddServiceDetailResponse - (*BundleExtendRequest)(nil), // 33: bundle.BundleExtendRequest - (*BundleExtendResponse)(nil), // 34: bundle.BundleExtendResponse - (*BundleExtendRecordsListRequest)(nil), // 35: bundle.BundleExtendRecordsListRequest - (*BundleExtendRecordsListResponse)(nil), // 36: bundle.BundleExtendRecordsListResponse - (*BundleExtendRecordItem)(nil), // 37: bundle.BundleExtendRecordItem - (*GetBundleBalanceReq)(nil), // 38: bundle.GetBundleBalanceReq - (*BundleBalanceItem)(nil), // 39: bundle.BundleBalanceItem - (*GetBundleBalanceResp)(nil), // 40: bundle.GetBundleBalanceResp + (*OrderCreateRecord)(nil), // 0: bundle.OrderCreateRecord + (*OrderCreateAddRecord)(nil), // 1: bundle.OrderCreateAddRecord + (*OrderRecordsRequestV2)(nil), // 2: bundle.OrderRecordsRequestV2 + (*OrderRecordsResponseV2)(nil), // 3: bundle.OrderRecordsResponseV2 + (*OrderBundleRecordInfo)(nil), // 4: bundle.OrderBundleRecordInfo + (*OrderAddBundleRecordInfo)(nil), // 5: bundle.OrderAddBundleRecordInfo + (*PackagePriceAndTimeResponse)(nil), // 6: bundle.PackagePriceAndTimeResponse + (*CommonResponse)(nil), // 7: bundle.CommonResponse + (*BundleProfile)(nil), // 8: bundle.BundleProfile + (*BundleProfileLang)(nil), // 9: bundle.BundleProfileLang + (*SaveResponse)(nil), // 10: bundle.SaveResponse + (*SelectValueAddService)(nil), // 11: bundle.SelectValueAddService + (*DelBundleRequest)(nil), // 12: bundle.DelBundleRequest + (*BundleListRequest)(nil), // 13: bundle.BundleListRequest + (*BundleListResponse)(nil), // 14: bundle.BundleListResponse + (*BundleDetailRequest)(nil), // 15: bundle.BundleDetailRequest + (*HandShelfRequest)(nil), // 16: bundle.HandShelfRequest + (*BundleDetailResponse)(nil), // 17: bundle.BundleDetailResponse + (*BundleDetailResponseV2)(nil), // 18: bundle.BundleDetailResponseV2 + (*OrderRecord)(nil), // 19: bundle.OrderRecord + (*OrderAddRecord)(nil), // 20: bundle.OrderAddRecord + (*AddPriceOptionsInfo)(nil), // 21: bundle.AddPriceOptionsInfo + (*PriceOptionsInfo)(nil), // 22: bundle.PriceOptionsInfo + (*OrderRecordsRequest)(nil), // 23: bundle.OrderRecordsRequest + (*OrderRecordsResponse)(nil), // 24: bundle.OrderRecordsResponse + (*OrderRecordsDetailRequest)(nil), // 25: bundle.OrderRecordsDetailRequest + (*OrderRecordsDetailResponse)(nil), // 26: bundle.OrderRecordsDetailResponse + (*ValueAddBundleProfile)(nil), // 27: bundle.ValueAddBundleProfile + (*CreateValueAddBundleRequest)(nil), // 28: bundle.CreateValueAddBundleRequest + (*CreateValueAddBundleResponse)(nil), // 29: bundle.CreateValueAddBundleResponse + (*ValueAddBundleListRequest)(nil), // 30: bundle.ValueAddBundleListRequest + (*ValueAddBundleListResponse)(nil), // 31: bundle.ValueAddBundleListResponse + (*ValueAddBundleDetailRequest)(nil), // 32: bundle.ValueAddBundleDetailRequest + (*ValueAddBundleDetailResponse)(nil), // 33: bundle.ValueAddBundleDetailResponse + (*FinancialConfirmationRequest)(nil), // 34: bundle.FinancialConfirmationRequest + (*ValueAddService)(nil), // 35: bundle.ValueAddService + (*ValueAddServiceLang)(nil), // 36: bundle.ValueAddServiceLang + (*ValueAddPriceOptions)(nil), // 37: bundle.ValueAddPriceOptions + (*ValueAddServiceListRequest)(nil), // 38: bundle.ValueAddServiceListRequest + (*ValueAddServiceListResponse)(nil), // 39: bundle.ValueAddServiceListResponse + (*ValueAddServiceDetailRequest)(nil), // 40: bundle.ValueAddServiceDetailRequest + (*ValueAddServiceDetailResponse)(nil), // 41: bundle.ValueAddServiceDetailResponse + (*CalculatePriceRequest)(nil), // 42: bundle.CalculatePriceRequest + (*CalculatePriceResponse)(nil), // 43: bundle.CalculatePriceResponse + (*BundleExtendRequest)(nil), // 44: bundle.BundleExtendRequest + (*BundleExtendResponse)(nil), // 45: bundle.BundleExtendResponse + (*BundleExtendRecordsListRequest)(nil), // 46: bundle.BundleExtendRecordsListRequest + (*BundleExtendRecordsListResponse)(nil), // 47: bundle.BundleExtendRecordsListResponse + (*BundleExtendRecordItem)(nil), // 48: bundle.BundleExtendRecordItem + (*GetBundleBalanceListReq)(nil), // 49: bundle.GetBundleBalanceListReq + (*GetBundleBalanceReq)(nil), // 50: bundle.GetBundleBalanceReq + (*BundleBalanceItem)(nil), // 51: bundle.BundleBalanceItem + (*GetBundleBalanceResp)(nil), // 52: bundle.GetBundleBalanceResp + (*GetBundleBalanceListResp)(nil), // 53: bundle.GetBundleBalanceListResp + (*CreateBundleBalanceReq)(nil), // 54: bundle.CreateBundleBalanceReq + (*CreateBundleBalanceResp)(nil), // 55: bundle.CreateBundleBalanceResp + (*AddBundleBalanceReq)(nil), // 56: bundle.AddBundleBalanceReq + (*AddBundleBalanceResp)(nil), // 57: bundle.AddBundleBalanceResp + (*GetUsedRecordListReq)(nil), // 58: bundle.GetUsedRecordListReq + (*GetUsedRecordListResp)(nil), // 59: bundle.GetUsedRecordListResp + (*WorkCastItem)(nil), // 60: bundle.WorkCastItem + (*GetImageWorkDetailReq)(nil), // 61: bundle.GetImageWorkDetailReq + (*GetVedioWorkDetailReq)(nil), // 62: bundle.GetVedioWorkDetailReq + (*GetImageWorkDetailResp)(nil), // 63: bundle.GetImageWorkDetailResp + (*GetVedioeWorkDetailResp)(nil), // 64: bundle.GetVedioeWorkDetailResp + (*ToBeComfirmedWorksReq)(nil), // 65: bundle.ToBeComfirmedWorksReq + (*ToBeComfirmedWorksResp)(nil), // 66: bundle.ToBeComfirmedWorksResp } var file_pb_bundle_proto_depIdxs = []int32{ - 4, // 0: bundle.BundleProfile.selectValueAddService:type_name -> bundle.SelectValueAddService - 2, // 1: bundle.BundleProfile.bundleProfileLang:type_name -> bundle.BundleProfileLang - 27, // 2: bundle.BundleProfileLang.valueAddServiceLang:type_name -> bundle.ValueAddServiceLang - 1, // 3: bundle.BundleListResponse.bundles:type_name -> bundle.BundleProfile - 1, // 4: bundle.BundleDetailResponse.bundle:type_name -> bundle.BundleProfile - 2, // 5: bundle.BundleDetailResponseV2.bundle:type_name -> bundle.BundleProfileLang - 4, // 6: bundle.BundleDetailResponseV2.selectValueAddService:type_name -> bundle.SelectValueAddService - 13, // 7: bundle.OrderRecord.priceOptionsInfo:type_name -> bundle.PriceOptionsInfo - 12, // 8: bundle.OrderRecordsResponse.orderRecords:type_name -> bundle.OrderRecord - 12, // 9: bundle.OrderRecordsDetailResponse.orderRecord:type_name -> bundle.OrderRecord - 18, // 10: bundle.ValueAddBundleListResponse.data:type_name -> bundle.ValueAddBundleProfile - 18, // 11: bundle.ValueAddBundleDetailResponse.data:type_name -> bundle.ValueAddBundleProfile - 27, // 12: bundle.ValueAddService.serviceLang:type_name -> bundle.ValueAddServiceLang - 28, // 13: bundle.ValueAddServiceLang.options:type_name -> bundle.ValueAddPriceOptions - 26, // 14: bundle.ValueAddServiceListResponse.valueAddServiceList:type_name -> bundle.ValueAddService - 27, // 15: bundle.ValueAddServiceDetailResponse.valueAddServiceLang:type_name -> bundle.ValueAddServiceLang - 37, // 16: bundle.BundleExtendRecordsListResponse.data:type_name -> bundle.BundleExtendRecordItem - 39, // 17: bundle.GetBundleBalanceResp.data:type_name -> bundle.BundleBalanceItem - 1, // 18: bundle.Bundle.CreateBundle:input_type -> bundle.BundleProfile - 1, // 19: bundle.Bundle.UpdateBundle:input_type -> bundle.BundleProfile - 5, // 20: bundle.Bundle.DeleteBundle:input_type -> bundle.DelBundleRequest - 9, // 21: bundle.Bundle.HandShelf:input_type -> bundle.HandShelfRequest - 1, // 22: bundle.Bundle.SaveBundle:input_type -> bundle.BundleProfile - 6, // 23: bundle.Bundle.BundleListV2:input_type -> bundle.BundleListRequest - 8, // 24: bundle.Bundle.BundleDetailV2:input_type -> bundle.BundleDetailRequest - 6, // 25: bundle.Bundle.BundleList:input_type -> bundle.BundleListRequest - 8, // 26: bundle.Bundle.BundleDetail:input_type -> bundle.BundleDetailRequest - 12, // 27: bundle.Bundle.CreateOrderRecord:input_type -> bundle.OrderRecord - 12, // 28: bundle.Bundle.UpdateOrderRecord:input_type -> bundle.OrderRecord - 12, // 29: bundle.Bundle.UpdateOrderRecordByOrderNo:input_type -> bundle.OrderRecord - 14, // 30: bundle.Bundle.OrderRecordsList:input_type -> bundle.OrderRecordsRequest - 16, // 31: bundle.Bundle.OrderRecordsDetail:input_type -> bundle.OrderRecordsDetailRequest - 25, // 32: bundle.Bundle.UpdateFinancialConfirmationStatus:input_type -> bundle.FinancialConfirmationRequest - 19, // 33: bundle.Bundle.CreateValueAddBundle:input_type -> bundle.CreateValueAddBundleRequest - 21, // 34: bundle.Bundle.ValueAddBundleList:input_type -> bundle.ValueAddBundleListRequest - 23, // 35: bundle.Bundle.ValueAddBundleDetail:input_type -> bundle.ValueAddBundleDetailRequest - 27, // 36: bundle.Bundle.SaveValueAddService:input_type -> bundle.ValueAddServiceLang - 29, // 37: bundle.Bundle.ValueAddServiceList:input_type -> bundle.ValueAddServiceListRequest - 31, // 38: bundle.Bundle.ValueAddServiceDetail:input_type -> bundle.ValueAddServiceDetailRequest - 33, // 39: bundle.Bundle.BundleExtend:input_type -> bundle.BundleExtendRequest - 35, // 40: bundle.Bundle.BundleExtendRecordsList:input_type -> bundle.BundleExtendRecordsListRequest - 38, // 41: bundle.Bundle.GetBundleBalance:input_type -> bundle.GetBundleBalanceReq - 0, // 42: bundle.Bundle.CreateBundle:output_type -> bundle.CommonResponse - 0, // 43: bundle.Bundle.UpdateBundle:output_type -> bundle.CommonResponse - 0, // 44: bundle.Bundle.DeleteBundle:output_type -> bundle.CommonResponse - 0, // 45: bundle.Bundle.HandShelf:output_type -> bundle.CommonResponse - 3, // 46: bundle.Bundle.SaveBundle:output_type -> bundle.SaveResponse - 7, // 47: bundle.Bundle.BundleListV2:output_type -> bundle.BundleListResponse - 11, // 48: bundle.Bundle.BundleDetailV2:output_type -> bundle.BundleDetailResponseV2 - 7, // 49: bundle.Bundle.BundleList:output_type -> bundle.BundleListResponse - 10, // 50: bundle.Bundle.BundleDetail:output_type -> bundle.BundleDetailResponse - 0, // 51: bundle.Bundle.CreateOrderRecord:output_type -> bundle.CommonResponse - 0, // 52: bundle.Bundle.UpdateOrderRecord:output_type -> bundle.CommonResponse - 0, // 53: bundle.Bundle.UpdateOrderRecordByOrderNo:output_type -> bundle.CommonResponse - 15, // 54: bundle.Bundle.OrderRecordsList:output_type -> bundle.OrderRecordsResponse - 17, // 55: bundle.Bundle.OrderRecordsDetail:output_type -> bundle.OrderRecordsDetailResponse - 0, // 56: bundle.Bundle.UpdateFinancialConfirmationStatus:output_type -> bundle.CommonResponse - 20, // 57: bundle.Bundle.CreateValueAddBundle:output_type -> bundle.CreateValueAddBundleResponse - 22, // 58: bundle.Bundle.ValueAddBundleList:output_type -> bundle.ValueAddBundleListResponse - 24, // 59: bundle.Bundle.ValueAddBundleDetail:output_type -> bundle.ValueAddBundleDetailResponse - 3, // 60: bundle.Bundle.SaveValueAddService:output_type -> bundle.SaveResponse - 30, // 61: bundle.Bundle.ValueAddServiceList:output_type -> bundle.ValueAddServiceListResponse - 32, // 62: bundle.Bundle.ValueAddServiceDetail:output_type -> bundle.ValueAddServiceDetailResponse - 34, // 63: bundle.Bundle.BundleExtend:output_type -> bundle.BundleExtendResponse - 36, // 64: bundle.Bundle.BundleExtendRecordsList:output_type -> bundle.BundleExtendRecordsListResponse - 40, // 65: bundle.Bundle.GetBundleBalance:output_type -> bundle.GetBundleBalanceResp - 42, // [42:66] is the sub-list for method output_type - 18, // [18:42] is the sub-list for method input_type - 18, // [18:18] is the sub-list for extension type_name - 18, // [18:18] is the sub-list for extension extendee - 0, // [0:18] is the sub-list for field type_name + 1, // 0: bundle.OrderCreateRecord.addRecords:type_name -> bundle.OrderCreateAddRecord + 4, // 1: bundle.OrderRecordsResponseV2.bundleInfo:type_name -> bundle.OrderBundleRecordInfo + 5, // 2: bundle.OrderBundleRecordInfo.addBundleInfo:type_name -> bundle.OrderAddBundleRecordInfo + 11, // 3: bundle.BundleProfile.selectValueAddService:type_name -> bundle.SelectValueAddService + 9, // 4: bundle.BundleProfile.bundleProfileLang:type_name -> bundle.BundleProfileLang + 8, // 5: bundle.BundleListResponse.bundles:type_name -> bundle.BundleProfile + 8, // 6: bundle.BundleDetailResponse.bundle:type_name -> bundle.BundleProfile + 8, // 7: bundle.BundleDetailResponseV2.bundle:type_name -> bundle.BundleProfile + 22, // 8: bundle.OrderRecord.priceOptionsInfo:type_name -> bundle.PriceOptionsInfo + 21, // 9: bundle.OrderAddRecord.addPriceOptionsList:type_name -> bundle.AddPriceOptionsInfo + 19, // 10: bundle.OrderRecordsResponse.orderRecords:type_name -> bundle.OrderRecord + 19, // 11: bundle.OrderRecordsDetailResponse.orderRecord:type_name -> bundle.OrderRecord + 27, // 12: bundle.ValueAddBundleListResponse.data:type_name -> bundle.ValueAddBundleProfile + 27, // 13: bundle.ValueAddBundleDetailResponse.data:type_name -> bundle.ValueAddBundleProfile + 36, // 14: bundle.ValueAddService.serviceLang:type_name -> bundle.ValueAddServiceLang + 37, // 15: bundle.ValueAddServiceLang.options:type_name -> bundle.ValueAddPriceOptions + 35, // 16: bundle.ValueAddServiceListResponse.valueAddServiceList:type_name -> bundle.ValueAddService + 35, // 17: bundle.ValueAddServiceDetailResponse.valueAddService:type_name -> bundle.ValueAddService + 48, // 18: bundle.BundleExtendRecordsListResponse.data:type_name -> bundle.BundleExtendRecordItem + 51, // 19: bundle.GetBundleBalanceResp.data:type_name -> bundle.BundleBalanceItem + 51, // 20: bundle.GetBundleBalanceListResp.data:type_name -> bundle.BundleBalanceItem + 60, // 21: bundle.GetUsedRecordListResp.data:type_name -> bundle.WorkCastItem + 8, // 22: bundle.Bundle.CreateBundle:input_type -> bundle.BundleProfile + 8, // 23: bundle.Bundle.UpdateBundle:input_type -> bundle.BundleProfile + 12, // 24: bundle.Bundle.DeleteBundle:input_type -> bundle.DelBundleRequest + 16, // 25: bundle.Bundle.HandShelf:input_type -> bundle.HandShelfRequest + 8, // 26: bundle.Bundle.SaveBundle:input_type -> bundle.BundleProfile + 13, // 27: bundle.Bundle.BundleListV2:input_type -> bundle.BundleListRequest + 15, // 28: bundle.Bundle.BundleDetailV2:input_type -> bundle.BundleDetailRequest + 13, // 29: bundle.Bundle.BundleList:input_type -> bundle.BundleListRequest + 15, // 30: bundle.Bundle.BundleDetail:input_type -> bundle.BundleDetailRequest + 0, // 31: bundle.Bundle.CreateOrderRecord:input_type -> bundle.OrderCreateRecord + 19, // 32: bundle.Bundle.UpdateOrderRecord:input_type -> bundle.OrderRecord + 19, // 33: bundle.Bundle.UpdateOrderRecordByOrderNo:input_type -> bundle.OrderRecord + 23, // 34: bundle.Bundle.OrderRecordsList:input_type -> bundle.OrderRecordsRequest + 25, // 35: bundle.Bundle.OrderRecordsDetail:input_type -> bundle.OrderRecordsDetailRequest + 34, // 36: bundle.Bundle.UpdateFinancialConfirmationStatus:input_type -> bundle.FinancialConfirmationRequest + 20, // 37: bundle.Bundle.CreateOrderAddRecord:input_type -> bundle.OrderAddRecord + 19, // 38: bundle.Bundle.PackagePriceAndTime:input_type -> bundle.OrderRecord + 2, // 39: bundle.Bundle.OrderRecordsListV2:input_type -> bundle.OrderRecordsRequestV2 + 28, // 40: bundle.Bundle.CreateValueAddBundle:input_type -> bundle.CreateValueAddBundleRequest + 30, // 41: bundle.Bundle.ValueAddBundleList:input_type -> bundle.ValueAddBundleListRequest + 32, // 42: bundle.Bundle.ValueAddBundleDetail:input_type -> bundle.ValueAddBundleDetailRequest + 36, // 43: bundle.Bundle.SaveValueAddService:input_type -> bundle.ValueAddServiceLang + 38, // 44: bundle.Bundle.ValueAddServiceList:input_type -> bundle.ValueAddServiceListRequest + 40, // 45: bundle.Bundle.ValueAddServiceDetail:input_type -> bundle.ValueAddServiceDetailRequest + 40, // 46: bundle.Bundle.ValueAddServiceLangByUuidAndLanguage:input_type -> bundle.ValueAddServiceDetailRequest + 42, // 47: bundle.Bundle.CalculatePrice:input_type -> bundle.CalculatePriceRequest + 44, // 48: bundle.Bundle.BundleExtend:input_type -> bundle.BundleExtendRequest + 46, // 49: bundle.Bundle.BundleExtendRecordsList:input_type -> bundle.BundleExtendRecordsListRequest + 49, // 50: bundle.Bundle.GetBundleBalanceList:input_type -> bundle.GetBundleBalanceListReq + 54, // 51: bundle.Bundle.CreateBundleBalance:input_type -> bundle.CreateBundleBalanceReq + 56, // 52: bundle.Bundle.AddBundleBalance:input_type -> bundle.AddBundleBalanceReq + 58, // 53: bundle.Bundle.GetUsedRecordList:input_type -> bundle.GetUsedRecordListReq + 61, // 54: bundle.Bundle.GetImageWorkDetail:input_type -> bundle.GetImageWorkDetailReq + 62, // 55: bundle.Bundle.GetVedioWorkDetail:input_type -> bundle.GetVedioWorkDetailReq + 65, // 56: bundle.Bundle.ToBeComfirmedWorks:input_type -> bundle.ToBeComfirmedWorksReq + 7, // 57: bundle.Bundle.CreateBundle:output_type -> bundle.CommonResponse + 7, // 58: bundle.Bundle.UpdateBundle:output_type -> bundle.CommonResponse + 7, // 59: bundle.Bundle.DeleteBundle:output_type -> bundle.CommonResponse + 7, // 60: bundle.Bundle.HandShelf:output_type -> bundle.CommonResponse + 10, // 61: bundle.Bundle.SaveBundle:output_type -> bundle.SaveResponse + 14, // 62: bundle.Bundle.BundleListV2:output_type -> bundle.BundleListResponse + 18, // 63: bundle.Bundle.BundleDetailV2:output_type -> bundle.BundleDetailResponseV2 + 14, // 64: bundle.Bundle.BundleList:output_type -> bundle.BundleListResponse + 17, // 65: bundle.Bundle.BundleDetail:output_type -> bundle.BundleDetailResponse + 7, // 66: bundle.Bundle.CreateOrderRecord:output_type -> bundle.CommonResponse + 7, // 67: bundle.Bundle.UpdateOrderRecord:output_type -> bundle.CommonResponse + 7, // 68: bundle.Bundle.UpdateOrderRecordByOrderNo:output_type -> bundle.CommonResponse + 24, // 69: bundle.Bundle.OrderRecordsList:output_type -> bundle.OrderRecordsResponse + 26, // 70: bundle.Bundle.OrderRecordsDetail:output_type -> bundle.OrderRecordsDetailResponse + 7, // 71: bundle.Bundle.UpdateFinancialConfirmationStatus:output_type -> bundle.CommonResponse + 7, // 72: bundle.Bundle.CreateOrderAddRecord:output_type -> bundle.CommonResponse + 6, // 73: bundle.Bundle.PackagePriceAndTime:output_type -> bundle.PackagePriceAndTimeResponse + 3, // 74: bundle.Bundle.OrderRecordsListV2:output_type -> bundle.OrderRecordsResponseV2 + 29, // 75: bundle.Bundle.CreateValueAddBundle:output_type -> bundle.CreateValueAddBundleResponse + 31, // 76: bundle.Bundle.ValueAddBundleList:output_type -> bundle.ValueAddBundleListResponse + 33, // 77: bundle.Bundle.ValueAddBundleDetail:output_type -> bundle.ValueAddBundleDetailResponse + 10, // 78: bundle.Bundle.SaveValueAddService:output_type -> bundle.SaveResponse + 39, // 79: bundle.Bundle.ValueAddServiceList:output_type -> bundle.ValueAddServiceListResponse + 41, // 80: bundle.Bundle.ValueAddServiceDetail:output_type -> bundle.ValueAddServiceDetailResponse + 36, // 81: bundle.Bundle.ValueAddServiceLangByUuidAndLanguage:output_type -> bundle.ValueAddServiceLang + 43, // 82: bundle.Bundle.CalculatePrice:output_type -> bundle.CalculatePriceResponse + 45, // 83: bundle.Bundle.BundleExtend:output_type -> bundle.BundleExtendResponse + 47, // 84: bundle.Bundle.BundleExtendRecordsList:output_type -> bundle.BundleExtendRecordsListResponse + 53, // 85: bundle.Bundle.GetBundleBalanceList:output_type -> bundle.GetBundleBalanceListResp + 55, // 86: bundle.Bundle.CreateBundleBalance:output_type -> bundle.CreateBundleBalanceResp + 57, // 87: bundle.Bundle.AddBundleBalance:output_type -> bundle.AddBundleBalanceResp + 59, // 88: bundle.Bundle.GetUsedRecordList:output_type -> bundle.GetUsedRecordListResp + 63, // 89: bundle.Bundle.GetImageWorkDetail:output_type -> bundle.GetImageWorkDetailResp + 64, // 90: bundle.Bundle.GetVedioWorkDetail:output_type -> bundle.GetVedioeWorkDetailResp + 66, // 91: bundle.Bundle.ToBeComfirmedWorks:output_type -> bundle.ToBeComfirmedWorksResp + 57, // [57:92] is the sub-list for method output_type + 22, // [22:57] is the sub-list for method input_type + 22, // [22:22] is the sub-list for extension type_name + 22, // [22:22] is the sub-list for extension extendee + 0, // [0:22] is the sub-list for field type_name } func init() { file_pb_bundle_proto_init() } @@ -4328,7 +7268,7 @@ func file_pb_bundle_proto_init() { } if !protoimpl.UnsafeEnabled { file_pb_bundle_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CommonResponse); i { + switch v := v.(*OrderCreateRecord); i { case 0: return &v.state case 1: @@ -4340,7 +7280,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BundleProfile); i { + switch v := v.(*OrderCreateAddRecord); i { case 0: return &v.state case 1: @@ -4352,7 +7292,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BundleProfileLang); i { + switch v := v.(*OrderRecordsRequestV2); i { case 0: return &v.state case 1: @@ -4364,7 +7304,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SaveResponse); i { + switch v := v.(*OrderRecordsResponseV2); i { case 0: return &v.state case 1: @@ -4376,7 +7316,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SelectValueAddService); i { + switch v := v.(*OrderBundleRecordInfo); i { case 0: return &v.state case 1: @@ -4388,7 +7328,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DelBundleRequest); i { + switch v := v.(*OrderAddBundleRecordInfo); i { case 0: return &v.state case 1: @@ -4400,7 +7340,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BundleListRequest); i { + switch v := v.(*PackagePriceAndTimeResponse); i { case 0: return &v.state case 1: @@ -4412,7 +7352,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BundleListResponse); i { + switch v := v.(*CommonResponse); i { case 0: return &v.state case 1: @@ -4424,7 +7364,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BundleDetailRequest); i { + switch v := v.(*BundleProfile); i { case 0: return &v.state case 1: @@ -4436,7 +7376,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HandShelfRequest); i { + switch v := v.(*BundleProfileLang); i { case 0: return &v.state case 1: @@ -4448,7 +7388,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BundleDetailResponse); i { + switch v := v.(*SaveResponse); i { case 0: return &v.state case 1: @@ -4460,7 +7400,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BundleDetailResponseV2); i { + switch v := v.(*SelectValueAddService); i { case 0: return &v.state case 1: @@ -4472,7 +7412,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrderRecord); i { + switch v := v.(*DelBundleRequest); i { case 0: return &v.state case 1: @@ -4484,7 +7424,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PriceOptionsInfo); i { + switch v := v.(*BundleListRequest); i { case 0: return &v.state case 1: @@ -4496,7 +7436,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrderRecordsRequest); i { + switch v := v.(*BundleListResponse); i { case 0: return &v.state case 1: @@ -4508,7 +7448,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrderRecordsResponse); i { + switch v := v.(*BundleDetailRequest); i { case 0: return &v.state case 1: @@ -4520,7 +7460,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrderRecordsDetailRequest); i { + switch v := v.(*HandShelfRequest); i { case 0: return &v.state case 1: @@ -4532,7 +7472,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrderRecordsDetailResponse); i { + switch v := v.(*BundleDetailResponse); i { case 0: return &v.state case 1: @@ -4544,7 +7484,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValueAddBundleProfile); i { + switch v := v.(*BundleDetailResponseV2); i { case 0: return &v.state case 1: @@ -4556,7 +7496,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateValueAddBundleRequest); i { + switch v := v.(*OrderRecord); i { case 0: return &v.state case 1: @@ -4568,7 +7508,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateValueAddBundleResponse); i { + switch v := v.(*OrderAddRecord); i { case 0: return &v.state case 1: @@ -4580,7 +7520,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValueAddBundleListRequest); i { + switch v := v.(*AddPriceOptionsInfo); i { case 0: return &v.state case 1: @@ -4592,7 +7532,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValueAddBundleListResponse); i { + switch v := v.(*PriceOptionsInfo); i { case 0: return &v.state case 1: @@ -4604,7 +7544,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValueAddBundleDetailRequest); i { + switch v := v.(*OrderRecordsRequest); i { case 0: return &v.state case 1: @@ -4616,7 +7556,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValueAddBundleDetailResponse); i { + switch v := v.(*OrderRecordsResponse); i { case 0: return &v.state case 1: @@ -4628,7 +7568,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FinancialConfirmationRequest); i { + switch v := v.(*OrderRecordsDetailRequest); i { case 0: return &v.state case 1: @@ -4640,7 +7580,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValueAddService); i { + switch v := v.(*OrderRecordsDetailResponse); i { case 0: return &v.state case 1: @@ -4652,7 +7592,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValueAddServiceLang); i { + switch v := v.(*ValueAddBundleProfile); i { case 0: return &v.state case 1: @@ -4664,7 +7604,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValueAddPriceOptions); i { + switch v := v.(*CreateValueAddBundleRequest); i { case 0: return &v.state case 1: @@ -4676,7 +7616,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValueAddServiceListRequest); i { + switch v := v.(*CreateValueAddBundleResponse); i { case 0: return &v.state case 1: @@ -4688,7 +7628,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValueAddServiceListResponse); i { + switch v := v.(*ValueAddBundleListRequest); i { case 0: return &v.state case 1: @@ -4700,7 +7640,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValueAddServiceDetailRequest); i { + switch v := v.(*ValueAddBundleListResponse); i { case 0: return &v.state case 1: @@ -4712,7 +7652,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValueAddServiceDetailResponse); i { + switch v := v.(*ValueAddBundleDetailRequest); i { case 0: return &v.state case 1: @@ -4724,7 +7664,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BundleExtendRequest); i { + switch v := v.(*ValueAddBundleDetailResponse); i { case 0: return &v.state case 1: @@ -4736,7 +7676,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BundleExtendResponse); i { + switch v := v.(*FinancialConfirmationRequest); i { case 0: return &v.state case 1: @@ -4748,7 +7688,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BundleExtendRecordsListRequest); i { + switch v := v.(*ValueAddService); i { case 0: return &v.state case 1: @@ -4760,7 +7700,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BundleExtendRecordsListResponse); i { + switch v := v.(*ValueAddServiceLang); i { case 0: return &v.state case 1: @@ -4772,7 +7712,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BundleExtendRecordItem); i { + switch v := v.(*ValueAddPriceOptions); i { case 0: return &v.state case 1: @@ -4784,7 +7724,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBundleBalanceReq); i { + switch v := v.(*ValueAddServiceListRequest); i { case 0: return &v.state case 1: @@ -4796,7 +7736,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BundleBalanceItem); i { + switch v := v.(*ValueAddServiceListResponse); i { case 0: return &v.state case 1: @@ -4808,6 +7748,150 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValueAddServiceDetailRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValueAddServiceDetailResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CalculatePriceRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CalculatePriceResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BundleExtendRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BundleExtendResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BundleExtendRecordsListRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BundleExtendRecordsListResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BundleExtendRecordItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBundleBalanceListReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBundleBalanceReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BundleBalanceItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetBundleBalanceResp); i { case 0: return &v.state @@ -4819,6 +7903,174 @@ func file_pb_bundle_proto_init() { return nil } } + file_pb_bundle_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBundleBalanceListResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateBundleBalanceReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateBundleBalanceResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddBundleBalanceReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddBundleBalanceResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUsedRecordListReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUsedRecordListResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WorkCastItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetImageWorkDetailReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetVedioWorkDetailReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetImageWorkDetailResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetVedioeWorkDetailResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ToBeComfirmedWorksReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ToBeComfirmedWorksResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -4826,7 +8078,7 @@ func file_pb_bundle_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pb_bundle_proto_rawDesc, NumEnums: 0, - NumMessages: 41, + NumMessages: 67, NumExtensions: 0, NumServices: 1, }, diff --git a/api/bundle/bundle.validator.pb.go b/api/bundle/bundle.validator.pb.go index 56bbaa8..1beb46c 100644 --- a/api/bundle/bundle.validator.pb.go +++ b/api/bundle/bundle.validator.pb.go @@ -17,6 +17,48 @@ var _ = proto.Marshal var _ = fmt.Errorf var _ = math.Inf +func (this *OrderCreateRecord) Validate() error { + for _, item := range this.AddRecords { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("AddRecords", err) + } + } + } + return nil +} +func (this *OrderCreateAddRecord) Validate() error { + return nil +} +func (this *OrderRecordsRequestV2) Validate() error { + return nil +} +func (this *OrderRecordsResponseV2) Validate() error { + for _, item := range this.BundleInfo { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("BundleInfo", err) + } + } + } + return nil +} +func (this *OrderBundleRecordInfo) Validate() error { + for _, item := range this.AddBundleInfo { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("AddBundleInfo", err) + } + } + } + return nil +} +func (this *OrderAddBundleRecordInfo) Validate() error { + return nil +} +func (this *PackagePriceAndTimeResponse) Validate() error { + return nil +} func (this *CommonResponse) Validate() error { return nil } @@ -38,13 +80,6 @@ func (this *BundleProfile) Validate() error { return nil } func (this *BundleProfileLang) Validate() error { - for _, item := range this.ValueAddServiceLang { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("ValueAddServiceLang", err) - } - } - } return nil } func (this *SaveResponse) Validate() error { @@ -89,13 +124,6 @@ func (this *BundleDetailResponseV2) Validate() error { return github_com_mwitkow_go_proto_validators.FieldError("Bundle", err) } } - for _, item := range this.SelectValueAddService { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("SelectValueAddService", err) - } - } - } return nil } func (this *OrderRecord) Validate() error { @@ -108,6 +136,19 @@ func (this *OrderRecord) Validate() error { } return nil } +func (this *OrderAddRecord) Validate() error { + for _, item := range this.AddPriceOptionsList { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("AddPriceOptionsList", err) + } + } + } + return nil +} +func (this *AddPriceOptionsInfo) Validate() error { + return nil +} func (this *PriceOptionsInfo) Validate() error { return nil } @@ -217,13 +258,19 @@ func (this *ValueAddServiceDetailRequest) Validate() error { return nil } func (this *ValueAddServiceDetailResponse) Validate() error { - if this.ValueAddServiceLang != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.ValueAddServiceLang); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("ValueAddServiceLang", err) + if this.ValueAddService != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.ValueAddService); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ValueAddService", err) } } return nil } +func (this *CalculatePriceRequest) Validate() error { + return nil +} +func (this *CalculatePriceResponse) Validate() error { + return nil +} func (this *BundleExtendRequest) Validate() error { return nil } @@ -246,6 +293,9 @@ func (this *BundleExtendRecordsListResponse) Validate() error { func (this *BundleExtendRecordItem) Validate() error { return nil } +func (this *GetBundleBalanceListReq) Validate() error { + return nil +} func (this *GetBundleBalanceReq) Validate() error { return nil } @@ -262,3 +312,59 @@ func (this *GetBundleBalanceResp) Validate() error { } return nil } +func (this *GetBundleBalanceListResp) Validate() error { + for _, item := range this.Data { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Data", err) + } + } + } + return nil +} +func (this *CreateBundleBalanceReq) Validate() error { + return nil +} +func (this *CreateBundleBalanceResp) Validate() error { + return nil +} +func (this *AddBundleBalanceReq) Validate() error { + return nil +} +func (this *AddBundleBalanceResp) Validate() error { + return nil +} +func (this *GetUsedRecordListReq) Validate() error { + return nil +} +func (this *GetUsedRecordListResp) Validate() error { + for _, item := range this.Data { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Data", err) + } + } + } + return nil +} +func (this *WorkCastItem) Validate() error { + return nil +} +func (this *GetImageWorkDetailReq) Validate() error { + return nil +} +func (this *GetVedioWorkDetailReq) Validate() error { + return nil +} +func (this *GetImageWorkDetailResp) Validate() error { + return nil +} +func (this *GetVedioeWorkDetailResp) Validate() error { + return nil +} +func (this *ToBeComfirmedWorksReq) Validate() error { + return nil +} +func (this *ToBeComfirmedWorksResp) Validate() error { + return nil +} diff --git a/api/bundle/bundle_triple.pb.go b/api/bundle/bundle_triple.pb.go index 214f568..d84df15 100644 --- a/api/bundle/bundle_triple.pb.go +++ b/api/bundle/bundle_triple.pb.go @@ -37,12 +37,15 @@ type BundleClient interface { BundleDetailV2(ctx context.Context, in *BundleDetailRequest, opts ...grpc_go.CallOption) (*BundleDetailResponseV2, common.ErrorWithAttachment) BundleList(ctx context.Context, in *BundleListRequest, opts ...grpc_go.CallOption) (*BundleListResponse, common.ErrorWithAttachment) BundleDetail(ctx context.Context, in *BundleDetailRequest, opts ...grpc_go.CallOption) (*BundleDetailResponse, common.ErrorWithAttachment) - CreateOrderRecord(ctx context.Context, in *OrderRecord, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) + CreateOrderRecord(ctx context.Context, in *OrderCreateRecord, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) UpdateOrderRecord(ctx context.Context, in *OrderRecord, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) UpdateOrderRecordByOrderNo(ctx context.Context, in *OrderRecord, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) OrderRecordsList(ctx context.Context, in *OrderRecordsRequest, opts ...grpc_go.CallOption) (*OrderRecordsResponse, common.ErrorWithAttachment) OrderRecordsDetail(ctx context.Context, in *OrderRecordsDetailRequest, opts ...grpc_go.CallOption) (*OrderRecordsDetailResponse, common.ErrorWithAttachment) UpdateFinancialConfirmationStatus(ctx context.Context, in *FinancialConfirmationRequest, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) + CreateOrderAddRecord(ctx context.Context, in *OrderAddRecord, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) + PackagePriceAndTime(ctx context.Context, in *OrderRecord, opts ...grpc_go.CallOption) (*PackagePriceAndTimeResponse, common.ErrorWithAttachment) + OrderRecordsListV2(ctx context.Context, in *OrderRecordsRequestV2, opts ...grpc_go.CallOption) (*OrderRecordsResponseV2, common.ErrorWithAttachment) // 增值套餐 CreateValueAddBundle(ctx context.Context, in *CreateValueAddBundleRequest, opts ...grpc_go.CallOption) (*CreateValueAddBundleResponse, common.ErrorWithAttachment) ValueAddBundleList(ctx context.Context, in *ValueAddBundleListRequest, opts ...grpc_go.CallOption) (*ValueAddBundleListResponse, common.ErrorWithAttachment) @@ -51,10 +54,19 @@ type BundleClient interface { SaveValueAddService(ctx context.Context, in *ValueAddServiceLang, opts ...grpc_go.CallOption) (*SaveResponse, common.ErrorWithAttachment) ValueAddServiceList(ctx context.Context, in *ValueAddServiceListRequest, opts ...grpc_go.CallOption) (*ValueAddServiceListResponse, common.ErrorWithAttachment) ValueAddServiceDetail(ctx context.Context, in *ValueAddServiceDetailRequest, opts ...grpc_go.CallOption) (*ValueAddServiceDetailResponse, common.ErrorWithAttachment) + ValueAddServiceLangByUuidAndLanguage(ctx context.Context, in *ValueAddServiceDetailRequest, opts ...grpc_go.CallOption) (*ValueAddServiceLang, common.ErrorWithAttachment) + CalculatePrice(ctx context.Context, in *CalculatePriceRequest, opts ...grpc_go.CallOption) (*CalculatePriceResponse, common.ErrorWithAttachment) // 余量管理 BundleExtend(ctx context.Context, in *BundleExtendRequest, opts ...grpc_go.CallOption) (*BundleExtendResponse, common.ErrorWithAttachment) BundleExtendRecordsList(ctx context.Context, in *BundleExtendRecordsListRequest, opts ...grpc_go.CallOption) (*BundleExtendRecordsListResponse, common.ErrorWithAttachment) - GetBundleBalance(ctx context.Context, in *GetBundleBalanceReq, opts ...grpc_go.CallOption) (*GetBundleBalanceResp, common.ErrorWithAttachment) + GetBundleBalanceList(ctx context.Context, in *GetBundleBalanceListReq, opts ...grpc_go.CallOption) (*GetBundleBalanceListResp, common.ErrorWithAttachment) + CreateBundleBalance(ctx context.Context, in *CreateBundleBalanceReq, opts ...grpc_go.CallOption) (*CreateBundleBalanceResp, common.ErrorWithAttachment) + AddBundleBalance(ctx context.Context, in *AddBundleBalanceReq, opts ...grpc_go.CallOption) (*AddBundleBalanceResp, common.ErrorWithAttachment) + // 使用记录 + GetUsedRecordList(ctx context.Context, in *GetUsedRecordListReq, opts ...grpc_go.CallOption) (*GetUsedRecordListResp, common.ErrorWithAttachment) + GetImageWorkDetail(ctx context.Context, in *GetImageWorkDetailReq, opts ...grpc_go.CallOption) (*GetImageWorkDetailResp, common.ErrorWithAttachment) + GetVedioWorkDetail(ctx context.Context, in *GetVedioWorkDetailReq, opts ...grpc_go.CallOption) (*GetVedioeWorkDetailResp, common.ErrorWithAttachment) + ToBeComfirmedWorks(ctx context.Context, in *ToBeComfirmedWorksReq, opts ...grpc_go.CallOption) (*ToBeComfirmedWorksResp, common.ErrorWithAttachment) } type bundleClient struct { @@ -62,30 +74,41 @@ type bundleClient struct { } type BundleClientImpl struct { - CreateBundle func(ctx context.Context, in *BundleProfile) (*CommonResponse, error) - UpdateBundle func(ctx context.Context, in *BundleProfile) (*CommonResponse, error) - DeleteBundle func(ctx context.Context, in *DelBundleRequest) (*CommonResponse, error) - HandShelf func(ctx context.Context, in *HandShelfRequest) (*CommonResponse, error) - SaveBundle func(ctx context.Context, in *BundleProfile) (*SaveResponse, error) - BundleListV2 func(ctx context.Context, in *BundleListRequest) (*BundleListResponse, error) - BundleDetailV2 func(ctx context.Context, in *BundleDetailRequest) (*BundleDetailResponseV2, error) - BundleList func(ctx context.Context, in *BundleListRequest) (*BundleListResponse, error) - BundleDetail func(ctx context.Context, in *BundleDetailRequest) (*BundleDetailResponse, error) - CreateOrderRecord func(ctx context.Context, in *OrderRecord) (*CommonResponse, error) - UpdateOrderRecord func(ctx context.Context, in *OrderRecord) (*CommonResponse, error) - UpdateOrderRecordByOrderNo func(ctx context.Context, in *OrderRecord) (*CommonResponse, error) - OrderRecordsList func(ctx context.Context, in *OrderRecordsRequest) (*OrderRecordsResponse, error) - OrderRecordsDetail func(ctx context.Context, in *OrderRecordsDetailRequest) (*OrderRecordsDetailResponse, error) - UpdateFinancialConfirmationStatus func(ctx context.Context, in *FinancialConfirmationRequest) (*CommonResponse, error) - CreateValueAddBundle func(ctx context.Context, in *CreateValueAddBundleRequest) (*CreateValueAddBundleResponse, error) - ValueAddBundleList func(ctx context.Context, in *ValueAddBundleListRequest) (*ValueAddBundleListResponse, error) - ValueAddBundleDetail func(ctx context.Context, in *ValueAddBundleDetailRequest) (*ValueAddBundleDetailResponse, error) - SaveValueAddService func(ctx context.Context, in *ValueAddServiceLang) (*SaveResponse, error) - ValueAddServiceList func(ctx context.Context, in *ValueAddServiceListRequest) (*ValueAddServiceListResponse, error) - ValueAddServiceDetail func(ctx context.Context, in *ValueAddServiceDetailRequest) (*ValueAddServiceDetailResponse, error) - BundleExtend func(ctx context.Context, in *BundleExtendRequest) (*BundleExtendResponse, error) - BundleExtendRecordsList func(ctx context.Context, in *BundleExtendRecordsListRequest) (*BundleExtendRecordsListResponse, error) - GetBundleBalance func(ctx context.Context, in *GetBundleBalanceReq) (*GetBundleBalanceResp, error) + CreateBundle func(ctx context.Context, in *BundleProfile) (*CommonResponse, error) + UpdateBundle func(ctx context.Context, in *BundleProfile) (*CommonResponse, error) + DeleteBundle func(ctx context.Context, in *DelBundleRequest) (*CommonResponse, error) + HandShelf func(ctx context.Context, in *HandShelfRequest) (*CommonResponse, error) + SaveBundle func(ctx context.Context, in *BundleProfile) (*SaveResponse, error) + BundleListV2 func(ctx context.Context, in *BundleListRequest) (*BundleListResponse, error) + BundleDetailV2 func(ctx context.Context, in *BundleDetailRequest) (*BundleDetailResponseV2, error) + BundleList func(ctx context.Context, in *BundleListRequest) (*BundleListResponse, error) + BundleDetail func(ctx context.Context, in *BundleDetailRequest) (*BundleDetailResponse, error) + CreateOrderRecord func(ctx context.Context, in *OrderCreateRecord) (*CommonResponse, error) + UpdateOrderRecord func(ctx context.Context, in *OrderRecord) (*CommonResponse, error) + UpdateOrderRecordByOrderNo func(ctx context.Context, in *OrderRecord) (*CommonResponse, error) + OrderRecordsList func(ctx context.Context, in *OrderRecordsRequest) (*OrderRecordsResponse, error) + OrderRecordsDetail func(ctx context.Context, in *OrderRecordsDetailRequest) (*OrderRecordsDetailResponse, error) + UpdateFinancialConfirmationStatus func(ctx context.Context, in *FinancialConfirmationRequest) (*CommonResponse, error) + CreateOrderAddRecord func(ctx context.Context, in *OrderAddRecord) (*CommonResponse, error) + PackagePriceAndTime func(ctx context.Context, in *OrderRecord) (*PackagePriceAndTimeResponse, error) + OrderRecordsListV2 func(ctx context.Context, in *OrderRecordsRequestV2) (*OrderRecordsResponseV2, error) + CreateValueAddBundle func(ctx context.Context, in *CreateValueAddBundleRequest) (*CreateValueAddBundleResponse, error) + ValueAddBundleList func(ctx context.Context, in *ValueAddBundleListRequest) (*ValueAddBundleListResponse, error) + ValueAddBundleDetail func(ctx context.Context, in *ValueAddBundleDetailRequest) (*ValueAddBundleDetailResponse, error) + SaveValueAddService func(ctx context.Context, in *ValueAddServiceLang) (*SaveResponse, error) + ValueAddServiceList func(ctx context.Context, in *ValueAddServiceListRequest) (*ValueAddServiceListResponse, error) + ValueAddServiceDetail func(ctx context.Context, in *ValueAddServiceDetailRequest) (*ValueAddServiceDetailResponse, error) + ValueAddServiceLangByUuidAndLanguage func(ctx context.Context, in *ValueAddServiceDetailRequest) (*ValueAddServiceLang, error) + CalculatePrice func(ctx context.Context, in *CalculatePriceRequest) (*CalculatePriceResponse, error) + BundleExtend func(ctx context.Context, in *BundleExtendRequest) (*BundleExtendResponse, error) + BundleExtendRecordsList func(ctx context.Context, in *BundleExtendRecordsListRequest) (*BundleExtendRecordsListResponse, error) + GetBundleBalanceList func(ctx context.Context, in *GetBundleBalanceListReq) (*GetBundleBalanceListResp, error) + CreateBundleBalance func(ctx context.Context, in *CreateBundleBalanceReq) (*CreateBundleBalanceResp, error) + AddBundleBalance func(ctx context.Context, in *AddBundleBalanceReq) (*AddBundleBalanceResp, error) + GetUsedRecordList func(ctx context.Context, in *GetUsedRecordListReq) (*GetUsedRecordListResp, error) + GetImageWorkDetail func(ctx context.Context, in *GetImageWorkDetailReq) (*GetImageWorkDetailResp, error) + GetVedioWorkDetail func(ctx context.Context, in *GetVedioWorkDetailReq) (*GetVedioeWorkDetailResp, error) + ToBeComfirmedWorks func(ctx context.Context, in *ToBeComfirmedWorksReq) (*ToBeComfirmedWorksResp, error) } func (c *BundleClientImpl) GetDubboStub(cc *triple.TripleConn) BundleClient { @@ -154,7 +177,7 @@ func (c *bundleClient) BundleDetail(ctx context.Context, in *BundleDetailRequest return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/BundleDetail", in, out) } -func (c *bundleClient) CreateOrderRecord(ctx context.Context, in *OrderRecord, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) { +func (c *bundleClient) CreateOrderRecord(ctx context.Context, in *OrderCreateRecord, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) { out := new(CommonResponse) interfaceKey := ctx.Value(constant.InterfaceKey).(string) return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CreateOrderRecord", in, out) @@ -190,6 +213,24 @@ func (c *bundleClient) UpdateFinancialConfirmationStatus(ctx context.Context, in return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateFinancialConfirmationStatus", in, out) } +func (c *bundleClient) CreateOrderAddRecord(ctx context.Context, in *OrderAddRecord, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) { + out := new(CommonResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CreateOrderAddRecord", in, out) +} + +func (c *bundleClient) PackagePriceAndTime(ctx context.Context, in *OrderRecord, opts ...grpc_go.CallOption) (*PackagePriceAndTimeResponse, common.ErrorWithAttachment) { + out := new(PackagePriceAndTimeResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/PackagePriceAndTime", in, out) +} + +func (c *bundleClient) OrderRecordsListV2(ctx context.Context, in *OrderRecordsRequestV2, opts ...grpc_go.CallOption) (*OrderRecordsResponseV2, common.ErrorWithAttachment) { + out := new(OrderRecordsResponseV2) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/OrderRecordsListV2", in, out) +} + func (c *bundleClient) CreateValueAddBundle(ctx context.Context, in *CreateValueAddBundleRequest, opts ...grpc_go.CallOption) (*CreateValueAddBundleResponse, common.ErrorWithAttachment) { out := new(CreateValueAddBundleResponse) interfaceKey := ctx.Value(constant.InterfaceKey).(string) @@ -226,6 +267,18 @@ func (c *bundleClient) ValueAddServiceDetail(ctx context.Context, in *ValueAddSe return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ValueAddServiceDetail", in, out) } +func (c *bundleClient) ValueAddServiceLangByUuidAndLanguage(ctx context.Context, in *ValueAddServiceDetailRequest, opts ...grpc_go.CallOption) (*ValueAddServiceLang, common.ErrorWithAttachment) { + out := new(ValueAddServiceLang) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ValueAddServiceLangByUuidAndLanguage", in, out) +} + +func (c *bundleClient) CalculatePrice(ctx context.Context, in *CalculatePriceRequest, opts ...grpc_go.CallOption) (*CalculatePriceResponse, common.ErrorWithAttachment) { + out := new(CalculatePriceResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CalculatePrice", in, out) +} + func (c *bundleClient) BundleExtend(ctx context.Context, in *BundleExtendRequest, opts ...grpc_go.CallOption) (*BundleExtendResponse, common.ErrorWithAttachment) { out := new(BundleExtendResponse) interfaceKey := ctx.Value(constant.InterfaceKey).(string) @@ -238,10 +291,46 @@ func (c *bundleClient) BundleExtendRecordsList(ctx context.Context, in *BundleEx return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/BundleExtendRecordsList", in, out) } -func (c *bundleClient) GetBundleBalance(ctx context.Context, in *GetBundleBalanceReq, opts ...grpc_go.CallOption) (*GetBundleBalanceResp, common.ErrorWithAttachment) { - out := new(GetBundleBalanceResp) +func (c *bundleClient) GetBundleBalanceList(ctx context.Context, in *GetBundleBalanceListReq, opts ...grpc_go.CallOption) (*GetBundleBalanceListResp, common.ErrorWithAttachment) { + out := new(GetBundleBalanceListResp) interfaceKey := ctx.Value(constant.InterfaceKey).(string) - return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetBundleBalance", in, out) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetBundleBalanceList", in, out) +} + +func (c *bundleClient) CreateBundleBalance(ctx context.Context, in *CreateBundleBalanceReq, opts ...grpc_go.CallOption) (*CreateBundleBalanceResp, common.ErrorWithAttachment) { + out := new(CreateBundleBalanceResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CreateBundleBalance", in, out) +} + +func (c *bundleClient) AddBundleBalance(ctx context.Context, in *AddBundleBalanceReq, opts ...grpc_go.CallOption) (*AddBundleBalanceResp, common.ErrorWithAttachment) { + out := new(AddBundleBalanceResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/AddBundleBalance", in, out) +} + +func (c *bundleClient) GetUsedRecordList(ctx context.Context, in *GetUsedRecordListReq, opts ...grpc_go.CallOption) (*GetUsedRecordListResp, common.ErrorWithAttachment) { + out := new(GetUsedRecordListResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetUsedRecordList", in, out) +} + +func (c *bundleClient) GetImageWorkDetail(ctx context.Context, in *GetImageWorkDetailReq, opts ...grpc_go.CallOption) (*GetImageWorkDetailResp, common.ErrorWithAttachment) { + out := new(GetImageWorkDetailResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetImageWorkDetail", in, out) +} + +func (c *bundleClient) GetVedioWorkDetail(ctx context.Context, in *GetVedioWorkDetailReq, opts ...grpc_go.CallOption) (*GetVedioeWorkDetailResp, common.ErrorWithAttachment) { + out := new(GetVedioeWorkDetailResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetVedioWorkDetail", in, out) +} + +func (c *bundleClient) ToBeComfirmedWorks(ctx context.Context, in *ToBeComfirmedWorksReq, opts ...grpc_go.CallOption) (*ToBeComfirmedWorksResp, common.ErrorWithAttachment) { + out := new(ToBeComfirmedWorksResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ToBeComfirmedWorks", in, out) } // BundleServer is the server API for Bundle service. @@ -257,12 +346,15 @@ type BundleServer interface { BundleDetailV2(context.Context, *BundleDetailRequest) (*BundleDetailResponseV2, error) BundleList(context.Context, *BundleListRequest) (*BundleListResponse, error) BundleDetail(context.Context, *BundleDetailRequest) (*BundleDetailResponse, error) - CreateOrderRecord(context.Context, *OrderRecord) (*CommonResponse, error) + CreateOrderRecord(context.Context, *OrderCreateRecord) (*CommonResponse, error) UpdateOrderRecord(context.Context, *OrderRecord) (*CommonResponse, error) UpdateOrderRecordByOrderNo(context.Context, *OrderRecord) (*CommonResponse, error) OrderRecordsList(context.Context, *OrderRecordsRequest) (*OrderRecordsResponse, error) OrderRecordsDetail(context.Context, *OrderRecordsDetailRequest) (*OrderRecordsDetailResponse, error) UpdateFinancialConfirmationStatus(context.Context, *FinancialConfirmationRequest) (*CommonResponse, error) + CreateOrderAddRecord(context.Context, *OrderAddRecord) (*CommonResponse, error) + PackagePriceAndTime(context.Context, *OrderRecord) (*PackagePriceAndTimeResponse, error) + OrderRecordsListV2(context.Context, *OrderRecordsRequestV2) (*OrderRecordsResponseV2, error) // 增值套餐 CreateValueAddBundle(context.Context, *CreateValueAddBundleRequest) (*CreateValueAddBundleResponse, error) ValueAddBundleList(context.Context, *ValueAddBundleListRequest) (*ValueAddBundleListResponse, error) @@ -271,10 +363,19 @@ type BundleServer interface { SaveValueAddService(context.Context, *ValueAddServiceLang) (*SaveResponse, error) ValueAddServiceList(context.Context, *ValueAddServiceListRequest) (*ValueAddServiceListResponse, error) ValueAddServiceDetail(context.Context, *ValueAddServiceDetailRequest) (*ValueAddServiceDetailResponse, error) + ValueAddServiceLangByUuidAndLanguage(context.Context, *ValueAddServiceDetailRequest) (*ValueAddServiceLang, error) + CalculatePrice(context.Context, *CalculatePriceRequest) (*CalculatePriceResponse, error) // 余量管理 BundleExtend(context.Context, *BundleExtendRequest) (*BundleExtendResponse, error) BundleExtendRecordsList(context.Context, *BundleExtendRecordsListRequest) (*BundleExtendRecordsListResponse, error) - GetBundleBalance(context.Context, *GetBundleBalanceReq) (*GetBundleBalanceResp, error) + GetBundleBalanceList(context.Context, *GetBundleBalanceListReq) (*GetBundleBalanceListResp, error) + CreateBundleBalance(context.Context, *CreateBundleBalanceReq) (*CreateBundleBalanceResp, error) + AddBundleBalance(context.Context, *AddBundleBalanceReq) (*AddBundleBalanceResp, error) + // 使用记录 + GetUsedRecordList(context.Context, *GetUsedRecordListReq) (*GetUsedRecordListResp, error) + GetImageWorkDetail(context.Context, *GetImageWorkDetailReq) (*GetImageWorkDetailResp, error) + GetVedioWorkDetail(context.Context, *GetVedioWorkDetailReq) (*GetVedioeWorkDetailResp, error) + ToBeComfirmedWorks(context.Context, *ToBeComfirmedWorksReq) (*ToBeComfirmedWorksResp, error) mustEmbedUnimplementedBundleServer() } @@ -310,7 +411,7 @@ func (UnimplementedBundleServer) BundleList(context.Context, *BundleListRequest) func (UnimplementedBundleServer) BundleDetail(context.Context, *BundleDetailRequest) (*BundleDetailResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method BundleDetail not implemented") } -func (UnimplementedBundleServer) CreateOrderRecord(context.Context, *OrderRecord) (*CommonResponse, error) { +func (UnimplementedBundleServer) CreateOrderRecord(context.Context, *OrderCreateRecord) (*CommonResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateOrderRecord not implemented") } func (UnimplementedBundleServer) UpdateOrderRecord(context.Context, *OrderRecord) (*CommonResponse, error) { @@ -328,6 +429,15 @@ func (UnimplementedBundleServer) OrderRecordsDetail(context.Context, *OrderRecor func (UnimplementedBundleServer) UpdateFinancialConfirmationStatus(context.Context, *FinancialConfirmationRequest) (*CommonResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateFinancialConfirmationStatus not implemented") } +func (UnimplementedBundleServer) CreateOrderAddRecord(context.Context, *OrderAddRecord) (*CommonResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateOrderAddRecord not implemented") +} +func (UnimplementedBundleServer) PackagePriceAndTime(context.Context, *OrderRecord) (*PackagePriceAndTimeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method PackagePriceAndTime not implemented") +} +func (UnimplementedBundleServer) OrderRecordsListV2(context.Context, *OrderRecordsRequestV2) (*OrderRecordsResponseV2, error) { + return nil, status.Errorf(codes.Unimplemented, "method OrderRecordsListV2 not implemented") +} func (UnimplementedBundleServer) CreateValueAddBundle(context.Context, *CreateValueAddBundleRequest) (*CreateValueAddBundleResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateValueAddBundle not implemented") } @@ -346,14 +456,38 @@ func (UnimplementedBundleServer) ValueAddServiceList(context.Context, *ValueAddS func (UnimplementedBundleServer) ValueAddServiceDetail(context.Context, *ValueAddServiceDetailRequest) (*ValueAddServiceDetailResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ValueAddServiceDetail not implemented") } +func (UnimplementedBundleServer) ValueAddServiceLangByUuidAndLanguage(context.Context, *ValueAddServiceDetailRequest) (*ValueAddServiceLang, error) { + return nil, status.Errorf(codes.Unimplemented, "method ValueAddServiceLangByUuidAndLanguage not implemented") +} +func (UnimplementedBundleServer) CalculatePrice(context.Context, *CalculatePriceRequest) (*CalculatePriceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CalculatePrice not implemented") +} func (UnimplementedBundleServer) BundleExtend(context.Context, *BundleExtendRequest) (*BundleExtendResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method BundleExtend not implemented") } func (UnimplementedBundleServer) BundleExtendRecordsList(context.Context, *BundleExtendRecordsListRequest) (*BundleExtendRecordsListResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method BundleExtendRecordsList not implemented") } -func (UnimplementedBundleServer) GetBundleBalance(context.Context, *GetBundleBalanceReq) (*GetBundleBalanceResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetBundleBalance not implemented") +func (UnimplementedBundleServer) GetBundleBalanceList(context.Context, *GetBundleBalanceListReq) (*GetBundleBalanceListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetBundleBalanceList not implemented") +} +func (UnimplementedBundleServer) CreateBundleBalance(context.Context, *CreateBundleBalanceReq) (*CreateBundleBalanceResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateBundleBalance not implemented") +} +func (UnimplementedBundleServer) AddBundleBalance(context.Context, *AddBundleBalanceReq) (*AddBundleBalanceResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method AddBundleBalance not implemented") +} +func (UnimplementedBundleServer) GetUsedRecordList(context.Context, *GetUsedRecordListReq) (*GetUsedRecordListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetUsedRecordList not implemented") +} +func (UnimplementedBundleServer) GetImageWorkDetail(context.Context, *GetImageWorkDetailReq) (*GetImageWorkDetailResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetImageWorkDetail not implemented") +} +func (UnimplementedBundleServer) GetVedioWorkDetail(context.Context, *GetVedioWorkDetailReq) (*GetVedioeWorkDetailResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetVedioWorkDetail not implemented") +} +func (UnimplementedBundleServer) ToBeComfirmedWorks(context.Context, *ToBeComfirmedWorksReq) (*ToBeComfirmedWorksResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ToBeComfirmedWorks not implemented") } func (s *UnimplementedBundleServer) XXX_SetProxyImpl(impl protocol.Invoker) { s.proxyImpl = impl @@ -645,7 +779,7 @@ func _Bundle_BundleDetail_Handler(srv interface{}, ctx context.Context, dec func } func _Bundle_CreateOrderRecord_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { - in := new(OrderRecord) + in := new(OrderCreateRecord) if err := dec(in); err != nil { return nil, err } @@ -818,6 +952,93 @@ func _Bundle_UpdateFinancialConfirmationStatus_Handler(srv interface{}, ctx cont return interceptor(ctx, in, info, handler) } +func _Bundle_CreateOrderAddRecord_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(OrderAddRecord) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("CreateOrderAddRecord", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Bundle_PackagePriceAndTime_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(OrderRecord) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("PackagePriceAndTime", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Bundle_OrderRecordsListV2_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(OrderRecordsRequestV2) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("OrderRecordsListV2", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + func _Bundle_CreateValueAddBundle_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { in := new(CreateValueAddBundleRequest) if err := dec(in); err != nil { @@ -992,6 +1213,64 @@ func _Bundle_ValueAddServiceDetail_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _Bundle_ValueAddServiceLangByUuidAndLanguage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ValueAddServiceDetailRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("ValueAddServiceLangByUuidAndLanguage", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Bundle_CalculatePrice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(CalculatePriceRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("CalculatePrice", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + func _Bundle_BundleExtend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { in := new(BundleExtendRequest) if err := dec(in); err != nil { @@ -1050,8 +1329,8 @@ func _Bundle_BundleExtendRecordsList_Handler(srv interface{}, ctx context.Contex return interceptor(ctx, in, info, handler) } -func _Bundle_GetBundleBalance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { - in := new(GetBundleBalanceReq) +func _Bundle_GetBundleBalanceList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetBundleBalanceListReq) if err := dec(in); err != nil { return nil, err } @@ -1063,7 +1342,181 @@ func _Bundle_GetBundleBalance_Handler(srv interface{}, ctx context.Context, dec for k, v := range md { invAttachment[k] = v } - invo := invocation.NewRPCInvocation("GetBundleBalance", args, invAttachment) + invo := invocation.NewRPCInvocation("GetBundleBalanceList", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Bundle_CreateBundleBalance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateBundleBalanceReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("CreateBundleBalance", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Bundle_AddBundleBalance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(AddBundleBalanceReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("AddBundleBalance", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Bundle_GetUsedRecordList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUsedRecordListReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetUsedRecordList", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Bundle_GetImageWorkDetail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetImageWorkDetailReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetImageWorkDetail", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Bundle_GetVedioWorkDetail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetVedioWorkDetailReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetVedioWorkDetail", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Bundle_ToBeComfirmedWorks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ToBeComfirmedWorksReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("ToBeComfirmedWorks", args, invAttachment) if interceptor == nil { result := base.XXX_GetProxyImpl().Invoke(ctx, invo) return result, result.Error() @@ -1146,6 +1599,18 @@ var Bundle_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "UpdateFinancialConfirmationStatus", Handler: _Bundle_UpdateFinancialConfirmationStatus_Handler, }, + { + MethodName: "CreateOrderAddRecord", + Handler: _Bundle_CreateOrderAddRecord_Handler, + }, + { + MethodName: "PackagePriceAndTime", + Handler: _Bundle_PackagePriceAndTime_Handler, + }, + { + MethodName: "OrderRecordsListV2", + Handler: _Bundle_OrderRecordsListV2_Handler, + }, { MethodName: "CreateValueAddBundle", Handler: _Bundle_CreateValueAddBundle_Handler, @@ -1170,6 +1635,14 @@ var Bundle_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "ValueAddServiceDetail", Handler: _Bundle_ValueAddServiceDetail_Handler, }, + { + MethodName: "ValueAddServiceLangByUuidAndLanguage", + Handler: _Bundle_ValueAddServiceLangByUuidAndLanguage_Handler, + }, + { + MethodName: "CalculatePrice", + Handler: _Bundle_CalculatePrice_Handler, + }, { MethodName: "BundleExtend", Handler: _Bundle_BundleExtend_Handler, @@ -1179,8 +1652,32 @@ var Bundle_ServiceDesc = grpc_go.ServiceDesc{ Handler: _Bundle_BundleExtendRecordsList_Handler, }, { - MethodName: "GetBundleBalance", - Handler: _Bundle_GetBundleBalance_Handler, + MethodName: "GetBundleBalanceList", + Handler: _Bundle_GetBundleBalanceList_Handler, + }, + { + MethodName: "CreateBundleBalance", + Handler: _Bundle_CreateBundleBalance_Handler, + }, + { + MethodName: "AddBundleBalance", + Handler: _Bundle_AddBundleBalance_Handler, + }, + { + MethodName: "GetUsedRecordList", + Handler: _Bundle_GetUsedRecordList_Handler, + }, + { + MethodName: "GetImageWorkDetail", + Handler: _Bundle_GetImageWorkDetail_Handler, + }, + { + MethodName: "GetVedioWorkDetail", + Handler: _Bundle_GetVedioWorkDetail_Handler, + }, + { + MethodName: "ToBeComfirmedWorks", + Handler: _Bundle_ToBeComfirmedWorks_Handler, }, }, Streams: []grpc_go.StreamDesc{}, From bb36d88c98677d53855ff675638a9affa6576130 Mon Sep 17 00:00:00 2001 From: lzh <1625167628@qq.com> Date: Sat, 14 Jun 2025 13:21:02 +0800 Subject: [PATCH 13/18] =?UTF-8?q?=E8=A1=A5=E9=BD=90=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/service/bundle/bundleOrder.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/service/bundle/bundleOrder.go b/pkg/service/bundle/bundleOrder.go index e3f7ec2..a3e1d54 100644 --- a/pkg/service/bundle/bundleOrder.go +++ b/pkg/service/bundle/bundleOrder.go @@ -12,6 +12,7 @@ import ( "fonchain-fiee/pkg/service/bundle/common" "fonchain-fiee/pkg/service/bundle/logic" bundleModel "fonchain-fiee/pkg/service/bundle/model" + "fonchain-fiee/pkg/service/upload" "strconv" "strings" "time" From a41962ba8df978a1b0be25b12ba34d21d917aead Mon Sep 17 00:00:00 2001 From: lzh <1625167628@qq.com> Date: Sat, 14 Jun 2025 13:29:05 +0800 Subject: [PATCH 14/18] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/bundle/bundle.pb.go | 2606 ++++++++++++++++++++++----- api/bundle/bundle.validator.pb.go | 59 + api/bundle/bundle_triple.pb.go | 308 +++- pkg/router/bundle.go | 5 +- pkg/service/bundle/bundleBalance.go | 19 +- 5 files changed, 2522 insertions(+), 475 deletions(-) diff --git a/api/bundle/bundle.pb.go b/api/bundle/bundle.pb.go index 0d73bc0..02a4ca8 100644 --- a/api/bundle/bundle.pb.go +++ b/api/bundle/bundle.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.31.0 -// protoc v4.24.0--rc1 +// protoc-gen-go v1.29.1 +// protoc v3.20.3 // source: pb/bundle.proto package bundle @@ -27,26 +27,26 @@ type OrderCreateRecord struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - BundleUuid string `protobuf:"bytes,1,opt,name=bundleUuid,proto3" json:"bundleUuid"` - Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language"` - ExpirationTime string `protobuf:"bytes,3,opt,name=expirationTime,proto3" json:"expirationTime"` - BundleName string `protobuf:"bytes,4,opt,name=bundleName,proto3" json:"bundleName"` - CustomerID string `protobuf:"bytes,5,opt,name=customerID,proto3" json:"customerID"` - CustomerNum string `protobuf:"bytes,6,opt,name=customerNum,proto3" json:"customerNum"` - CustomerName string `protobuf:"bytes,7,opt,name=customerName,proto3" json:"customerName"` - Amount float32 `protobuf:"fixed32,8,opt,name=amount,proto3" json:"amount"` - AmountType int64 `protobuf:"varint,9,opt,name=amountType,proto3" json:"amountType"` - SignContract string `protobuf:"bytes,10,opt,name=signContract,proto3" json:"signContract"` - Signature string `protobuf:"bytes,11,opt,name=signature,proto3" json:"signature"` - SignedTime string `protobuf:"bytes,12,opt,name=signedTime,proto3" json:"signedTime"` - Status int64 `protobuf:"varint,13,opt,name=status,proto3" json:"status"` - PayTime string `protobuf:"bytes,14,opt,name=payTime,proto3" json:"payTime"` - ContractNo string `protobuf:"bytes,15,opt,name=contractNo,proto3" json:"contractNo"` - TotalAmount float32 `protobuf:"fixed32,16,opt,name=totalAmount,proto3" json:"totalAmount"` //总金额 - BundleCommonUid string `protobuf:"bytes,17,opt,name=bundleCommonUid,proto3" json:"bundleCommonUid"` - Snapshot string `protobuf:"bytes,18,opt,name=snapshot,proto3" json:"snapshot"` - PayType int32 `protobuf:"varint,19,opt,name=payType,proto3" json:"payType"` - AddRecords []*OrderCreateAddRecord `protobuf:"bytes,20,rep,name=addRecords,proto3" json:"addRecords"` //增值服务 + BundleUuid string `protobuf:"bytes,1,opt,name=bundleUuid,proto3" json:"bundleUuid,omitempty"` + Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language,omitempty"` + ExpirationTime string `protobuf:"bytes,3,opt,name=expirationTime,proto3" json:"expirationTime,omitempty"` + BundleName string `protobuf:"bytes,4,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + CustomerID string `protobuf:"bytes,5,opt,name=customerID,proto3" json:"customerID,omitempty"` + CustomerNum string `protobuf:"bytes,6,opt,name=customerNum,proto3" json:"customerNum,omitempty"` + CustomerName string `protobuf:"bytes,7,opt,name=customerName,proto3" json:"customerName,omitempty"` + Amount float32 `protobuf:"fixed32,8,opt,name=amount,proto3" json:"amount,omitempty"` + AmountType int64 `protobuf:"varint,9,opt,name=amountType,proto3" json:"amountType,omitempty"` + SignContract string `protobuf:"bytes,10,opt,name=signContract,proto3" json:"signContract,omitempty"` + Signature string `protobuf:"bytes,11,opt,name=signature,proto3" json:"signature,omitempty"` + SignedTime string `protobuf:"bytes,12,opt,name=signedTime,proto3" json:"signedTime,omitempty"` + Status int64 `protobuf:"varint,13,opt,name=status,proto3" json:"status,omitempty"` + PayTime string `protobuf:"bytes,14,opt,name=payTime,proto3" json:"payTime,omitempty"` + ContractNo string `protobuf:"bytes,15,opt,name=contractNo,proto3" json:"contractNo,omitempty"` + TotalAmount float32 `protobuf:"fixed32,16,opt,name=totalAmount,proto3" json:"totalAmount,omitempty"` //总金额 + BundleCommonUid string `protobuf:"bytes,17,opt,name=bundleCommonUid,proto3" json:"bundleCommonUid,omitempty"` + Snapshot string `protobuf:"bytes,18,opt,name=snapshot,proto3" json:"snapshot,omitempty"` + PayType int32 `protobuf:"varint,19,opt,name=payType,proto3" json:"payType,omitempty"` + AddRecords []*OrderCreateAddRecord `protobuf:"bytes,20,rep,name=addRecords,proto3" json:"addRecords,omitempty"` //增值服务 } func (x *OrderCreateRecord) Reset() { @@ -226,14 +226,14 @@ type OrderCreateAddRecord struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ServiceType int32 `protobuf:"varint,1,opt,name=serviceType,proto3" json:"serviceType"` - ValueUid string `protobuf:"bytes,2,opt,name=valueUid,proto3" json:"valueUid"` - CurrencyType int64 `protobuf:"varint,3,opt,name=currencyType,proto3" json:"currencyType"` - Amount float32 `protobuf:"fixed32,4,opt,name=amount,proto3" json:"amount"` - Num int32 `protobuf:"varint,5,opt,name=num,proto3" json:"num"` - Unit string `protobuf:"bytes,6,opt,name=unit,proto3" json:"unit"` - Source int32 `protobuf:"varint,7,opt,name=source,proto3" json:"source"` - PaymentStatus int32 `protobuf:"varint,8,opt,name=paymentStatus,proto3" json:"paymentStatus"` + ServiceType int32 `protobuf:"varint,1,opt,name=serviceType,proto3" json:"serviceType,omitempty"` + ValueUid string `protobuf:"bytes,2,opt,name=valueUid,proto3" json:"valueUid,omitempty"` + CurrencyType int64 `protobuf:"varint,3,opt,name=currencyType,proto3" json:"currencyType,omitempty"` + Amount float32 `protobuf:"fixed32,4,opt,name=amount,proto3" json:"amount,omitempty"` + Num int32 `protobuf:"varint,5,opt,name=num,proto3" json:"num,omitempty"` + Unit string `protobuf:"bytes,6,opt,name=unit,proto3" json:"unit,omitempty"` + Source int32 `protobuf:"varint,7,opt,name=source,proto3" json:"source,omitempty"` + PaymentStatus int32 `protobuf:"varint,8,opt,name=paymentStatus,proto3" json:"paymentStatus,omitempty"` } func (x *OrderCreateAddRecord) Reset() { @@ -329,20 +329,20 @@ type OrderRecordsRequestV2 struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - CustomerName string `protobuf:"bytes,1,opt,name=customerName,proto3" json:"customerName"` - TelNum string `protobuf:"bytes,2,opt,name=telNum,proto3" json:"telNum"` - BundleName string `protobuf:"bytes,3,opt,name=bundleName,proto3" json:"bundleName"` - PayStatus int32 `protobuf:"varint,4,opt,name=payStatus,proto3" json:"payStatus"` - AddPayStatus int32 `protobuf:"varint,5,opt,name=addPayStatus,proto3" json:"addPayStatus"` - OrderNo string `protobuf:"bytes,6,opt,name=orderNo,proto3" json:"orderNo"` - OrderAddNo string `protobuf:"bytes,7,opt,name=orderAddNo,proto3" json:"orderAddNo"` - BundleCreateAtStart string `protobuf:"bytes,8,opt,name=bundleCreateAtStart,proto3" json:"bundleCreateAtStart"` - BundleCreateAtEnd string `protobuf:"bytes,9,opt,name=bundleCreateAtEnd,proto3" json:"bundleCreateAtEnd"` - OrderAddCreateAtStart string `protobuf:"bytes,10,opt,name=orderAddCreateAtStart,proto3" json:"orderAddCreateAtStart"` - OrderAddCreateAtEnd string `protobuf:"bytes,11,opt,name=orderAddCreateAtEnd,proto3" json:"orderAddCreateAtEnd"` - Page int32 `protobuf:"varint,12,opt,name=page,proto3" json:"page"` - PageSize int32 `protobuf:"varint,13,opt,name=pageSize,proto3" json:"pageSize"` - UserIds []int64 `protobuf:"varint,14,rep,packed,name=userIds,proto3" json:"userIds"` + CustomerName string `protobuf:"bytes,1,opt,name=customerName,proto3" json:"customerName,omitempty"` + TelNum string `protobuf:"bytes,2,opt,name=telNum,proto3" json:"telNum,omitempty"` + BundleName string `protobuf:"bytes,3,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + PayStatus int32 `protobuf:"varint,4,opt,name=payStatus,proto3" json:"payStatus,omitempty"` + AddPayStatus int32 `protobuf:"varint,5,opt,name=addPayStatus,proto3" json:"addPayStatus,omitempty"` + OrderNo string `protobuf:"bytes,6,opt,name=orderNo,proto3" json:"orderNo,omitempty"` + OrderAddNo string `protobuf:"bytes,7,opt,name=orderAddNo,proto3" json:"orderAddNo,omitempty"` + BundleCreateAtStart string `protobuf:"bytes,8,opt,name=bundleCreateAtStart,proto3" json:"bundleCreateAtStart,omitempty"` + BundleCreateAtEnd string `protobuf:"bytes,9,opt,name=bundleCreateAtEnd,proto3" json:"bundleCreateAtEnd,omitempty"` + OrderAddCreateAtStart string `protobuf:"bytes,10,opt,name=orderAddCreateAtStart,proto3" json:"orderAddCreateAtStart,omitempty"` + OrderAddCreateAtEnd string `protobuf:"bytes,11,opt,name=orderAddCreateAtEnd,proto3" json:"orderAddCreateAtEnd,omitempty"` + Page int32 `protobuf:"varint,12,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,13,opt,name=pageSize,proto3" json:"pageSize,omitempty"` + UserIds []int64 `protobuf:"varint,14,rep,packed,name=userIds,proto3" json:"userIds,omitempty"` } func (x *OrderRecordsRequestV2) Reset() { @@ -480,10 +480,10 @@ type OrderRecordsResponseV2 struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - BundleInfo []*OrderBundleRecordInfo `protobuf:"bytes,1,rep,name=bundleInfo,proto3" json:"bundleInfo"` - Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page"` - PageSize int32 `protobuf:"varint,3,opt,name=pageSize,proto3" json:"pageSize"` - Total int32 `protobuf:"varint,4,opt,name=total,proto3" json:"total"` + BundleInfo []*OrderBundleRecordInfo `protobuf:"bytes,1,rep,name=bundleInfo,proto3" json:"bundleInfo,omitempty"` + Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,3,opt,name=pageSize,proto3" json:"pageSize,omitempty"` + Total int32 `protobuf:"varint,4,opt,name=total,proto3" json:"total,omitempty"` } func (x *OrderRecordsResponseV2) Reset() { @@ -551,15 +551,15 @@ type OrderBundleRecordInfo struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - OrderNo string `protobuf:"bytes,1,opt,name=orderNo,proto3" json:"orderNo"` - BundleName string `protobuf:"bytes,2,opt,name=bundleName,proto3" json:"bundleName"` - PayStatus int32 `protobuf:"varint,3,opt,name=payStatus,proto3" json:"payStatus"` - TelNum string `protobuf:"bytes,4,opt,name=telNum,proto3" json:"telNum"` - CustomerName string `protobuf:"bytes,5,opt,name=customerName,proto3" json:"customerName"` - BundleCreateAt string `protobuf:"bytes,6,opt,name=bundleCreateAt,proto3" json:"bundleCreateAt"` - Amount float32 `protobuf:"fixed32,7,opt,name=amount,proto3" json:"amount"` - AddBundleInfo []*OrderAddBundleRecordInfo `protobuf:"bytes,8,rep,name=addBundleInfo,proto3" json:"addBundleInfo"` - CustomerId int64 `protobuf:"varint,9,opt,name=customerId,proto3" json:"customerId"` + OrderNo string `protobuf:"bytes,1,opt,name=orderNo,proto3" json:"orderNo,omitempty"` + BundleName string `protobuf:"bytes,2,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + PayStatus int32 `protobuf:"varint,3,opt,name=payStatus,proto3" json:"payStatus,omitempty"` + TelNum string `protobuf:"bytes,4,opt,name=telNum,proto3" json:"telNum,omitempty"` + CustomerName string `protobuf:"bytes,5,opt,name=customerName,proto3" json:"customerName,omitempty"` + BundleCreateAt string `protobuf:"bytes,6,opt,name=bundleCreateAt,proto3" json:"bundleCreateAt,omitempty"` + Amount float32 `protobuf:"fixed32,7,opt,name=amount,proto3" json:"amount,omitempty"` + AddBundleInfo []*OrderAddBundleRecordInfo `protobuf:"bytes,8,rep,name=addBundleInfo,proto3" json:"addBundleInfo,omitempty"` + CustomerId int64 `protobuf:"varint,9,opt,name=customerId,proto3" json:"customerId,omitempty"` } func (x *OrderBundleRecordInfo) Reset() { @@ -662,16 +662,16 @@ type OrderAddBundleRecordInfo struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - OrderAddNo string `protobuf:"bytes,1,opt,name=orderAddNo,proto3" json:"orderAddNo"` - Amount float32 `protobuf:"fixed32,2,opt,name=amount,proto3" json:"amount"` - SettlementAmount float32 `protobuf:"fixed32,3,opt,name=settlementAmount,proto3" json:"settlementAmount"` - CurrencyType int32 `protobuf:"varint,4,opt,name=currencyType,proto3" json:"currencyType"` - HandlingFee float32 `protobuf:"fixed32,5,opt,name=handlingFee,proto3" json:"handlingFee"` - ExchangeRate float32 `protobuf:"fixed32,6,opt,name=exchangeRate,proto3" json:"exchangeRate"` - OrderAddCreateAt string `protobuf:"bytes,7,opt,name=orderAddCreateAt,proto3" json:"orderAddCreateAt"` - AddPayStatus int32 `protobuf:"varint,8,opt,name=addPayStatus,proto3" json:"addPayStatus"` - Contract string `protobuf:"bytes,9,opt,name=contract,proto3" json:"contract"` - Snapshot string `protobuf:"bytes,10,opt,name=snapshot,proto3" json:"snapshot"` + OrderAddNo string `protobuf:"bytes,1,opt,name=orderAddNo,proto3" json:"orderAddNo,omitempty"` + Amount float32 `protobuf:"fixed32,2,opt,name=amount,proto3" json:"amount,omitempty"` + SettlementAmount float32 `protobuf:"fixed32,3,opt,name=settlementAmount,proto3" json:"settlementAmount,omitempty"` + CurrencyType int32 `protobuf:"varint,4,opt,name=currencyType,proto3" json:"currencyType,omitempty"` + HandlingFee float32 `protobuf:"fixed32,5,opt,name=handlingFee,proto3" json:"handlingFee,omitempty"` + ExchangeRate float32 `protobuf:"fixed32,6,opt,name=exchangeRate,proto3" json:"exchangeRate,omitempty"` + OrderAddCreateAt string `protobuf:"bytes,7,opt,name=orderAddCreateAt,proto3" json:"orderAddCreateAt,omitempty"` + AddPayStatus int32 `protobuf:"varint,8,opt,name=addPayStatus,proto3" json:"addPayStatus,omitempty"` + Contract string `protobuf:"bytes,9,opt,name=contract,proto3" json:"contract,omitempty"` + Snapshot string `protobuf:"bytes,10,opt,name=snapshot,proto3" json:"snapshot,omitempty"` } func (x *OrderAddBundleRecordInfo) Reset() { @@ -781,8 +781,8 @@ type PackagePriceAndTimeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Price float32 `protobuf:"fixed32,1,opt,name=price,proto3" json:"price"` - Time string `protobuf:"bytes,2,opt,name=time,proto3" json:"time"` + Price float32 `protobuf:"fixed32,1,opt,name=price,proto3" json:"price,omitempty"` + Time string `protobuf:"bytes,2,opt,name=time,proto3" json:"time,omitempty"` } func (x *PackagePriceAndTimeResponse) Reset() { @@ -899,25 +899,25 @@ type BundleProfile struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"` - Price float32 `protobuf:"fixed32,3,opt,name=price,proto3" json:"price"` - PriceType int64 `protobuf:"varint,4,opt,name=priceType,proto3" json:"priceType"` - Content string `protobuf:"bytes,5,opt,name=content,proto3" json:"content"` - Contract string `protobuf:"bytes,6,opt,name=contract,proto3" json:"contract"` - Language string `protobuf:"bytes,7,opt,name=language,proto3" json:"language"` - CreatedAt string `protobuf:"bytes,8,opt,name=createdAt,proto3" json:"createdAt"` - UpdatedAt string `protobuf:"bytes,9,opt,name=updatedAt,proto3" json:"updatedAt"` - CompanySign string `protobuf:"bytes,10,opt,name=companySign,proto3" json:"companySign"` - ContractDuration int64 `protobuf:"varint,11,opt,name=contractDuration,proto3" json:"contractDuration"` - BundleCommonUid string `protobuf:"bytes,12,opt,name=bundleCommonUid,proto3" json:"bundleCommonUid"` - Sort int64 `protobuf:"varint,13,opt,name=sort,proto3" json:"sort"` - BgImg1 string `protobuf:"bytes,14,opt,name=bgImg1,proto3" json:"bgImg1"` - BgImg2 string `protobuf:"bytes,15,opt,name=bgImg2,proto3" json:"bgImg2"` - ShelfStatus int64 `protobuf:"varint,16,opt,name=shelfStatus,proto3" json:"shelfStatus"` // 1 上架 2 下架 - SelectValueAddService []*SelectValueAddService `protobuf:"bytes,17,rep,name=selectValueAddService,json=SelectValueAddService,proto3" json:"selectValueAddService"` - BundleProfileLang []*BundleProfileLang `protobuf:"bytes,18,rep,name=bundleProfileLang,proto3" json:"bundleProfileLang"` - ImgOption int32 `protobuf:"varint,19,opt,name=imgOption,proto3" json:"imgOption"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Price float32 `protobuf:"fixed32,3,opt,name=price,proto3" json:"price,omitempty"` + PriceType int64 `protobuf:"varint,4,opt,name=priceType,proto3" json:"priceType,omitempty"` + Content string `protobuf:"bytes,5,opt,name=content,proto3" json:"content,omitempty"` + Contract string `protobuf:"bytes,6,opt,name=contract,proto3" json:"contract,omitempty"` + Language string `protobuf:"bytes,7,opt,name=language,proto3" json:"language,omitempty"` + CreatedAt string `protobuf:"bytes,8,opt,name=createdAt,proto3" json:"createdAt,omitempty"` + UpdatedAt string `protobuf:"bytes,9,opt,name=updatedAt,proto3" json:"updatedAt,omitempty"` + CompanySign string `protobuf:"bytes,10,opt,name=companySign,proto3" json:"companySign,omitempty"` + ContractDuration int64 `protobuf:"varint,11,opt,name=contractDuration,proto3" json:"contractDuration,omitempty"` + BundleCommonUid string `protobuf:"bytes,12,opt,name=bundleCommonUid,proto3" json:"bundleCommonUid,omitempty"` + Sort int64 `protobuf:"varint,13,opt,name=sort,proto3" json:"sort,omitempty"` + BgImg1 string `protobuf:"bytes,14,opt,name=bgImg1,proto3" json:"bgImg1,omitempty"` + BgImg2 string `protobuf:"bytes,15,opt,name=bgImg2,proto3" json:"bgImg2,omitempty"` + ShelfStatus int64 `protobuf:"varint,16,opt,name=shelfStatus,proto3" json:"shelfStatus,omitempty"` // 1 上架 2 下架 + SelectValueAddService []*SelectValueAddService `protobuf:"bytes,17,rep,name=selectValueAddService,json=SelectValueAddService,proto3" json:"selectValueAddService,omitempty"` + BundleProfileLang []*BundleProfileLang `protobuf:"bytes,18,rep,name=bundleProfileLang,proto3" json:"bundleProfileLang,omitempty"` + ImgOption int32 `protobuf:"varint,19,opt,name=imgOption,proto3" json:"imgOption,omitempty"` } func (x *BundleProfile) Reset() { @@ -1090,14 +1090,14 @@ type BundleProfileLang struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"` - Price float32 `protobuf:"fixed32,3,opt,name=price,proto3" json:"price"` - PriceType int64 `protobuf:"varint,4,opt,name=priceType,proto3" json:"priceType"` - Content string `protobuf:"bytes,5,opt,name=content,proto3" json:"content"` - Language string `protobuf:"bytes,6,opt,name=language,proto3" json:"language"` - CreatedAt string `protobuf:"bytes,7,opt,name=createdAt,proto3" json:"createdAt"` - UpdatedAt string `protobuf:"bytes,8,opt,name=updatedAt,proto3" json:"updatedAt"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Price float32 `protobuf:"fixed32,3,opt,name=price,proto3" json:"price,omitempty"` + PriceType int64 `protobuf:"varint,4,opt,name=priceType,proto3" json:"priceType,omitempty"` + Content string `protobuf:"bytes,5,opt,name=content,proto3" json:"content,omitempty"` + Language string `protobuf:"bytes,6,opt,name=language,proto3" json:"language,omitempty"` + CreatedAt string `protobuf:"bytes,7,opt,name=createdAt,proto3" json:"createdAt,omitempty"` + UpdatedAt string `protobuf:"bytes,8,opt,name=updatedAt,proto3" json:"updatedAt,omitempty"` } func (x *BundleProfileLang) Reset() { @@ -1193,9 +1193,9 @@ type SaveResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg"` - Uuid string `protobuf:"bytes,2,opt,name=uuid,proto3" json:"uuid"` - CancelNum int64 `protobuf:"varint,3,opt,name=cancelNum,proto3" json:"cancelNum"` + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` + Uuid string `protobuf:"bytes,2,opt,name=uuid,proto3" json:"uuid,omitempty"` + CancelNum int64 `protobuf:"varint,3,opt,name=cancelNum,proto3" json:"cancelNum,omitempty"` } func (x *SaveResponse) Reset() { @@ -1256,9 +1256,9 @@ type SelectValueAddService struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ValueAddUuid string `protobuf:"bytes,1,opt,name=valueAddUuid,proto3" json:"valueAddUuid"` - ServiceName string `protobuf:"bytes,2,opt,name=serviceName,proto3" json:"serviceName"` - IsDisplay bool `protobuf:"varint,3,opt,name=isDisplay,proto3" json:"isDisplay"` + ValueAddUuid string `protobuf:"bytes,1,opt,name=valueAddUuid,proto3" json:"valueAddUuid,omitempty"` + ServiceName string `protobuf:"bytes,2,opt,name=serviceName,proto3" json:"serviceName,omitempty"` + IsDisplay bool `protobuf:"varint,3,opt,name=isDisplay,proto3" json:"isDisplay,omitempty"` } func (x *SelectValueAddService) Reset() { @@ -1500,8 +1500,8 @@ type BundleDetailRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language"` //语言 默认zh-CN, zh-CN zh-TW EN de-DE js-JP + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language,omitempty"` //语言 默认zh-CN, zh-CN zh-TW EN de-DE js-JP } func (x *BundleDetailRequest) Reset() { @@ -1555,8 +1555,8 @@ type HandShelfRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - ShelfStatus int64 `protobuf:"varint,2,opt,name=shelfStatus,proto3" json:"shelfStatus"` // 1 上架 2 下架 + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + ShelfStatus int64 `protobuf:"varint,2,opt,name=shelfStatus,proto3" json:"shelfStatus,omitempty"` // 1 上架 2 下架 } func (x *HandShelfRequest) Reset() { @@ -1665,8 +1665,8 @@ type BundleDetailResponseV2 struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Bundle *BundleProfile `protobuf:"bytes,1,opt,name=bundle,proto3" json:"bundle"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg"` + Bundle *BundleProfile `protobuf:"bytes,1,opt,name=bundle,proto3" json:"bundle,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` } func (x *BundleDetailResponseV2) Reset() { @@ -1720,44 +1720,44 @@ type OrderRecord struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - BundleUuid string `protobuf:"bytes,2,opt,name=bundleUuid,proto3" json:"bundleUuid"` - CustomerID string `protobuf:"bytes,3,opt,name=customerID,proto3" json:"customerID"` - CustomerNum string `protobuf:"bytes,4,opt,name=customerNum,proto3" json:"customerNum"` - CustomerName string `protobuf:"bytes,5,opt,name=customerName,proto3" json:"customerName"` - Amount float32 `protobuf:"fixed32,6,opt,name=amount,proto3" json:"amount"` - AmountType int64 `protobuf:"varint,7,opt,name=amountType,proto3" json:"amountType"` - SignContract string `protobuf:"bytes,8,opt,name=signContract,proto3" json:"signContract"` - Signature string `protobuf:"bytes,9,opt,name=signature,proto3" json:"signature"` - SignedTime string `protobuf:"bytes,10,opt,name=signedTime,proto3" json:"signedTime"` - PayType int64 `protobuf:"varint,11,opt,name=payType,proto3" json:"payType"` - PayTime string `protobuf:"bytes,12,opt,name=payTime,proto3" json:"payTime"` - CheckoutSessionId string `protobuf:"bytes,13,opt,name=checkoutSessionId,proto3" json:"checkoutSessionId"` - CheckoutSessionUrl string `protobuf:"bytes,14,opt,name=checkoutSessionUrl,proto3" json:"checkoutSessionUrl"` - Status int64 `protobuf:"varint,15,opt,name=status,proto3" json:"status"` - OrderNo string `protobuf:"bytes,16,opt,name=orderNo,proto3" json:"orderNo"` - BundleName string `protobuf:"bytes,17,opt,name=bundleName,proto3" json:"bundleName"` - ContractNo string `protobuf:"bytes,18,opt,name=contractNo,proto3" json:"contractNo"` - ValueAddBundleUuid string `protobuf:"bytes,19,opt,name=valueAddBundleUuid,proto3" json:"valueAddBundleUuid"` //增值套餐UUID - ValueAddBundleAmount float32 `protobuf:"fixed32,20,opt,name=valueAddBundleAmount,proto3" json:"valueAddBundleAmount"` //增值套餐金额 - ValueAddOriginalPrice float32 `protobuf:"fixed32,21,opt,name=valueAddOriginalPrice,proto3" json:"valueAddOriginalPrice"` //原单价 - ValueAddDiscountPrice float32 `protobuf:"fixed32,22,opt,name=valueAddDiscountPrice,proto3" json:"valueAddDiscountPrice"` //优惠单价 - ValueAddSavedAmount float32 `protobuf:"fixed32,23,opt,name=valueAddSavedAmount,proto3" json:"valueAddSavedAmount"` //节省金额 - Num int32 `protobuf:"varint,24,opt,name=num,proto3" json:"num"` - TotalAmount float32 `protobuf:"fixed32,25,opt,name=totalAmount,proto3" json:"totalAmount"` //总金额 - Sex string `protobuf:"bytes,26,opt,name=sex,proto3" json:"sex"` - Nationality string `protobuf:"bytes,27,opt,name=nationality,proto3" json:"nationality"` - CertificatePicture string `protobuf:"bytes,28,opt,name=certificatePicture,proto3" json:"certificatePicture"` - PlaceOfResidence string `protobuf:"bytes,29,opt,name=placeOfResidence,proto3" json:"placeOfResidence"` - GroupPhoto string `protobuf:"bytes,30,opt,name=groupPhoto,proto3" json:"groupPhoto"` - BundleCommonUid string `protobuf:"bytes,31,opt,name=bundleCommonUid,proto3" json:"bundleCommonUid"` - AddBundleCommonUid string `protobuf:"bytes,32,opt,name=addBundleCommonUid,proto3" json:"addBundleCommonUid"` - FinancialConfirmation int32 `protobuf:"varint,33,opt,name=financialConfirmation,proto3" json:"financialConfirmation"` - TelNum string `protobuf:"bytes,34,opt,name=telNum,proto3" json:"telNum"` - Language string `protobuf:"bytes,35,opt,name=language,proto3" json:"language"` - PriceOptionsInfo []*PriceOptionsInfo `protobuf:"bytes,36,rep,name=priceOptionsInfo,proto3" json:"priceOptionsInfo"` - ExpirationTime string `protobuf:"bytes,37,opt,name=expirationTime,proto3" json:"expirationTime"` - Snapshot string `protobuf:"bytes,38,opt,name=snapshot,proto3" json:"snapshot"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + BundleUuid string `protobuf:"bytes,2,opt,name=bundleUuid,proto3" json:"bundleUuid,omitempty"` + CustomerID string `protobuf:"bytes,3,opt,name=customerID,proto3" json:"customerID,omitempty"` + CustomerNum string `protobuf:"bytes,4,opt,name=customerNum,proto3" json:"customerNum,omitempty"` + CustomerName string `protobuf:"bytes,5,opt,name=customerName,proto3" json:"customerName,omitempty"` + Amount float32 `protobuf:"fixed32,6,opt,name=amount,proto3" json:"amount,omitempty"` + AmountType int64 `protobuf:"varint,7,opt,name=amountType,proto3" json:"amountType,omitempty"` + SignContract string `protobuf:"bytes,8,opt,name=signContract,proto3" json:"signContract,omitempty"` + Signature string `protobuf:"bytes,9,opt,name=signature,proto3" json:"signature,omitempty"` + SignedTime string `protobuf:"bytes,10,opt,name=signedTime,proto3" json:"signedTime,omitempty"` + PayType int64 `protobuf:"varint,11,opt,name=payType,proto3" json:"payType,omitempty"` + PayTime string `protobuf:"bytes,12,opt,name=payTime,proto3" json:"payTime,omitempty"` + CheckoutSessionId string `protobuf:"bytes,13,opt,name=checkoutSessionId,proto3" json:"checkoutSessionId,omitempty"` + CheckoutSessionUrl string `protobuf:"bytes,14,opt,name=checkoutSessionUrl,proto3" json:"checkoutSessionUrl,omitempty"` + Status int64 `protobuf:"varint,15,opt,name=status,proto3" json:"status,omitempty"` + OrderNo string `protobuf:"bytes,16,opt,name=orderNo,proto3" json:"orderNo,omitempty"` + BundleName string `protobuf:"bytes,17,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + ContractNo string `protobuf:"bytes,18,opt,name=contractNo,proto3" json:"contractNo,omitempty"` + ValueAddBundleUuid string `protobuf:"bytes,19,opt,name=valueAddBundleUuid,proto3" json:"valueAddBundleUuid,omitempty"` //增值套餐UUID + ValueAddBundleAmount float32 `protobuf:"fixed32,20,opt,name=valueAddBundleAmount,proto3" json:"valueAddBundleAmount,omitempty"` //增值套餐金额 + ValueAddOriginalPrice float32 `protobuf:"fixed32,21,opt,name=valueAddOriginalPrice,proto3" json:"valueAddOriginalPrice,omitempty"` //原单价 + ValueAddDiscountPrice float32 `protobuf:"fixed32,22,opt,name=valueAddDiscountPrice,proto3" json:"valueAddDiscountPrice,omitempty"` //优惠单价 + ValueAddSavedAmount float32 `protobuf:"fixed32,23,opt,name=valueAddSavedAmount,proto3" json:"valueAddSavedAmount,omitempty"` //节省金额 + Num int32 `protobuf:"varint,24,opt,name=num,proto3" json:"num,omitempty"` + TotalAmount float32 `protobuf:"fixed32,25,opt,name=totalAmount,proto3" json:"totalAmount,omitempty"` //总金额 + Sex string `protobuf:"bytes,26,opt,name=sex,proto3" json:"sex,omitempty"` + Nationality string `protobuf:"bytes,27,opt,name=nationality,proto3" json:"nationality,omitempty"` + CertificatePicture string `protobuf:"bytes,28,opt,name=certificatePicture,proto3" json:"certificatePicture,omitempty"` + PlaceOfResidence string `protobuf:"bytes,29,opt,name=placeOfResidence,proto3" json:"placeOfResidence,omitempty"` + GroupPhoto string `protobuf:"bytes,30,opt,name=groupPhoto,proto3" json:"groupPhoto,omitempty"` + BundleCommonUid string `protobuf:"bytes,31,opt,name=bundleCommonUid,proto3" json:"bundleCommonUid,omitempty"` + AddBundleCommonUid string `protobuf:"bytes,32,opt,name=addBundleCommonUid,proto3" json:"addBundleCommonUid,omitempty"` + FinancialConfirmation int32 `protobuf:"varint,33,opt,name=financialConfirmation,proto3" json:"financialConfirmation,omitempty"` + TelNum string `protobuf:"bytes,34,opt,name=telNum,proto3" json:"telNum,omitempty"` + Language string `protobuf:"bytes,35,opt,name=language,proto3" json:"language,omitempty"` + PriceOptionsInfo []*PriceOptionsInfo `protobuf:"bytes,36,rep,name=priceOptionsInfo,proto3" json:"priceOptionsInfo,omitempty"` + ExpirationTime string `protobuf:"bytes,37,opt,name=expirationTime,proto3" json:"expirationTime,omitempty"` + Snapshot string `protobuf:"bytes,38,opt,name=snapshot,proto3" json:"snapshot,omitempty"` } func (x *OrderRecord) Reset() { @@ -2063,20 +2063,20 @@ type OrderAddRecord struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - BundleUuid string `protobuf:"bytes,1,opt,name=bundleUuid,proto3" json:"bundleUuid"` - AddPriceOptionsList []*AddPriceOptionsInfo `protobuf:"bytes,2,rep,name=addPriceOptionsList,proto3" json:"addPriceOptionsList"` - Language string `protobuf:"bytes,3,opt,name=language,proto3" json:"language"` - CustomerID string `protobuf:"bytes,4,opt,name=customerID,proto3" json:"customerID"` - CustomerNum string `protobuf:"bytes,5,opt,name=customerNum,proto3" json:"customerNum"` - CustomerName string `protobuf:"bytes,6,opt,name=customerName,proto3" json:"customerName"` - // string valueAddUUID = 12 [json_name = "valueAddUUID"]; - Source int32 `protobuf:"varint,7,opt,name=source,proto3" json:"source"` - SignContract string `protobuf:"bytes,8,opt,name=signContract,proto3" json:"signContract"` - Signature string `protobuf:"bytes,9,opt,name=signature,proto3" json:"signature"` - SignedTime string `protobuf:"bytes,10,opt,name=signedTime,proto3" json:"signedTime"` - ExpirationDate string `protobuf:"bytes,11,opt,name=expirationDate,proto3" json:"expirationDate"` - Snapshot string `protobuf:"bytes,38,opt,name=snapshot,proto3" json:"snapshot"` - OrderUUID string `protobuf:"bytes,39,opt,name=orderUUID,proto3" json:"orderUUID"` + BundleUuid string `protobuf:"bytes,1,opt,name=bundleUuid,proto3" json:"bundleUuid,omitempty"` + AddPriceOptionsList []*AddPriceOptionsInfo `protobuf:"bytes,2,rep,name=addPriceOptionsList,proto3" json:"addPriceOptionsList,omitempty"` + Language string `protobuf:"bytes,3,opt,name=language,proto3" json:"language,omitempty"` + CustomerID string `protobuf:"bytes,4,opt,name=customerID,proto3" json:"customerID,omitempty"` + CustomerNum string `protobuf:"bytes,5,opt,name=customerNum,proto3" json:"customerNum,omitempty"` + CustomerName string `protobuf:"bytes,6,opt,name=customerName,proto3" json:"customerName,omitempty"` + // string valueAddUUID = 12 [json_name = "valueAddUUID"]; + Source int32 `protobuf:"varint,7,opt,name=source,proto3" json:"source,omitempty"` + SignContract string `protobuf:"bytes,8,opt,name=signContract,proto3" json:"signContract,omitempty"` + Signature string `protobuf:"bytes,9,opt,name=signature,proto3" json:"signature,omitempty"` + SignedTime string `protobuf:"bytes,10,opt,name=signedTime,proto3" json:"signedTime,omitempty"` + ExpirationDate string `protobuf:"bytes,11,opt,name=expirationDate,proto3" json:"expirationDate,omitempty"` + Snapshot string `protobuf:"bytes,38,opt,name=snapshot,proto3" json:"snapshot,omitempty"` + OrderUUID string `protobuf:"bytes,39,opt,name=orderUUID,proto3" json:"orderUUID,omitempty"` } func (x *OrderAddRecord) Reset() { @@ -2207,13 +2207,13 @@ type AddPriceOptionsInfo struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` - ValueUid string `protobuf:"bytes,2,opt,name=valueUid,proto3" json:"valueUid"` - ServiceType int32 `protobuf:"varint,3,opt,name=serviceType,proto3" json:"serviceType"` - CurrencyType int64 `protobuf:"varint,4,opt,name=currencyType,proto3" json:"currencyType"` - Amount float32 `protobuf:"fixed32,5,opt,name=amount,proto3" json:"amount"` - Num int32 `protobuf:"varint,6,opt,name=num,proto3" json:"num"` - Unit string `protobuf:"bytes,7,opt,name=unit,proto3" json:"unit"` + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + ValueUid string `protobuf:"bytes,2,opt,name=valueUid,proto3" json:"valueUid,omitempty"` + ServiceType int32 `protobuf:"varint,3,opt,name=serviceType,proto3" json:"serviceType,omitempty"` + CurrencyType int64 `protobuf:"varint,4,opt,name=currencyType,proto3" json:"currencyType,omitempty"` + Amount float32 `protobuf:"fixed32,5,opt,name=amount,proto3" json:"amount,omitempty"` + Num int32 `protobuf:"varint,6,opt,name=num,proto3" json:"num,omitempty"` + Unit string `protobuf:"bytes,7,opt,name=unit,proto3" json:"unit,omitempty"` } func (x *AddPriceOptionsInfo) Reset() { @@ -2302,9 +2302,9 @@ type PriceOptionsInfo struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` - ValueUid string `protobuf:"bytes,2,opt,name=valueUid,proto3" json:"valueUid"` - Num int32 `protobuf:"varint,3,opt,name=num,proto3" json:"num"` + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + ValueUid string `protobuf:"bytes,2,opt,name=valueUid,proto3" json:"valueUid,omitempty"` + Num int32 `protobuf:"varint,3,opt,name=num,proto3" json:"num,omitempty"` } func (x *PriceOptionsInfo) Reset() { @@ -2587,10 +2587,10 @@ type OrderRecordsDetailRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - OrderNo string `protobuf:"bytes,2,opt,name=orderNo,proto3" json:"orderNo"` - CustomerID string `protobuf:"bytes,3,opt,name=customerID,proto3" json:"customerID"` - BundleUUID string `protobuf:"bytes,4,opt,name=bundleUUID,proto3" json:"bundleUUID"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + OrderNo string `protobuf:"bytes,2,opt,name=orderNo,proto3" json:"orderNo,omitempty"` + CustomerID string `protobuf:"bytes,3,opt,name=customerID,proto3" json:"customerID,omitempty"` + BundleUUID string `protobuf:"bytes,4,opt,name=bundleUUID,proto3" json:"bundleUUID,omitempty"` } func (x *OrderRecordsDetailRequest) Reset() { @@ -3271,16 +3271,16 @@ func (x *FinancialConfirmationRequest) GetOrderNo() string { } // ****************************************************新增值服务*********************** -//增值服务 +// 增值服务 type ValueAddService struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - ServiceName string `protobuf:"bytes,2,opt,name=serviceName,proto3" json:"serviceName"` //服务名称 - ServiceType int32 `protobuf:"varint,3,opt,name=serviceType,proto3" json:"serviceType"` - ServiceLang []*ValueAddServiceLang `protobuf:"bytes,4,rep,name=serviceLang,proto3" json:"serviceLang"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + ServiceName string `protobuf:"bytes,2,opt,name=serviceName,proto3" json:"serviceName,omitempty"` //服务名称 + ServiceType int32 `protobuf:"varint,3,opt,name=serviceType,proto3" json:"serviceType,omitempty"` + ServiceLang []*ValueAddServiceLang `protobuf:"bytes,4,rep,name=serviceLang,proto3" json:"serviceLang,omitempty"` } func (x *ValueAddService) Reset() { @@ -3348,17 +3348,17 @@ type ValueAddServiceLang struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - ServiceName string `protobuf:"bytes,2,opt,name=serviceName,proto3" json:"serviceName"` //服务名称 - ServiceType int32 `protobuf:"varint,3,opt,name=serviceType,proto3" json:"serviceType"` - PriceMode int32 `protobuf:"varint,4,opt,name=priceMode,proto3" json:"priceMode"` - OriginalPrice string `protobuf:"bytes,5,opt,name=originalPrice,proto3" json:"originalPrice"` - Unit string `protobuf:"bytes,6,opt,name=unit,proto3" json:"unit"` - PriceType int64 `protobuf:"varint,7,opt,name=priceType,proto3" json:"priceType"` - Language string `protobuf:"bytes,8,opt,name=language,proto3" json:"language"` - CreatedAt string `protobuf:"bytes,9,opt,name=createdAt,proto3" json:"createdAt"` - UpdatedAt string `protobuf:"bytes,10,opt,name=updatedAt,proto3" json:"updatedAt"` - Options []*ValueAddPriceOptions `protobuf:"bytes,12,rep,name=options,proto3" json:"options"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + ServiceName string `protobuf:"bytes,2,opt,name=serviceName,proto3" json:"serviceName,omitempty"` //服务名称 + ServiceType int32 `protobuf:"varint,3,opt,name=serviceType,proto3" json:"serviceType,omitempty"` + PriceMode int32 `protobuf:"varint,4,opt,name=priceMode,proto3" json:"priceMode,omitempty"` + OriginalPrice string `protobuf:"bytes,5,opt,name=originalPrice,proto3" json:"originalPrice,omitempty"` + Unit string `protobuf:"bytes,6,opt,name=unit,proto3" json:"unit,omitempty"` + PriceType int64 `protobuf:"varint,7,opt,name=priceType,proto3" json:"priceType,omitempty"` + Language string `protobuf:"bytes,8,opt,name=language,proto3" json:"language,omitempty"` + CreatedAt string `protobuf:"bytes,9,opt,name=createdAt,proto3" json:"createdAt,omitempty"` + UpdatedAt string `protobuf:"bytes,10,opt,name=updatedAt,proto3" json:"updatedAt,omitempty"` + Options []*ValueAddPriceOptions `protobuf:"bytes,12,rep,name=options,proto3" json:"options,omitempty"` } func (x *ValueAddServiceLang) Reset() { @@ -3470,17 +3470,17 @@ func (x *ValueAddServiceLang) GetOptions() []*ValueAddPriceOptions { return nil } -//增值服务价格选项 +// 增值服务价格选项 type ValueAddPriceOptions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` - Num int32 `protobuf:"varint,2,opt,name=num,proto3" json:"num"` - Symbol string `protobuf:"bytes,3,opt,name=symbol,proto3" json:"symbol"` - Price string `protobuf:"bytes,4,opt,name=price,proto3" json:"price"` - SaveAmount string `protobuf:"bytes,5,opt,name=saveAmount,proto3" json:"saveAmount"` + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Num int32 `protobuf:"varint,2,opt,name=num,proto3" json:"num,omitempty"` + Symbol string `protobuf:"bytes,3,opt,name=symbol,proto3" json:"symbol,omitempty"` + Price string `protobuf:"bytes,4,opt,name=price,proto3" json:"price,omitempty"` + SaveAmount string `protobuf:"bytes,5,opt,name=saveAmount,proto3" json:"saveAmount,omitempty"` } func (x *ValueAddPriceOptions) Reset() { @@ -3550,16 +3550,16 @@ func (x *ValueAddPriceOptions) GetSaveAmount() string { return "" } -//增值服务列表 +// 增值服务列表 type ValueAddServiceListRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page"` - PageSize int32 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize"` - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name"` - Language string `protobuf:"bytes,4,opt,name=language,proto3" json:"language"` + Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + Language string `protobuf:"bytes,4,opt,name=language,proto3" json:"language,omitempty"` } func (x *ValueAddServiceListRequest) Reset() { @@ -3627,9 +3627,9 @@ type ValueAddServiceListResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Total int32 `protobuf:"varint,1,opt,name=total,proto3" json:"total"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg"` - ValueAddServiceList []*ValueAddService `protobuf:"bytes,3,rep,name=valueAddServiceList,proto3" json:"valueAddServiceList"` + Total int32 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + ValueAddServiceList []*ValueAddService `protobuf:"bytes,3,rep,name=valueAddServiceList,proto3" json:"valueAddServiceList,omitempty"` } func (x *ValueAddServiceListResponse) Reset() { @@ -3685,14 +3685,14 @@ func (x *ValueAddServiceListResponse) GetValueAddServiceList() []*ValueAddServic return nil } -//增值服务详情 +// 增值服务详情 type ValueAddServiceDetailRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language"` //语言 默认zh-CN, zh-CN zh-TW EN de-DE js-JP + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language,omitempty"` //语言 默认zh-CN, zh-CN zh-TW EN de-DE js-JP } func (x *ValueAddServiceDetailRequest) Reset() { @@ -3746,8 +3746,8 @@ type ValueAddServiceDetailResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg"` - ValueAddService *ValueAddService `protobuf:"bytes,2,opt,name=valueAddService,proto3" json:"valueAddService"` + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` + ValueAddService *ValueAddService `protobuf:"bytes,2,opt,name=valueAddService,proto3" json:"valueAddService,omitempty"` } func (x *ValueAddServiceDetailResponse) Reset() { @@ -3801,9 +3801,9 @@ type CalculatePriceRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - Num int32 `protobuf:"varint,2,opt,name=num,proto3" json:"num"` - Language string `protobuf:"bytes,3,opt,name=language,proto3" json:"language"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + Num int32 `protobuf:"varint,2,opt,name=num,proto3" json:"num,omitempty"` + Language string `protobuf:"bytes,3,opt,name=language,proto3" json:"language,omitempty"` } func (x *CalculatePriceRequest) Reset() { @@ -3864,8 +3864,8 @@ type CalculatePriceResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg"` - Price float32 `protobuf:"fixed32,2,opt,name=price,proto3" json:"price"` + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` + Price float32 `protobuf:"fixed32,2,opt,name=price,proto3" json:"price,omitempty"` } func (x *CalculatePriceResponse) Reset() { @@ -3919,16 +3919,17 @@ type BundleExtendRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId"` - AccountAdditional uint32 `protobuf:"varint,2,opt,name=accountAdditional,proto3" json:"accountAdditional"` - VideoAdditional uint32 `protobuf:"varint,3,opt,name=videoAdditional,proto3" json:"videoAdditional"` - ImagesAdditional uint32 `protobuf:"varint,4,opt,name=imagesAdditional,proto3" json:"imagesAdditional"` - DataAdditional uint32 `protobuf:"varint,5,opt,name=dataAdditional,proto3" json:"dataAdditional"` - AvailableDurationAdditional uint32 `protobuf:"varint,6,opt,name=availableDurationAdditional,proto3" json:"availableDurationAdditional"` - Remark string `protobuf:"bytes,7,opt,name=remark,proto3" json:"remark"` - AssociatedorderNumber string `protobuf:"bytes,8,opt,name=associatedorderNumber,proto3" json:"associatedorderNumber"` - OperatorName string `protobuf:"bytes,9,opt,name=operatorName,proto3" json:"operatorName"` - OperatorPhoneNumber string `protobuf:"bytes,10,opt,name=operatorPhoneNumber,proto3" json:"operatorPhoneNumber"` + UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + AccountAdditional uint32 `protobuf:"varint,2,opt,name=accountAdditional,proto3" json:"accountAdditional,omitempty"` + VideoAdditional uint32 `protobuf:"varint,3,opt,name=videoAdditional,proto3" json:"videoAdditional,omitempty"` + ImagesAdditional uint32 `protobuf:"varint,4,opt,name=imagesAdditional,proto3" json:"imagesAdditional,omitempty"` + DataAdditional uint32 `protobuf:"varint,5,opt,name=dataAdditional,proto3" json:"dataAdditional,omitempty"` + AvailableDurationAdditional uint32 `protobuf:"varint,6,opt,name=availableDurationAdditional,proto3" json:"availableDurationAdditional,omitempty"` + TimeUnit uint32 `protobuf:"varint,7,opt,name=timeUnit,proto3" json:"timeUnit,omitempty"` // 1 日 2 月 3年 + Remark string `protobuf:"bytes,8,opt,name=remark,proto3" json:"remark,omitempty"` + AssociatedorderNumber string `protobuf:"bytes,9,opt,name=associatedorderNumber,proto3" json:"associatedorderNumber,omitempty"` + OperatorName string `protobuf:"bytes,10,opt,name=operatorName,proto3" json:"operatorName,omitempty"` + OperatorPhoneNumber string `protobuf:"bytes,11,opt,name=operatorPhoneNumber,proto3" json:"operatorPhoneNumber,omitempty"` } func (x *BundleExtendRequest) Reset() { @@ -4005,6 +4006,13 @@ func (x *BundleExtendRequest) GetAvailableDurationAdditional() uint32 { return 0 } +func (x *BundleExtendRequest) GetTimeUnit() uint32 { + if x != nil { + return x.TimeUnit + } + return 0 +} + func (x *BundleExtendRequest) GetRemark() string { if x != nil { return x.Remark @@ -4076,14 +4084,14 @@ type BundleExtendRecordsListRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page"` - PageSize int32 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize"` - User string `protobuf:"bytes,3,opt,name=user,proto3" json:"user"` - Operator string `protobuf:"bytes,4,opt,name=operator,proto3" json:"operator"` - StartTime uint64 `protobuf:"varint,5,opt,name=startTime,proto3" json:"startTime"` - EndTime uint64 `protobuf:"varint,6,opt,name=endTime,proto3" json:"endTime"` - Type uint32 `protobuf:"varint,7,opt,name=type,proto3" json:"type"` - AssociatedOrderNumber string `protobuf:"bytes,8,opt,name=associatedOrderNumber,proto3" json:"associatedOrderNumber"` + Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize,omitempty"` + User string `protobuf:"bytes,3,opt,name=user,proto3" json:"user,omitempty"` + Operator string `protobuf:"bytes,4,opt,name=operator,proto3" json:"operator,omitempty"` + StartTime uint64 `protobuf:"varint,5,opt,name=startTime,proto3" json:"startTime,omitempty"` + EndTime uint64 `protobuf:"varint,6,opt,name=endTime,proto3" json:"endTime,omitempty"` + Type uint32 `protobuf:"varint,7,opt,name=type,proto3" json:"type,omitempty"` + AssociatedOrderNumber string `protobuf:"bytes,8,opt,name=associatedOrderNumber,proto3" json:"associatedOrderNumber,omitempty"` } func (x *BundleExtendRecordsListRequest) Reset() { @@ -4179,8 +4187,8 @@ type BundleExtendRecordsListResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total"` - Data []*BundleExtendRecordItem `protobuf:"bytes,2,rep,name=data,proto3" json:"data"` + Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` + Data []*BundleExtendRecordItem `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` } func (x *BundleExtendRecordsListResponse) Reset() { @@ -4234,19 +4242,19 @@ type BundleExtendRecordItem struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName"` - UserPhoneNumber string `protobuf:"bytes,2,opt,name=userPhoneNumber,proto3" json:"userPhoneNumber"` - AccountAdditional uint32 `protobuf:"varint,3,opt,name=accountAdditional,proto3" json:"accountAdditional"` - VideoAdditional uint32 `protobuf:"varint,4,opt,name=videoAdditional,proto3" json:"videoAdditional"` - ImagesAdditional uint32 `protobuf:"varint,5,opt,name=imagesAdditional,proto3" json:"imagesAdditional"` - DataAdditional uint32 `protobuf:"varint,6,opt,name=dataAdditional,proto3" json:"dataAdditional"` - AvailableDurationAdditional uint32 `protobuf:"varint,7,opt,name=availableDurationAdditional,proto3" json:"availableDurationAdditional"` - Type int32 `protobuf:"varint,8,opt,name=type,proto3" json:"type"` - CreatedAt uint64 `protobuf:"varint,9,opt,name=createdAt,proto3" json:"createdAt"` - Remark string `protobuf:"bytes,10,opt,name=remark,proto3" json:"remark"` - AssociatedOrderNumber string `protobuf:"bytes,11,opt,name=associatedOrderNumber,proto3" json:"associatedOrderNumber"` - OperatorName string `protobuf:"bytes,12,opt,name=operatorName,proto3" json:"operatorName"` - OperatorPhoneNumber string `protobuf:"bytes,13,opt,name=operatorPhoneNumber,proto3" json:"operatorPhoneNumber"` + UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName,omitempty"` + UserPhoneNumber string `protobuf:"bytes,2,opt,name=userPhoneNumber,proto3" json:"userPhoneNumber,omitempty"` + AccountAdditional uint32 `protobuf:"varint,3,opt,name=accountAdditional,proto3" json:"accountAdditional,omitempty"` + VideoAdditional uint32 `protobuf:"varint,4,opt,name=videoAdditional,proto3" json:"videoAdditional,omitempty"` + ImagesAdditional uint32 `protobuf:"varint,5,opt,name=imagesAdditional,proto3" json:"imagesAdditional,omitempty"` + DataAdditional uint32 `protobuf:"varint,6,opt,name=dataAdditional,proto3" json:"dataAdditional,omitempty"` + AvailableDurationAdditional uint32 `protobuf:"varint,7,opt,name=availableDurationAdditional,proto3" json:"availableDurationAdditional,omitempty"` + Type int32 `protobuf:"varint,8,opt,name=type,proto3" json:"type,omitempty"` + CreatedAt uint64 `protobuf:"varint,9,opt,name=createdAt,proto3" json:"createdAt,omitempty"` + Remark string `protobuf:"bytes,10,opt,name=remark,proto3" json:"remark,omitempty"` + AssociatedOrderNumber string `protobuf:"bytes,11,opt,name=associatedOrderNumber,proto3" json:"associatedOrderNumber,omitempty"` + OperatorName string `protobuf:"bytes,12,opt,name=operatorName,proto3" json:"operatorName,omitempty"` + OperatorPhoneNumber string `protobuf:"bytes,13,opt,name=operatorPhoneNumber,proto3" json:"operatorPhoneNumber,omitempty"` } func (x *BundleExtendRecordItem) Reset() { @@ -4372,24 +4380,119 @@ func (x *BundleExtendRecordItem) GetOperatorPhoneNumber() string { return "" } +type GetBundleBalanceListReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName,omitempty"` + Status int32 `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"` + BundleName string `protobuf:"bytes,3,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + ExpiredTimeStart int64 `protobuf:"varint,4,opt,name=expiredTimeStart,proto3" json:"expiredTimeStart,omitempty"` + ExpiredTimeEnd int64 `protobuf:"varint,5,opt,name=expiredTimeEnd,proto3" json:"expiredTimeEnd,omitempty"` + Page int32 `protobuf:"varint,6,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,7,opt,name=pageSize,proto3" json:"pageSize,omitempty"` +} + +func (x *GetBundleBalanceListReq) Reset() { + *x = GetBundleBalanceListReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetBundleBalanceListReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetBundleBalanceListReq) ProtoMessage() {} + +func (x *GetBundleBalanceListReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[49] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetBundleBalanceListReq.ProtoReflect.Descriptor instead. +func (*GetBundleBalanceListReq) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{49} +} + +func (x *GetBundleBalanceListReq) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +func (x *GetBundleBalanceListReq) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *GetBundleBalanceListReq) GetBundleName() string { + if x != nil { + return x.BundleName + } + return "" +} + +func (x *GetBundleBalanceListReq) GetExpiredTimeStart() int64 { + if x != nil { + return x.ExpiredTimeStart + } + return 0 +} + +func (x *GetBundleBalanceListReq) GetExpiredTimeEnd() int64 { + if x != nil { + return x.ExpiredTimeEnd + } + return 0 +} + +func (x *GetBundleBalanceListReq) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *GetBundleBalanceListReq) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + type GetBundleBalanceReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName"` - Status int32 `protobuf:"varint,2,opt,name=status,proto3" json:"status"` - BundleName string `protobuf:"bytes,3,opt,name=bundleName,proto3" json:"bundleName"` - ExpiredTimeStart int64 `protobuf:"varint,4,opt,name=expiredTimeStart,proto3" json:"expiredTimeStart"` - ExpiredTimeEnd int64 `protobuf:"varint,5,opt,name=expiredTimeEnd,proto3" json:"expiredTimeEnd"` - Page int32 `protobuf:"varint,6,opt,name=page,proto3" json:"page"` - PageSize int32 `protobuf:"varint,7,opt,name=pageSize,proto3" json:"pageSize"` + UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName,omitempty"` + Status int32 `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"` + BundleName string `protobuf:"bytes,3,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + ExpiredTimeStart int64 `protobuf:"varint,4,opt,name=expiredTimeStart,proto3" json:"expiredTimeStart,omitempty"` + ExpiredTimeEnd int64 `protobuf:"varint,5,opt,name=expiredTimeEnd,proto3" json:"expiredTimeEnd,omitempty"` + Page int32 `protobuf:"varint,6,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,7,opt,name=pageSize,proto3" json:"pageSize,omitempty"` } func (x *GetBundleBalanceReq) Reset() { *x = GetBundleBalanceReq{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[49] + mi := &file_pb_bundle_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4402,7 +4505,7 @@ func (x *GetBundleBalanceReq) String() string { func (*GetBundleBalanceReq) ProtoMessage() {} func (x *GetBundleBalanceReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[49] + mi := &file_pb_bundle_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4415,7 +4518,7 @@ func (x *GetBundleBalanceReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBundleBalanceReq.ProtoReflect.Descriptor instead. func (*GetBundleBalanceReq) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{49} + return file_pb_bundle_proto_rawDescGZIP(), []int{50} } func (x *GetBundleBalanceReq) GetUserName() string { @@ -4472,26 +4575,27 @@ type BundleBalanceItem struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName"` - UserPhoneNumber string `protobuf:"bytes,2,opt,name=userPhoneNumber,proto3" json:"userPhoneNumber"` - Status int32 `protobuf:"varint,3,opt,name=status,proto3" json:"status"` - BundleName string `protobuf:"bytes,4,opt,name=bundleName,proto3" json:"bundleName"` - ExpiredTime int64 `protobuf:"varint,5,opt,name=expiredTime,proto3" json:"expiredTime"` - AccountNumber int32 `protobuf:"varint,6,opt,name=accountNumber,proto3" json:"accountNumber"` - AccountConsumptionNumber int32 `protobuf:"varint,7,opt,name=accountConsumptionNumber,proto3" json:"accountConsumptionNumber"` - VideoNumber int32 `protobuf:"varint,8,opt,name=videoNumber,proto3" json:"videoNumber"` - VideoConsumptionNumber int32 `protobuf:"varint,9,opt,name=videoConsumptionNumber,proto3" json:"videoConsumptionNumber"` - ImageNumber int32 `protobuf:"varint,10,opt,name=imageNumber,proto3" json:"imageNumber"` - ImageConsumptionNumber int32 `protobuf:"varint,11,opt,name=imageConsumptionNumber,proto3" json:"imageConsumptionNumber"` - DataAnalysisNumber int32 `protobuf:"varint,12,opt,name=dataAnalysisNumber,proto3" json:"dataAnalysisNumber"` - DataAnalysisConsumptionNumber int32 `protobuf:"varint,13,opt,name=dataAnalysisConsumptionNumber,proto3" json:"dataAnalysisConsumptionNumber"` - ExpansionPacksNumber int32 `protobuf:"varint,14,opt,name=expansionPacksNumber,proto3" json:"expansionPacksNumber"` + UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + UserName string `protobuf:"bytes,2,opt,name=userName,proto3" json:"userName,omitempty"` + UserPhoneNumber string `protobuf:"bytes,3,opt,name=userPhoneNumber,proto3" json:"userPhoneNumber,omitempty"` + Status int32 `protobuf:"varint,4,opt,name=status,proto3" json:"status,omitempty"` + BundleName string `protobuf:"bytes,5,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + ExpiredTime int64 `protobuf:"varint,6,opt,name=expiredTime,proto3" json:"expiredTime,omitempty"` + AccountNumber int32 `protobuf:"varint,7,opt,name=accountNumber,proto3" json:"accountNumber,omitempty"` + AccountConsumptionNumber int32 `protobuf:"varint,8,opt,name=accountConsumptionNumber,proto3" json:"accountConsumptionNumber,omitempty"` + VideoNumber int32 `protobuf:"varint,9,opt,name=videoNumber,proto3" json:"videoNumber,omitempty"` + VideoConsumptionNumber int32 `protobuf:"varint,10,opt,name=videoConsumptionNumber,proto3" json:"videoConsumptionNumber,omitempty"` + ImageNumber int32 `protobuf:"varint,11,opt,name=imageNumber,proto3" json:"imageNumber,omitempty"` + ImageConsumptionNumber int32 `protobuf:"varint,12,opt,name=imageConsumptionNumber,proto3" json:"imageConsumptionNumber,omitempty"` + DataAnalysisNumber int32 `protobuf:"varint,13,opt,name=dataAnalysisNumber,proto3" json:"dataAnalysisNumber,omitempty"` + DataAnalysisConsumptionNumber int32 `protobuf:"varint,14,opt,name=dataAnalysisConsumptionNumber,proto3" json:"dataAnalysisConsumptionNumber,omitempty"` + ExpansionPacksNumber int32 `protobuf:"varint,15,opt,name=expansionPacksNumber,proto3" json:"expansionPacksNumber,omitempty"` } func (x *BundleBalanceItem) Reset() { *x = BundleBalanceItem{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[50] + mi := &file_pb_bundle_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4504,7 +4608,7 @@ func (x *BundleBalanceItem) String() string { func (*BundleBalanceItem) ProtoMessage() {} func (x *BundleBalanceItem) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[50] + mi := &file_pb_bundle_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4517,7 +4621,14 @@ func (x *BundleBalanceItem) ProtoReflect() protoreflect.Message { // Deprecated: Use BundleBalanceItem.ProtoReflect.Descriptor instead. func (*BundleBalanceItem) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{50} + return file_pb_bundle_proto_rawDescGZIP(), []int{51} +} + +func (x *BundleBalanceItem) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 } func (x *BundleBalanceItem) GetUserName() string { @@ -4623,14 +4734,14 @@ type GetBundleBalanceResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total"` - Data []*BundleBalanceItem `protobuf:"bytes,2,rep,name=data,proto3" json:"data"` + Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` + Data []*BundleBalanceItem `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` } func (x *GetBundleBalanceResp) Reset() { *x = GetBundleBalanceResp{} if protoimpl.UnsafeEnabled { - mi := &file_pb_bundle_proto_msgTypes[51] + mi := &file_pb_bundle_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4643,7 +4754,7 @@ func (x *GetBundleBalanceResp) String() string { func (*GetBundleBalanceResp) ProtoMessage() {} func (x *GetBundleBalanceResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_bundle_proto_msgTypes[51] + mi := &file_pb_bundle_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4656,7 +4767,7 @@ func (x *GetBundleBalanceResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBundleBalanceResp.ProtoReflect.Descriptor instead. func (*GetBundleBalanceResp) Descriptor() ([]byte, []int) { - return file_pb_bundle_proto_rawDescGZIP(), []int{51} + return file_pb_bundle_proto_rawDescGZIP(), []int{52} } func (x *GetBundleBalanceResp) GetTotal() int64 { @@ -4673,6 +4784,1150 @@ func (x *GetBundleBalanceResp) GetData() []*BundleBalanceItem { return nil } +type GetBundleBalanceListResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` + Data []*BundleBalanceItem `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetBundleBalanceListResp) Reset() { + *x = GetBundleBalanceListResp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetBundleBalanceListResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetBundleBalanceListResp) ProtoMessage() {} + +func (x *GetBundleBalanceListResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[53] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetBundleBalanceListResp.ProtoReflect.Descriptor instead. +func (*GetBundleBalanceListResp) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{53} +} + +func (x *GetBundleBalanceListResp) GetTotal() int64 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *GetBundleBalanceListResp) GetData() []*BundleBalanceItem { + if x != nil { + return x.Data + } + return nil +} + +type CreateBundleBalanceReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + OrderUUID string `protobuf:"bytes,2,opt,name=orderUUID,proto3" json:"orderUUID,omitempty"` + AccountNumber int32 `protobuf:"varint,3,opt,name=accountNumber,proto3" json:"accountNumber,omitempty"` + AccountConsumptionNumber int32 `protobuf:"varint,4,opt,name=accountConsumptionNumber,proto3" json:"accountConsumptionNumber,omitempty"` + VideoNumber int32 `protobuf:"varint,5,opt,name=videoNumber,proto3" json:"videoNumber,omitempty"` + VideoConsumptionNumber int32 `protobuf:"varint,6,opt,name=videoConsumptionNumber,proto3" json:"videoConsumptionNumber,omitempty"` + ImageNumber int32 `protobuf:"varint,7,opt,name=imageNumber,proto3" json:"imageNumber,omitempty"` + ImageConsumptionNumber int32 `protobuf:"varint,8,opt,name=imageConsumptionNumber,proto3" json:"imageConsumptionNumber,omitempty"` + DataAnalysisNumber int32 `protobuf:"varint,9,opt,name=dataAnalysisNumber,proto3" json:"dataAnalysisNumber,omitempty"` + DataAnalysisConsumptionNumber int32 `protobuf:"varint,10,opt,name=dataAnalysisConsumptionNumber,proto3" json:"dataAnalysisConsumptionNumber,omitempty"` + ExpansionPacksNumber int32 `protobuf:"varint,11,opt,name=expansionPacksNumber,proto3" json:"expansionPacksNumber,omitempty"` +} + +func (x *CreateBundleBalanceReq) Reset() { + *x = CreateBundleBalanceReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateBundleBalanceReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateBundleBalanceReq) ProtoMessage() {} + +func (x *CreateBundleBalanceReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[54] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateBundleBalanceReq.ProtoReflect.Descriptor instead. +func (*CreateBundleBalanceReq) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{54} +} + +func (x *CreateBundleBalanceReq) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *CreateBundleBalanceReq) GetOrderUUID() string { + if x != nil { + return x.OrderUUID + } + return "" +} + +func (x *CreateBundleBalanceReq) GetAccountNumber() int32 { + if x != nil { + return x.AccountNumber + } + return 0 +} + +func (x *CreateBundleBalanceReq) GetAccountConsumptionNumber() int32 { + if x != nil { + return x.AccountConsumptionNumber + } + return 0 +} + +func (x *CreateBundleBalanceReq) GetVideoNumber() int32 { + if x != nil { + return x.VideoNumber + } + return 0 +} + +func (x *CreateBundleBalanceReq) GetVideoConsumptionNumber() int32 { + if x != nil { + return x.VideoConsumptionNumber + } + return 0 +} + +func (x *CreateBundleBalanceReq) GetImageNumber() int32 { + if x != nil { + return x.ImageNumber + } + return 0 +} + +func (x *CreateBundleBalanceReq) GetImageConsumptionNumber() int32 { + if x != nil { + return x.ImageConsumptionNumber + } + return 0 +} + +func (x *CreateBundleBalanceReq) GetDataAnalysisNumber() int32 { + if x != nil { + return x.DataAnalysisNumber + } + return 0 +} + +func (x *CreateBundleBalanceReq) GetDataAnalysisConsumptionNumber() int32 { + if x != nil { + return x.DataAnalysisConsumptionNumber + } + return 0 +} + +func (x *CreateBundleBalanceReq) GetExpansionPacksNumber() int32 { + if x != nil { + return x.ExpansionPacksNumber + } + return 0 +} + +type CreateBundleBalanceResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CreateBundleBalanceResp) Reset() { + *x = CreateBundleBalanceResp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateBundleBalanceResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateBundleBalanceResp) ProtoMessage() {} + +func (x *CreateBundleBalanceResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[55] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateBundleBalanceResp.ProtoReflect.Descriptor instead. +func (*CreateBundleBalanceResp) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{55} +} + +type AddBundleBalanceReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + UserId int32 `protobuf:"varint,2,opt,name=userId,proto3" json:"userId,omitempty"` + OrderUUID string `protobuf:"bytes,3,opt,name=orderUUID,proto3" json:"orderUUID,omitempty"` + AccountNumber int32 `protobuf:"varint,4,opt,name=accountNumber,proto3" json:"accountNumber,omitempty"` + AccountConsumptionNumber int32 `protobuf:"varint,5,opt,name=accountConsumptionNumber,proto3" json:"accountConsumptionNumber,omitempty"` + VideoNumber int32 `protobuf:"varint,6,opt,name=videoNumber,proto3" json:"videoNumber,omitempty"` + VideoConsumptionNumber int32 `protobuf:"varint,7,opt,name=videoConsumptionNumber,proto3" json:"videoConsumptionNumber,omitempty"` + ImageNumber int32 `protobuf:"varint,8,opt,name=imageNumber,proto3" json:"imageNumber,omitempty"` + ImageConsumptionNumber int32 `protobuf:"varint,9,opt,name=imageConsumptionNumber,proto3" json:"imageConsumptionNumber,omitempty"` + DataAnalysisNumber int32 `protobuf:"varint,10,opt,name=dataAnalysisNumber,proto3" json:"dataAnalysisNumber,omitempty"` + DataAnalysisConsumptionNumber int32 `protobuf:"varint,11,opt,name=dataAnalysisConsumptionNumber,proto3" json:"dataAnalysisConsumptionNumber,omitempty"` + ExpansionPacksNumber int32 `protobuf:"varint,12,opt,name=expansionPacksNumber,proto3" json:"expansionPacksNumber,omitempty"` +} + +func (x *AddBundleBalanceReq) Reset() { + *x = AddBundleBalanceReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddBundleBalanceReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddBundleBalanceReq) ProtoMessage() {} + +func (x *AddBundleBalanceReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[56] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddBundleBalanceReq.ProtoReflect.Descriptor instead. +func (*AddBundleBalanceReq) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{56} +} + +func (x *AddBundleBalanceReq) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *AddBundleBalanceReq) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *AddBundleBalanceReq) GetOrderUUID() string { + if x != nil { + return x.OrderUUID + } + return "" +} + +func (x *AddBundleBalanceReq) GetAccountNumber() int32 { + if x != nil { + return x.AccountNumber + } + return 0 +} + +func (x *AddBundleBalanceReq) GetAccountConsumptionNumber() int32 { + if x != nil { + return x.AccountConsumptionNumber + } + return 0 +} + +func (x *AddBundleBalanceReq) GetVideoNumber() int32 { + if x != nil { + return x.VideoNumber + } + return 0 +} + +func (x *AddBundleBalanceReq) GetVideoConsumptionNumber() int32 { + if x != nil { + return x.VideoConsumptionNumber + } + return 0 +} + +func (x *AddBundleBalanceReq) GetImageNumber() int32 { + if x != nil { + return x.ImageNumber + } + return 0 +} + +func (x *AddBundleBalanceReq) GetImageConsumptionNumber() int32 { + if x != nil { + return x.ImageConsumptionNumber + } + return 0 +} + +func (x *AddBundleBalanceReq) GetDataAnalysisNumber() int32 { + if x != nil { + return x.DataAnalysisNumber + } + return 0 +} + +func (x *AddBundleBalanceReq) GetDataAnalysisConsumptionNumber() int32 { + if x != nil { + return x.DataAnalysisConsumptionNumber + } + return 0 +} + +func (x *AddBundleBalanceReq) GetExpansionPacksNumber() int32 { + if x != nil { + return x.ExpansionPacksNumber + } + return 0 +} + +type AddBundleBalanceResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *AddBundleBalanceResp) Reset() { + *x = AddBundleBalanceResp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddBundleBalanceResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddBundleBalanceResp) ProtoMessage() {} + +func (x *AddBundleBalanceResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[57] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddBundleBalanceResp.ProtoReflect.Descriptor instead. +func (*AddBundleBalanceResp) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{57} +} + +type GetUsedRecordListReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + User string `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` + Operator string `protobuf:"bytes,2,opt,name=operator,proto3" json:"operator,omitempty"` + Account int32 `protobuf:"varint,3,opt,name=account,proto3" json:"account,omitempty"` + Platform int32 `protobuf:"varint,4,opt,name=platform,proto3" json:"platform,omitempty"` + Type int32 `protobuf:"varint,5,opt,name=type,proto3" json:"type,omitempty"` + Title string `protobuf:"bytes,6,opt,name=title,proto3" json:"title,omitempty"` + SubmitTimeStart int64 `protobuf:"varint,7,opt,name=submitTimeStart,proto3" json:"submitTimeStart,omitempty"` + SubmitTimeEnd int64 `protobuf:"varint,8,opt,name=submitTimeEnd,proto3" json:"submitTimeEnd,omitempty"` + Page int32 `protobuf:"varint,9,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,10,opt,name=pageSize,proto3" json:"pageSize,omitempty"` +} + +func (x *GetUsedRecordListReq) Reset() { + *x = GetUsedRecordListReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUsedRecordListReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUsedRecordListReq) ProtoMessage() {} + +func (x *GetUsedRecordListReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[58] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUsedRecordListReq.ProtoReflect.Descriptor instead. +func (*GetUsedRecordListReq) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{58} +} + +func (x *GetUsedRecordListReq) GetUser() string { + if x != nil { + return x.User + } + return "" +} + +func (x *GetUsedRecordListReq) GetOperator() string { + if x != nil { + return x.Operator + } + return "" +} + +func (x *GetUsedRecordListReq) GetAccount() int32 { + if x != nil { + return x.Account + } + return 0 +} + +func (x *GetUsedRecordListReq) GetPlatform() int32 { + if x != nil { + return x.Platform + } + return 0 +} + +func (x *GetUsedRecordListReq) GetType() int32 { + if x != nil { + return x.Type + } + return 0 +} + +func (x *GetUsedRecordListReq) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *GetUsedRecordListReq) GetSubmitTimeStart() int64 { + if x != nil { + return x.SubmitTimeStart + } + return 0 +} + +func (x *GetUsedRecordListReq) GetSubmitTimeEnd() int64 { + if x != nil { + return x.SubmitTimeEnd + } + return 0 +} + +func (x *GetUsedRecordListReq) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *GetUsedRecordListReq) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +type GetUsedRecordListResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` + Data []*WorkCastItem `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetUsedRecordListResp) Reset() { + *x = GetUsedRecordListResp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUsedRecordListResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUsedRecordListResp) ProtoMessage() {} + +func (x *GetUsedRecordListResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[59] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUsedRecordListResp.ProtoReflect.Descriptor instead. +func (*GetUsedRecordListResp) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{59} +} + +func (x *GetUsedRecordListResp) GetTotal() int64 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *GetUsedRecordListResp) GetData() []*WorkCastItem { + if x != nil { + return x.Data + } + return nil +} + +type WorkCastItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ArtistUuid string `protobuf:"bytes,1,opt,name=artistUuid,proto3" json:"artistUuid,omitempty"` // 艺人ID + ArtistName string `protobuf:"bytes,2,opt,name=artistName,proto3" json:"artistName,omitempty"` // 艺人名称 + ArtistPhone string `protobuf:"bytes,3,opt,name=artistPhone,proto3" json:"artistPhone,omitempty"` // 艺人手机号 + WorkUuid string `protobuf:"bytes,4,opt,name=workUuid,proto3" json:"workUuid,omitempty"` // 作品uuid + WorkCategory uint32 `protobuf:"varint,5,opt,name=workCategory,proto3" json:"workCategory,omitempty"` // 1 图文 2 视频 + BundleUuid string `protobuf:"bytes,6,opt,name=bundleUuid,proto3" json:"bundleUuid,omitempty"` // 套餐ID uuid + BundleName string `protobuf:"bytes,7,opt,name=bundleName,proto3" json:"bundleName,omitempty"` // 套餐名称 + PlatformIDs string `protobuf:"bytes,8,opt,name=platformIDs,proto3" json:"platformIDs,omitempty"` // 发布平台ID集合 (json 格式字符串) + MediaNames string `protobuf:"bytes,9,opt,name=mediaNames,proto3" json:"mediaNames,omitempty"` // 自媒体账号名称集合 + MediaAccIDs string `protobuf:"bytes,10,opt,name=mediaAccIDs,proto3" json:"mediaAccIDs,omitempty"` // 自媒体账号ID集合 + WorkTitle string `protobuf:"bytes,11,opt,name=workTitle,proto3" json:"workTitle,omitempty"` // 作品标题 + SubmitTime string `protobuf:"bytes,12,opt,name=submitTime,proto3" json:"submitTime,omitempty"` // 提交时间 + OperatorName string `protobuf:"bytes,13,opt,name=operatorName,proto3" json:"operatorName,omitempty"` // 操作人名称 + OperatorPhone string `protobuf:"bytes,14,opt,name=operatorPhone,proto3" json:"operatorPhone,omitempty"` // 操作人手机号 + Status uint32 `protobuf:"varint,15,opt,name=status,proto3" json:"status,omitempty"` // 1 有效 2 失效 +} + +func (x *WorkCastItem) Reset() { + *x = WorkCastItem{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WorkCastItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkCastItem) ProtoMessage() {} + +func (x *WorkCastItem) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[60] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkCastItem.ProtoReflect.Descriptor instead. +func (*WorkCastItem) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{60} +} + +func (x *WorkCastItem) GetArtistUuid() string { + if x != nil { + return x.ArtistUuid + } + return "" +} + +func (x *WorkCastItem) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + +func (x *WorkCastItem) GetArtistPhone() string { + if x != nil { + return x.ArtistPhone + } + return "" +} + +func (x *WorkCastItem) GetWorkUuid() string { + if x != nil { + return x.WorkUuid + } + return "" +} + +func (x *WorkCastItem) GetWorkCategory() uint32 { + if x != nil { + return x.WorkCategory + } + return 0 +} + +func (x *WorkCastItem) GetBundleUuid() string { + if x != nil { + return x.BundleUuid + } + return "" +} + +func (x *WorkCastItem) GetBundleName() string { + if x != nil { + return x.BundleName + } + return "" +} + +func (x *WorkCastItem) GetPlatformIDs() string { + if x != nil { + return x.PlatformIDs + } + return "" +} + +func (x *WorkCastItem) GetMediaNames() string { + if x != nil { + return x.MediaNames + } + return "" +} + +func (x *WorkCastItem) GetMediaAccIDs() string { + if x != nil { + return x.MediaAccIDs + } + return "" +} + +func (x *WorkCastItem) GetWorkTitle() string { + if x != nil { + return x.WorkTitle + } + return "" +} + +func (x *WorkCastItem) GetSubmitTime() string { + if x != nil { + return x.SubmitTime + } + return "" +} + +func (x *WorkCastItem) GetOperatorName() string { + if x != nil { + return x.OperatorName + } + return "" +} + +func (x *WorkCastItem) GetOperatorPhone() string { + if x != nil { + return x.OperatorPhone + } + return "" +} + +func (x *WorkCastItem) GetStatus() uint32 { + if x != nil { + return x.Status + } + return 0 +} + +type GetImageWorkDetailReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkId string `protobuf:"bytes,1,opt,name=workId,proto3" json:"workId,omitempty"` +} + +func (x *GetImageWorkDetailReq) Reset() { + *x = GetImageWorkDetailReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetImageWorkDetailReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetImageWorkDetailReq) ProtoMessage() {} + +func (x *GetImageWorkDetailReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[61] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetImageWorkDetailReq.ProtoReflect.Descriptor instead. +func (*GetImageWorkDetailReq) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{61} +} + +func (x *GetImageWorkDetailReq) GetWorkId() string { + if x != nil { + return x.WorkId + } + return "" +} + +type GetVedioWorkDetailReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkId string `protobuf:"bytes,1,opt,name=workId,proto3" json:"workId,omitempty"` +} + +func (x *GetVedioWorkDetailReq) Reset() { + *x = GetVedioWorkDetailReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetVedioWorkDetailReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetVedioWorkDetailReq) ProtoMessage() {} + +func (x *GetVedioWorkDetailReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[62] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetVedioWorkDetailReq.ProtoReflect.Descriptor instead. +func (*GetVedioWorkDetailReq) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{62} +} + +func (x *GetVedioWorkDetailReq) GetWorkId() string { + if x != nil { + return x.WorkId + } + return "" +} + +type GetImageWorkDetailResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkId string `protobuf:"bytes,1,opt,name=workId,proto3" json:"workId,omitempty"` + CoverUrl string `protobuf:"bytes,2,opt,name=coverUrl,proto3" json:"coverUrl,omitempty"` + VideoUrl string `protobuf:"bytes,3,opt,name=videoUrl,proto3" json:"videoUrl,omitempty"` + CreatedAt int64 `protobuf:"varint,4,opt,name=createdAt,proto3" json:"createdAt,omitempty"` +} + +func (x *GetImageWorkDetailResp) Reset() { + *x = GetImageWorkDetailResp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetImageWorkDetailResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetImageWorkDetailResp) ProtoMessage() {} + +func (x *GetImageWorkDetailResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[63] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetImageWorkDetailResp.ProtoReflect.Descriptor instead. +func (*GetImageWorkDetailResp) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{63} +} + +func (x *GetImageWorkDetailResp) GetWorkId() string { + if x != nil { + return x.WorkId + } + return "" +} + +func (x *GetImageWorkDetailResp) GetCoverUrl() string { + if x != nil { + return x.CoverUrl + } + return "" +} + +func (x *GetImageWorkDetailResp) GetVideoUrl() string { + if x != nil { + return x.VideoUrl + } + return "" +} + +func (x *GetImageWorkDetailResp) GetCreatedAt() int64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +type GetVedioeWorkDetailResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkId string `protobuf:"bytes,1,opt,name=workId,proto3" json:"workId,omitempty"` + ImageUrls []string `protobuf:"bytes,2,rep,name=imageUrls,proto3" json:"imageUrls,omitempty"` + CreatedAt int64 `protobuf:"varint,3,opt,name=createdAt,proto3" json:"createdAt,omitempty"` +} + +func (x *GetVedioeWorkDetailResp) Reset() { + *x = GetVedioeWorkDetailResp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetVedioeWorkDetailResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetVedioeWorkDetailResp) ProtoMessage() {} + +func (x *GetVedioeWorkDetailResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[64] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetVedioeWorkDetailResp.ProtoReflect.Descriptor instead. +func (*GetVedioeWorkDetailResp) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{64} +} + +func (x *GetVedioeWorkDetailResp) GetWorkId() string { + if x != nil { + return x.WorkId + } + return "" +} + +func (x *GetVedioeWorkDetailResp) GetImageUrls() []string { + if x != nil { + return x.ImageUrls + } + return nil +} + +func (x *GetVedioeWorkDetailResp) GetCreatedAt() int64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +type ToBeComfirmedWorksReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ArtistUuid string `protobuf:"bytes,1,opt,name=artistUuid,proto3" json:"artistUuid,omitempty"` + Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,3,opt,name=pageSize,proto3" json:"pageSize,omitempty"` +} + +func (x *ToBeComfirmedWorksReq) Reset() { + *x = ToBeComfirmedWorksReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ToBeComfirmedWorksReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ToBeComfirmedWorksReq) ProtoMessage() {} + +func (x *ToBeComfirmedWorksReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[65] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ToBeComfirmedWorksReq.ProtoReflect.Descriptor instead. +func (*ToBeComfirmedWorksReq) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{65} +} + +func (x *ToBeComfirmedWorksReq) GetArtistUuid() string { + if x != nil { + return x.ArtistUuid + } + return "" +} + +func (x *ToBeComfirmedWorksReq) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *ToBeComfirmedWorksReq) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +type ToBeComfirmedWorksResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` // 作品uuid + WorkCategory uint32 `protobuf:"varint,2,opt,name=workCategory,proto3" json:"workCategory,omitempty"` // 1 图文 2 视频 + PlatformIDs string `protobuf:"bytes,3,opt,name=platformIDs,proto3" json:"platformIDs,omitempty"` // 发布平台ID集合 (json 格式字符串) + MediaNames string `protobuf:"bytes,4,opt,name=mediaNames,proto3" json:"mediaNames,omitempty"` // 自媒体账号名称集合 + MediaAccIDs string `protobuf:"bytes,5,opt,name=mediaAccIDs,proto3" json:"mediaAccIDs,omitempty"` // 自媒体账号ID集合 + Title string `protobuf:"bytes,6,opt,name=title,proto3" json:"title,omitempty"` // 作品标题 + Content string `protobuf:"bytes,7,opt,name=content,proto3" json:"content,omitempty"` // 作品标题 + SubmitTime string `protobuf:"bytes,8,opt,name=submitTime,proto3" json:"submitTime,omitempty"` // 提交时间 + OperatorName string `protobuf:"bytes,9,opt,name=operatorName,proto3" json:"operatorName,omitempty"` // 操作人名称 + OperatorPhone string `protobuf:"bytes,10,opt,name=operatorPhone,proto3" json:"operatorPhone,omitempty"` // 操作人手机号 + Status uint32 `protobuf:"varint,11,opt,name=status,proto3" json:"status,omitempty"` // 1 待提交 2 审核中 3 审核失败 4 待艺人确认 5 艺人驳回 6 发布成功 7 发布失败 +} + +func (x *ToBeComfirmedWorksResp) Reset() { + *x = ToBeComfirmedWorksResp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ToBeComfirmedWorksResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ToBeComfirmedWorksResp) ProtoMessage() {} + +func (x *ToBeComfirmedWorksResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[66] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ToBeComfirmedWorksResp.ProtoReflect.Descriptor instead. +func (*ToBeComfirmedWorksResp) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{66} +} + +func (x *ToBeComfirmedWorksResp) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +func (x *ToBeComfirmedWorksResp) GetWorkCategory() uint32 { + if x != nil { + return x.WorkCategory + } + return 0 +} + +func (x *ToBeComfirmedWorksResp) GetPlatformIDs() string { + if x != nil { + return x.PlatformIDs + } + return "" +} + +func (x *ToBeComfirmedWorksResp) GetMediaNames() string { + if x != nil { + return x.MediaNames + } + return "" +} + +func (x *ToBeComfirmedWorksResp) GetMediaAccIDs() string { + if x != nil { + return x.MediaAccIDs + } + return "" +} + +func (x *ToBeComfirmedWorksResp) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *ToBeComfirmedWorksResp) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +func (x *ToBeComfirmedWorksResp) GetSubmitTime() string { + if x != nil { + return x.SubmitTime + } + return "" +} + +func (x *ToBeComfirmedWorksResp) GetOperatorName() string { + if x != nil { + return x.OperatorName + } + return "" +} + +func (x *ToBeComfirmedWorksResp) GetOperatorPhone() string { + if x != nil { + return x.OperatorPhone + } + return "" +} + +func (x *ToBeComfirmedWorksResp) GetStatus() uint32 { + if x != nil { + return x.Status + } + return 0 +} + var File_pb_bundle_proto protoreflect.FileDescriptor var file_pb_bundle_proto_rawDesc = []byte{ @@ -5288,7 +6543,7 @@ var file_pb_bundle_proto_rawDesc = []byte{ 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x22, 0xbf, 0x03, 0x0a, 0x13, 0x42, 0x75, 0x6e, 0x64, + 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x22, 0xdb, 0x03, 0x0a, 0x13, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, @@ -5306,76 +6561,93 @@ var file_pb_bundle_proto_rawDesc = []byte{ 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x34, 0x0a, - 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x73, - 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, - 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x16, 0x0a, 0x14, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x82, 0x02, 0x0a, 0x1e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x12, 0x34, 0x0a, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x6b, 0x0a, 0x1f, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, - 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x22, 0xa2, 0x04, 0x0a, 0x16, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1a, - 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x73, - 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x76, 0x69, 0x64, - 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x2a, 0x0a, 0x10, - 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x12, 0x40, 0x0a, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x34, 0x0a, 0x15, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x6e, 0x69, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x6e, 0x69, + 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x34, 0x0a, 0x15, 0x61, 0x73, 0x73, + 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, + 0x61, 0x74, 0x65, 0x64, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, + 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x16, 0x0a, 0x14, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x82, 0x02, + 0x0a, 0x1e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x75, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x73, 0x73, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, - 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xed, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, + 0x65, 0x72, 0x22, 0x6b, 0x0a, 0x1f, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x32, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0xa2, 0x04, 0x0a, 0x16, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, + 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x28, + 0x0a, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x64, 0x61, + 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x40, 0x0a, 0x1b, + 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x34, 0x0a, 0x15, 0x61, 0x73, 0x73, 0x6f, + 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, + 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x22, + 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, + 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x22, 0xf1, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x45, + 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xed, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, @@ -5390,52 +6662,236 @@ var file_pb_bundle_proto_rawDesc = []byte{ 0x64, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xf3, 0x04, 0x0a, 0x11, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1a, - 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x73, - 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, - 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, + 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x8b, 0x05, 0x0a, 0x11, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, + 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x73, 0x65, + 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, + 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x69, 0x64, 0x65, + 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, + 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x76, 0x69, + 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x76, 0x69, 0x64, 0x65, + 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, + 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x12, + 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, + 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1d, + 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, + 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x32, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, + 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x5b, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, + 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x22, 0x5f, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x22, 0x8e, 0x04, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, + 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x55, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x55, 0x55, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, 0x69, + 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x76, 0x69, 0x64, + 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x64, + 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, + 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1d, 0x64, + 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, + 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x32, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, + 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x19, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x9b, 0x04, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x55, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x55, 0x55, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, + 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, - 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, + 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6d, - 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x69, 0x6d, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, - 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, + 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1d, 0x64, 0x61, 0x74, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x5b, - 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2d, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x32, 0xe9, 0x12, 0x0a, 0x06, + 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x16, + 0x0a, 0x14, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa6, 0x02, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, + 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, + 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, + 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, + 0x28, 0x0a, 0x0f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x75, 0x62, + 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, + 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, + 0x57, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x28, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x73, 0x74, 0x49, 0x74, + 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xf4, 0x03, 0x0a, 0x0c, 0x57, 0x6f, 0x72, + 0x6b, 0x43, 0x61, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, + 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, + 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, + 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x77, + 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, 0x12, 0x1e, 0x0a, + 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, + 0x0b, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x49, 0x44, 0x73, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x49, 0x44, 0x73, 0x12, + 0x1c, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1e, 0x0a, + 0x0a, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, + 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, + 0x6e, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, + 0x2f, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x6f, 0x72, 0x6b, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, + 0x22, 0x2f, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x56, 0x65, 0x64, 0x69, 0x6f, 0x57, 0x6f, 0x72, 0x6b, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x6f, 0x72, + 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, + 0x64, 0x22, 0x86, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x6f, + 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, + 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x6f, + 0x72, 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, + 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x6d, 0x0a, 0x17, 0x47, 0x65, + 0x74, 0x56, 0x65, 0x64, 0x69, 0x6f, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x12, 0x1c, 0x0a, + 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x67, 0x0a, 0x15, 0x54, 0x6f, 0x42, + 0x65, 0x43, 0x6f, 0x6d, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x52, + 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, + 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x22, 0xe6, 0x02, 0x0a, 0x16, 0x54, 0x6f, 0x42, 0x65, 0x43, 0x6f, 0x6d, 0x66, 0x69, + 0x72, 0x6d, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, + 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, + 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, + 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x49, 0x44, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x64, + 0x69, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x41, 0x63, 0x63, 0x49, 0x44, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, + 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x49, 0x44, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x75, 0x62, + 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, + 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, + 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, + 0x6f, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x32, 0xfa, 0x16, 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x16, 0x2e, @@ -5581,13 +7037,46 @@ var file_pb_bundle_proto_rawDesc = []byte{ 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2f, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1f, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, + 0x20, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4f, 0x0a, + 0x10, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x52, + 0x0a, 0x11, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x1a, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x12, 0x55, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x6f, + 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x12, 0x47, 0x65, 0x74, + 0x56, 0x65, 0x64, 0x69, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, + 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x64, 0x69, + 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x1f, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x64, 0x69, 0x6f, + 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x00, 0x12, 0x55, 0x0a, 0x12, 0x54, 0x6f, 0x42, 0x65, 0x43, 0x6f, 0x6d, 0x66, 0x69, 0x72, 0x6d, + 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x54, 0x6f, 0x42, 0x65, 0x43, 0x6f, 0x6d, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x57, 0x6f, + 0x72, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x54, 0x6f, 0x42, 0x65, 0x43, 0x6f, 0x6d, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x57, 0x6f, 0x72, + 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2f, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -5602,7 +7091,7 @@ func file_pb_bundle_proto_rawDescGZIP() []byte { return file_pb_bundle_proto_rawDescData } -var file_pb_bundle_proto_msgTypes = make([]protoimpl.MessageInfo, 52) +var file_pb_bundle_proto_msgTypes = make([]protoimpl.MessageInfo, 67) var file_pb_bundle_proto_goTypes = []interface{}{ (*OrderCreateRecord)(nil), // 0: bundle.OrderCreateRecord (*OrderCreateAddRecord)(nil), // 1: bundle.OrderCreateAddRecord @@ -5653,9 +7142,24 @@ var file_pb_bundle_proto_goTypes = []interface{}{ (*BundleExtendRecordsListRequest)(nil), // 46: bundle.BundleExtendRecordsListRequest (*BundleExtendRecordsListResponse)(nil), // 47: bundle.BundleExtendRecordsListResponse (*BundleExtendRecordItem)(nil), // 48: bundle.BundleExtendRecordItem - (*GetBundleBalanceReq)(nil), // 49: bundle.GetBundleBalanceReq - (*BundleBalanceItem)(nil), // 50: bundle.BundleBalanceItem - (*GetBundleBalanceResp)(nil), // 51: bundle.GetBundleBalanceResp + (*GetBundleBalanceListReq)(nil), // 49: bundle.GetBundleBalanceListReq + (*GetBundleBalanceReq)(nil), // 50: bundle.GetBundleBalanceReq + (*BundleBalanceItem)(nil), // 51: bundle.BundleBalanceItem + (*GetBundleBalanceResp)(nil), // 52: bundle.GetBundleBalanceResp + (*GetBundleBalanceListResp)(nil), // 53: bundle.GetBundleBalanceListResp + (*CreateBundleBalanceReq)(nil), // 54: bundle.CreateBundleBalanceReq + (*CreateBundleBalanceResp)(nil), // 55: bundle.CreateBundleBalanceResp + (*AddBundleBalanceReq)(nil), // 56: bundle.AddBundleBalanceReq + (*AddBundleBalanceResp)(nil), // 57: bundle.AddBundleBalanceResp + (*GetUsedRecordListReq)(nil), // 58: bundle.GetUsedRecordListReq + (*GetUsedRecordListResp)(nil), // 59: bundle.GetUsedRecordListResp + (*WorkCastItem)(nil), // 60: bundle.WorkCastItem + (*GetImageWorkDetailReq)(nil), // 61: bundle.GetImageWorkDetailReq + (*GetVedioWorkDetailReq)(nil), // 62: bundle.GetVedioWorkDetailReq + (*GetImageWorkDetailResp)(nil), // 63: bundle.GetImageWorkDetailResp + (*GetVedioeWorkDetailResp)(nil), // 64: bundle.GetVedioeWorkDetailResp + (*ToBeComfirmedWorksReq)(nil), // 65: bundle.ToBeComfirmedWorksReq + (*ToBeComfirmedWorksResp)(nil), // 66: bundle.ToBeComfirmedWorksResp } var file_pb_bundle_proto_depIdxs = []int32{ 1, // 0: bundle.OrderCreateRecord.addRecords:type_name -> bundle.OrderCreateAddRecord @@ -5677,70 +7181,84 @@ var file_pb_bundle_proto_depIdxs = []int32{ 35, // 16: bundle.ValueAddServiceListResponse.valueAddServiceList:type_name -> bundle.ValueAddService 35, // 17: bundle.ValueAddServiceDetailResponse.valueAddService:type_name -> bundle.ValueAddService 48, // 18: bundle.BundleExtendRecordsListResponse.data:type_name -> bundle.BundleExtendRecordItem - 50, // 19: bundle.GetBundleBalanceResp.data:type_name -> bundle.BundleBalanceItem - 8, // 20: bundle.Bundle.CreateBundle:input_type -> bundle.BundleProfile - 8, // 21: bundle.Bundle.UpdateBundle:input_type -> bundle.BundleProfile - 12, // 22: bundle.Bundle.DeleteBundle:input_type -> bundle.DelBundleRequest - 16, // 23: bundle.Bundle.HandShelf:input_type -> bundle.HandShelfRequest - 8, // 24: bundle.Bundle.SaveBundle:input_type -> bundle.BundleProfile - 13, // 25: bundle.Bundle.BundleListV2:input_type -> bundle.BundleListRequest - 15, // 26: bundle.Bundle.BundleDetailV2:input_type -> bundle.BundleDetailRequest - 13, // 27: bundle.Bundle.BundleList:input_type -> bundle.BundleListRequest - 15, // 28: bundle.Bundle.BundleDetail:input_type -> bundle.BundleDetailRequest - 0, // 29: bundle.Bundle.CreateOrderRecord:input_type -> bundle.OrderCreateRecord - 19, // 30: bundle.Bundle.UpdateOrderRecord:input_type -> bundle.OrderRecord - 19, // 31: bundle.Bundle.UpdateOrderRecordByOrderNo:input_type -> bundle.OrderRecord - 23, // 32: bundle.Bundle.OrderRecordsList:input_type -> bundle.OrderRecordsRequest - 25, // 33: bundle.Bundle.OrderRecordsDetail:input_type -> bundle.OrderRecordsDetailRequest - 34, // 34: bundle.Bundle.UpdateFinancialConfirmationStatus:input_type -> bundle.FinancialConfirmationRequest - 20, // 35: bundle.Bundle.CreateOrderAddRecord:input_type -> bundle.OrderAddRecord - 19, // 36: bundle.Bundle.PackagePriceAndTime:input_type -> bundle.OrderRecord - 2, // 37: bundle.Bundle.OrderRecordsListV2:input_type -> bundle.OrderRecordsRequestV2 - 28, // 38: bundle.Bundle.CreateValueAddBundle:input_type -> bundle.CreateValueAddBundleRequest - 30, // 39: bundle.Bundle.ValueAddBundleList:input_type -> bundle.ValueAddBundleListRequest - 32, // 40: bundle.Bundle.ValueAddBundleDetail:input_type -> bundle.ValueAddBundleDetailRequest - 36, // 41: bundle.Bundle.SaveValueAddService:input_type -> bundle.ValueAddServiceLang - 38, // 42: bundle.Bundle.ValueAddServiceList:input_type -> bundle.ValueAddServiceListRequest - 40, // 43: bundle.Bundle.ValueAddServiceDetail:input_type -> bundle.ValueAddServiceDetailRequest - 40, // 44: bundle.Bundle.ValueAddServiceLangByUuidAndLanguage:input_type -> bundle.ValueAddServiceDetailRequest - 42, // 45: bundle.Bundle.CalculatePrice:input_type -> bundle.CalculatePriceRequest - 44, // 46: bundle.Bundle.BundleExtend:input_type -> bundle.BundleExtendRequest - 46, // 47: bundle.Bundle.BundleExtendRecordsList:input_type -> bundle.BundleExtendRecordsListRequest - 49, // 48: bundle.Bundle.GetBundleBalance:input_type -> bundle.GetBundleBalanceReq - 7, // 49: bundle.Bundle.CreateBundle:output_type -> bundle.CommonResponse - 7, // 50: bundle.Bundle.UpdateBundle:output_type -> bundle.CommonResponse - 7, // 51: bundle.Bundle.DeleteBundle:output_type -> bundle.CommonResponse - 7, // 52: bundle.Bundle.HandShelf:output_type -> bundle.CommonResponse - 10, // 53: bundle.Bundle.SaveBundle:output_type -> bundle.SaveResponse - 14, // 54: bundle.Bundle.BundleListV2:output_type -> bundle.BundleListResponse - 18, // 55: bundle.Bundle.BundleDetailV2:output_type -> bundle.BundleDetailResponseV2 - 14, // 56: bundle.Bundle.BundleList:output_type -> bundle.BundleListResponse - 17, // 57: bundle.Bundle.BundleDetail:output_type -> bundle.BundleDetailResponse - 7, // 58: bundle.Bundle.CreateOrderRecord:output_type -> bundle.CommonResponse - 7, // 59: bundle.Bundle.UpdateOrderRecord:output_type -> bundle.CommonResponse - 7, // 60: bundle.Bundle.UpdateOrderRecordByOrderNo:output_type -> bundle.CommonResponse - 24, // 61: bundle.Bundle.OrderRecordsList:output_type -> bundle.OrderRecordsResponse - 26, // 62: bundle.Bundle.OrderRecordsDetail:output_type -> bundle.OrderRecordsDetailResponse - 7, // 63: bundle.Bundle.UpdateFinancialConfirmationStatus:output_type -> bundle.CommonResponse - 7, // 64: bundle.Bundle.CreateOrderAddRecord:output_type -> bundle.CommonResponse - 6, // 65: bundle.Bundle.PackagePriceAndTime:output_type -> bundle.PackagePriceAndTimeResponse - 3, // 66: bundle.Bundle.OrderRecordsListV2:output_type -> bundle.OrderRecordsResponseV2 - 29, // 67: bundle.Bundle.CreateValueAddBundle:output_type -> bundle.CreateValueAddBundleResponse - 31, // 68: bundle.Bundle.ValueAddBundleList:output_type -> bundle.ValueAddBundleListResponse - 33, // 69: bundle.Bundle.ValueAddBundleDetail:output_type -> bundle.ValueAddBundleDetailResponse - 10, // 70: bundle.Bundle.SaveValueAddService:output_type -> bundle.SaveResponse - 39, // 71: bundle.Bundle.ValueAddServiceList:output_type -> bundle.ValueAddServiceListResponse - 41, // 72: bundle.Bundle.ValueAddServiceDetail:output_type -> bundle.ValueAddServiceDetailResponse - 36, // 73: bundle.Bundle.ValueAddServiceLangByUuidAndLanguage:output_type -> bundle.ValueAddServiceLang - 43, // 74: bundle.Bundle.CalculatePrice:output_type -> bundle.CalculatePriceResponse - 45, // 75: bundle.Bundle.BundleExtend:output_type -> bundle.BundleExtendResponse - 47, // 76: bundle.Bundle.BundleExtendRecordsList:output_type -> bundle.BundleExtendRecordsListResponse - 51, // 77: bundle.Bundle.GetBundleBalance:output_type -> bundle.GetBundleBalanceResp - 49, // [49:78] is the sub-list for method output_type - 20, // [20:49] is the sub-list for method input_type - 20, // [20:20] is the sub-list for extension type_name - 20, // [20:20] is the sub-list for extension extendee - 0, // [0:20] is the sub-list for field type_name + 51, // 19: bundle.GetBundleBalanceResp.data:type_name -> bundle.BundleBalanceItem + 51, // 20: bundle.GetBundleBalanceListResp.data:type_name -> bundle.BundleBalanceItem + 60, // 21: bundle.GetUsedRecordListResp.data:type_name -> bundle.WorkCastItem + 8, // 22: bundle.Bundle.CreateBundle:input_type -> bundle.BundleProfile + 8, // 23: bundle.Bundle.UpdateBundle:input_type -> bundle.BundleProfile + 12, // 24: bundle.Bundle.DeleteBundle:input_type -> bundle.DelBundleRequest + 16, // 25: bundle.Bundle.HandShelf:input_type -> bundle.HandShelfRequest + 8, // 26: bundle.Bundle.SaveBundle:input_type -> bundle.BundleProfile + 13, // 27: bundle.Bundle.BundleListV2:input_type -> bundle.BundleListRequest + 15, // 28: bundle.Bundle.BundleDetailV2:input_type -> bundle.BundleDetailRequest + 13, // 29: bundle.Bundle.BundleList:input_type -> bundle.BundleListRequest + 15, // 30: bundle.Bundle.BundleDetail:input_type -> bundle.BundleDetailRequest + 0, // 31: bundle.Bundle.CreateOrderRecord:input_type -> bundle.OrderCreateRecord + 19, // 32: bundle.Bundle.UpdateOrderRecord:input_type -> bundle.OrderRecord + 19, // 33: bundle.Bundle.UpdateOrderRecordByOrderNo:input_type -> bundle.OrderRecord + 23, // 34: bundle.Bundle.OrderRecordsList:input_type -> bundle.OrderRecordsRequest + 25, // 35: bundle.Bundle.OrderRecordsDetail:input_type -> bundle.OrderRecordsDetailRequest + 34, // 36: bundle.Bundle.UpdateFinancialConfirmationStatus:input_type -> bundle.FinancialConfirmationRequest + 20, // 37: bundle.Bundle.CreateOrderAddRecord:input_type -> bundle.OrderAddRecord + 19, // 38: bundle.Bundle.PackagePriceAndTime:input_type -> bundle.OrderRecord + 2, // 39: bundle.Bundle.OrderRecordsListV2:input_type -> bundle.OrderRecordsRequestV2 + 28, // 40: bundle.Bundle.CreateValueAddBundle:input_type -> bundle.CreateValueAddBundleRequest + 30, // 41: bundle.Bundle.ValueAddBundleList:input_type -> bundle.ValueAddBundleListRequest + 32, // 42: bundle.Bundle.ValueAddBundleDetail:input_type -> bundle.ValueAddBundleDetailRequest + 36, // 43: bundle.Bundle.SaveValueAddService:input_type -> bundle.ValueAddServiceLang + 38, // 44: bundle.Bundle.ValueAddServiceList:input_type -> bundle.ValueAddServiceListRequest + 40, // 45: bundle.Bundle.ValueAddServiceDetail:input_type -> bundle.ValueAddServiceDetailRequest + 40, // 46: bundle.Bundle.ValueAddServiceLangByUuidAndLanguage:input_type -> bundle.ValueAddServiceDetailRequest + 42, // 47: bundle.Bundle.CalculatePrice:input_type -> bundle.CalculatePriceRequest + 44, // 48: bundle.Bundle.BundleExtend:input_type -> bundle.BundleExtendRequest + 46, // 49: bundle.Bundle.BundleExtendRecordsList:input_type -> bundle.BundleExtendRecordsListRequest + 49, // 50: bundle.Bundle.GetBundleBalanceList:input_type -> bundle.GetBundleBalanceListReq + 54, // 51: bundle.Bundle.CreateBundleBalance:input_type -> bundle.CreateBundleBalanceReq + 56, // 52: bundle.Bundle.AddBundleBalance:input_type -> bundle.AddBundleBalanceReq + 58, // 53: bundle.Bundle.GetUsedRecordList:input_type -> bundle.GetUsedRecordListReq + 61, // 54: bundle.Bundle.GetImageWorkDetail:input_type -> bundle.GetImageWorkDetailReq + 62, // 55: bundle.Bundle.GetVedioWorkDetail:input_type -> bundle.GetVedioWorkDetailReq + 65, // 56: bundle.Bundle.ToBeComfirmedWorks:input_type -> bundle.ToBeComfirmedWorksReq + 7, // 57: bundle.Bundle.CreateBundle:output_type -> bundle.CommonResponse + 7, // 58: bundle.Bundle.UpdateBundle:output_type -> bundle.CommonResponse + 7, // 59: bundle.Bundle.DeleteBundle:output_type -> bundle.CommonResponse + 7, // 60: bundle.Bundle.HandShelf:output_type -> bundle.CommonResponse + 10, // 61: bundle.Bundle.SaveBundle:output_type -> bundle.SaveResponse + 14, // 62: bundle.Bundle.BundleListV2:output_type -> bundle.BundleListResponse + 18, // 63: bundle.Bundle.BundleDetailV2:output_type -> bundle.BundleDetailResponseV2 + 14, // 64: bundle.Bundle.BundleList:output_type -> bundle.BundleListResponse + 17, // 65: bundle.Bundle.BundleDetail:output_type -> bundle.BundleDetailResponse + 7, // 66: bundle.Bundle.CreateOrderRecord:output_type -> bundle.CommonResponse + 7, // 67: bundle.Bundle.UpdateOrderRecord:output_type -> bundle.CommonResponse + 7, // 68: bundle.Bundle.UpdateOrderRecordByOrderNo:output_type -> bundle.CommonResponse + 24, // 69: bundle.Bundle.OrderRecordsList:output_type -> bundle.OrderRecordsResponse + 26, // 70: bundle.Bundle.OrderRecordsDetail:output_type -> bundle.OrderRecordsDetailResponse + 7, // 71: bundle.Bundle.UpdateFinancialConfirmationStatus:output_type -> bundle.CommonResponse + 7, // 72: bundle.Bundle.CreateOrderAddRecord:output_type -> bundle.CommonResponse + 6, // 73: bundle.Bundle.PackagePriceAndTime:output_type -> bundle.PackagePriceAndTimeResponse + 3, // 74: bundle.Bundle.OrderRecordsListV2:output_type -> bundle.OrderRecordsResponseV2 + 29, // 75: bundle.Bundle.CreateValueAddBundle:output_type -> bundle.CreateValueAddBundleResponse + 31, // 76: bundle.Bundle.ValueAddBundleList:output_type -> bundle.ValueAddBundleListResponse + 33, // 77: bundle.Bundle.ValueAddBundleDetail:output_type -> bundle.ValueAddBundleDetailResponse + 10, // 78: bundle.Bundle.SaveValueAddService:output_type -> bundle.SaveResponse + 39, // 79: bundle.Bundle.ValueAddServiceList:output_type -> bundle.ValueAddServiceListResponse + 41, // 80: bundle.Bundle.ValueAddServiceDetail:output_type -> bundle.ValueAddServiceDetailResponse + 36, // 81: bundle.Bundle.ValueAddServiceLangByUuidAndLanguage:output_type -> bundle.ValueAddServiceLang + 43, // 82: bundle.Bundle.CalculatePrice:output_type -> bundle.CalculatePriceResponse + 45, // 83: bundle.Bundle.BundleExtend:output_type -> bundle.BundleExtendResponse + 47, // 84: bundle.Bundle.BundleExtendRecordsList:output_type -> bundle.BundleExtendRecordsListResponse + 53, // 85: bundle.Bundle.GetBundleBalanceList:output_type -> bundle.GetBundleBalanceListResp + 55, // 86: bundle.Bundle.CreateBundleBalance:output_type -> bundle.CreateBundleBalanceResp + 57, // 87: bundle.Bundle.AddBundleBalance:output_type -> bundle.AddBundleBalanceResp + 59, // 88: bundle.Bundle.GetUsedRecordList:output_type -> bundle.GetUsedRecordListResp + 63, // 89: bundle.Bundle.GetImageWorkDetail:output_type -> bundle.GetImageWorkDetailResp + 64, // 90: bundle.Bundle.GetVedioWorkDetail:output_type -> bundle.GetVedioeWorkDetailResp + 66, // 91: bundle.Bundle.ToBeComfirmedWorks:output_type -> bundle.ToBeComfirmedWorksResp + 57, // [57:92] is the sub-list for method output_type + 22, // [22:57] is the sub-list for method input_type + 22, // [22:22] is the sub-list for extension type_name + 22, // [22:22] is the sub-list for extension extendee + 0, // [0:22] is the sub-list for field type_name } func init() { file_pb_bundle_proto_init() } @@ -6338,7 +7856,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBundleBalanceReq); i { + switch v := v.(*GetBundleBalanceListReq); i { case 0: return &v.state case 1: @@ -6350,7 +7868,7 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BundleBalanceItem); i { + switch v := v.(*GetBundleBalanceReq); i { case 0: return &v.state case 1: @@ -6362,6 +7880,18 @@ func file_pb_bundle_proto_init() { } } file_pb_bundle_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BundleBalanceItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetBundleBalanceResp); i { case 0: return &v.state @@ -6373,6 +7903,174 @@ func file_pb_bundle_proto_init() { return nil } } + file_pb_bundle_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBundleBalanceListResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateBundleBalanceReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateBundleBalanceResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddBundleBalanceReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddBundleBalanceResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUsedRecordListReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUsedRecordListResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WorkCastItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetImageWorkDetailReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetVedioWorkDetailReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetImageWorkDetailResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetVedioeWorkDetailResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ToBeComfirmedWorksReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ToBeComfirmedWorksResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -6380,7 +8078,7 @@ func file_pb_bundle_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pb_bundle_proto_rawDesc, NumEnums: 0, - NumMessages: 52, + NumMessages: 67, NumExtensions: 0, NumServices: 1, }, diff --git a/api/bundle/bundle.validator.pb.go b/api/bundle/bundle.validator.pb.go index 0a29d51..1beb46c 100644 --- a/api/bundle/bundle.validator.pb.go +++ b/api/bundle/bundle.validator.pb.go @@ -293,6 +293,9 @@ func (this *BundleExtendRecordsListResponse) Validate() error { func (this *BundleExtendRecordItem) Validate() error { return nil } +func (this *GetBundleBalanceListReq) Validate() error { + return nil +} func (this *GetBundleBalanceReq) Validate() error { return nil } @@ -309,3 +312,59 @@ func (this *GetBundleBalanceResp) Validate() error { } return nil } +func (this *GetBundleBalanceListResp) Validate() error { + for _, item := range this.Data { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Data", err) + } + } + } + return nil +} +func (this *CreateBundleBalanceReq) Validate() error { + return nil +} +func (this *CreateBundleBalanceResp) Validate() error { + return nil +} +func (this *AddBundleBalanceReq) Validate() error { + return nil +} +func (this *AddBundleBalanceResp) Validate() error { + return nil +} +func (this *GetUsedRecordListReq) Validate() error { + return nil +} +func (this *GetUsedRecordListResp) Validate() error { + for _, item := range this.Data { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Data", err) + } + } + } + return nil +} +func (this *WorkCastItem) Validate() error { + return nil +} +func (this *GetImageWorkDetailReq) Validate() error { + return nil +} +func (this *GetVedioWorkDetailReq) Validate() error { + return nil +} +func (this *GetImageWorkDetailResp) Validate() error { + return nil +} +func (this *GetVedioeWorkDetailResp) Validate() error { + return nil +} +func (this *ToBeComfirmedWorksReq) Validate() error { + return nil +} +func (this *ToBeComfirmedWorksResp) Validate() error { + return nil +} diff --git a/api/bundle/bundle_triple.pb.go b/api/bundle/bundle_triple.pb.go index 616e572..d84df15 100644 --- a/api/bundle/bundle_triple.pb.go +++ b/api/bundle/bundle_triple.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-triple. DO NOT EDIT. // versions: // - protoc-gen-go-triple v1.0.8 -// - protoc v4.24.0--rc1 +// - protoc v3.20.3 // source: pb/bundle.proto package bundle @@ -46,11 +46,11 @@ type BundleClient interface { CreateOrderAddRecord(ctx context.Context, in *OrderAddRecord, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) PackagePriceAndTime(ctx context.Context, in *OrderRecord, opts ...grpc_go.CallOption) (*PackagePriceAndTimeResponse, common.ErrorWithAttachment) OrderRecordsListV2(ctx context.Context, in *OrderRecordsRequestV2, opts ...grpc_go.CallOption) (*OrderRecordsResponseV2, common.ErrorWithAttachment) - //增值套餐 + // 增值套餐 CreateValueAddBundle(ctx context.Context, in *CreateValueAddBundleRequest, opts ...grpc_go.CallOption) (*CreateValueAddBundleResponse, common.ErrorWithAttachment) ValueAddBundleList(ctx context.Context, in *ValueAddBundleListRequest, opts ...grpc_go.CallOption) (*ValueAddBundleListResponse, common.ErrorWithAttachment) ValueAddBundleDetail(ctx context.Context, in *ValueAddBundleDetailRequest, opts ...grpc_go.CallOption) (*ValueAddBundleDetailResponse, common.ErrorWithAttachment) - //新增值服务 + // 新增值服务 SaveValueAddService(ctx context.Context, in *ValueAddServiceLang, opts ...grpc_go.CallOption) (*SaveResponse, common.ErrorWithAttachment) ValueAddServiceList(ctx context.Context, in *ValueAddServiceListRequest, opts ...grpc_go.CallOption) (*ValueAddServiceListResponse, common.ErrorWithAttachment) ValueAddServiceDetail(ctx context.Context, in *ValueAddServiceDetailRequest, opts ...grpc_go.CallOption) (*ValueAddServiceDetailResponse, common.ErrorWithAttachment) @@ -59,7 +59,14 @@ type BundleClient interface { // 余量管理 BundleExtend(ctx context.Context, in *BundleExtendRequest, opts ...grpc_go.CallOption) (*BundleExtendResponse, common.ErrorWithAttachment) BundleExtendRecordsList(ctx context.Context, in *BundleExtendRecordsListRequest, opts ...grpc_go.CallOption) (*BundleExtendRecordsListResponse, common.ErrorWithAttachment) - GetBundleBalance(ctx context.Context, in *GetBundleBalanceReq, opts ...grpc_go.CallOption) (*GetBundleBalanceResp, common.ErrorWithAttachment) + GetBundleBalanceList(ctx context.Context, in *GetBundleBalanceListReq, opts ...grpc_go.CallOption) (*GetBundleBalanceListResp, common.ErrorWithAttachment) + CreateBundleBalance(ctx context.Context, in *CreateBundleBalanceReq, opts ...grpc_go.CallOption) (*CreateBundleBalanceResp, common.ErrorWithAttachment) + AddBundleBalance(ctx context.Context, in *AddBundleBalanceReq, opts ...grpc_go.CallOption) (*AddBundleBalanceResp, common.ErrorWithAttachment) + // 使用记录 + GetUsedRecordList(ctx context.Context, in *GetUsedRecordListReq, opts ...grpc_go.CallOption) (*GetUsedRecordListResp, common.ErrorWithAttachment) + GetImageWorkDetail(ctx context.Context, in *GetImageWorkDetailReq, opts ...grpc_go.CallOption) (*GetImageWorkDetailResp, common.ErrorWithAttachment) + GetVedioWorkDetail(ctx context.Context, in *GetVedioWorkDetailReq, opts ...grpc_go.CallOption) (*GetVedioeWorkDetailResp, common.ErrorWithAttachment) + ToBeComfirmedWorks(ctx context.Context, in *ToBeComfirmedWorksReq, opts ...grpc_go.CallOption) (*ToBeComfirmedWorksResp, common.ErrorWithAttachment) } type bundleClient struct { @@ -95,7 +102,13 @@ type BundleClientImpl struct { CalculatePrice func(ctx context.Context, in *CalculatePriceRequest) (*CalculatePriceResponse, error) BundleExtend func(ctx context.Context, in *BundleExtendRequest) (*BundleExtendResponse, error) BundleExtendRecordsList func(ctx context.Context, in *BundleExtendRecordsListRequest) (*BundleExtendRecordsListResponse, error) - GetBundleBalance func(ctx context.Context, in *GetBundleBalanceReq) (*GetBundleBalanceResp, error) + GetBundleBalanceList func(ctx context.Context, in *GetBundleBalanceListReq) (*GetBundleBalanceListResp, error) + CreateBundleBalance func(ctx context.Context, in *CreateBundleBalanceReq) (*CreateBundleBalanceResp, error) + AddBundleBalance func(ctx context.Context, in *AddBundleBalanceReq) (*AddBundleBalanceResp, error) + GetUsedRecordList func(ctx context.Context, in *GetUsedRecordListReq) (*GetUsedRecordListResp, error) + GetImageWorkDetail func(ctx context.Context, in *GetImageWorkDetailReq) (*GetImageWorkDetailResp, error) + GetVedioWorkDetail func(ctx context.Context, in *GetVedioWorkDetailReq) (*GetVedioeWorkDetailResp, error) + ToBeComfirmedWorks func(ctx context.Context, in *ToBeComfirmedWorksReq) (*ToBeComfirmedWorksResp, error) } func (c *BundleClientImpl) GetDubboStub(cc *triple.TripleConn) BundleClient { @@ -278,10 +291,46 @@ func (c *bundleClient) BundleExtendRecordsList(ctx context.Context, in *BundleEx return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/BundleExtendRecordsList", in, out) } -func (c *bundleClient) GetBundleBalance(ctx context.Context, in *GetBundleBalanceReq, opts ...grpc_go.CallOption) (*GetBundleBalanceResp, common.ErrorWithAttachment) { - out := new(GetBundleBalanceResp) +func (c *bundleClient) GetBundleBalanceList(ctx context.Context, in *GetBundleBalanceListReq, opts ...grpc_go.CallOption) (*GetBundleBalanceListResp, common.ErrorWithAttachment) { + out := new(GetBundleBalanceListResp) interfaceKey := ctx.Value(constant.InterfaceKey).(string) - return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetBundleBalance", in, out) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetBundleBalanceList", in, out) +} + +func (c *bundleClient) CreateBundleBalance(ctx context.Context, in *CreateBundleBalanceReq, opts ...grpc_go.CallOption) (*CreateBundleBalanceResp, common.ErrorWithAttachment) { + out := new(CreateBundleBalanceResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CreateBundleBalance", in, out) +} + +func (c *bundleClient) AddBundleBalance(ctx context.Context, in *AddBundleBalanceReq, opts ...grpc_go.CallOption) (*AddBundleBalanceResp, common.ErrorWithAttachment) { + out := new(AddBundleBalanceResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/AddBundleBalance", in, out) +} + +func (c *bundleClient) GetUsedRecordList(ctx context.Context, in *GetUsedRecordListReq, opts ...grpc_go.CallOption) (*GetUsedRecordListResp, common.ErrorWithAttachment) { + out := new(GetUsedRecordListResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetUsedRecordList", in, out) +} + +func (c *bundleClient) GetImageWorkDetail(ctx context.Context, in *GetImageWorkDetailReq, opts ...grpc_go.CallOption) (*GetImageWorkDetailResp, common.ErrorWithAttachment) { + out := new(GetImageWorkDetailResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetImageWorkDetail", in, out) +} + +func (c *bundleClient) GetVedioWorkDetail(ctx context.Context, in *GetVedioWorkDetailReq, opts ...grpc_go.CallOption) (*GetVedioeWorkDetailResp, common.ErrorWithAttachment) { + out := new(GetVedioeWorkDetailResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetVedioWorkDetail", in, out) +} + +func (c *bundleClient) ToBeComfirmedWorks(ctx context.Context, in *ToBeComfirmedWorksReq, opts ...grpc_go.CallOption) (*ToBeComfirmedWorksResp, common.ErrorWithAttachment) { + out := new(ToBeComfirmedWorksResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ToBeComfirmedWorks", in, out) } // BundleServer is the server API for Bundle service. @@ -306,11 +355,11 @@ type BundleServer interface { CreateOrderAddRecord(context.Context, *OrderAddRecord) (*CommonResponse, error) PackagePriceAndTime(context.Context, *OrderRecord) (*PackagePriceAndTimeResponse, error) OrderRecordsListV2(context.Context, *OrderRecordsRequestV2) (*OrderRecordsResponseV2, error) - //增值套餐 + // 增值套餐 CreateValueAddBundle(context.Context, *CreateValueAddBundleRequest) (*CreateValueAddBundleResponse, error) ValueAddBundleList(context.Context, *ValueAddBundleListRequest) (*ValueAddBundleListResponse, error) ValueAddBundleDetail(context.Context, *ValueAddBundleDetailRequest) (*ValueAddBundleDetailResponse, error) - //新增值服务 + // 新增值服务 SaveValueAddService(context.Context, *ValueAddServiceLang) (*SaveResponse, error) ValueAddServiceList(context.Context, *ValueAddServiceListRequest) (*ValueAddServiceListResponse, error) ValueAddServiceDetail(context.Context, *ValueAddServiceDetailRequest) (*ValueAddServiceDetailResponse, error) @@ -319,7 +368,14 @@ type BundleServer interface { // 余量管理 BundleExtend(context.Context, *BundleExtendRequest) (*BundleExtendResponse, error) BundleExtendRecordsList(context.Context, *BundleExtendRecordsListRequest) (*BundleExtendRecordsListResponse, error) - GetBundleBalance(context.Context, *GetBundleBalanceReq) (*GetBundleBalanceResp, error) + GetBundleBalanceList(context.Context, *GetBundleBalanceListReq) (*GetBundleBalanceListResp, error) + CreateBundleBalance(context.Context, *CreateBundleBalanceReq) (*CreateBundleBalanceResp, error) + AddBundleBalance(context.Context, *AddBundleBalanceReq) (*AddBundleBalanceResp, error) + // 使用记录 + GetUsedRecordList(context.Context, *GetUsedRecordListReq) (*GetUsedRecordListResp, error) + GetImageWorkDetail(context.Context, *GetImageWorkDetailReq) (*GetImageWorkDetailResp, error) + GetVedioWorkDetail(context.Context, *GetVedioWorkDetailReq) (*GetVedioeWorkDetailResp, error) + ToBeComfirmedWorks(context.Context, *ToBeComfirmedWorksReq) (*ToBeComfirmedWorksResp, error) mustEmbedUnimplementedBundleServer() } @@ -412,8 +468,26 @@ func (UnimplementedBundleServer) BundleExtend(context.Context, *BundleExtendRequ func (UnimplementedBundleServer) BundleExtendRecordsList(context.Context, *BundleExtendRecordsListRequest) (*BundleExtendRecordsListResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method BundleExtendRecordsList not implemented") } -func (UnimplementedBundleServer) GetBundleBalance(context.Context, *GetBundleBalanceReq) (*GetBundleBalanceResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetBundleBalance not implemented") +func (UnimplementedBundleServer) GetBundleBalanceList(context.Context, *GetBundleBalanceListReq) (*GetBundleBalanceListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetBundleBalanceList not implemented") +} +func (UnimplementedBundleServer) CreateBundleBalance(context.Context, *CreateBundleBalanceReq) (*CreateBundleBalanceResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateBundleBalance not implemented") +} +func (UnimplementedBundleServer) AddBundleBalance(context.Context, *AddBundleBalanceReq) (*AddBundleBalanceResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method AddBundleBalance not implemented") +} +func (UnimplementedBundleServer) GetUsedRecordList(context.Context, *GetUsedRecordListReq) (*GetUsedRecordListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetUsedRecordList not implemented") +} +func (UnimplementedBundleServer) GetImageWorkDetail(context.Context, *GetImageWorkDetailReq) (*GetImageWorkDetailResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetImageWorkDetail not implemented") +} +func (UnimplementedBundleServer) GetVedioWorkDetail(context.Context, *GetVedioWorkDetailReq) (*GetVedioeWorkDetailResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetVedioWorkDetail not implemented") +} +func (UnimplementedBundleServer) ToBeComfirmedWorks(context.Context, *ToBeComfirmedWorksReq) (*ToBeComfirmedWorksResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ToBeComfirmedWorks not implemented") } func (s *UnimplementedBundleServer) XXX_SetProxyImpl(impl protocol.Invoker) { s.proxyImpl = impl @@ -1255,8 +1329,8 @@ func _Bundle_BundleExtendRecordsList_Handler(srv interface{}, ctx context.Contex return interceptor(ctx, in, info, handler) } -func _Bundle_GetBundleBalance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { - in := new(GetBundleBalanceReq) +func _Bundle_GetBundleBalanceList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetBundleBalanceListReq) if err := dec(in); err != nil { return nil, err } @@ -1268,7 +1342,181 @@ func _Bundle_GetBundleBalance_Handler(srv interface{}, ctx context.Context, dec for k, v := range md { invAttachment[k] = v } - invo := invocation.NewRPCInvocation("GetBundleBalance", args, invAttachment) + invo := invocation.NewRPCInvocation("GetBundleBalanceList", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Bundle_CreateBundleBalance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateBundleBalanceReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("CreateBundleBalance", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Bundle_AddBundleBalance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(AddBundleBalanceReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("AddBundleBalance", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Bundle_GetUsedRecordList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUsedRecordListReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetUsedRecordList", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Bundle_GetImageWorkDetail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetImageWorkDetailReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetImageWorkDetail", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Bundle_GetVedioWorkDetail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetVedioWorkDetailReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetVedioWorkDetail", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Bundle_ToBeComfirmedWorks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ToBeComfirmedWorksReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("ToBeComfirmedWorks", args, invAttachment) if interceptor == nil { result := base.XXX_GetProxyImpl().Invoke(ctx, invo) return result, result.Error() @@ -1404,8 +1652,32 @@ var Bundle_ServiceDesc = grpc_go.ServiceDesc{ Handler: _Bundle_BundleExtendRecordsList_Handler, }, { - MethodName: "GetBundleBalance", - Handler: _Bundle_GetBundleBalance_Handler, + MethodName: "GetBundleBalanceList", + Handler: _Bundle_GetBundleBalanceList_Handler, + }, + { + MethodName: "CreateBundleBalance", + Handler: _Bundle_CreateBundleBalance_Handler, + }, + { + MethodName: "AddBundleBalance", + Handler: _Bundle_AddBundleBalance_Handler, + }, + { + MethodName: "GetUsedRecordList", + Handler: _Bundle_GetUsedRecordList_Handler, + }, + { + MethodName: "GetImageWorkDetail", + Handler: _Bundle_GetImageWorkDetail_Handler, + }, + { + MethodName: "GetVedioWorkDetail", + Handler: _Bundle_GetVedioWorkDetail_Handler, + }, + { + MethodName: "ToBeComfirmedWorks", + Handler: _Bundle_ToBeComfirmedWorks_Handler, }, }, Streams: []grpc_go.StreamDesc{}, diff --git a/pkg/router/bundle.go b/pkg/router/bundle.go index ba1436c..3b77378 100644 --- a/pkg/router/bundle.go +++ b/pkg/router/bundle.go @@ -33,7 +33,10 @@ func BundleRouter(r *gin.RouterGroup) { bundleExtend.POST("", bundle.BundleExtend) bundleExtend.POST("list", bundle.BundleExtendRecordsList) } - bundleRoute.POST("balance", bundle.GetBundleBalance) + bundleBalance := bundleRoute.Group("balance") + bundleBalance.POST("", bundle.GetBundleBalance) + bundleBalance.POST("used-record", bundle.GetUsedRecordList) + } } diff --git a/pkg/service/bundle/bundleBalance.go b/pkg/service/bundle/bundleBalance.go index eaa15f3..d65c874 100644 --- a/pkg/service/bundle/bundleBalance.go +++ b/pkg/service/bundle/bundleBalance.go @@ -37,15 +37,30 @@ func BundleExtendRecordsList(c *gin.Context) { } func GetBundleBalance(c *gin.Context) { - var req bundle.GetBundleBalanceReq + var req bundle.GetBundleBalanceListReq if err := c.ShouldBindJSON(&req); err != nil { service.Error(c, err) return } - res, err := service.BundleProvider.GetBundleBalance(context.Background(), &req) + res, err := service.BundleProvider.GetBundleBalanceList(context.Background(), &req) if err != nil { service.Error(c, err) return } service.Success(c, res) } + +func GetUsedRecordList(c *gin.Context) { + var req bundle.GetUsedRecordListReq + if err := c.ShouldBindJSON(&req); err != nil { + service.Error(c, err) + return + } + res, err := service.BundleProvider.GetUsedRecordList(context.Background(), &req) + if err != nil { + service.Error(c, err) + return + } + service.Success(c, res) +} + From ae7b87aa1757825b06d1c6a5ff00c9dea132291b Mon Sep 17 00:00:00 2001 From: lzh <1625167628@qq.com> Date: Sat, 14 Jun 2025 13:52:51 +0800 Subject: [PATCH 15/18] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BD=9C=E5=93=81?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E5=92=8C=E8=AF=A6=E6=83=85=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/cast/cast.pb.go | 1138 ++++++++++++++++++++------- api/cast/cast.pb.validate.go | 557 ++++++++++++- api/cast/cast_triple.pb.go | 90 +++ pkg/router/bundle.go | 7 +- pkg/service/bundle/bundleBalance.go | 14 + 5 files changed, 1518 insertions(+), 288 deletions(-) diff --git a/api/cast/cast.pb.go b/api/cast/cast.pb.go index fc83a5a..386c824 100644 --- a/api/cast/cast.pb.go +++ b/api/cast/cast.pb.go @@ -76,6 +76,61 @@ func (PlatformIDENUM) EnumDescriptor() ([]byte, []int) { return file_pb_fiee_cast_proto_rawDescGZIP(), []int{0} } +type WorkActionENUM int32 + +const ( + WorkActionENUM_NO_ACTION WorkActionENUM = 0 + WorkActionENUM_CONFIRM WorkActionENUM = 1 // 确认 + WorkActionENUM_APPROVAL WorkActionENUM = 2 // 审批 + WorkActionENUM_APPROVAL_PASS WorkActionENUM = 3 // 审批通过 + WorkActionENUM_APPROVAL_REJECT WorkActionENUM = 4 // 审批驳回 +) + +// Enum value maps for WorkActionENUM. +var ( + WorkActionENUM_name = map[int32]string{ + 0: "NO_ACTION", + 1: "CONFIRM", + 2: "APPROVAL", + 3: "APPROVAL_PASS", + 4: "APPROVAL_REJECT", + } + WorkActionENUM_value = map[string]int32{ + "NO_ACTION": 0, + "CONFIRM": 1, + "APPROVAL": 2, + "APPROVAL_PASS": 3, + "APPROVAL_REJECT": 4, + } +) + +func (x WorkActionENUM) Enum() *WorkActionENUM { + p := new(WorkActionENUM) + *p = x + return p +} + +func (x WorkActionENUM) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WorkActionENUM) Descriptor() protoreflect.EnumDescriptor { + return file_pb_fiee_cast_proto_enumTypes[1].Descriptor() +} + +func (WorkActionENUM) Type() protoreflect.EnumType { + return &file_pb_fiee_cast_proto_enumTypes[1] +} + +func (x WorkActionENUM) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WorkActionENUM.Descriptor instead. +func (WorkActionENUM) EnumDescriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{1} +} + type MediaUserListReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -481,17 +536,18 @@ type UpdateWorkImageReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title"` - Content string `protobuf:"bytes,2,opt,name=content,proto3" json:"content"` - Images []string `protobuf:"bytes,3,rep,name=images,proto3" json:"images"` - MediaAccountUuids []string `protobuf:"bytes,4,rep,name=mediaAccountUuids,proto3" json:"mediaAccountUuids"` - MediaAccountNames []string `protobuf:"bytes,5,rep,name=mediaAccountNames,proto3" json:"mediaAccountNames"` - PlatformIDs []uint32 `protobuf:"varint,6,rep,packed,name=platformIDs,proto3" json:"platformIDs"` - ForbidComment uint32 `protobuf:"varint,7,opt,name=forbidComment,proto3" json:"forbidComment"` - Action string `protobuf:"bytes,8,opt,name=action,proto3" json:"action"` - WorkUuid string `protobuf:"bytes,9,opt,name=workUuid,proto3" json:"workUuid"` - ArtistUuid string `protobuf:"bytes,10,opt,name=artistUuid,proto3" json:"artistUuid"` - ArtistPhone string `protobuf:"bytes,11,opt,name=artistPhone,proto3" json:"artistPhone"` + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title"` + Content string `protobuf:"bytes,2,opt,name=content,proto3" json:"content"` + Images []string `protobuf:"bytes,3,rep,name=images,proto3" json:"images"` + MediaAccountUuids []string `protobuf:"bytes,4,rep,name=mediaAccountUuids,proto3" json:"mediaAccountUuids"` + MediaAccountNames []string `protobuf:"bytes,5,rep,name=mediaAccountNames,proto3" json:"mediaAccountNames"` + PlatformIDs []PlatformIDENUM `protobuf:"varint,6,rep,packed,name=platformIDs,proto3,enum=Cast.PlatformIDENUM" json:"platformIDs"` + PublishConfig *PublishConfig `protobuf:"bytes,7,opt,name=publishConfig,proto3" json:"publishConfig"` + Action string `protobuf:"bytes,8,opt,name=action,proto3" json:"action"` + WorkUuid string `protobuf:"bytes,9,opt,name=workUuid,proto3" json:"workUuid"` + ArtistUuid string `protobuf:"bytes,10,opt,name=artistUuid,proto3" json:"artistUuid"` + ArtistPhone string `protobuf:"bytes,11,opt,name=artistPhone,proto3" json:"artistPhone"` + ArtistName string `protobuf:"bytes,12,opt,name=artistName,proto3" json:"artistName"` } func (x *UpdateWorkImageReq) Reset() { @@ -559,18 +615,18 @@ func (x *UpdateWorkImageReq) GetMediaAccountNames() []string { return nil } -func (x *UpdateWorkImageReq) GetPlatformIDs() []uint32 { +func (x *UpdateWorkImageReq) GetPlatformIDs() []PlatformIDENUM { if x != nil { return x.PlatformIDs } return nil } -func (x *UpdateWorkImageReq) GetForbidComment() uint32 { +func (x *UpdateWorkImageReq) GetPublishConfig() *PublishConfig { if x != nil { - return x.ForbidComment + return x.PublishConfig } - return 0 + return nil } func (x *UpdateWorkImageReq) GetAction() string { @@ -601,6 +657,13 @@ func (x *UpdateWorkImageReq) GetArtistPhone() string { return "" } +func (x *UpdateWorkImageReq) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + type UpdateWorkImageResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -646,29 +709,115 @@ func (x *UpdateWorkImageResp) GetWorkUuid() string { return "" } +type PublishConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ForbidComment uint32 `protobuf:"varint,1,opt,name=forbidComment,proto3" json:"forbidComment"` + PublicType uint32 `protobuf:"varint,2,opt,name=publicType,proto3" json:"publicType"` + CanJoin uint32 `protobuf:"varint,3,opt,name=canJoin,proto3" json:"canJoin"` + CanQuote uint32 `protobuf:"varint,4,opt,name=canQuote,proto3" json:"canQuote"` + CanComment uint32 `protobuf:"varint,5,opt,name=canComment,proto3" json:"canComment"` + IsAI uint32 `protobuf:"varint,6,opt,name=isAI,proto3" json:"isAI"` +} + +func (x *PublishConfig) Reset() { + *x = PublishConfig{} + mi := &file_pb_fiee_cast_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PublishConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PublishConfig) ProtoMessage() {} + +func (x *PublishConfig) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[8] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PublishConfig.ProtoReflect.Descriptor instead. +func (*PublishConfig) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{8} +} + +func (x *PublishConfig) GetForbidComment() uint32 { + if x != nil { + return x.ForbidComment + } + return 0 +} + +func (x *PublishConfig) GetPublicType() uint32 { + if x != nil { + return x.PublicType + } + return 0 +} + +func (x *PublishConfig) GetCanJoin() uint32 { + if x != nil { + return x.CanJoin + } + return 0 +} + +func (x *PublishConfig) GetCanQuote() uint32 { + if x != nil { + return x.CanQuote + } + return 0 +} + +func (x *PublishConfig) GetCanComment() uint32 { + if x != nil { + return x.CanComment + } + return 0 +} + +func (x *PublishConfig) GetIsAI() uint32 { + if x != nil { + return x.IsAI + } + return 0 +} + // UpdateWorkVideo type UpdateWorkVideoReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title"` - Content string `protobuf:"bytes,2,opt,name=content,proto3" json:"content"` - VideoUrl string `protobuf:"bytes,3,opt,name=videoUrl,proto3" json:"videoUrl"` - CoverUrl string `protobuf:"bytes,4,opt,name=coverUrl,proto3" json:"coverUrl"` - MediaAccountUuids []string `protobuf:"bytes,5,rep,name=mediaAccountUuids,proto3" json:"mediaAccountUuids"` - MediaAccountNames []string `protobuf:"bytes,6,rep,name=mediaAccountNames,proto3" json:"mediaAccountNames"` - PlatformIDs []uint32 `protobuf:"varint,7,rep,packed,name=platformIDs,proto3" json:"platformIDs"` - PublicConfig uint32 `protobuf:"varint,8,opt,name=publicConfig,proto3" json:"publicConfig"` - Action string `protobuf:"bytes,9,opt,name=action,proto3" json:"action"` - WorkUuid string `protobuf:"bytes,10,opt,name=workUuid,proto3" json:"workUuid"` - ArtistUuid string `protobuf:"bytes,11,opt,name=artistUuid,proto3" json:"artistUuid"` - ArtistPhone string `protobuf:"bytes,12,opt,name=artistPhone,proto3" json:"artistPhone"` + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title"` + Content string `protobuf:"bytes,2,opt,name=content,proto3" json:"content"` + VideoUrl string `protobuf:"bytes,3,opt,name=videoUrl,proto3" json:"videoUrl"` + CoverUrl string `protobuf:"bytes,4,opt,name=coverUrl,proto3" json:"coverUrl"` + MediaAccountUuids []string `protobuf:"bytes,5,rep,name=mediaAccountUuids,proto3" json:"mediaAccountUuids"` + MediaAccountNames []string `protobuf:"bytes,6,rep,name=mediaAccountNames,proto3" json:"mediaAccountNames"` + PlatformIDs []PlatformIDENUM `protobuf:"varint,7,rep,packed,name=platformIDs,proto3,enum=Cast.PlatformIDENUM" json:"platformIDs"` + PublishConfig *PublishConfig `protobuf:"bytes,8,opt,name=publishConfig,proto3" json:"publishConfig"` + Action string `protobuf:"bytes,9,opt,name=action,proto3" json:"action"` + WorkUuid string `protobuf:"bytes,10,opt,name=workUuid,proto3" json:"workUuid"` + ArtistUuid string `protobuf:"bytes,11,opt,name=artistUuid,proto3" json:"artistUuid"` + ArtistPhone string `protobuf:"bytes,12,opt,name=artistPhone,proto3" json:"artistPhone"` + ArtistName string `protobuf:"bytes,13,opt,name=artistName,proto3" json:"artistName"` } func (x *UpdateWorkVideoReq) Reset() { *x = UpdateWorkVideoReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[8] + mi := &file_pb_fiee_cast_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -680,7 +829,7 @@ func (x *UpdateWorkVideoReq) String() string { func (*UpdateWorkVideoReq) ProtoMessage() {} func (x *UpdateWorkVideoReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[8] + mi := &file_pb_fiee_cast_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -693,7 +842,7 @@ func (x *UpdateWorkVideoReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateWorkVideoReq.ProtoReflect.Descriptor instead. func (*UpdateWorkVideoReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{8} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{9} } func (x *UpdateWorkVideoReq) GetTitle() string { @@ -738,18 +887,18 @@ func (x *UpdateWorkVideoReq) GetMediaAccountNames() []string { return nil } -func (x *UpdateWorkVideoReq) GetPlatformIDs() []uint32 { +func (x *UpdateWorkVideoReq) GetPlatformIDs() []PlatformIDENUM { if x != nil { return x.PlatformIDs } return nil } -func (x *UpdateWorkVideoReq) GetPublicConfig() uint32 { +func (x *UpdateWorkVideoReq) GetPublishConfig() *PublishConfig { if x != nil { - return x.PublicConfig + return x.PublishConfig } - return 0 + return nil } func (x *UpdateWorkVideoReq) GetAction() string { @@ -780,6 +929,13 @@ func (x *UpdateWorkVideoReq) GetArtistPhone() string { return "" } +func (x *UpdateWorkVideoReq) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + type UpdateWorkVideoResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -790,7 +946,7 @@ type UpdateWorkVideoResp struct { func (x *UpdateWorkVideoResp) Reset() { *x = UpdateWorkVideoResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[9] + mi := &file_pb_fiee_cast_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -802,7 +958,7 @@ func (x *UpdateWorkVideoResp) String() string { func (*UpdateWorkVideoResp) ProtoMessage() {} func (x *UpdateWorkVideoResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[9] + mi := &file_pb_fiee_cast_proto_msgTypes[10] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -815,7 +971,7 @@ func (x *UpdateWorkVideoResp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateWorkVideoResp.ProtoReflect.Descriptor instead. func (*UpdateWorkVideoResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{9} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{10} } func (x *UpdateWorkVideoResp) GetWorkUuid() string { @@ -830,15 +986,22 @@ type WorkListReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ArtistVal string `protobuf:"bytes,1,opt,name=artistVal,proto3" json:"artistVal"` - PlatformID uint32 `protobuf:"varint,2,opt,name=platformID,proto3" json:"platformID"` - Page int32 `protobuf:"varint,4,opt,name=page,proto3" json:"page"` - PageSize int32 `protobuf:"varint,5,opt,name=pageSize,proto3" json:"pageSize"` + ArtistVal string `protobuf:"bytes,1,opt,name=artistVal,proto3" json:"artistVal"` + PlatformID uint32 `protobuf:"varint,2,opt,name=platformID,proto3" json:"platformID"` + WorkCategory uint32 `protobuf:"varint,3,opt,name=workCategory,proto3" json:"workCategory"` + SubmitStartTime string `protobuf:"bytes,4,opt,name=submitStartTime,proto3" json:"submitStartTime"` + SubmitEndTime string `protobuf:"bytes,5,opt,name=submitEndTime,proto3" json:"submitEndTime"` + StatusUpdateTimeStart string `protobuf:"bytes,6,opt,name=statusUpdateTimeStart,proto3" json:"statusUpdateTimeStart"` + StatusUpdateTimeEnd string `protobuf:"bytes,7,opt,name=statusUpdateTimeEnd,proto3" json:"statusUpdateTimeEnd"` + Title string `protobuf:"bytes,8,opt,name=title,proto3" json:"title"` + WorkStatus uint32 `protobuf:"varint,9,opt,name=workStatus,proto3" json:"workStatus"` + Page int32 `protobuf:"varint,10,opt,name=page,proto3" json:"page"` + PageSize int32 `protobuf:"varint,11,opt,name=pageSize,proto3" json:"pageSize"` } func (x *WorkListReq) Reset() { *x = WorkListReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[10] + mi := &file_pb_fiee_cast_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -850,7 +1013,7 @@ func (x *WorkListReq) String() string { func (*WorkListReq) ProtoMessage() {} func (x *WorkListReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[10] + mi := &file_pb_fiee_cast_proto_msgTypes[11] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -863,7 +1026,7 @@ func (x *WorkListReq) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkListReq.ProtoReflect.Descriptor instead. func (*WorkListReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{10} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{11} } func (x *WorkListReq) GetArtistVal() string { @@ -880,6 +1043,55 @@ func (x *WorkListReq) GetPlatformID() uint32 { return 0 } +func (x *WorkListReq) GetWorkCategory() uint32 { + if x != nil { + return x.WorkCategory + } + return 0 +} + +func (x *WorkListReq) GetSubmitStartTime() string { + if x != nil { + return x.SubmitStartTime + } + return "" +} + +func (x *WorkListReq) GetSubmitEndTime() string { + if x != nil { + return x.SubmitEndTime + } + return "" +} + +func (x *WorkListReq) GetStatusUpdateTimeStart() string { + if x != nil { + return x.StatusUpdateTimeStart + } + return "" +} + +func (x *WorkListReq) GetStatusUpdateTimeEnd() string { + if x != nil { + return x.StatusUpdateTimeEnd + } + return "" +} + +func (x *WorkListReq) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *WorkListReq) GetWorkStatus() uint32 { + if x != nil { + return x.WorkStatus + } + return 0 +} + func (x *WorkListReq) GetPage() int32 { if x != nil { return x.Page @@ -905,7 +1117,7 @@ type WorkListResp struct { func (x *WorkListResp) Reset() { *x = WorkListResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[11] + mi := &file_pb_fiee_cast_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -917,7 +1129,7 @@ func (x *WorkListResp) String() string { func (*WorkListResp) ProtoMessage() {} func (x *WorkListResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[11] + mi := &file_pb_fiee_cast_proto_msgTypes[12] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -930,7 +1142,7 @@ func (x *WorkListResp) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkListResp.ProtoReflect.Descriptor instead. func (*WorkListResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{11} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{12} } func (x *WorkListResp) GetData() []*WorkListResp_Info { @@ -947,6 +1159,261 @@ func (x *WorkListResp) GetCount() int64 { return 0 } +type WorkDetailReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkUuid string `protobuf:"bytes,1,opt,name=workUuid,proto3" json:"workUuid"` +} + +func (x *WorkDetailReq) Reset() { + *x = WorkDetailReq{} + mi := &file_pb_fiee_cast_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *WorkDetailReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkDetailReq) ProtoMessage() {} + +func (x *WorkDetailReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[13] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkDetailReq.ProtoReflect.Descriptor instead. +func (*WorkDetailReq) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{13} +} + +func (x *WorkDetailReq) GetWorkUuid() string { + if x != nil { + return x.WorkUuid + } + return "" +} + +type WorkDetailResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkUuid string `protobuf:"bytes,1,opt,name=workUuid,proto3" json:"workUuid"` + Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title"` + Content string `protobuf:"bytes,3,opt,name=content,proto3" json:"content"` + Images []string `protobuf:"bytes,4,rep,name=images,proto3" json:"images"` + MediaAccountUuids []string `protobuf:"bytes,5,rep,name=mediaAccountUuids,proto3" json:"mediaAccountUuids"` + MediaAccountNames []string `protobuf:"bytes,6,rep,name=mediaAccountNames,proto3" json:"mediaAccountNames"` + PlatformIDs []uint32 `protobuf:"varint,7,rep,packed,name=platformIDs,proto3" json:"platformIDs"` + WorkStatus uint32 `protobuf:"varint,8,opt,name=workStatus,proto3" json:"workStatus"` + PublishConfig *PublishConfig `protobuf:"bytes,9,opt,name=publishConfig,proto3" json:"publishConfig"` + VideoUrl string `protobuf:"bytes,10,opt,name=videoUrl,proto3" json:"videoUrl"` + CoverUrl string `protobuf:"bytes,11,opt,name=coverUrl,proto3" json:"coverUrl"` + ApprovalID string `protobuf:"bytes,12,opt,name=approvalID,proto3" json:"approvalID"` +} + +func (x *WorkDetailResp) Reset() { + *x = WorkDetailResp{} + mi := &file_pb_fiee_cast_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *WorkDetailResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkDetailResp) ProtoMessage() {} + +func (x *WorkDetailResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[14] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkDetailResp.ProtoReflect.Descriptor instead. +func (*WorkDetailResp) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{14} +} + +func (x *WorkDetailResp) GetWorkUuid() string { + if x != nil { + return x.WorkUuid + } + return "" +} + +func (x *WorkDetailResp) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *WorkDetailResp) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +func (x *WorkDetailResp) GetImages() []string { + if x != nil { + return x.Images + } + return nil +} + +func (x *WorkDetailResp) GetMediaAccountUuids() []string { + if x != nil { + return x.MediaAccountUuids + } + return nil +} + +func (x *WorkDetailResp) GetMediaAccountNames() []string { + if x != nil { + return x.MediaAccountNames + } + return nil +} + +func (x *WorkDetailResp) GetPlatformIDs() []uint32 { + if x != nil { + return x.PlatformIDs + } + return nil +} + +func (x *WorkDetailResp) GetWorkStatus() uint32 { + if x != nil { + return x.WorkStatus + } + return 0 +} + +func (x *WorkDetailResp) GetPublishConfig() *PublishConfig { + if x != nil { + return x.PublishConfig + } + return nil +} + +func (x *WorkDetailResp) GetVideoUrl() string { + if x != nil { + return x.VideoUrl + } + return "" +} + +func (x *WorkDetailResp) GetCoverUrl() string { + if x != nil { + return x.CoverUrl + } + return "" +} + +func (x *WorkDetailResp) GetApprovalID() string { + if x != nil { + return x.ApprovalID + } + return "" +} + +type UpdateStatusReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkAction WorkActionENUM `protobuf:"varint,1,opt,name=workAction,proto3,enum=Cast.WorkActionENUM" json:"workAction"` + WorkUuid string `protobuf:"bytes,2,opt,name=workUuid,proto3" json:"workUuid"` + ApprovalID string `protobuf:"bytes,3,opt,name=approvalID,proto3" json:"approvalID"` + ConfirmRemark string `protobuf:"bytes,4,opt,name=confirmRemark,proto3" json:"confirmRemark"` + ConfirmStatus uint32 `protobuf:"varint,5,opt,name=confirmStatus,proto3" json:"confirmStatus"` +} + +func (x *UpdateStatusReq) Reset() { + *x = UpdateStatusReq{} + mi := &file_pb_fiee_cast_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateStatusReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateStatusReq) ProtoMessage() {} + +func (x *UpdateStatusReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[15] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateStatusReq.ProtoReflect.Descriptor instead. +func (*UpdateStatusReq) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{15} +} + +func (x *UpdateStatusReq) GetWorkAction() WorkActionENUM { + if x != nil { + return x.WorkAction + } + return WorkActionENUM_NO_ACTION +} + +func (x *UpdateStatusReq) GetWorkUuid() string { + if x != nil { + return x.WorkUuid + } + return "" +} + +func (x *UpdateStatusReq) GetApprovalID() string { + if x != nil { + return x.ApprovalID + } + return "" +} + +func (x *UpdateStatusReq) GetConfirmRemark() string { + if x != nil { + return x.ConfirmRemark + } + return "" +} + +func (x *UpdateStatusReq) GetConfirmStatus() uint32 { + if x != nil { + return x.ConfirmStatus + } + return 0 +} + type MediaUserListResp_Info struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -963,7 +1430,7 @@ type MediaUserListResp_Info struct { func (x *MediaUserListResp_Info) Reset() { *x = MediaUserListResp_Info{} - mi := &file_pb_fiee_cast_proto_msgTypes[12] + mi := &file_pb_fiee_cast_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -975,7 +1442,7 @@ func (x *MediaUserListResp_Info) String() string { func (*MediaUserListResp_Info) ProtoMessage() {} func (x *MediaUserListResp_Info) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[12] + mi := &file_pb_fiee_cast_proto_msgTypes[16] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1045,22 +1512,23 @@ type WorkListResp_Info struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - WorkUuid string `protobuf:"bytes,1,opt,name=workUuid,proto3" json:"workUuid"` - Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title"` - Content string `protobuf:"bytes,3,opt,name=content,proto3" json:"content"` - WorkCategory string `protobuf:"bytes,4,opt,name=workCategory,proto3" json:"workCategory"` - WorkUrl string `protobuf:"bytes,5,opt,name=workUrl,proto3" json:"workUrl"` - WorkCover string `protobuf:"bytes,6,opt,name=workCover,proto3" json:"workCover"` - WorkStatus string `protobuf:"bytes,7,opt,name=workStatus,proto3" json:"workStatus"` - SubmitTime string `protobuf:"bytes,8,opt,name=submitTime,proto3" json:"submitTime"` - StatusUpdateTime string `protobuf:"bytes,9,opt,name=statusUpdateTime,proto3" json:"statusUpdateTime"` - ArtistName string `protobuf:"bytes,10,opt,name=artistName,proto3" json:"artistName"` - ArtistPhone string `protobuf:"bytes,11,opt,name=artistPhone,proto3" json:"artistPhone"` + WorkUuid string `protobuf:"bytes,1,opt,name=workUuid,proto3" json:"workUuid"` + ArtistName string `protobuf:"bytes,2,opt,name=artistName,proto3" json:"artistName"` + ArtistPhone string `protobuf:"bytes,3,opt,name=artistPhone,proto3" json:"artistPhone"` + Title string `protobuf:"bytes,4,opt,name=title,proto3" json:"title"` + WorkCategory uint32 `protobuf:"varint,5,opt,name=workCategory,proto3" json:"workCategory"` + WorkStatus uint32 `protobuf:"varint,6,opt,name=workStatus,proto3" json:"workStatus"` + SubmitTime string `protobuf:"bytes,7,opt,name=submitTime,proto3" json:"submitTime"` + StatusUpdateTime string `protobuf:"bytes,8,opt,name=statusUpdateTime,proto3" json:"statusUpdateTime"` + PlatformIDs []uint32 `protobuf:"varint,9,rep,packed,name=platformIDs,proto3" json:"platformIDs"` + MediaAccountNames []string `protobuf:"bytes,10,rep,name=mediaAccountNames,proto3" json:"mediaAccountNames"` + ManagerUserNames []string `protobuf:"bytes,11,rep,name=managerUserNames,proto3" json:"managerUserNames"` + ManagerUuids []string `protobuf:"bytes,12,rep,name=managerUuids,proto3" json:"managerUuids"` } func (x *WorkListResp_Info) Reset() { *x = WorkListResp_Info{} - mi := &file_pb_fiee_cast_proto_msgTypes[13] + mi := &file_pb_fiee_cast_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1072,7 +1540,7 @@ func (x *WorkListResp_Info) String() string { func (*WorkListResp_Info) ProtoMessage() {} func (x *WorkListResp_Info) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[13] + mi := &file_pb_fiee_cast_proto_msgTypes[17] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1085,7 +1553,7 @@ func (x *WorkListResp_Info) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkListResp_Info.ProtoReflect.Descriptor instead. func (*WorkListResp_Info) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{11, 0} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{12, 0} } func (x *WorkListResp_Info) GetWorkUuid() string { @@ -1095,62 +1563,6 @@ func (x *WorkListResp_Info) GetWorkUuid() string { return "" } -func (x *WorkListResp_Info) GetTitle() string { - if x != nil { - return x.Title - } - return "" -} - -func (x *WorkListResp_Info) GetContent() string { - if x != nil { - return x.Content - } - return "" -} - -func (x *WorkListResp_Info) GetWorkCategory() string { - if x != nil { - return x.WorkCategory - } - return "" -} - -func (x *WorkListResp_Info) GetWorkUrl() string { - if x != nil { - return x.WorkUrl - } - return "" -} - -func (x *WorkListResp_Info) GetWorkCover() string { - if x != nil { - return x.WorkCover - } - return "" -} - -func (x *WorkListResp_Info) GetWorkStatus() string { - if x != nil { - return x.WorkStatus - } - return "" -} - -func (x *WorkListResp_Info) GetSubmitTime() string { - if x != nil { - return x.SubmitTime - } - return "" -} - -func (x *WorkListResp_Info) GetStatusUpdateTime() string { - if x != nil { - return x.StatusUpdateTime - } - return "" -} - func (x *WorkListResp_Info) GetArtistName() string { if x != nil { return x.ArtistName @@ -1165,6 +1577,69 @@ func (x *WorkListResp_Info) GetArtistPhone() string { return "" } +func (x *WorkListResp_Info) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *WorkListResp_Info) GetWorkCategory() uint32 { + if x != nil { + return x.WorkCategory + } + return 0 +} + +func (x *WorkListResp_Info) GetWorkStatus() uint32 { + if x != nil { + return x.WorkStatus + } + return 0 +} + +func (x *WorkListResp_Info) GetSubmitTime() string { + if x != nil { + return x.SubmitTime + } + return "" +} + +func (x *WorkListResp_Info) GetStatusUpdateTime() string { + if x != nil { + return x.StatusUpdateTime + } + return "" +} + +func (x *WorkListResp_Info) GetPlatformIDs() []uint32 { + if x != nil { + return x.PlatformIDs + } + return nil +} + +func (x *WorkListResp_Info) GetMediaAccountNames() []string { + if x != nil { + return x.MediaAccountNames + } + return nil +} + +func (x *WorkListResp_Info) GetManagerUserNames() []string { + if x != nil { + return x.ManagerUserNames + } + return nil +} + +func (x *WorkListResp_Info) GetManagerUuids() []string { + if x != nil { + return x.ManagerUuids + } + return nil +} + var File_pb_fiee_cast_proto protoreflect.FileDescriptor var file_pb_fiee_cast_proto_rawDesc = []byte{ @@ -1255,7 +1730,7 @@ var file_pb_fiee_cast_proto_rawDesc = []byte{ 0x67, 0x65, 0x72, 0x55, 0x75, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x22, 0xf6, 0x02, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, + 0x65, 0x22, 0xc1, 0x03, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, @@ -1266,122 +1741,222 @@ var file_pb_fiee_cast_proto_rawDesc = []byte{ 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x75, 0x69, 0x64, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, 0x12, 0x24, - 0x0a, 0x0d, 0x66, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x66, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x43, 0x6f, 0x6d, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, - 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x22, 0x31, 0x0a, 0x13, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x22, 0x94, 0x03, - 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x56, 0x69, 0x64, 0x65, - 0x6f, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, - 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x2c, 0x0a, 0x11, - 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x75, 0x69, 0x64, - 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x75, 0x69, 0x64, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x65, - 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, - 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0b, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0c, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, - 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, - 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, - 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, - 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, - 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, - 0x68, 0x6f, 0x6e, 0x65, 0x22, 0x31, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, - 0x72, 0x6b, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x77, - 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, - 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x22, 0x7b, 0x0a, 0x0b, 0x57, 0x6f, 0x72, 0x6b, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x56, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x56, 0x61, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x22, 0xb0, 0x03, 0x0a, 0x0c, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0xdc, 0x02, 0x0a, 0x04, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, - 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, - 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, - 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, - 0x79, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x77, - 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x77, 0x6f, 0x72, - 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x77, - 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x75, 0x62, - 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, - 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, - 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x2a, 0x3f, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x45, 0x4e, 0x55, 0x4d, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, - 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x49, 0x4b, 0x54, 0x4f, 0x4b, - 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x59, 0x4f, 0x55, 0x54, 0x55, 0x42, 0x45, 0x10, 0x02, 0x12, - 0x07, 0x0a, 0x03, 0x49, 0x4e, 0x53, 0x10, 0x03, 0x32, 0xe8, 0x03, 0x0a, 0x04, 0x43, 0x61, 0x73, - 0x74, 0x12, 0x42, 0x0a, 0x0d, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x16, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x55, - 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x43, 0x61, 0x73, - 0x74, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, - 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x2e, 0x43, 0x61, - 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0d, 0x55, 0x6e, 0x62, 0x69, - 0x6e, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x43, 0x61, 0x73, 0x74, - 0x2e, 0x55, 0x6e, 0x62, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x0b, 0x42, - 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, 0x14, 0x2e, 0x43, 0x61, 0x73, - 0x74, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, - 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x0f, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x18, 0x2e, - 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x49, - 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, - 0x72, 0x6b, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x18, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, + 0x0e, 0x32, 0x14, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x49, 0x44, 0x45, 0x4e, 0x55, 0x4d, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x49, 0x44, 0x73, 0x12, 0x39, 0x0a, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x43, 0x61, + 0x73, 0x74, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, + 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, + 0x75, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, + 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, + 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, + 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, + 0x6e, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x31, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, + 0x6f, 0x72, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, + 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x22, 0xbf, 0x01, 0x0a, 0x0d, 0x50, 0x75, 0x62, + 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x6f, + 0x72, 0x62, 0x69, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0d, 0x66, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x61, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x07, 0x63, 0x61, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, + 0x6e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x61, + 0x6e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x61, 0x6e, 0x43, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x61, 0x6e, 0x43, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x41, 0x49, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x69, 0x73, 0x41, 0x49, 0x22, 0xe1, 0x03, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, - 0x71, 0x1a, 0x19, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, - 0x6f, 0x72, 0x6b, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x33, - 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x11, 0x2e, 0x43, 0x61, 0x73, - 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, - 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x00, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x63, 0x61, 0x73, 0x74, 0x3b, 0x63, 0x61, - 0x73, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x71, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, + 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x65, 0x64, + 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x75, 0x69, 0x64, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x55, 0x75, 0x69, 0x64, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x49, 0x44, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x43, 0x61, 0x73, + 0x74, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x45, 0x4e, 0x55, 0x4d, + 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, 0x12, 0x39, 0x0a, + 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x50, 0x75, 0x62, 0x6c, + 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, + 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x31, + 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x56, 0x69, 0x64, 0x65, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, + 0x64, 0x22, 0x8d, 0x03, 0x0a, 0x0b, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x12, + 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, + 0x22, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, + 0x6f, 0x72, 0x79, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x75, + 0x62, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, + 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x6e, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x15, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, + 0x69, 0x74, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x22, 0xfe, 0x03, 0x0a, 0x0c, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0xaa, 0x03, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, + 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, + 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6d, + 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x10, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, + 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x49, 0x44, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x73, 0x65, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x22, + 0x0a, 0x0c, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x75, 0x69, 0x64, 0x73, 0x18, 0x0c, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x75, 0x69, + 0x64, 0x73, 0x22, 0x2b, 0x0a, 0x0d, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x22, + 0xa5, 0x03, 0x0a, 0x0e, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, + 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x75, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, + 0x75, 0x69, 0x64, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x49, 0x44, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x39, 0x0a, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x43, 0x61, + 0x73, 0x74, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, + 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x63, + 0x6f, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, + 0x6f, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x22, 0xcf, 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x12, 0x34, 0x0a, 0x0a, 0x77, + 0x6f, 0x72, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x14, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x45, 0x4e, 0x55, 0x4d, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, + 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x24, 0x0a, + 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, 0x6d, + 0x61, 0x72, 0x6b, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2a, 0x3f, 0x0a, 0x0e, 0x50, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x45, 0x4e, 0x55, 0x4d, 0x12, 0x0b, 0x0a, 0x07, 0x55, + 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x49, 0x4b, 0x54, + 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x59, 0x4f, 0x55, 0x54, 0x55, 0x42, 0x45, 0x10, + 0x02, 0x12, 0x07, 0x0a, 0x03, 0x49, 0x4e, 0x53, 0x10, 0x03, 0x2a, 0x62, 0x0a, 0x0e, 0x57, 0x6f, + 0x72, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x4e, 0x55, 0x4d, 0x12, 0x0d, 0x0a, 0x09, + 0x4e, 0x4f, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, + 0x4f, 0x4e, 0x46, 0x49, 0x52, 0x4d, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x50, 0x50, 0x52, + 0x4f, 0x56, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x50, 0x50, 0x52, 0x4f, 0x56, + 0x41, 0x4c, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x50, 0x50, + 0x52, 0x4f, 0x56, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x04, 0x32, 0xe4, + 0x04, 0x0a, 0x04, 0x43, 0x61, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x0d, 0x4d, 0x65, 0x64, 0x69, 0x61, + 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, + 0x4d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x1a, 0x17, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x73, 0x65, + 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x12, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x1b, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, + 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, + 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x64, 0x69, + 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x41, + 0x0a, 0x0d, 0x55, 0x6e, 0x62, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, + 0x16, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x6e, 0x62, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, + 0x00, 0x12, 0x3d, 0x0a, 0x0b, 0x42, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, + 0x12, 0x14, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, + 0x12, 0x48, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x12, 0x18, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, + 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x0f, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x18, 0x2e, + 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x00, 0x12, 0x33, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x11, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0a, 0x57, 0x6f, 0x72, + 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x13, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, + 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x43, + 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x22, 0x00, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x63, 0x61, 0x73, 0x74, 0x3b, + 0x63, 0x61, 0x73, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1396,50 +1971,65 @@ func file_pb_fiee_cast_proto_rawDescGZIP() []byte { return file_pb_fiee_cast_proto_rawDescData } -var file_pb_fiee_cast_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_pb_fiee_cast_proto_msgTypes = make([]protoimpl.MessageInfo, 14) +var file_pb_fiee_cast_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_pb_fiee_cast_proto_msgTypes = make([]protoimpl.MessageInfo, 18) var file_pb_fiee_cast_proto_goTypes = []any{ (PlatformIDENUM)(0), // 0: Cast.PlatformIDENUM - (*MediaUserListReq)(nil), // 1: Cast.MediaUserListReq - (*MediaUserListResp)(nil), // 2: Cast.MediaUserListResp - (*UpdateMediaAccountReq)(nil), // 3: Cast.UpdateMediaAccountReq - (*UpdateMediaAccountResp)(nil), // 4: Cast.UpdateMediaAccountResp - (*UnbindManagerReq)(nil), // 5: Cast.UnbindManagerReq - (*BindManagerReq)(nil), // 6: Cast.BindManagerReq - (*UpdateWorkImageReq)(nil), // 7: Cast.UpdateWorkImageReq - (*UpdateWorkImageResp)(nil), // 8: Cast.UpdateWorkImageResp - (*UpdateWorkVideoReq)(nil), // 9: Cast.UpdateWorkVideoReq - (*UpdateWorkVideoResp)(nil), // 10: Cast.UpdateWorkVideoResp - (*WorkListReq)(nil), // 11: Cast.WorkListReq - (*WorkListResp)(nil), // 12: Cast.WorkListResp - (*MediaUserListResp_Info)(nil), // 13: Cast.MediaUserListResp.Info - (*WorkListResp_Info)(nil), // 14: Cast.WorkListResp.Info - (*emptypb.Empty)(nil), // 15: google.protobuf.Empty + (WorkActionENUM)(0), // 1: Cast.WorkActionENUM + (*MediaUserListReq)(nil), // 2: Cast.MediaUserListReq + (*MediaUserListResp)(nil), // 3: Cast.MediaUserListResp + (*UpdateMediaAccountReq)(nil), // 4: Cast.UpdateMediaAccountReq + (*UpdateMediaAccountResp)(nil), // 5: Cast.UpdateMediaAccountResp + (*UnbindManagerReq)(nil), // 6: Cast.UnbindManagerReq + (*BindManagerReq)(nil), // 7: Cast.BindManagerReq + (*UpdateWorkImageReq)(nil), // 8: Cast.UpdateWorkImageReq + (*UpdateWorkImageResp)(nil), // 9: Cast.UpdateWorkImageResp + (*PublishConfig)(nil), // 10: Cast.PublishConfig + (*UpdateWorkVideoReq)(nil), // 11: Cast.UpdateWorkVideoReq + (*UpdateWorkVideoResp)(nil), // 12: Cast.UpdateWorkVideoResp + (*WorkListReq)(nil), // 13: Cast.WorkListReq + (*WorkListResp)(nil), // 14: Cast.WorkListResp + (*WorkDetailReq)(nil), // 15: Cast.WorkDetailReq + (*WorkDetailResp)(nil), // 16: Cast.WorkDetailResp + (*UpdateStatusReq)(nil), // 17: Cast.UpdateStatusReq + (*MediaUserListResp_Info)(nil), // 18: Cast.MediaUserListResp.Info + (*WorkListResp_Info)(nil), // 19: Cast.WorkListResp.Info + (*emptypb.Empty)(nil), // 20: google.protobuf.Empty } var file_pb_fiee_cast_proto_depIdxs = []int32{ 0, // 0: Cast.MediaUserListReq.platformID:type_name -> Cast.PlatformIDENUM - 13, // 1: Cast.MediaUserListResp.data:type_name -> Cast.MediaUserListResp.Info + 18, // 1: Cast.MediaUserListResp.data:type_name -> Cast.MediaUserListResp.Info 0, // 2: Cast.UpdateMediaAccountReq.platformID:type_name -> Cast.PlatformIDENUM - 14, // 3: Cast.WorkListResp.data:type_name -> Cast.WorkListResp.Info - 1, // 4: Cast.Cast.MediaUserList:input_type -> Cast.MediaUserListReq - 3, // 5: Cast.Cast.UpdateMediaAccount:input_type -> Cast.UpdateMediaAccountReq - 5, // 6: Cast.Cast.UnbindManager:input_type -> Cast.UnbindManagerReq - 6, // 7: Cast.Cast.BindManager:input_type -> Cast.BindManagerReq - 7, // 8: Cast.Cast.UpdateWorkImage:input_type -> Cast.UpdateWorkImageReq - 9, // 9: Cast.Cast.UpdateWorkVideo:input_type -> Cast.UpdateWorkVideoReq - 11, // 10: Cast.Cast.WorkList:input_type -> Cast.WorkListReq - 2, // 11: Cast.Cast.MediaUserList:output_type -> Cast.MediaUserListResp - 4, // 12: Cast.Cast.UpdateMediaAccount:output_type -> Cast.UpdateMediaAccountResp - 15, // 13: Cast.Cast.UnbindManager:output_type -> google.protobuf.Empty - 15, // 14: Cast.Cast.BindManager:output_type -> google.protobuf.Empty - 8, // 15: Cast.Cast.UpdateWorkImage:output_type -> Cast.UpdateWorkImageResp - 10, // 16: Cast.Cast.UpdateWorkVideo:output_type -> Cast.UpdateWorkVideoResp - 12, // 17: Cast.Cast.WorkList:output_type -> Cast.WorkListResp - 11, // [11:18] is the sub-list for method output_type - 4, // [4:11] is the sub-list for method input_type - 4, // [4:4] is the sub-list for extension type_name - 4, // [4:4] is the sub-list for extension extendee - 0, // [0:4] is the sub-list for field type_name + 0, // 3: Cast.UpdateWorkImageReq.platformIDs:type_name -> Cast.PlatformIDENUM + 10, // 4: Cast.UpdateWorkImageReq.publishConfig:type_name -> Cast.PublishConfig + 0, // 5: Cast.UpdateWorkVideoReq.platformIDs:type_name -> Cast.PlatformIDENUM + 10, // 6: Cast.UpdateWorkVideoReq.publishConfig:type_name -> Cast.PublishConfig + 19, // 7: Cast.WorkListResp.data:type_name -> Cast.WorkListResp.Info + 10, // 8: Cast.WorkDetailResp.publishConfig:type_name -> Cast.PublishConfig + 1, // 9: Cast.UpdateStatusReq.workAction:type_name -> Cast.WorkActionENUM + 2, // 10: Cast.Cast.MediaUserList:input_type -> Cast.MediaUserListReq + 4, // 11: Cast.Cast.UpdateMediaAccount:input_type -> Cast.UpdateMediaAccountReq + 6, // 12: Cast.Cast.UnbindManager:input_type -> Cast.UnbindManagerReq + 7, // 13: Cast.Cast.BindManager:input_type -> Cast.BindManagerReq + 8, // 14: Cast.Cast.UpdateWorkImage:input_type -> Cast.UpdateWorkImageReq + 11, // 15: Cast.Cast.UpdateWorkVideo:input_type -> Cast.UpdateWorkVideoReq + 13, // 16: Cast.Cast.WorkList:input_type -> Cast.WorkListReq + 15, // 17: Cast.Cast.WorkDetail:input_type -> Cast.WorkDetailReq + 17, // 18: Cast.Cast.UpdateStatus:input_type -> Cast.UpdateStatusReq + 3, // 19: Cast.Cast.MediaUserList:output_type -> Cast.MediaUserListResp + 5, // 20: Cast.Cast.UpdateMediaAccount:output_type -> Cast.UpdateMediaAccountResp + 20, // 21: Cast.Cast.UnbindManager:output_type -> google.protobuf.Empty + 20, // 22: Cast.Cast.BindManager:output_type -> google.protobuf.Empty + 9, // 23: Cast.Cast.UpdateWorkImage:output_type -> Cast.UpdateWorkImageResp + 12, // 24: Cast.Cast.UpdateWorkVideo:output_type -> Cast.UpdateWorkVideoResp + 14, // 25: Cast.Cast.WorkList:output_type -> Cast.WorkListResp + 16, // 26: Cast.Cast.WorkDetail:output_type -> Cast.WorkDetailResp + 20, // 27: Cast.Cast.UpdateStatus:output_type -> google.protobuf.Empty + 19, // [19:28] is the sub-list for method output_type + 10, // [10:19] is the sub-list for method input_type + 10, // [10:10] is the sub-list for extension type_name + 10, // [10:10] is the sub-list for extension extendee + 0, // [0:10] is the sub-list for field type_name } func init() { file_pb_fiee_cast_proto_init() } @@ -1452,8 +2042,8 @@ func file_pb_fiee_cast_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pb_fiee_cast_proto_rawDesc, - NumEnums: 1, - NumMessages: 14, + NumEnums: 2, + NumMessages: 18, NumExtensions: 0, NumServices: 1, }, diff --git a/api/cast/cast.pb.validate.go b/api/cast/cast.pb.validate.go index ba31dd6..60ea0ee 100644 --- a/api/cast/cast.pb.validate.go +++ b/api/cast/cast.pb.validate.go @@ -743,7 +743,34 @@ func (m *UpdateWorkImageReq) validate(all bool) error { // no validation rules for Content - // no validation rules for ForbidComment + if all { + switch v := interface{}(m.GetPublishConfig()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, UpdateWorkImageReqValidationError{ + field: "PublishConfig", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, UpdateWorkImageReqValidationError{ + field: "PublishConfig", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetPublishConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UpdateWorkImageReqValidationError{ + field: "PublishConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } // no validation rules for Action @@ -753,6 +780,8 @@ func (m *UpdateWorkImageReq) validate(all bool) error { // no validation rules for ArtistPhone + // no validation rules for ArtistName + if len(errors) > 0 { return UpdateWorkImageReqMultiError(errors) } @@ -937,6 +966,118 @@ var _ interface { ErrorName() string } = UpdateWorkImageRespValidationError{} +// Validate checks the field values on PublishConfig with the rules defined in +// the proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *PublishConfig) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on PublishConfig with the rules defined +// in the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in PublishConfigMultiError, or +// nil if none found. +func (m *PublishConfig) ValidateAll() error { + return m.validate(true) +} + +func (m *PublishConfig) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for ForbidComment + + // no validation rules for PublicType + + // no validation rules for CanJoin + + // no validation rules for CanQuote + + // no validation rules for CanComment + + // no validation rules for IsAI + + if len(errors) > 0 { + return PublishConfigMultiError(errors) + } + + return nil +} + +// PublishConfigMultiError is an error wrapping multiple validation errors +// returned by PublishConfig.ValidateAll() if the designated constraints +// aren't met. +type PublishConfigMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m PublishConfigMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m PublishConfigMultiError) AllErrors() []error { return m } + +// PublishConfigValidationError is the validation error returned by +// PublishConfig.Validate if the designated constraints aren't met. +type PublishConfigValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e PublishConfigValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e PublishConfigValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e PublishConfigValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e PublishConfigValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e PublishConfigValidationError) ErrorName() string { return "PublishConfigValidationError" } + +// Error satisfies the builtin error interface +func (e PublishConfigValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sPublishConfig.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = PublishConfigValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = PublishConfigValidationError{} + // Validate checks the field values on UpdateWorkVideoReq with the rules // defined in the proto definition for this message. If any rules are // violated, the first error encountered is returned, or nil if there are no violations. @@ -967,7 +1108,34 @@ func (m *UpdateWorkVideoReq) validate(all bool) error { // no validation rules for CoverUrl - // no validation rules for PublicConfig + if all { + switch v := interface{}(m.GetPublishConfig()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, UpdateWorkVideoReqValidationError{ + field: "PublishConfig", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, UpdateWorkVideoReqValidationError{ + field: "PublishConfig", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetPublishConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UpdateWorkVideoReqValidationError{ + field: "PublishConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } // no validation rules for Action @@ -977,6 +1145,8 @@ func (m *UpdateWorkVideoReq) validate(all bool) error { // no validation rules for ArtistPhone + // no validation rules for ArtistName + if len(errors) > 0 { return UpdateWorkVideoReqMultiError(errors) } @@ -1187,6 +1357,20 @@ func (m *WorkListReq) validate(all bool) error { // no validation rules for PlatformID + // no validation rules for WorkCategory + + // no validation rules for SubmitStartTime + + // no validation rules for SubmitEndTime + + // no validation rules for StatusUpdateTimeStart + + // no validation rules for StatusUpdateTimeEnd + + // no validation rules for Title + + // no validation rules for WorkStatus + // no validation rules for Page // no validation rules for PageSize @@ -1403,6 +1587,361 @@ var _ interface { ErrorName() string } = WorkListRespValidationError{} +// Validate checks the field values on WorkDetailReq with the rules defined in +// the proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *WorkDetailReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on WorkDetailReq with the rules defined +// in the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in WorkDetailReqMultiError, or +// nil if none found. +func (m *WorkDetailReq) ValidateAll() error { + return m.validate(true) +} + +func (m *WorkDetailReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for WorkUuid + + if len(errors) > 0 { + return WorkDetailReqMultiError(errors) + } + + return nil +} + +// WorkDetailReqMultiError is an error wrapping multiple validation errors +// returned by WorkDetailReq.ValidateAll() if the designated constraints +// aren't met. +type WorkDetailReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m WorkDetailReqMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m WorkDetailReqMultiError) AllErrors() []error { return m } + +// WorkDetailReqValidationError is the validation error returned by +// WorkDetailReq.Validate if the designated constraints aren't met. +type WorkDetailReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e WorkDetailReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e WorkDetailReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e WorkDetailReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e WorkDetailReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e WorkDetailReqValidationError) ErrorName() string { return "WorkDetailReqValidationError" } + +// Error satisfies the builtin error interface +func (e WorkDetailReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sWorkDetailReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = WorkDetailReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = WorkDetailReqValidationError{} + +// Validate checks the field values on WorkDetailResp with the rules defined in +// the proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *WorkDetailResp) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on WorkDetailResp with the rules defined +// in the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in WorkDetailRespMultiError, +// or nil if none found. +func (m *WorkDetailResp) ValidateAll() error { + return m.validate(true) +} + +func (m *WorkDetailResp) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for WorkUuid + + // no validation rules for Title + + // no validation rules for Content + + // no validation rules for WorkStatus + + if all { + switch v := interface{}(m.GetPublishConfig()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, WorkDetailRespValidationError{ + field: "PublishConfig", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, WorkDetailRespValidationError{ + field: "PublishConfig", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetPublishConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return WorkDetailRespValidationError{ + field: "PublishConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for VideoUrl + + // no validation rules for CoverUrl + + // no validation rules for ApprovalID + + if len(errors) > 0 { + return WorkDetailRespMultiError(errors) + } + + return nil +} + +// WorkDetailRespMultiError is an error wrapping multiple validation errors +// returned by WorkDetailResp.ValidateAll() if the designated constraints +// aren't met. +type WorkDetailRespMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m WorkDetailRespMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m WorkDetailRespMultiError) AllErrors() []error { return m } + +// WorkDetailRespValidationError is the validation error returned by +// WorkDetailResp.Validate if the designated constraints aren't met. +type WorkDetailRespValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e WorkDetailRespValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e WorkDetailRespValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e WorkDetailRespValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e WorkDetailRespValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e WorkDetailRespValidationError) ErrorName() string { return "WorkDetailRespValidationError" } + +// Error satisfies the builtin error interface +func (e WorkDetailRespValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sWorkDetailResp.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = WorkDetailRespValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = WorkDetailRespValidationError{} + +// Validate checks the field values on UpdateStatusReq with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *UpdateStatusReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UpdateStatusReq with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// UpdateStatusReqMultiError, or nil if none found. +func (m *UpdateStatusReq) ValidateAll() error { + return m.validate(true) +} + +func (m *UpdateStatusReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for WorkAction + + // no validation rules for WorkUuid + + // no validation rules for ApprovalID + + // no validation rules for ConfirmRemark + + // no validation rules for ConfirmStatus + + if len(errors) > 0 { + return UpdateStatusReqMultiError(errors) + } + + return nil +} + +// UpdateStatusReqMultiError is an error wrapping multiple validation errors +// returned by UpdateStatusReq.ValidateAll() if the designated constraints +// aren't met. +type UpdateStatusReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UpdateStatusReqMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UpdateStatusReqMultiError) AllErrors() []error { return m } + +// UpdateStatusReqValidationError is the validation error returned by +// UpdateStatusReq.Validate if the designated constraints aren't met. +type UpdateStatusReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UpdateStatusReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UpdateStatusReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UpdateStatusReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UpdateStatusReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UpdateStatusReqValidationError) ErrorName() string { return "UpdateStatusReqValidationError" } + +// Error satisfies the builtin error interface +func (e UpdateStatusReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUpdateStatusReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UpdateStatusReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UpdateStatusReqValidationError{} + // Validate checks the field values on MediaUserListResp_Info with the rules // defined in the proto definition for this message. If any rules are // violated, the first error encountered is returned, or nil if there are no violations. @@ -1543,26 +2082,20 @@ func (m *WorkListResp_Info) validate(all bool) error { // no validation rules for WorkUuid + // no validation rules for ArtistName + + // no validation rules for ArtistPhone + // no validation rules for Title - // no validation rules for Content - // no validation rules for WorkCategory - // no validation rules for WorkUrl - - // no validation rules for WorkCover - // no validation rules for WorkStatus // no validation rules for SubmitTime // no validation rules for StatusUpdateTime - // no validation rules for ArtistName - - // no validation rules for ArtistPhone - if len(errors) > 0 { return WorkListResp_InfoMultiError(errors) } diff --git a/api/cast/cast_triple.pb.go b/api/cast/cast_triple.pb.go index b1fecb4..787b81f 100644 --- a/api/cast/cast_triple.pb.go +++ b/api/cast/cast_triple.pb.go @@ -36,6 +36,8 @@ type CastClient interface { UpdateWorkImage(ctx context.Context, in *UpdateWorkImageReq, opts ...grpc_go.CallOption) (*UpdateWorkImageResp, common.ErrorWithAttachment) UpdateWorkVideo(ctx context.Context, in *UpdateWorkVideoReq, opts ...grpc_go.CallOption) (*UpdateWorkVideoResp, common.ErrorWithAttachment) WorkList(ctx context.Context, in *WorkListReq, opts ...grpc_go.CallOption) (*WorkListResp, common.ErrorWithAttachment) + WorkDetail(ctx context.Context, in *WorkDetailReq, opts ...grpc_go.CallOption) (*WorkDetailResp, common.ErrorWithAttachment) + UpdateStatus(ctx context.Context, in *UpdateStatusReq, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) } type castClient struct { @@ -50,6 +52,8 @@ type CastClientImpl struct { UpdateWorkImage func(ctx context.Context, in *UpdateWorkImageReq) (*UpdateWorkImageResp, error) UpdateWorkVideo func(ctx context.Context, in *UpdateWorkVideoReq) (*UpdateWorkVideoResp, error) WorkList func(ctx context.Context, in *WorkListReq) (*WorkListResp, error) + WorkDetail func(ctx context.Context, in *WorkDetailReq) (*WorkDetailResp, error) + UpdateStatus func(ctx context.Context, in *UpdateStatusReq) (*emptypb.Empty, error) } func (c *CastClientImpl) GetDubboStub(cc *triple.TripleConn) CastClient { @@ -106,6 +110,18 @@ func (c *castClient) WorkList(ctx context.Context, in *WorkListReq, opts ...grpc return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/WorkList", in, out) } +func (c *castClient) WorkDetail(ctx context.Context, in *WorkDetailReq, opts ...grpc_go.CallOption) (*WorkDetailResp, common.ErrorWithAttachment) { + out := new(WorkDetailResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/WorkDetail", in, out) +} + +func (c *castClient) UpdateStatus(ctx context.Context, in *UpdateStatusReq, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) { + out := new(emptypb.Empty) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateStatus", in, out) +} + // CastServer is the server API for Cast service. // All implementations must embed UnimplementedCastServer // for forward compatibility @@ -117,6 +133,8 @@ type CastServer interface { UpdateWorkImage(context.Context, *UpdateWorkImageReq) (*UpdateWorkImageResp, error) UpdateWorkVideo(context.Context, *UpdateWorkVideoReq) (*UpdateWorkVideoResp, error) WorkList(context.Context, *WorkListReq) (*WorkListResp, error) + WorkDetail(context.Context, *WorkDetailReq) (*WorkDetailResp, error) + UpdateStatus(context.Context, *UpdateStatusReq) (*emptypb.Empty, error) mustEmbedUnimplementedCastServer() } @@ -146,6 +164,12 @@ func (UnimplementedCastServer) UpdateWorkVideo(context.Context, *UpdateWorkVideo func (UnimplementedCastServer) WorkList(context.Context, *WorkListReq) (*WorkListResp, error) { return nil, status.Errorf(codes.Unimplemented, "method WorkList not implemented") } +func (UnimplementedCastServer) WorkDetail(context.Context, *WorkDetailReq) (*WorkDetailResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method WorkDetail not implemented") +} +func (UnimplementedCastServer) UpdateStatus(context.Context, *UpdateStatusReq) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateStatus not implemented") +} func (s *UnimplementedCastServer) XXX_SetProxyImpl(impl protocol.Invoker) { s.proxyImpl = impl } @@ -377,6 +401,64 @@ func _Cast_WorkList_Handler(srv interface{}, ctx context.Context, dec func(inter return interceptor(ctx, in, info, handler) } +func _Cast_WorkDetail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(WorkDetailReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("WorkDetail", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Cast_UpdateStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateStatusReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("UpdateStatus", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + // Cast_ServiceDesc is the grpc_go.ServiceDesc for Cast service. // It's only intended for direct use with grpc_go.RegisterService, // and not to be introspected or modified (even as a copy) @@ -412,6 +494,14 @@ var Cast_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "WorkList", Handler: _Cast_WorkList_Handler, }, + { + MethodName: "WorkDetail", + Handler: _Cast_WorkDetail_Handler, + }, + { + MethodName: "UpdateStatus", + Handler: _Cast_UpdateStatus_Handler, + }, }, Streams: []grpc_go.StreamDesc{}, Metadata: "pb/fiee/cast.proto", diff --git a/pkg/router/bundle.go b/pkg/router/bundle.go index 3b77378..1b35057 100644 --- a/pkg/router/bundle.go +++ b/pkg/router/bundle.go @@ -34,8 +34,11 @@ func BundleRouter(r *gin.RouterGroup) { bundleExtend.POST("list", bundle.BundleExtendRecordsList) } bundleBalance := bundleRoute.Group("balance") - bundleBalance.POST("", bundle.GetBundleBalance) - bundleBalance.POST("used-record", bundle.GetUsedRecordList) + { + bundleBalance.POST("", bundle.GetBundleBalance) + bundleBalance.POST("used-record", bundle.GetUsedRecordList) + bundleBalance.POST("image-detail", bundle.GetWorkDetail) + } } diff --git a/pkg/service/bundle/bundleBalance.go b/pkg/service/bundle/bundleBalance.go index d65c874..b6db44b 100644 --- a/pkg/service/bundle/bundleBalance.go +++ b/pkg/service/bundle/bundleBalance.go @@ -3,6 +3,7 @@ package bundle import ( "context" "fonchain-fiee/api/bundle" + "fonchain-fiee/api/cast" "fonchain-fiee/pkg/service" "github.com/gin-gonic/gin" @@ -64,3 +65,16 @@ func GetUsedRecordList(c *gin.Context) { service.Success(c, res) } +func GetWorkDetail(c *gin.Context) { + var req cast.WorkDetailReq + if err := c.ShouldBindJSON(&req); err != nil { + service.Error(c, err) + return + } + res, err := service.CastProvider.WorkDetail(context.Background(), &req) + if err != nil { + service.Error(c, err) + return + } + service.Success(c, res) +} From 48343889e2400bcef7dcb26c84eca0cef6de7c1a Mon Sep 17 00:00:00 2001 From: daiyb <570956418@qq.com> Date: Sat, 14 Jun 2025 14:10:55 +0800 Subject: [PATCH 16/18] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/cast/cast.pb.go | 599 ++++++++++++++++++++--------------- api/cast/cast.pb.validate.go | 204 +++++++++++- 2 files changed, 527 insertions(+), 276 deletions(-) diff --git a/api/cast/cast.pb.go b/api/cast/cast.pb.go index 386c824..9f19cd2 100644 --- a/api/cast/cast.pb.go +++ b/api/cast/cast.pb.go @@ -542,12 +542,14 @@ type UpdateWorkImageReq struct { MediaAccountUuids []string `protobuf:"bytes,4,rep,name=mediaAccountUuids,proto3" json:"mediaAccountUuids"` MediaAccountNames []string `protobuf:"bytes,5,rep,name=mediaAccountNames,proto3" json:"mediaAccountNames"` PlatformIDs []PlatformIDENUM `protobuf:"varint,6,rep,packed,name=platformIDs,proto3,enum=Cast.PlatformIDENUM" json:"platformIDs"` - PublishConfig *PublishConfig `protobuf:"bytes,7,opt,name=publishConfig,proto3" json:"publishConfig"` - Action string `protobuf:"bytes,8,opt,name=action,proto3" json:"action"` - WorkUuid string `protobuf:"bytes,9,opt,name=workUuid,proto3" json:"workUuid"` - ArtistUuid string `protobuf:"bytes,10,opt,name=artistUuid,proto3" json:"artistUuid"` - ArtistPhone string `protobuf:"bytes,11,opt,name=artistPhone,proto3" json:"artistPhone"` - ArtistName string `protobuf:"bytes,12,opt,name=artistName,proto3" json:"artistName"` + PublishConfig1 *PublishConfig `protobuf:"bytes,7,opt,name=publishConfig1,proto3" json:"publishConfig1"` + PublishConfig2 *PublishConfig `protobuf:"bytes,8,opt,name=publishConfig2,proto3" json:"publishConfig2"` + PublishConfig3 *PublishConfig `protobuf:"bytes,9,opt,name=publishConfig3,proto3" json:"publishConfig3"` + Action string `protobuf:"bytes,10,opt,name=action,proto3" json:"action"` + WorkUuid string `protobuf:"bytes,11,opt,name=workUuid,proto3" json:"workUuid"` + ArtistUuid string `protobuf:"bytes,12,opt,name=artistUuid,proto3" json:"artistUuid"` + ArtistPhone string `protobuf:"bytes,13,opt,name=artistPhone,proto3" json:"artistPhone"` + ArtistName string `protobuf:"bytes,14,opt,name=artistName,proto3" json:"artistName"` } func (x *UpdateWorkImageReq) Reset() { @@ -622,9 +624,23 @@ func (x *UpdateWorkImageReq) GetPlatformIDs() []PlatformIDENUM { return nil } -func (x *UpdateWorkImageReq) GetPublishConfig() *PublishConfig { +func (x *UpdateWorkImageReq) GetPublishConfig1() *PublishConfig { if x != nil { - return x.PublishConfig + return x.PublishConfig1 + } + return nil +} + +func (x *UpdateWorkImageReq) GetPublishConfig2() *PublishConfig { + if x != nil { + return x.PublishConfig2 + } + return nil +} + +func (x *UpdateWorkImageReq) GetPublishConfig3() *PublishConfig { + if x != nil { + return x.PublishConfig3 } return nil } @@ -807,12 +823,14 @@ type UpdateWorkVideoReq struct { MediaAccountUuids []string `protobuf:"bytes,5,rep,name=mediaAccountUuids,proto3" json:"mediaAccountUuids"` MediaAccountNames []string `protobuf:"bytes,6,rep,name=mediaAccountNames,proto3" json:"mediaAccountNames"` PlatformIDs []PlatformIDENUM `protobuf:"varint,7,rep,packed,name=platformIDs,proto3,enum=Cast.PlatformIDENUM" json:"platformIDs"` - PublishConfig *PublishConfig `protobuf:"bytes,8,opt,name=publishConfig,proto3" json:"publishConfig"` - Action string `protobuf:"bytes,9,opt,name=action,proto3" json:"action"` - WorkUuid string `protobuf:"bytes,10,opt,name=workUuid,proto3" json:"workUuid"` - ArtistUuid string `protobuf:"bytes,11,opt,name=artistUuid,proto3" json:"artistUuid"` - ArtistPhone string `protobuf:"bytes,12,opt,name=artistPhone,proto3" json:"artistPhone"` - ArtistName string `protobuf:"bytes,13,opt,name=artistName,proto3" json:"artistName"` + PublishConfig1 *PublishConfig `protobuf:"bytes,8,opt,name=publishConfig1,proto3" json:"publishConfig1"` + PublishConfig2 *PublishConfig `protobuf:"bytes,9,opt,name=publishConfig2,proto3" json:"publishConfig2"` + PublishConfig3 *PublishConfig `protobuf:"bytes,10,opt,name=publishConfig3,proto3" json:"publishConfig3"` + Action string `protobuf:"bytes,11,opt,name=action,proto3" json:"action"` + WorkUuid string `protobuf:"bytes,12,opt,name=workUuid,proto3" json:"workUuid"` + ArtistUuid string `protobuf:"bytes,13,opt,name=artistUuid,proto3" json:"artistUuid"` + ArtistPhone string `protobuf:"bytes,14,opt,name=artistPhone,proto3" json:"artistPhone"` + ArtistName string `protobuf:"bytes,15,opt,name=artistName,proto3" json:"artistName"` } func (x *UpdateWorkVideoReq) Reset() { @@ -894,9 +912,23 @@ func (x *UpdateWorkVideoReq) GetPlatformIDs() []PlatformIDENUM { return nil } -func (x *UpdateWorkVideoReq) GetPublishConfig() *PublishConfig { +func (x *UpdateWorkVideoReq) GetPublishConfig1() *PublishConfig { if x != nil { - return x.PublishConfig + return x.PublishConfig1 + } + return nil +} + +func (x *UpdateWorkVideoReq) GetPublishConfig2() *PublishConfig { + if x != nil { + return x.PublishConfig2 + } + return nil +} + +func (x *UpdateWorkVideoReq) GetPublishConfig3() *PublishConfig { + if x != nil { + return x.PublishConfig3 } return nil } @@ -1217,10 +1249,12 @@ type WorkDetailResp struct { MediaAccountNames []string `protobuf:"bytes,6,rep,name=mediaAccountNames,proto3" json:"mediaAccountNames"` PlatformIDs []uint32 `protobuf:"varint,7,rep,packed,name=platformIDs,proto3" json:"platformIDs"` WorkStatus uint32 `protobuf:"varint,8,opt,name=workStatus,proto3" json:"workStatus"` - PublishConfig *PublishConfig `protobuf:"bytes,9,opt,name=publishConfig,proto3" json:"publishConfig"` - VideoUrl string `protobuf:"bytes,10,opt,name=videoUrl,proto3" json:"videoUrl"` - CoverUrl string `protobuf:"bytes,11,opt,name=coverUrl,proto3" json:"coverUrl"` - ApprovalID string `protobuf:"bytes,12,opt,name=approvalID,proto3" json:"approvalID"` + PublishConfig1 *PublishConfig `protobuf:"bytes,9,opt,name=publishConfig1,proto3" json:"publishConfig1"` + PublishConfig2 *PublishConfig `protobuf:"bytes,10,opt,name=publishConfig2,proto3" json:"publishConfig2"` + PublishConfig3 *PublishConfig `protobuf:"bytes,11,opt,name=publishConfig3,proto3" json:"publishConfig3"` + VideoUrl string `protobuf:"bytes,12,opt,name=videoUrl,proto3" json:"videoUrl"` + CoverUrl string `protobuf:"bytes,13,opt,name=coverUrl,proto3" json:"coverUrl"` + ApprovalID string `protobuf:"bytes,14,opt,name=approvalID,proto3" json:"approvalID"` } func (x *WorkDetailResp) Reset() { @@ -1309,9 +1343,23 @@ func (x *WorkDetailResp) GetWorkStatus() uint32 { return 0 } -func (x *WorkDetailResp) GetPublishConfig() *PublishConfig { +func (x *WorkDetailResp) GetPublishConfig1() *PublishConfig { if x != nil { - return x.PublishConfig + return x.PublishConfig1 + } + return nil +} + +func (x *WorkDetailResp) GetPublishConfig2() *PublishConfig { + if x != nil { + return x.PublishConfig2 + } + return nil +} + +func (x *WorkDetailResp) GetPublishConfig3() *PublishConfig { + if x != nil { + return x.PublishConfig3 } return nil } @@ -1730,7 +1778,7 @@ var file_pb_fiee_cast_proto_rawDesc = []byte{ 0x67, 0x65, 0x72, 0x55, 0x75, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x22, 0xc1, 0x03, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, + 0x65, 0x22, 0xbd, 0x04, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, @@ -1745,218 +1793,241 @@ var file_pb_fiee_cast_proto_rawDesc = []byte{ 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x45, 0x4e, 0x55, 0x4d, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x49, 0x44, 0x73, 0x12, 0x39, 0x0a, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x43, 0x61, + 0x6d, 0x49, 0x44, 0x73, 0x12, 0x3b, 0x0a, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x43, + 0x61, 0x73, 0x74, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x31, 0x12, 0x3b, 0x0a, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x43, 0x61, 0x73, 0x74, + 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, + 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x32, 0x12, 0x3b, + 0x0a, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x33, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x50, 0x75, + 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x70, 0x75, 0x62, + 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x33, 0x12, 0x16, 0x0a, 0x06, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, + 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, + 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x22, 0x31, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, + 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, + 0x55, 0x75, 0x69, 0x64, 0x22, 0xbf, 0x01, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x6f, 0x72, 0x62, 0x69, 0x64, + 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x66, + 0x6f, 0x72, 0x62, 0x69, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, + 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x63, 0x61, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, + 0x61, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x6e, 0x51, 0x75, 0x6f, + 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x61, 0x6e, 0x51, 0x75, 0x6f, + 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x61, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x61, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x41, 0x49, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x04, 0x69, 0x73, 0x41, 0x49, 0x22, 0xdd, 0x04, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, + 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, + 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x76, + 0x65, 0x72, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x76, + 0x65, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x75, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x75, + 0x69, 0x64, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, + 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x12, 0x36, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x50, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x45, 0x4e, 0x55, 0x4d, 0x52, 0x0b, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, 0x12, 0x3b, 0x0a, 0x0e, 0x70, 0x75, 0x62, + 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x31, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x31, 0x12, 0x3b, 0x0a, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, + 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, + 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x32, 0x12, 0x3b, 0x0a, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x52, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, - 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, - 0x75, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, - 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, - 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, - 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, - 0x6e, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x31, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, - 0x6f, 0x72, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, - 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x22, 0xbf, 0x01, 0x0a, 0x0d, 0x50, 0x75, 0x62, - 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x6f, - 0x72, 0x62, 0x69, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0d, 0x66, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x63, 0x61, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x07, 0x63, 0x61, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, - 0x6e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x61, - 0x6e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x61, 0x6e, 0x43, 0x6f, 0x6d, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x61, 0x6e, 0x43, - 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x41, 0x49, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x69, 0x73, 0x41, 0x49, 0x22, 0xe1, 0x03, 0x0a, 0x12, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, - 0x71, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, - 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x65, 0x64, - 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x75, 0x69, 0x64, 0x73, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x55, 0x75, 0x69, 0x64, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x49, 0x44, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x43, 0x61, 0x73, - 0x74, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x45, 0x4e, 0x55, 0x4d, - 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, 0x12, 0x39, 0x0a, - 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x08, + 0x52, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x33, + 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, + 0x55, 0x75, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, + 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, + 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x55, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, + 0x6f, 0x6e, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x31, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x57, 0x6f, 0x72, 0x6b, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, + 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x22, 0x8d, 0x03, 0x0a, 0x0b, 0x57, 0x6f, + 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, + 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x77, + 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x28, 0x0a, 0x0f, 0x73, + 0x75, 0x62, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, + 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, + 0x62, 0x6d, 0x69, 0x74, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x12, 0x30, 0x0a, 0x13, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x45, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x77, 0x6f, 0x72, + 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x77, + 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xfe, 0x03, 0x0a, 0x0c, 0x57, 0x6f, + 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, + 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0xaa, 0x03, + 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, + 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, + 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x6f, + 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1e, + 0x0a, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, + 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, + 0x0a, 0x10, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, 0x12, 0x2c, 0x0a, 0x11, + 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0b, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x73, 0x65, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x72, 0x55, 0x75, 0x69, 0x64, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x75, 0x69, 0x64, 0x73, 0x22, 0x2b, 0x0a, 0x0d, 0x57, 0x6f, + 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x77, + 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, + 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x22, 0xa1, 0x04, 0x0a, 0x0e, 0x57, 0x6f, 0x72, 0x6b, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, + 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, + 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x2c, + 0x0a, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x75, + 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x75, 0x69, 0x64, 0x73, 0x12, 0x2c, 0x0a, 0x11, + 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, 0x12, 0x1e, 0x0a, 0x0a, + 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3b, 0x0a, 0x0e, + 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x31, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x50, 0x75, 0x62, 0x6c, - 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x1e, - 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x31, - 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x56, 0x69, 0x64, 0x65, - 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, - 0x64, 0x22, 0x8d, 0x03, 0x0a, 0x0b, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x12, - 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, - 0x22, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, - 0x6f, 0x72, 0x79, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x75, - 0x62, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, - 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x6e, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x15, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, - 0x69, 0x74, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, - 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, - 0x65, 0x22, 0xfe, 0x03, 0x0a, 0x0c, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0xaa, 0x03, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, - 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, - 0x6c, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, - 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, - 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6d, - 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x10, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, - 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x49, 0x44, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x73, 0x65, - 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x6d, 0x61, - 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x22, - 0x0a, 0x0c, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x75, 0x69, 0x64, 0x73, 0x18, 0x0c, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x75, 0x69, - 0x64, 0x73, 0x22, 0x2b, 0x0a, 0x0d, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x22, - 0xa5, 0x03, 0x0a, 0x0e, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, 0x14, - 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, - 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x16, - 0x0a, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, - 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x75, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, - 0x75, 0x69, 0x64, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x49, 0x44, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x39, 0x0a, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x43, 0x61, - 0x73, 0x74, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x52, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, - 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x63, - 0x6f, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, - 0x6f, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x22, 0xcf, 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x12, 0x34, 0x0a, 0x0a, 0x77, - 0x6f, 0x72, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x14, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x45, 0x4e, 0x55, 0x4d, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, - 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x24, 0x0a, - 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, 0x6d, - 0x61, 0x72, 0x6b, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2a, 0x3f, 0x0a, 0x0e, 0x50, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x45, 0x4e, 0x55, 0x4d, 0x12, 0x0b, 0x0a, 0x07, 0x55, - 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x49, 0x4b, 0x54, - 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x59, 0x4f, 0x55, 0x54, 0x55, 0x42, 0x45, 0x10, - 0x02, 0x12, 0x07, 0x0a, 0x03, 0x49, 0x4e, 0x53, 0x10, 0x03, 0x2a, 0x62, 0x0a, 0x0e, 0x57, 0x6f, - 0x72, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x4e, 0x55, 0x4d, 0x12, 0x0d, 0x0a, 0x09, - 0x4e, 0x4f, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, - 0x4f, 0x4e, 0x46, 0x49, 0x52, 0x4d, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x50, 0x50, 0x52, - 0x4f, 0x56, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x50, 0x50, 0x52, 0x4f, 0x56, - 0x41, 0x4c, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x50, 0x50, - 0x52, 0x4f, 0x56, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x04, 0x32, 0xe4, - 0x04, 0x0a, 0x04, 0x43, 0x61, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x0d, 0x4d, 0x65, 0x64, 0x69, 0x61, - 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, - 0x4d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x1a, 0x17, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x73, 0x65, - 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x12, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x1b, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, - 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, - 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x64, 0x69, - 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x41, - 0x0a, 0x0d, 0x55, 0x6e, 0x62, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, - 0x16, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x6e, 0x62, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x6e, - 0x61, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, - 0x00, 0x12, 0x3d, 0x0a, 0x0b, 0x42, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, - 0x12, 0x14, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, - 0x12, 0x48, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x6d, - 0x61, 0x67, 0x65, 0x12, 0x18, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, - 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x49, - 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x0f, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x18, 0x2e, - 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x56, - 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x00, 0x12, 0x33, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x11, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0a, 0x57, 0x6f, 0x72, - 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x13, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, - 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x43, - 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, + 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, + 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x31, 0x12, 0x3b, 0x0a, 0x0e, 0x70, 0x75, 0x62, + 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x32, 0x12, 0x3b, 0x0a, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, + 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x33, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, + 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x12, + 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x22, 0xcf, 0x01, 0x0a, 0x0f, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x12, + 0x34, 0x0a, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x4e, 0x55, 0x4d, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, + 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, + 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, 0x6d, 0x61, + 0x72, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, + 0x6d, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x72, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2a, 0x3f, 0x0a, + 0x0e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x45, 0x4e, 0x55, 0x4d, 0x12, + 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, + 0x54, 0x49, 0x4b, 0x54, 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x59, 0x4f, 0x55, 0x54, + 0x55, 0x42, 0x45, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x49, 0x4e, 0x53, 0x10, 0x03, 0x2a, 0x62, + 0x0a, 0x0e, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x4e, 0x55, 0x4d, + 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x00, 0x12, + 0x0b, 0x0a, 0x07, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x52, 0x4d, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, + 0x41, 0x50, 0x50, 0x52, 0x4f, 0x56, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x50, + 0x50, 0x52, 0x4f, 0x56, 0x41, 0x4c, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x10, 0x03, 0x12, 0x13, 0x0a, + 0x0f, 0x41, 0x50, 0x50, 0x52, 0x4f, 0x56, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, + 0x10, 0x04, 0x32, 0xe4, 0x04, 0x0a, 0x04, 0x43, 0x61, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x0d, 0x4d, + 0x65, 0x64, 0x69, 0x61, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x43, + 0x61, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x64, 0x69, + 0x61, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, + 0x51, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0d, 0x55, 0x6e, 0x62, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x6e, 0x62, 0x69, 0x6e, + 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x22, 0x00, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x63, 0x61, 0x73, 0x74, 0x3b, - 0x63, 0x61, 0x73, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x0b, 0x42, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x12, 0x14, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x42, 0x69, 0x6e, 0x64, + 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, + 0x72, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x18, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x71, 0x1a, 0x19, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, + 0x6f, 0x72, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x48, + 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x56, 0x69, 0x64, 0x65, + 0x6f, 0x12, 0x18, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, + 0x6f, 0x72, 0x6b, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x43, 0x61, + 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x56, 0x69, 0x64, + 0x65, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x33, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x11, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, + 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x39, 0x0a, + 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x13, 0x2e, 0x43, 0x61, + 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, + 0x1a, 0x14, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x1a, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x63, + 0x61, 0x73, 0x74, 0x3b, 0x63, 0x61, 0x73, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2001,35 +2072,41 @@ var file_pb_fiee_cast_proto_depIdxs = []int32{ 18, // 1: Cast.MediaUserListResp.data:type_name -> Cast.MediaUserListResp.Info 0, // 2: Cast.UpdateMediaAccountReq.platformID:type_name -> Cast.PlatformIDENUM 0, // 3: Cast.UpdateWorkImageReq.platformIDs:type_name -> Cast.PlatformIDENUM - 10, // 4: Cast.UpdateWorkImageReq.publishConfig:type_name -> Cast.PublishConfig - 0, // 5: Cast.UpdateWorkVideoReq.platformIDs:type_name -> Cast.PlatformIDENUM - 10, // 6: Cast.UpdateWorkVideoReq.publishConfig:type_name -> Cast.PublishConfig - 19, // 7: Cast.WorkListResp.data:type_name -> Cast.WorkListResp.Info - 10, // 8: Cast.WorkDetailResp.publishConfig:type_name -> Cast.PublishConfig - 1, // 9: Cast.UpdateStatusReq.workAction:type_name -> Cast.WorkActionENUM - 2, // 10: Cast.Cast.MediaUserList:input_type -> Cast.MediaUserListReq - 4, // 11: Cast.Cast.UpdateMediaAccount:input_type -> Cast.UpdateMediaAccountReq - 6, // 12: Cast.Cast.UnbindManager:input_type -> Cast.UnbindManagerReq - 7, // 13: Cast.Cast.BindManager:input_type -> Cast.BindManagerReq - 8, // 14: Cast.Cast.UpdateWorkImage:input_type -> Cast.UpdateWorkImageReq - 11, // 15: Cast.Cast.UpdateWorkVideo:input_type -> Cast.UpdateWorkVideoReq - 13, // 16: Cast.Cast.WorkList:input_type -> Cast.WorkListReq - 15, // 17: Cast.Cast.WorkDetail:input_type -> Cast.WorkDetailReq - 17, // 18: Cast.Cast.UpdateStatus:input_type -> Cast.UpdateStatusReq - 3, // 19: Cast.Cast.MediaUserList:output_type -> Cast.MediaUserListResp - 5, // 20: Cast.Cast.UpdateMediaAccount:output_type -> Cast.UpdateMediaAccountResp - 20, // 21: Cast.Cast.UnbindManager:output_type -> google.protobuf.Empty - 20, // 22: Cast.Cast.BindManager:output_type -> google.protobuf.Empty - 9, // 23: Cast.Cast.UpdateWorkImage:output_type -> Cast.UpdateWorkImageResp - 12, // 24: Cast.Cast.UpdateWorkVideo:output_type -> Cast.UpdateWorkVideoResp - 14, // 25: Cast.Cast.WorkList:output_type -> Cast.WorkListResp - 16, // 26: Cast.Cast.WorkDetail:output_type -> Cast.WorkDetailResp - 20, // 27: Cast.Cast.UpdateStatus:output_type -> google.protobuf.Empty - 19, // [19:28] is the sub-list for method output_type - 10, // [10:19] is the sub-list for method input_type - 10, // [10:10] is the sub-list for extension type_name - 10, // [10:10] is the sub-list for extension extendee - 0, // [0:10] is the sub-list for field type_name + 10, // 4: Cast.UpdateWorkImageReq.publishConfig1:type_name -> Cast.PublishConfig + 10, // 5: Cast.UpdateWorkImageReq.publishConfig2:type_name -> Cast.PublishConfig + 10, // 6: Cast.UpdateWorkImageReq.publishConfig3:type_name -> Cast.PublishConfig + 0, // 7: Cast.UpdateWorkVideoReq.platformIDs:type_name -> Cast.PlatformIDENUM + 10, // 8: Cast.UpdateWorkVideoReq.publishConfig1:type_name -> Cast.PublishConfig + 10, // 9: Cast.UpdateWorkVideoReq.publishConfig2:type_name -> Cast.PublishConfig + 10, // 10: Cast.UpdateWorkVideoReq.publishConfig3:type_name -> Cast.PublishConfig + 19, // 11: Cast.WorkListResp.data:type_name -> Cast.WorkListResp.Info + 10, // 12: Cast.WorkDetailResp.publishConfig1:type_name -> Cast.PublishConfig + 10, // 13: Cast.WorkDetailResp.publishConfig2:type_name -> Cast.PublishConfig + 10, // 14: Cast.WorkDetailResp.publishConfig3:type_name -> Cast.PublishConfig + 1, // 15: Cast.UpdateStatusReq.workAction:type_name -> Cast.WorkActionENUM + 2, // 16: Cast.Cast.MediaUserList:input_type -> Cast.MediaUserListReq + 4, // 17: Cast.Cast.UpdateMediaAccount:input_type -> Cast.UpdateMediaAccountReq + 6, // 18: Cast.Cast.UnbindManager:input_type -> Cast.UnbindManagerReq + 7, // 19: Cast.Cast.BindManager:input_type -> Cast.BindManagerReq + 8, // 20: Cast.Cast.UpdateWorkImage:input_type -> Cast.UpdateWorkImageReq + 11, // 21: Cast.Cast.UpdateWorkVideo:input_type -> Cast.UpdateWorkVideoReq + 13, // 22: Cast.Cast.WorkList:input_type -> Cast.WorkListReq + 15, // 23: Cast.Cast.WorkDetail:input_type -> Cast.WorkDetailReq + 17, // 24: Cast.Cast.UpdateStatus:input_type -> Cast.UpdateStatusReq + 3, // 25: Cast.Cast.MediaUserList:output_type -> Cast.MediaUserListResp + 5, // 26: Cast.Cast.UpdateMediaAccount:output_type -> Cast.UpdateMediaAccountResp + 20, // 27: Cast.Cast.UnbindManager:output_type -> google.protobuf.Empty + 20, // 28: Cast.Cast.BindManager:output_type -> google.protobuf.Empty + 9, // 29: Cast.Cast.UpdateWorkImage:output_type -> Cast.UpdateWorkImageResp + 12, // 30: Cast.Cast.UpdateWorkVideo:output_type -> Cast.UpdateWorkVideoResp + 14, // 31: Cast.Cast.WorkList:output_type -> Cast.WorkListResp + 16, // 32: Cast.Cast.WorkDetail:output_type -> Cast.WorkDetailResp + 20, // 33: Cast.Cast.UpdateStatus:output_type -> google.protobuf.Empty + 25, // [25:34] is the sub-list for method output_type + 16, // [16:25] is the sub-list for method input_type + 16, // [16:16] is the sub-list for extension type_name + 16, // [16:16] is the sub-list for extension extendee + 0, // [0:16] is the sub-list for field type_name } func init() { file_pb_fiee_cast_proto_init() } diff --git a/api/cast/cast.pb.validate.go b/api/cast/cast.pb.validate.go index 60ea0ee..04b0415 100644 --- a/api/cast/cast.pb.validate.go +++ b/api/cast/cast.pb.validate.go @@ -744,11 +744,11 @@ func (m *UpdateWorkImageReq) validate(all bool) error { // no validation rules for Content if all { - switch v := interface{}(m.GetPublishConfig()).(type) { + switch v := interface{}(m.GetPublishConfig1()).(type) { case interface{ ValidateAll() error }: if err := v.ValidateAll(); err != nil { errors = append(errors, UpdateWorkImageReqValidationError{ - field: "PublishConfig", + field: "PublishConfig1", reason: "embedded message failed validation", cause: err, }) @@ -756,16 +756,74 @@ func (m *UpdateWorkImageReq) validate(all bool) error { case interface{ Validate() error }: if err := v.Validate(); err != nil { errors = append(errors, UpdateWorkImageReqValidationError{ - field: "PublishConfig", + field: "PublishConfig1", reason: "embedded message failed validation", cause: err, }) } } - } else if v, ok := interface{}(m.GetPublishConfig()).(interface{ Validate() error }); ok { + } else if v, ok := interface{}(m.GetPublishConfig1()).(interface{ Validate() error }); ok { if err := v.Validate(); err != nil { return UpdateWorkImageReqValidationError{ - field: "PublishConfig", + field: "PublishConfig1", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if all { + switch v := interface{}(m.GetPublishConfig2()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, UpdateWorkImageReqValidationError{ + field: "PublishConfig2", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, UpdateWorkImageReqValidationError{ + field: "PublishConfig2", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetPublishConfig2()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UpdateWorkImageReqValidationError{ + field: "PublishConfig2", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if all { + switch v := interface{}(m.GetPublishConfig3()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, UpdateWorkImageReqValidationError{ + field: "PublishConfig3", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, UpdateWorkImageReqValidationError{ + field: "PublishConfig3", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetPublishConfig3()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UpdateWorkImageReqValidationError{ + field: "PublishConfig3", reason: "embedded message failed validation", cause: err, } @@ -1109,11 +1167,11 @@ func (m *UpdateWorkVideoReq) validate(all bool) error { // no validation rules for CoverUrl if all { - switch v := interface{}(m.GetPublishConfig()).(type) { + switch v := interface{}(m.GetPublishConfig1()).(type) { case interface{ ValidateAll() error }: if err := v.ValidateAll(); err != nil { errors = append(errors, UpdateWorkVideoReqValidationError{ - field: "PublishConfig", + field: "PublishConfig1", reason: "embedded message failed validation", cause: err, }) @@ -1121,16 +1179,74 @@ func (m *UpdateWorkVideoReq) validate(all bool) error { case interface{ Validate() error }: if err := v.Validate(); err != nil { errors = append(errors, UpdateWorkVideoReqValidationError{ - field: "PublishConfig", + field: "PublishConfig1", reason: "embedded message failed validation", cause: err, }) } } - } else if v, ok := interface{}(m.GetPublishConfig()).(interface{ Validate() error }); ok { + } else if v, ok := interface{}(m.GetPublishConfig1()).(interface{ Validate() error }); ok { if err := v.Validate(); err != nil { return UpdateWorkVideoReqValidationError{ - field: "PublishConfig", + field: "PublishConfig1", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if all { + switch v := interface{}(m.GetPublishConfig2()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, UpdateWorkVideoReqValidationError{ + field: "PublishConfig2", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, UpdateWorkVideoReqValidationError{ + field: "PublishConfig2", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetPublishConfig2()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UpdateWorkVideoReqValidationError{ + field: "PublishConfig2", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if all { + switch v := interface{}(m.GetPublishConfig3()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, UpdateWorkVideoReqValidationError{ + field: "PublishConfig3", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, UpdateWorkVideoReqValidationError{ + field: "PublishConfig3", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetPublishConfig3()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UpdateWorkVideoReqValidationError{ + field: "PublishConfig3", reason: "embedded message failed validation", cause: err, } @@ -1720,11 +1836,11 @@ func (m *WorkDetailResp) validate(all bool) error { // no validation rules for WorkStatus if all { - switch v := interface{}(m.GetPublishConfig()).(type) { + switch v := interface{}(m.GetPublishConfig1()).(type) { case interface{ ValidateAll() error }: if err := v.ValidateAll(); err != nil { errors = append(errors, WorkDetailRespValidationError{ - field: "PublishConfig", + field: "PublishConfig1", reason: "embedded message failed validation", cause: err, }) @@ -1732,16 +1848,74 @@ func (m *WorkDetailResp) validate(all bool) error { case interface{ Validate() error }: if err := v.Validate(); err != nil { errors = append(errors, WorkDetailRespValidationError{ - field: "PublishConfig", + field: "PublishConfig1", reason: "embedded message failed validation", cause: err, }) } } - } else if v, ok := interface{}(m.GetPublishConfig()).(interface{ Validate() error }); ok { + } else if v, ok := interface{}(m.GetPublishConfig1()).(interface{ Validate() error }); ok { if err := v.Validate(); err != nil { return WorkDetailRespValidationError{ - field: "PublishConfig", + field: "PublishConfig1", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if all { + switch v := interface{}(m.GetPublishConfig2()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, WorkDetailRespValidationError{ + field: "PublishConfig2", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, WorkDetailRespValidationError{ + field: "PublishConfig2", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetPublishConfig2()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return WorkDetailRespValidationError{ + field: "PublishConfig2", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if all { + switch v := interface{}(m.GetPublishConfig3()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, WorkDetailRespValidationError{ + field: "PublishConfig3", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, WorkDetailRespValidationError{ + field: "PublishConfig3", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetPublishConfig3()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return WorkDetailRespValidationError{ + field: "PublishConfig3", reason: "embedded message failed validation", cause: err, } From ed8844be340112f7c5777e98d90b8cdf0ed22d35 Mon Sep 17 00:00:00 2001 From: lzh <1625167628@qq.com> Date: Sat, 14 Jun 2025 14:27:11 +0800 Subject: [PATCH 17/18] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=97=A5=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/files/files.pb.go | 433 ++++++++++++++++++++++-------------------- api/files/files.proto | 25 +-- 2 files changed, 245 insertions(+), 213 deletions(-) diff --git a/api/files/files.pb.go b/api/files/files.pb.go index 44a00cf..df491f8 100644 --- a/api/files/files.pb.go +++ b/api/files/files.pb.go @@ -93,10 +93,11 @@ type Items struct { Size int64 `protobuf:"varint,3,opt,name=size,proto3" json:"size,omitempty"` Extension string `protobuf:"bytes,4,opt,name=extension,proto3" json:"extension,omitempty"` Modified string `protobuf:"bytes,5,opt,name=modified,proto3" json:"modified,omitempty"` - Mode string `protobuf:"bytes,6,opt,name=mode,proto3" json:"mode,omitempty"` - IsDir bool `protobuf:"varint,7,opt,name=isDir,proto3" json:"isDir,omitempty"` - IsSymlink bool `protobuf:"varint,8,opt,name=isSymlink,proto3" json:"isSymlink,omitempty"` - Type string `protobuf:"bytes,9,opt,name=type,proto3" json:"type,omitempty"` + ModTime int64 `protobuf:"varint,6,opt,name=modTime,proto3" json:"modTime,omitempty"` + Mode string `protobuf:"bytes,7,opt,name=mode,proto3" json:"mode,omitempty"` + IsDir bool `protobuf:"varint,8,opt,name=isDir,proto3" json:"isDir,omitempty"` + IsSymlink bool `protobuf:"varint,9,opt,name=isSymlink,proto3" json:"isSymlink,omitempty"` + Type string `protobuf:"bytes,10,opt,name=type,proto3" json:"type,omitempty"` } func (x *Items) Reset() { @@ -166,6 +167,13 @@ func (x *Items) GetModified() string { return "" } +func (x *Items) GetModTime() int64 { + if x != nil { + return x.ModTime + } + return 0 +} + func (x *Items) GetMode() string { if x != nil { return x.Mode @@ -263,10 +271,11 @@ type FileListResp struct { Size int64 `protobuf:"varint,7,opt,name=size,proto3" json:"size,omitempty"` Extension string `protobuf:"bytes,8,opt,name=extension,proto3" json:"extension,omitempty"` Modified string `protobuf:"bytes,9,opt,name=modified,proto3" json:"modified,omitempty"` - Mode string `protobuf:"bytes,10,opt,name=mode,proto3" json:"mode,omitempty"` - IsDir bool `protobuf:"varint,11,opt,name=isDir,proto3" json:"isDir,omitempty"` - IsSymlink bool `protobuf:"varint,12,opt,name=isSymlink,proto3" json:"isSymlink,omitempty"` - Type string `protobuf:"bytes,13,opt,name=type,proto3" json:"type,omitempty"` + ModTime int64 `protobuf:"varint,10,opt,name=modTime,proto3" json:"modTime,omitempty"` + Mode string `protobuf:"bytes,11,opt,name=mode,proto3" json:"mode,omitempty"` + IsDir bool `protobuf:"varint,12,opt,name=isDir,proto3" json:"isDir,omitempty"` + IsSymlink bool `protobuf:"varint,13,opt,name=isSymlink,proto3" json:"isSymlink,omitempty"` + Type string `protobuf:"bytes,14,opt,name=type,proto3" json:"type,omitempty"` } func (x *FileListResp) Reset() { @@ -364,6 +373,13 @@ func (x *FileListResp) GetModified() string { return "" } +func (x *FileListResp) GetModTime() int64 { + if x != nil { + return x.ModTime + } + return 0 +} + func (x *FileListResp) GetMode() string { if x != nil { return x.Mode @@ -1209,9 +1225,10 @@ type FileInfoResp struct { Extension string `protobuf:"bytes,4,opt,name=extension,proto3" json:"extension,omitempty"` Modified string `protobuf:"bytes,5,opt,name=modified,proto3" json:"modified,omitempty"` Mode string `protobuf:"bytes,6,opt,name=mode,proto3" json:"mode,omitempty"` - IsDir bool `protobuf:"varint,7,opt,name=isDir,proto3" json:"isDir,omitempty"` - IsSymlink bool `protobuf:"varint,8,opt,name=isSymlink,proto3" json:"isSymlink,omitempty"` - Type string `protobuf:"bytes,9,opt,name=type,proto3" json:"type,omitempty"` + ModTime int64 `protobuf:"varint,7,opt,name=modTime,proto3" json:"modTime,omitempty"` + IsDir bool `protobuf:"varint,8,opt,name=isDir,proto3" json:"isDir,omitempty"` + IsSymlink bool `protobuf:"varint,9,opt,name=isSymlink,proto3" json:"isSymlink,omitempty"` + Type string `protobuf:"bytes,10,opt,name=type,proto3" json:"type,omitempty"` } func (x *FileInfoResp) Reset() { @@ -1288,6 +1305,13 @@ func (x *FileInfoResp) GetMode() string { return "" } +func (x *FileInfoResp) GetModTime() int64 { + if x != nil { + return x.ModTime + } + return 0 +} + func (x *FileInfoResp) GetIsDir() bool { if x != nil { return x.IsDir @@ -1744,7 +1768,7 @@ var file_files_proto_rawDesc = []byte{ 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x28, 0x0a, 0x07, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x07, - 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x22, 0xd9, 0x01, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, + 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x22, 0xf3, 0x01, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, @@ -1752,199 +1776,204 @@ var file_files_proto_rawDesc = []byte{ 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, - 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, - 0x73, 0x44, 0x69, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x44, 0x69, - 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x12, - 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x22, 0x2b, 0x0a, 0x07, 0x53, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x0e, - 0x0a, 0x02, 0x62, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x62, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x61, 0x73, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x73, 0x63, - 0x22, 0xe4, 0x02, 0x0a, 0x0c, 0x46, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x22, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x0c, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x05, - 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x75, 0x6d, 0x44, 0x69, 0x72, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x44, 0x69, 0x72, 0x73, 0x12, - 0x1a, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x07, 0x73, - 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x73, 0x6f, - 0x72, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x1a, 0x0a, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6d, - 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x69, 0x73, 0x44, 0x69, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, - 0x69, 0x73, 0x44, 0x69, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x53, 0x79, 0x6d, 0x6c, 0x69, - 0x6e, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x53, 0x79, 0x6d, 0x6c, - 0x69, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x45, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, - 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, 0x0c, - 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x45, 0x0a, 0x09, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, - 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, - 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, - 0x61, 0x74, 0x68, 0x22, 0x0c, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x5f, 0x0a, 0x09, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, 0x12, - 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, - 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, - 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, - 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x22, 0x0c, 0x0a, 0x0a, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x5b, 0x0a, 0x09, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, - 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, - 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, - 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, - 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, 0x6c, 0x0a, - 0x0a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x05, 0x69, - 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x2e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x4e, 0x65, - 0x73, 0x74, 0x65, 0x64, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x2e, 0x0a, 0x06, 0x4e, - 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x69, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x03, 0x64, 0x69, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x64, 0x0a, 0x0c, 0x54, - 0x75, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, - 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, - 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, - 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, - 0x65, 0x22, 0x57, 0x0a, 0x0d, 0x54, 0x75, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, - 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x75, 0x70, - 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x0c, 0x54, - 0x75, 0x73, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, - 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, - 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, - 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x75, 0x70, 0x6c, - 0x6f, 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x22, 0x33, 0x0a, 0x0d, 0x54, 0x75, 0x73, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x75, 0x70, 0x6c, 0x6f, - 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x80, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x73, - 0x75, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, - 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, - 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x31, 0x0a, 0x15, 0x52, - 0x65, 0x73, 0x75, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x47, - 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, - 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, - 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, - 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, - 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, 0xe0, 0x01, 0x0a, 0x0c, 0x46, 0x69, 0x6c, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, - 0x73, 0x69, 0x7a, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, - 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x44, 0x69, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x05, 0x69, 0x73, 0x44, 0x69, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x53, 0x79, - 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x53, - 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x5a, 0x0a, 0x0a, 0x50, 0x72, - 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, + 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x44, 0x69, 0x72, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x44, 0x69, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x69, + 0x73, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, + 0x69, 0x73, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2b, 0x0a, + 0x07, 0x53, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x62, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x62, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x73, 0x63, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x73, 0x63, 0x22, 0xfe, 0x02, 0x0a, 0x0c, 0x46, + 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x22, 0x0a, 0x05, 0x69, + 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, + 0x18, 0x0a, 0x07, 0x6e, 0x75, 0x6d, 0x44, 0x69, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x44, 0x69, 0x72, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x75, 0x6d, + 0x46, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6e, 0x75, 0x6d, + 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x07, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x53, + 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, + 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x6f, 0x64, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x6f, 0x64, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, + 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x44, 0x69, 0x72, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x44, 0x69, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x53, + 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, + 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x45, 0x0a, 0x09, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, - 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x5d, 0x0a, 0x0b, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, - 0x77, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, - 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, - 0x6f, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x6f, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xb3, 0x01, 0x0a, 0x09, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, - 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, - 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x72, - 0x69, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x72, - 0x69, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x0c, 0x0a, 0x0a, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x74, 0x0a, 0x0e, 0x44, 0x69, 0x72, - 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, - 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, - 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, - 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x61, - 0x6c, 0x67, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x6c, 0x67, 0x6f, 0x22, - 0x2b, 0x0a, 0x0f, 0x44, 0x69, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x32, 0x9d, 0x05, 0x0a, - 0x04, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x31, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x12, 0x2e, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x1a, 0x13, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x31, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x12, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6c, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x2f, 0x0a, 0x06, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x10, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x2f, 0x0a, 0x06, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x10, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x2f, 0x0a, - 0x06, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x10, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, - 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x2e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x2f, - 0x0a, 0x06, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x10, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, - 0x38, 0x0a, 0x09, 0x54, 0x75, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x13, 0x2e, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x54, 0x75, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x1a, 0x14, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x54, 0x75, 0x73, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x38, 0x0a, 0x09, 0x54, 0x75, 0x73, - 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x13, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x54, - 0x75, 0x73, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x2e, 0x54, 0x75, 0x73, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x61, 0x62, 0x6c, 0x65, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x52, 0x65, - 0x73, 0x75, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x32, 0x0a, 0x07, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, - 0x12, 0x11, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, - 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x50, 0x72, 0x65, 0x76, - 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x2f, 0x0a, 0x06, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x0b, 0x44, 0x69, - 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x15, 0x2e, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x2e, 0x44, 0x69, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, - 0x1a, 0x16, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x44, 0x69, 0x72, 0x44, 0x6f, 0x77, 0x6e, - 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x30, 0x01, 0x42, 0x0a, 0x5a, 0x08, - 0x2e, 0x2f, 0x3b, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x68, 0x22, 0x0c, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x45, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, + 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, + 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, + 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, + 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, 0x0c, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x5f, 0x0a, 0x09, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, + 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, + 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, + 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x0c, 0x0a, 0x0a, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x5b, 0x0a, 0x09, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, + 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, + 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, + 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x22, 0x6c, 0x0a, 0x0a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x2e, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, + 0x70, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, + 0x2e, 0x0a, 0x06, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x69, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x64, 0x69, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x70, + 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, + 0x64, 0x0a, 0x0c, 0x54, 0x75, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, + 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, + 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, + 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, + 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x76, 0x65, + 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6f, 0x76, 0x65, + 0x72, 0x72, 0x69, 0x64, 0x65, 0x22, 0x57, 0x0a, 0x0d, 0x54, 0x75, 0x73, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x75, 0x70, + 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x70, + 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x86, + 0x01, 0x0a, 0x0c, 0x54, 0x75, 0x73, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, + 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, + 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, + 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, + 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x70, 0x6c, + 0x6f, 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x18, 0x0a, + 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x33, 0x0a, 0x0d, 0x54, 0x75, 0x73, 0x55, 0x70, + 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x70, 0x6c, 0x6f, + 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, + 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x80, 0x01, 0x0a, + 0x14, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, + 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, + 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0x31, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x22, 0x47, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, + 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, + 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, 0xfa, 0x01, 0x0a, 0x0c, + 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, + 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x44, 0x69, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x05, 0x69, 0x73, 0x44, 0x69, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x53, 0x79, 0x6d, 0x6c, + 0x69, 0x6e, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x53, 0x79, 0x6d, + 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x5a, 0x0a, 0x0a, 0x50, 0x72, 0x65, 0x76, + 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, + 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, + 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, + 0x73, 0x69, 0x7a, 0x65, 0x22, 0x5d, 0x0a, 0x0b, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x22, 0xb3, 0x01, 0x0a, 0x09, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, + 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, + 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x06, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x0c, 0x0a, 0x0a, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x74, 0x0a, 0x0e, 0x44, 0x69, 0x72, 0x44, 0x6f, + 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, + 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, + 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, + 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x6c, 0x67, + 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x6c, 0x67, 0x6f, 0x22, 0x2b, 0x0a, + 0x0f, 0x44, 0x69, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x32, 0x9d, 0x05, 0x0a, 0x04, 0x46, + 0x69, 0x6c, 0x65, 0x12, 0x31, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x12, 0x2e, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, + 0x13, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x31, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, + 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x2f, 0x0a, 0x06, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x12, 0x10, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x2f, 0x0a, 0x06, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x12, 0x10, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x2f, 0x0a, 0x06, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x10, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x73, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x2f, 0x0a, 0x06, + 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x10, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x55, + 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x38, 0x0a, + 0x09, 0x54, 0x75, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x13, 0x2e, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x2e, 0x54, 0x75, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, + 0x14, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x54, 0x75, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x38, 0x0a, 0x09, 0x54, 0x75, 0x73, 0x55, 0x70, + 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x13, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x54, 0x75, 0x73, + 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x2e, 0x54, 0x75, 0x73, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x00, 0x12, 0x50, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x52, + 0x65, 0x73, 0x75, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x75, + 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x00, 0x12, 0x32, 0x0a, 0x07, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x12, 0x11, + 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, + 0x71, 0x1a, 0x12, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, + 0x77, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x2f, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x10, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x0b, 0x44, 0x69, 0x72, 0x44, + 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x15, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, + 0x44, 0x69, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x16, + 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x44, 0x69, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, + 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x30, 0x01, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2f, + 0x3b, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/files/files.proto b/api/files/files.proto index b3d0157..741ba05 100644 --- a/api/files/files.proto +++ b/api/files/files.proto @@ -31,10 +31,11 @@ message Items { int64 size = 3; string extension = 4; string modified = 5; - string mode = 6; - bool isDir = 7; - bool isSymlink = 8; - string type = 9; + int64 modTime = 6; + string mode = 7; + bool isDir = 8; + bool isSymlink = 9; + string type = 10; } message Sorting { @@ -52,10 +53,11 @@ message FileListResp { int64 size = 7; string extension = 8; string modified = 9; - string mode = 10; - bool isDir = 11; - bool isSymlink = 12; - string type = 13; + int64 modTime = 10; + string mode = 11; + bool isDir = 12; + bool isSymlink = 13; + string type = 14; } @@ -150,9 +152,10 @@ message FileInfoResp{ string extension = 4; string modified = 5; string mode = 6; - bool isDir = 7; - bool isSymlink = 8; - string type = 9; + int64 modTime = 7; + bool isDir = 8; + bool isSymlink = 9; + string type = 10; } message PreviewReq{ From 584938b537334725d28969b6e152a2362d88142a Mon Sep 17 00:00:00 2001 From: daiyb <570956418@qq.com> Date: Sat, 14 Jun 2025 14:44:12 +0800 Subject: [PATCH 18/18] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=87=AA=E5=AA=92?= =?UTF-8?q?=E4=BD=93=E8=B4=A6=E5=8F=B7ID?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/cast/cast.pb.go | 28 +++++++++++++++++++--------- api/cast/cast.pb.validate.go | 2 ++ 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/api/cast/cast.pb.go b/api/cast/cast.pb.go index 9f19cd2..a88d757 100644 --- a/api/cast/cast.pb.go +++ b/api/cast/cast.pb.go @@ -1471,9 +1471,10 @@ type MediaUserListResp_Info struct { PlatformID uint32 `protobuf:"varint,2,opt,name=platformID,proto3" json:"platformID"` ArtistName string `protobuf:"bytes,3,opt,name=artistName,proto3" json:"artistName"` ArtistPhone string `protobuf:"bytes,4,opt,name=artistPhone,proto3" json:"artistPhone"` - ManagerUserName string `protobuf:"bytes,5,opt,name=managerUserName,proto3" json:"managerUserName"` - ManagerUuid string `protobuf:"bytes,6,opt,name=managerUuid,proto3" json:"managerUuid"` - MediaAccountUuid string `protobuf:"bytes,7,opt,name=mediaAccountUuid,proto3" json:"mediaAccountUuid"` + ArtistUuid string `protobuf:"bytes,5,opt,name=artistUuid,proto3" json:"artistUuid"` + ManagerUserName string `protobuf:"bytes,6,opt,name=managerUserName,proto3" json:"managerUserName"` + ManagerUuid string `protobuf:"bytes,7,opt,name=managerUuid,proto3" json:"managerUuid"` + MediaAccountUuid string `protobuf:"bytes,8,opt,name=mediaAccountUuid,proto3" json:"mediaAccountUuid"` } func (x *MediaUserListResp_Info) Reset() { @@ -1534,6 +1535,13 @@ func (x *MediaUserListResp_Info) GetArtistPhone() string { return "" } +func (x *MediaUserListResp_Info) GetArtistUuid() string { + if x != nil { + return x.ArtistUuid + } + return "" +} + func (x *MediaUserListResp_Info) GetManagerUserName() string { if x != nil { return x.ManagerUserName @@ -1714,13 +1722,13 @@ var file_pb_fiee_cast_proto_rawDesc = []byte{ 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xea, 0x02, 0x0a, 0x11, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x55, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x8a, 0x03, 0x0a, 0x11, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x1a, 0x8c, 0x02, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2a, 0x0a, 0x10, + 0x75, 0x6e, 0x74, 0x1a, 0xac, 0x02, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, @@ -1729,13 +1737,15 @@ var file_pb_fiee_cast_proto_rawDesc = []byte{ 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x61, - 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, - 0x75, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x75, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x75, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x75, 0x69, 0x64, 0x22, 0xfb, 0x02, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x34, 0x0a, 0x0a, diff --git a/api/cast/cast.pb.validate.go b/api/cast/cast.pb.validate.go index 04b0415..9a9f945 100644 --- a/api/cast/cast.pb.validate.go +++ b/api/cast/cast.pb.validate.go @@ -2146,6 +2146,8 @@ func (m *MediaUserListResp_Info) validate(all bool) error { // no validation rules for ArtistPhone + // no validation rules for ArtistUuid + // no validation rules for ManagerUserName // no validation rules for ManagerUuid