// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.25.0 // protoc v3.11.4 // source: mtp2.proto package pb import ( proto "github.com/golang/protobuf/proto" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) // This is a compile-time assertion that a sufficiently up-to-date version // of the legacy proto package is being used. const _ = proto.ProtoPackageIsVersion4 // 消息头 type MessageHead struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FunCode *uint32 `protobuf:"varint,1,opt,name=FunCode" json:"FunCode,omitempty"` // 功能号 RequestID *uint32 `protobuf:"varint,2,opt,name=RequestID" json:"RequestID,omitempty"` // 客户端的流水ID AccountID *uint64 `protobuf:"varint,3,opt,name=AccountID" json:"AccountID,omitempty"` // 账号ID AccessID *uint32 `protobuf:"varint,4,opt,name=AccessID" json:"AccessID,omitempty"` //二级分配给客户端的接入ID ClientTime *int64 `protobuf:"varint,5,opt,name=ClientTime" json:"ClientTime,omitempty"` //消息发起时间 GoodsID *uint32 `protobuf:"varint,6,opt,name=GoodsID" json:"GoodsID,omitempty"` //商品ID UUID *string `protobuf:"bytes,7,opt,name=UUID" json:"UUID,omitempty"` // 消息唯一ID MarketID *uint32 `protobuf:"varint,8,opt,name=MarketID" json:"MarketID,omitempty"` // 所属市场ID UserID *uint32 `protobuf:"varint,9,opt,name=UserID" json:"UserID,omitempty"` // 用户ID ResponseTopic *string `protobuf:"bytes,10,opt,name=ResponseTopic" json:"ResponseTopic,omitempty"` // 应答消息所属主题 AccountID2 *uint64 `protobuf:"varint,11,opt,name=AccountID2" json:"AccountID2,omitempty"` // 账号ID-币币交易使用 } func (x *MessageHead) Reset() { *x = MessageHead{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MessageHead) String() string { return protoimpl.X.MessageStringOf(x) } func (*MessageHead) ProtoMessage() {} func (x *MessageHead) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 MessageHead.ProtoReflect.Descriptor instead. func (*MessageHead) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{0} } func (x *MessageHead) GetFunCode() uint32 { if x != nil && x.FunCode != nil { return *x.FunCode } return 0 } func (x *MessageHead) GetRequestID() uint32 { if x != nil && x.RequestID != nil { return *x.RequestID } return 0 } func (x *MessageHead) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *MessageHead) GetAccessID() uint32 { if x != nil && x.AccessID != nil { return *x.AccessID } return 0 } func (x *MessageHead) GetClientTime() int64 { if x != nil && x.ClientTime != nil { return *x.ClientTime } return 0 } func (x *MessageHead) GetGoodsID() uint32 { if x != nil && x.GoodsID != nil { return *x.GoodsID } return 0 } func (x *MessageHead) GetUUID() string { if x != nil && x.UUID != nil { return *x.UUID } return "" } func (x *MessageHead) GetMarketID() uint32 { if x != nil && x.MarketID != nil { return *x.MarketID } return 0 } func (x *MessageHead) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *MessageHead) GetResponseTopic() string { if x != nil && x.ResponseTopic != nil { return *x.ResponseTopic } return "" } func (x *MessageHead) GetAccountID2() uint64 { if x != nil && x.AccountID2 != nil { return *x.AccountID2 } return 0 } // 公共通知消息头 type NotifyHead struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NtfMode *int32 `protobuf:"varint,1,opt,name=NtfMode" json:"NtfMode,omitempty"` // 消息通知模式(单播、组播、广播) ExcludeAcctIDs []uint32 `protobuf:"varint,2,rep,name=ExcludeAcctIDs" json:"ExcludeAcctIDs,omitempty"` // 排除账号集合(首先过滤此集合帐号) ExchIDs []uint32 `protobuf:"varint,3,rep,name=ExchIDs" json:"ExchIDs,omitempty"` // 目标交易所集合(若匹配所属交易所,推送) MemberIDs []uint32 `protobuf:"varint,4,rep,name=MemberIDs" json:"MemberIDs,omitempty"` // 目标会员集合(若匹配所属会员,推送) AccountIDs []uint64 `protobuf:"varint,5,rep,name=AccountIDs" json:"AccountIDs,omitempty"` // 目标账号集合(以上均不匹配时,最后检查此集合) } func (x *NotifyHead) Reset() { *x = NotifyHead{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NotifyHead) String() string { return protoimpl.X.MessageStringOf(x) } func (*NotifyHead) ProtoMessage() {} func (x *NotifyHead) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 NotifyHead.ProtoReflect.Descriptor instead. func (*NotifyHead) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{1} } func (x *NotifyHead) GetNtfMode() int32 { if x != nil && x.NtfMode != nil { return *x.NtfMode } return 0 } func (x *NotifyHead) GetExcludeAcctIDs() []uint32 { if x != nil { return x.ExcludeAcctIDs } return nil } func (x *NotifyHead) GetExchIDs() []uint32 { if x != nil { return x.ExchIDs } return nil } func (x *NotifyHead) GetMemberIDs() []uint32 { if x != nil { return x.MemberIDs } return nil } func (x *NotifyHead) GetAccountIDs() []uint64 { if x != nil { return x.AccountIDs } return nil } // 资金变化通知 type MoneyChangedNtf struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 NtfHeader *NotifyHead `protobuf:"bytes,2,opt,name=NtfHeader" json:"NtfHeader,omitempty"` // NotifyHead 公共消息头 AccountID *uint64 `protobuf:"varint,3,opt,name=AccountID" json:"AccountID,omitempty"` // uint64 交易账号 } func (x *MoneyChangedNtf) Reset() { *x = MoneyChangedNtf{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MoneyChangedNtf) String() string { return protoimpl.X.MessageStringOf(x) } func (*MoneyChangedNtf) ProtoMessage() {} func (x *MoneyChangedNtf) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 MoneyChangedNtf.ProtoReflect.Descriptor instead. func (*MoneyChangedNtf) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{2} } func (x *MoneyChangedNtf) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *MoneyChangedNtf) GetNtfHeader() *NotifyHead { if x != nil { return x.NtfHeader } return nil } func (x *MoneyChangedNtf) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } // 平仓单平仓明细 type ArrayCloseInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ClosedOrderID *uint64 `protobuf:"varint,1,opt,name=ClosedOrderID" json:"ClosedOrderID,omitempty"` // 被平持仓单ID ClosedQty *uint64 `protobuf:"varint,2,opt,name=ClosedQty" json:"ClosedQty,omitempty"` // 被平仓数量 ClosePL *float64 `protobuf:"fixed64,3,opt,name=ClosePL" json:"ClosePL,omitempty"` // 平仓盈亏 RlsUsedMargin *float64 `protobuf:"fixed64,4,opt,name=RlsUsedMargin" json:"RlsUsedMargin,omitempty"` // 释放的占用保证金 TradeCharge *float64 `protobuf:"fixed64,5,opt,name=TradeCharge" json:"TradeCharge,omitempty"` // 平仓手续费 WareHouseCharge *float64 `protobuf:"fixed64,6,opt,name=WareHouseCharge" json:"WareHouseCharge,omitempty"` // 仓单服务费 TradeAmount *float64 `protobuf:"fixed64,7,opt,name=TradeAmount" json:"TradeAmount,omitempty"` // 成交金额 OpenTime *string `protobuf:"bytes,8,opt,name=OpenTime" json:"OpenTime,omitempty"` // 开仓时间(对冲接口用) OpenPrice *float64 `protobuf:"fixed64,9,opt,name=OpenPrice" json:"OpenPrice,omitempty"` // 开仓价格(对冲接口用) MatchAccountID *uint64 `protobuf:"varint,10,opt,name=MatchAccountID" json:"MatchAccountID,omitempty"` // 对手方资金账号代码 RealClosePL *float64 `protobuf:"fixed64,11,opt,name=RealClosePL" json:"RealClosePL,omitempty"` // 实际盈亏 } func (x *ArrayCloseInfo) Reset() { *x = ArrayCloseInfo{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ArrayCloseInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ArrayCloseInfo) ProtoMessage() {} func (x *ArrayCloseInfo) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 ArrayCloseInfo.ProtoReflect.Descriptor instead. func (*ArrayCloseInfo) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{3} } func (x *ArrayCloseInfo) GetClosedOrderID() uint64 { if x != nil && x.ClosedOrderID != nil { return *x.ClosedOrderID } return 0 } func (x *ArrayCloseInfo) GetClosedQty() uint64 { if x != nil && x.ClosedQty != nil { return *x.ClosedQty } return 0 } func (x *ArrayCloseInfo) GetClosePL() float64 { if x != nil && x.ClosePL != nil { return *x.ClosePL } return 0 } func (x *ArrayCloseInfo) GetRlsUsedMargin() float64 { if x != nil && x.RlsUsedMargin != nil { return *x.RlsUsedMargin } return 0 } func (x *ArrayCloseInfo) GetTradeCharge() float64 { if x != nil && x.TradeCharge != nil { return *x.TradeCharge } return 0 } func (x *ArrayCloseInfo) GetWareHouseCharge() float64 { if x != nil && x.WareHouseCharge != nil { return *x.WareHouseCharge } return 0 } func (x *ArrayCloseInfo) GetTradeAmount() float64 { if x != nil && x.TradeAmount != nil { return *x.TradeAmount } return 0 } func (x *ArrayCloseInfo) GetOpenTime() string { if x != nil && x.OpenTime != nil { return *x.OpenTime } return "" } func (x *ArrayCloseInfo) GetOpenPrice() float64 { if x != nil && x.OpenPrice != nil { return *x.OpenPrice } return 0 } func (x *ArrayCloseInfo) GetMatchAccountID() uint64 { if x != nil && x.MatchAccountID != nil { return *x.MatchAccountID } return 0 } func (x *ArrayCloseInfo) GetRealClosePL() float64 { if x != nil && x.RealClosePL != nil { return *x.RealClosePL } return 0 } // 委托单成交通知 type OrderDealedNtf struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 NtfHeader *NotifyHead `protobuf:"bytes,2,opt,name=NtfHeader" json:"NtfHeader,omitempty"` // NotifyHead 公共消息头 OrderID *uint64 `protobuf:"varint,3,opt,name=OrderID" json:"OrderID,omitempty"` // uint64 一级生成的订单号 ClientSerialNo *string `protobuf:"bytes,4,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // string 客户端流水号 GoodsID *uint32 `protobuf:"varint,5,opt,name=GoodsID" json:"GoodsID,omitempty"` // uint32 原始委托商品代码 TradeQty *uint64 `protobuf:"varint,6,opt,name=TradeQty" json:"TradeQty,omitempty"` // uint64 成交数量 Amount *float64 `protobuf:"fixed64,7,opt,name=Amount" json:"Amount,omitempty"` // double 成交金额 ActiveQty *uint64 `protobuf:"varint,8,opt,name=ActiveQty" json:"ActiveQty,omitempty"` // uint64 激活数量,即剩余数量 OrderStatus *uint32 `protobuf:"varint,9,opt,name=OrderStatus" json:"OrderStatus,omitempty"` // uint32 单据状态 TradeID *uint64 `protobuf:"varint,10,opt,name=TradeID" json:"TradeID,omitempty"` // uint64 成交ID AccountID *uint64 `protobuf:"varint,11,opt,name=AccountID" json:"AccountID,omitempty"` // uint64 资金账号代码 TradePrice *float64 `protobuf:"fixed64,12,opt,name=TradePrice" json:"TradePrice,omitempty"` // double 成交价格 BuyOrSell *uint32 `protobuf:"varint,13,opt,name=BuyOrSell" json:"BuyOrSell,omitempty"` // uint32 买卖方向 OrderQty *uint64 `protobuf:"varint,14,opt,name=OrderQty" json:"OrderQty,omitempty"` // uint64 委托数量 OrderType *uint32 `protobuf:"varint,15,opt,name=OrderType" json:"OrderType,omitempty"` // uint32 订单类型 TradeTime *string `protobuf:"bytes,16,opt,name=TradeTime" json:"TradeTime,omitempty"` // string 成交时间 CloseInfos []*ArrayCloseInfo `protobuf:"bytes,17,rep,name=CloseInfos" json:"CloseInfos,omitempty"` // ArrayCloseInfo 平仓信息 SpecialAccount *uint32 `protobuf:"varint,18,opt,name=SpecialAccount" json:"SpecialAccount,omitempty"` // uint32 特别会员账号 TradeCharge *float64 `protobuf:"fixed64,19,opt,name=TradeCharge" json:"TradeCharge,omitempty"` // double 成交手续费 WareHouseCharge *float64 `protobuf:"fixed64,20,opt,name=WareHouseCharge" json:"WareHouseCharge,omitempty"` // double 仓单服务费 UsedMargin *float64 `protobuf:"fixed64,21,opt,name=UsedMargin" json:"UsedMargin,omitempty"` // double 占用保证金 OperatorID *uint32 `protobuf:"varint,22,opt,name=OperatorID" json:"OperatorID,omitempty"` // uint32 操作员账号ID MemberID *uint32 `protobuf:"varint,23,opt,name=MemberID" json:"MemberID,omitempty"` // uint32 会员账号,会员系统平仓使用 MatchAccountID *uint64 `protobuf:"varint,24,opt,name=MatchAccountID" json:"MatchAccountID,omitempty"` // uint64 对手方资金账号代码 BuildType *uint32 `protobuf:"varint,25,opt,name=BuildType" json:"BuildType,omitempty"` // uint32 下单类型 CloseType *uint32 `protobuf:"varint,26,opt,name=CloseType" json:"CloseType,omitempty"` // uint32 平仓类型 } func (x *OrderDealedNtf) Reset() { *x = OrderDealedNtf{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OrderDealedNtf) String() string { return protoimpl.X.MessageStringOf(x) } func (*OrderDealedNtf) ProtoMessage() {} func (x *OrderDealedNtf) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 OrderDealedNtf.ProtoReflect.Descriptor instead. func (*OrderDealedNtf) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{4} } func (x *OrderDealedNtf) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *OrderDealedNtf) GetNtfHeader() *NotifyHead { if x != nil { return x.NtfHeader } return nil } func (x *OrderDealedNtf) GetOrderID() uint64 { if x != nil && x.OrderID != nil { return *x.OrderID } return 0 } func (x *OrderDealedNtf) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } func (x *OrderDealedNtf) GetGoodsID() uint32 { if x != nil && x.GoodsID != nil { return *x.GoodsID } return 0 } func (x *OrderDealedNtf) GetTradeQty() uint64 { if x != nil && x.TradeQty != nil { return *x.TradeQty } return 0 } func (x *OrderDealedNtf) GetAmount() float64 { if x != nil && x.Amount != nil { return *x.Amount } return 0 } func (x *OrderDealedNtf) GetActiveQty() uint64 { if x != nil && x.ActiveQty != nil { return *x.ActiveQty } return 0 } func (x *OrderDealedNtf) GetOrderStatus() uint32 { if x != nil && x.OrderStatus != nil { return *x.OrderStatus } return 0 } func (x *OrderDealedNtf) GetTradeID() uint64 { if x != nil && x.TradeID != nil { return *x.TradeID } return 0 } func (x *OrderDealedNtf) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *OrderDealedNtf) GetTradePrice() float64 { if x != nil && x.TradePrice != nil { return *x.TradePrice } return 0 } func (x *OrderDealedNtf) GetBuyOrSell() uint32 { if x != nil && x.BuyOrSell != nil { return *x.BuyOrSell } return 0 } func (x *OrderDealedNtf) GetOrderQty() uint64 { if x != nil && x.OrderQty != nil { return *x.OrderQty } return 0 } func (x *OrderDealedNtf) GetOrderType() uint32 { if x != nil && x.OrderType != nil { return *x.OrderType } return 0 } func (x *OrderDealedNtf) GetTradeTime() string { if x != nil && x.TradeTime != nil { return *x.TradeTime } return "" } func (x *OrderDealedNtf) GetCloseInfos() []*ArrayCloseInfo { if x != nil { return x.CloseInfos } return nil } func (x *OrderDealedNtf) GetSpecialAccount() uint32 { if x != nil && x.SpecialAccount != nil { return *x.SpecialAccount } return 0 } func (x *OrderDealedNtf) GetTradeCharge() float64 { if x != nil && x.TradeCharge != nil { return *x.TradeCharge } return 0 } func (x *OrderDealedNtf) GetWareHouseCharge() float64 { if x != nil && x.WareHouseCharge != nil { return *x.WareHouseCharge } return 0 } func (x *OrderDealedNtf) GetUsedMargin() float64 { if x != nil && x.UsedMargin != nil { return *x.UsedMargin } return 0 } func (x *OrderDealedNtf) GetOperatorID() uint32 { if x != nil && x.OperatorID != nil { return *x.OperatorID } return 0 } func (x *OrderDealedNtf) GetMemberID() uint32 { if x != nil && x.MemberID != nil { return *x.MemberID } return 0 } func (x *OrderDealedNtf) GetMatchAccountID() uint64 { if x != nil && x.MatchAccountID != nil { return *x.MatchAccountID } return 0 } func (x *OrderDealedNtf) GetBuildType() uint32 { if x != nil && x.BuildType != nil { return *x.BuildType } return 0 } func (x *OrderDealedNtf) GetCloseType() uint32 { if x != nil && x.CloseType != nil { return *x.CloseType } return 0 } // 市场状态变更通知 type MarketStatusChangeNtf struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 NtfHeader *NotifyHead `protobuf:"bytes,2,opt,name=NtfHeader" json:"NtfHeader,omitempty"` // NotifyHead 公共消息头 MarketID *uint32 `protobuf:"varint,3,opt,name=MarketID" json:"MarketID,omitempty"` // uint32 市场ID Status *uint32 `protobuf:"varint,4,opt,name=Status" json:"Status,omitempty"` // uint32 状态 StepType *uint32 `protobuf:"varint,5,opt,name=StepType" json:"StepType,omitempty"` // uint32 阶段 TradeDay *string `protobuf:"bytes,6,opt,name=TradeDay" json:"TradeDay,omitempty"` // string 交易日 NotifyTime *string `protobuf:"bytes,7,opt,name=NotifyTime" json:"NotifyTime,omitempty"` // string 通知发送时间 } func (x *MarketStatusChangeNtf) Reset() { *x = MarketStatusChangeNtf{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MarketStatusChangeNtf) String() string { return protoimpl.X.MessageStringOf(x) } func (*MarketStatusChangeNtf) ProtoMessage() {} func (x *MarketStatusChangeNtf) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 MarketStatusChangeNtf.ProtoReflect.Descriptor instead. func (*MarketStatusChangeNtf) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{5} } func (x *MarketStatusChangeNtf) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *MarketStatusChangeNtf) GetNtfHeader() *NotifyHead { if x != nil { return x.NtfHeader } return nil } func (x *MarketStatusChangeNtf) GetMarketID() uint32 { if x != nil && x.MarketID != nil { return *x.MarketID } return 0 } func (x *MarketStatusChangeNtf) GetStatus() uint32 { if x != nil && x.Status != nil { return *x.Status } return 0 } func (x *MarketStatusChangeNtf) GetStepType() uint32 { if x != nil && x.StepType != nil { return *x.StepType } return 0 } func (x *MarketStatusChangeNtf) GetTradeDay() string { if x != nil && x.TradeDay != nil { return *x.TradeDay } return "" } func (x *MarketStatusChangeNtf) GetNotifyTime() string { if x != nil && x.NotifyTime != nil { return *x.NotifyTime } return "" } // 挂牌委托变更广播通知 type ListingOrderChangeNtf struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 NtfHeader *NotifyHead `protobuf:"bytes,2,opt,name=NtfHeader" json:"NtfHeader,omitempty"` // NotifyHead 公共消息头 OrderID *uint64 `protobuf:"varint,3,opt,name=OrderID" json:"OrderID,omitempty"` // uint64 委托单号 OrderQty *uint64 `protobuf:"varint,4,opt,name=OrderQty" json:"OrderQty,omitempty"` // uint64 委托数量 TradeQty *uint64 `protobuf:"varint,5,opt,name=TradeQty" json:"TradeQty,omitempty"` // uint64 成交数量 CancelQty *uint64 `protobuf:"varint,6,opt,name=CancelQty" json:"CancelQty,omitempty"` // uint64 撤销数量 } func (x *ListingOrderChangeNtf) Reset() { *x = ListingOrderChangeNtf{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListingOrderChangeNtf) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListingOrderChangeNtf) ProtoMessage() {} func (x *ListingOrderChangeNtf) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 ListingOrderChangeNtf.ProtoReflect.Descriptor instead. func (*ListingOrderChangeNtf) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{6} } func (x *ListingOrderChangeNtf) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *ListingOrderChangeNtf) GetNtfHeader() *NotifyHead { if x != nil { return x.NtfHeader } return nil } func (x *ListingOrderChangeNtf) GetOrderID() uint64 { if x != nil && x.OrderID != nil { return *x.OrderID } return 0 } func (x *ListingOrderChangeNtf) GetOrderQty() uint64 { if x != nil && x.OrderQty != nil { return *x.OrderQty } return 0 } func (x *ListingOrderChangeNtf) GetTradeQty() uint64 { if x != nil && x.TradeQty != nil { return *x.TradeQty } return 0 } func (x *ListingOrderChangeNtf) GetCancelQty() uint64 { if x != nil && x.CancelQty != nil { return *x.CancelQty } return 0 } // 文件列表 type FileDetail struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FileName *string `protobuf:"bytes,1,opt,name=FileName" json:"FileName,omitempty"` // 文件名 FilePath *string `protobuf:"bytes,2,opt,name=FilePath" json:"FilePath,omitempty"` // 文件地址 } func (x *FileDetail) Reset() { *x = FileDetail{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FileDetail) String() string { return protoimpl.X.MessageStringOf(x) } func (*FileDetail) ProtoMessage() {} func (x *FileDetail) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FileDetail.ProtoReflect.Descriptor instead. func (*FileDetail) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{7} } func (x *FileDetail) GetFileName() string { if x != nil && x.FileName != nil { return *x.FileName } return "" } func (x *FileDetail) GetFilePath() string { if x != nil && x.FilePath != nil { return *x.FilePath } return "" } // 修改账户密码请求 type ModifyPwdReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` ModifyPwdType *uint32 `protobuf:"varint,2,opt,name=ModifyPwdType" json:"ModifyPwdType,omitempty"` // 修改密码类型1:登陆密码2:资金账户密码 ModifyPwdID *uint64 `protobuf:"varint,3,opt,name=ModifyPwdID" json:"ModifyPwdID,omitempty"` // 被修改的ID(ModifyType=1:LoginIDModifyType=2:AccountID) OldPwd *string `protobuf:"bytes,4,opt,name=OldPwd" json:"OldPwd,omitempty"` // 旧资金密码 NewPwd *string `protobuf:"bytes,5,opt,name=NewPwd" json:"NewPwd,omitempty"` // 新资金密码 } func (x *ModifyPwdReq) Reset() { *x = ModifyPwdReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ModifyPwdReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*ModifyPwdReq) ProtoMessage() {} func (x *ModifyPwdReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ModifyPwdReq.ProtoReflect.Descriptor instead. func (*ModifyPwdReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{8} } func (x *ModifyPwdReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *ModifyPwdReq) GetModifyPwdType() uint32 { if x != nil && x.ModifyPwdType != nil { return *x.ModifyPwdType } return 0 } func (x *ModifyPwdReq) GetModifyPwdID() uint64 { if x != nil && x.ModifyPwdID != nil { return *x.ModifyPwdID } return 0 } func (x *ModifyPwdReq) GetOldPwd() string { if x != nil && x.OldPwd != nil { return *x.OldPwd } return "" } func (x *ModifyPwdReq) GetNewPwd() string { if x != nil && x.NewPwd != nil { return *x.NewPwd } return "" } // 修改账户密码应答 type ModifyPwdRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 } func (x *ModifyPwdRsp) Reset() { *x = ModifyPwdRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ModifyPwdRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*ModifyPwdRsp) ProtoMessage() {} func (x *ModifyPwdRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ModifyPwdRsp.ProtoReflect.Descriptor instead. func (*ModifyPwdRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{9} } func (x *ModifyPwdRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *ModifyPwdRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *ModifyPwdRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } // 新增修改收货地址请求 type UserReceiveInfoReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` ClientSerialID *uint64 `protobuf:"varint,2,opt,name=ClientSerialID" json:"ClientSerialID,omitempty"` // 客户端唯一ID UserID *uint32 `protobuf:"varint,3,opt,name=UserID" json:"UserID,omitempty"` // 用户ID ReceiverName *string `protobuf:"bytes,4,opt,name=ReceiverName" json:"ReceiverName,omitempty"` // 提货人姓名 CardTypeID *uint32 `protobuf:"varint,5,opt,name=CardTypeID" json:"CardTypeID,omitempty"` // 证件类型 CardNum *string `protobuf:"bytes,6,opt,name=CardNum" json:"CardNum,omitempty"` // 证件号码 PhoneNum *string `protobuf:"bytes,7,opt,name=PhoneNum" json:"PhoneNum,omitempty"` // 提货人联系方式 CountryID *uint32 `protobuf:"varint,8,opt,name=CountryID" json:"CountryID,omitempty"` // 国家 ProvinceID *uint32 `protobuf:"varint,9,opt,name=ProvinceID" json:"ProvinceID,omitempty"` // 省 CityID *uint32 `protobuf:"varint,10,opt,name=CityID" json:"CityID,omitempty"` // 市 DistrictID *uint32 `protobuf:"varint,11,opt,name=DistrictID" json:"DistrictID,omitempty"` // 地区 Address *string `protobuf:"bytes,12,opt,name=Address" json:"Address,omitempty"` // 提货人详细地址 TakeRemark *string `protobuf:"bytes,13,opt,name=TakeRemark" json:"TakeRemark,omitempty"` // 提货备注 ReceiveInfoId *uint64 `protobuf:"varint,14,opt,name=ReceiveInfoId" json:"ReceiveInfoId,omitempty"` // 修改时填收货地址id } func (x *UserReceiveInfoReq) Reset() { *x = UserReceiveInfoReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserReceiveInfoReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserReceiveInfoReq) ProtoMessage() {} func (x *UserReceiveInfoReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UserReceiveInfoReq.ProtoReflect.Descriptor instead. func (*UserReceiveInfoReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{10} } func (x *UserReceiveInfoReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *UserReceiveInfoReq) GetClientSerialID() uint64 { if x != nil && x.ClientSerialID != nil { return *x.ClientSerialID } return 0 } func (x *UserReceiveInfoReq) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *UserReceiveInfoReq) GetReceiverName() string { if x != nil && x.ReceiverName != nil { return *x.ReceiverName } return "" } func (x *UserReceiveInfoReq) GetCardTypeID() uint32 { if x != nil && x.CardTypeID != nil { return *x.CardTypeID } return 0 } func (x *UserReceiveInfoReq) GetCardNum() string { if x != nil && x.CardNum != nil { return *x.CardNum } return "" } func (x *UserReceiveInfoReq) GetPhoneNum() string { if x != nil && x.PhoneNum != nil { return *x.PhoneNum } return "" } func (x *UserReceiveInfoReq) GetCountryID() uint32 { if x != nil && x.CountryID != nil { return *x.CountryID } return 0 } func (x *UserReceiveInfoReq) GetProvinceID() uint32 { if x != nil && x.ProvinceID != nil { return *x.ProvinceID } return 0 } func (x *UserReceiveInfoReq) GetCityID() uint32 { if x != nil && x.CityID != nil { return *x.CityID } return 0 } func (x *UserReceiveInfoReq) GetDistrictID() uint32 { if x != nil && x.DistrictID != nil { return *x.DistrictID } return 0 } func (x *UserReceiveInfoReq) GetAddress() string { if x != nil && x.Address != nil { return *x.Address } return "" } func (x *UserReceiveInfoReq) GetTakeRemark() string { if x != nil && x.TakeRemark != nil { return *x.TakeRemark } return "" } func (x *UserReceiveInfoReq) GetReceiveInfoId() uint64 { if x != nil && x.ReceiveInfoId != nil { return *x.ReceiveInfoId } return 0 } // 新增修改收货地址请求响应 type UserReceiveInfoRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 ReceiveInfoId *uint64 `protobuf:"varint,4,opt,name=ReceiveInfoId" json:"ReceiveInfoId,omitempty"` // 响应返回autoid } func (x *UserReceiveInfoRsp) Reset() { *x = UserReceiveInfoRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserReceiveInfoRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserReceiveInfoRsp) ProtoMessage() {} func (x *UserReceiveInfoRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UserReceiveInfoRsp.ProtoReflect.Descriptor instead. func (*UserReceiveInfoRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{11} } func (x *UserReceiveInfoRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *UserReceiveInfoRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *UserReceiveInfoRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *UserReceiveInfoRsp) GetReceiveInfoId() uint64 { if x != nil && x.ReceiveInfoId != nil { return *x.ReceiveInfoId } return 0 } // 删除收货地址请求 type DelUserReceiveInfoReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` ReceiveInfoId *uint64 `protobuf:"varint,2,opt,name=ReceiveInfoId" json:"ReceiveInfoId,omitempty"` // 收货地址id } func (x *DelUserReceiveInfoReq) Reset() { *x = DelUserReceiveInfoReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DelUserReceiveInfoReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*DelUserReceiveInfoReq) ProtoMessage() {} func (x *DelUserReceiveInfoReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DelUserReceiveInfoReq.ProtoReflect.Descriptor instead. func (*DelUserReceiveInfoReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{12} } func (x *DelUserReceiveInfoReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *DelUserReceiveInfoReq) GetReceiveInfoId() uint64 { if x != nil && x.ReceiveInfoId != nil { return *x.ReceiveInfoId } return 0 } // 删除收货地址请求响应 type DelUserReceiveInfoRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 } func (x *DelUserReceiveInfoRsp) Reset() { *x = DelUserReceiveInfoRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DelUserReceiveInfoRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*DelUserReceiveInfoRsp) ProtoMessage() {} func (x *DelUserReceiveInfoRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DelUserReceiveInfoRsp.ProtoReflect.Descriptor instead. func (*DelUserReceiveInfoRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{13} } func (x *DelUserReceiveInfoRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *DelUserReceiveInfoRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *DelUserReceiveInfoRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } // 设置默认收货地址请求 type UserReceiveIsDefaultReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` AutoId *uint64 `protobuf:"varint,2,opt,name=AutoId" json:"AutoId,omitempty"` // 提货地址ID UserId *uint64 `protobuf:"varint,3,opt,name=UserId" json:"UserId,omitempty"` // 用户ID } func (x *UserReceiveIsDefaultReq) Reset() { *x = UserReceiveIsDefaultReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserReceiveIsDefaultReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserReceiveIsDefaultReq) ProtoMessage() {} func (x *UserReceiveIsDefaultReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UserReceiveIsDefaultReq.ProtoReflect.Descriptor instead. func (*UserReceiveIsDefaultReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{14} } func (x *UserReceiveIsDefaultReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *UserReceiveIsDefaultReq) GetAutoId() uint64 { if x != nil && x.AutoId != nil { return *x.AutoId } return 0 } func (x *UserReceiveIsDefaultReq) GetUserId() uint64 { if x != nil && x.UserId != nil { return *x.UserId } return 0 } // 设置默认收货地址应答 type UserReceiveIsDefaultRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 AutoId *uint64 `protobuf:"varint,4,opt,name=AutoId" json:"AutoId,omitempty"` // 提货地址ID } func (x *UserReceiveIsDefaultRsp) Reset() { *x = UserReceiveIsDefaultRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserReceiveIsDefaultRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserReceiveIsDefaultRsp) ProtoMessage() {} func (x *UserReceiveIsDefaultRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UserReceiveIsDefaultRsp.ProtoReflect.Descriptor instead. func (*UserReceiveIsDefaultRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{15} } func (x *UserReceiveIsDefaultRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *UserReceiveIsDefaultRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *UserReceiveIsDefaultRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *UserReceiveIsDefaultRsp) GetAutoId() uint64 { if x != nil && x.AutoId != nil { return *x.AutoId } return 0 } // 新增修改用户发票信息请求 type UserReceiptInfoReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` ClientSerialID *uint64 `protobuf:"varint,2,opt,name=ClientSerialID" json:"ClientSerialID,omitempty"` // 客户端唯一ID UserID *uint32 `protobuf:"varint,3,opt,name=UserID" json:"UserID,omitempty"` // 用户ID UserName *string `protobuf:"bytes,4,opt,name=UserName" json:"UserName,omitempty"` // 发票抬头姓名 ReceiptType *uint32 `protobuf:"varint,5,opt,name=ReceiptType" json:"ReceiptType,omitempty"` // 发票类型 TaxpayerID *string `protobuf:"bytes,6,opt,name=TaxpayerID" json:"TaxpayerID,omitempty"` // 纳税人识别号 ContactInfo *string `protobuf:"bytes,7,opt,name=ContactInfo" json:"ContactInfo,omitempty"` // 联系方式 ReceiptInfoId *uint64 `protobuf:"varint,8,opt,name=ReceiptInfoId" json:"ReceiptInfoId,omitempty"` // 修改时填用户发票信息id ReceiptBank *string `protobuf:"bytes,9,opt,name=ReceiptBank" json:"ReceiptBank,omitempty"` // 发票开户行[发票类型:企业] ReceiptAccount *string `protobuf:"bytes,10,opt,name=ReceiptAccount" json:"ReceiptAccount,omitempty"` // 发票帐号[发票类型:企业] Address *string `protobuf:"bytes,11,opt,name=Address" json:"Address,omitempty"` // 地址[发票类型:企业] IDNum *string `protobuf:"bytes,12,opt,name=IDNum" json:"IDNum,omitempty"` // 身份证号码[发票类型:个人] Email *string `protobuf:"bytes,13,opt,name=Email" json:"Email,omitempty"` // 收件邮箱 } func (x *UserReceiptInfoReq) Reset() { *x = UserReceiptInfoReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserReceiptInfoReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserReceiptInfoReq) ProtoMessage() {} func (x *UserReceiptInfoReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UserReceiptInfoReq.ProtoReflect.Descriptor instead. func (*UserReceiptInfoReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{16} } func (x *UserReceiptInfoReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *UserReceiptInfoReq) GetClientSerialID() uint64 { if x != nil && x.ClientSerialID != nil { return *x.ClientSerialID } return 0 } func (x *UserReceiptInfoReq) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *UserReceiptInfoReq) GetUserName() string { if x != nil && x.UserName != nil { return *x.UserName } return "" } func (x *UserReceiptInfoReq) GetReceiptType() uint32 { if x != nil && x.ReceiptType != nil { return *x.ReceiptType } return 0 } func (x *UserReceiptInfoReq) GetTaxpayerID() string { if x != nil && x.TaxpayerID != nil { return *x.TaxpayerID } return "" } func (x *UserReceiptInfoReq) GetContactInfo() string { if x != nil && x.ContactInfo != nil { return *x.ContactInfo } return "" } func (x *UserReceiptInfoReq) GetReceiptInfoId() uint64 { if x != nil && x.ReceiptInfoId != nil { return *x.ReceiptInfoId } return 0 } func (x *UserReceiptInfoReq) GetReceiptBank() string { if x != nil && x.ReceiptBank != nil { return *x.ReceiptBank } return "" } func (x *UserReceiptInfoReq) GetReceiptAccount() string { if x != nil && x.ReceiptAccount != nil { return *x.ReceiptAccount } return "" } func (x *UserReceiptInfoReq) GetAddress() string { if x != nil && x.Address != nil { return *x.Address } return "" } func (x *UserReceiptInfoReq) GetIDNum() string { if x != nil && x.IDNum != nil { return *x.IDNum } return "" } func (x *UserReceiptInfoReq) GetEmail() string { if x != nil && x.Email != nil { return *x.Email } return "" } // 新增修改用户发票信息请求响应 type UserReceiptInfoRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 ReceiptInfoId *uint64 `protobuf:"varint,4,opt,name=ReceiptInfoId" json:"ReceiptInfoId,omitempty"` // 响应返回发票信息id } func (x *UserReceiptInfoRsp) Reset() { *x = UserReceiptInfoRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserReceiptInfoRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserReceiptInfoRsp) ProtoMessage() {} func (x *UserReceiptInfoRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UserReceiptInfoRsp.ProtoReflect.Descriptor instead. func (*UserReceiptInfoRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{17} } func (x *UserReceiptInfoRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *UserReceiptInfoRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *UserReceiptInfoRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *UserReceiptInfoRsp) GetReceiptInfoId() uint64 { if x != nil && x.ReceiptInfoId != nil { return *x.ReceiptInfoId } return 0 } // 删除用户发票信息请求 type DelUserReceiptInfoReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` ReceiptInfoId *uint64 `protobuf:"varint,2,opt,name=ReceiptInfoId" json:"ReceiptInfoId,omitempty"` // 删除发票信息id } func (x *DelUserReceiptInfoReq) Reset() { *x = DelUserReceiptInfoReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DelUserReceiptInfoReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*DelUserReceiptInfoReq) ProtoMessage() {} func (x *DelUserReceiptInfoReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DelUserReceiptInfoReq.ProtoReflect.Descriptor instead. func (*DelUserReceiptInfoReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{18} } func (x *DelUserReceiptInfoReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *DelUserReceiptInfoReq) GetReceiptInfoId() uint64 { if x != nil && x.ReceiptInfoId != nil { return *x.ReceiptInfoId } return 0 } // 删除用户发票信息请求响应 type DelUserReceiptInfoRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 } func (x *DelUserReceiptInfoRsp) Reset() { *x = DelUserReceiptInfoRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DelUserReceiptInfoRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*DelUserReceiptInfoRsp) ProtoMessage() {} func (x *DelUserReceiptInfoRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DelUserReceiptInfoRsp.ProtoReflect.Descriptor instead. func (*DelUserReceiptInfoRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{19} } func (x *DelUserReceiptInfoRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *DelUserReceiptInfoRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *DelUserReceiptInfoRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } // 签约请求 type T2BBankSignReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` ExtOperatorID *uint64 `protobuf:"varint,2,req,name=ExtOperatorID" json:"ExtOperatorID,omitempty"` // 外部操作流水号 ExchId *string `protobuf:"bytes,3,opt,name=ExchId" json:"ExchId,omitempty"` // 交易所编号 TradeDate *string `protobuf:"bytes,4,opt,name=TradeDate" json:"TradeDate,omitempty"` // 交易所业务日期 ExchTicket *string `protobuf:"bytes,5,opt,name=ExchTicket" json:"ExchTicket,omitempty"` // 交易所流水号 AccountCode *string `protobuf:"bytes,6,req,name=AccountCode" json:"AccountCode,omitempty"` // 账户 AccountName *string `protobuf:"bytes,7,req,name=AccountName" json:"AccountName,omitempty"` // 客户名称 CusBankID *string `protobuf:"bytes,8,req,name=CusBankID" json:"CusBankID,omitempty"` // 托管银行编号 OperateType *int32 `protobuf:"varint,9,req,name=OperateType" json:"OperateType,omitempty"` // 变更类型[1-增加;2-修改;4-绑卡; IsForce *int32 `protobuf:"varint,10,req,name=IsForce" json:"IsForce,omitempty"` // 是否强制[0-否;1-是]强制,只更新中心签约信息,不发送银行。用于银行信息不一致的情况 Currency *string `protobuf:"bytes,11,opt,name=Currency" json:"Currency,omitempty"` // 币种 AccountType *int32 `protobuf:"varint,12,opt,name=AccountType" json:"AccountType,omitempty"` // 账户类型[1-对私;2-对公] OpenBankAccId *string `protobuf:"bytes,13,req,name=OpenBankAccId" json:"OpenBankAccId,omitempty"` // 银行卡行号 ForceSignBankAccountNo *string `protobuf:"bytes,14,opt,name=ForceSignBankAccountNo" json:"ForceSignBankAccountNo,omitempty"` // 银行账户[强制签约时填写] ForceSignBankAccountName *string `protobuf:"bytes,15,opt,name=ForceSignBankAccountName" json:"ForceSignBankAccountName,omitempty"` // 银行账户名称[强制签约时填写] BankAccountNo *string `protobuf:"bytes,16,req,name=BankAccountNo" json:"BankAccountNo,omitempty"` // 银行账户 BankAccountName *string `protobuf:"bytes,17,opt,name=BankAccountName" json:"BankAccountName,omitempty"` // 银行账户名称 ExBankName *string `protobuf:"bytes,18,req,name=ExBankName" json:"ExBankName,omitempty"` // 开户行名称 OpenBankNo *string `protobuf:"bytes,19,opt,name=OpenBankNo" json:"OpenBankNo,omitempty"` // 开户支行编号 OpenBankName *string `protobuf:"bytes,20,opt,name=OpenBankName" json:"OpenBankName,omitempty"` // 开户支行名称 CertType *string `protobuf:"bytes,21,req,name=CertType" json:"CertType,omitempty"` // 证件类型 CertID *string `protobuf:"bytes,22,req,name=CertID" json:"CertID,omitempty"` // 证件号码 BankAccountPWD *string `protobuf:"bytes,23,opt,name=BankAccountPWD" json:"BankAccountPWD,omitempty"` // 银行账户密码 AgentName *string `protobuf:"bytes,24,opt,name=AgentName" json:"AgentName,omitempty"` // 授权代理人姓名 AgentCertType *int32 `protobuf:"varint,25,opt,name=AgentCertType" json:"AgentCertType,omitempty"` // 授权代理人证件类型 AgentCertID *string `protobuf:"bytes,26,opt,name=AgentCertID" json:"AgentCertID,omitempty"` // 授权代理人证件号 BankAccountType *int32 `protobuf:"varint,27,opt,name=BankAccountType" json:"BankAccountType,omitempty"` // 银行账户类型 BankProvince *string `protobuf:"bytes,28,opt,name=BankProvince" json:"BankProvince,omitempty"` // 开户银行所在省份 BankCity *string `protobuf:"bytes,29,opt,name=BankCity" json:"BankCity,omitempty"` // 开户银行所在市 BankCardType *int32 `protobuf:"varint,30,opt,name=BankCardType" json:"BankCardType,omitempty"` // 银行卡类型 MobilePhone *string `protobuf:"bytes,31,opt,name=MobilePhone" json:"MobilePhone,omitempty"` // 移动电话 IdentifyCode *string `protobuf:"bytes,32,opt,name=IdentifyCode" json:"IdentifyCode,omitempty"` // 验证码 Email *string `protobuf:"bytes,33,opt,name=email" json:"email,omitempty"` // 电子邮箱 ExtendInfo *string `protobuf:"bytes,34,opt,name=extend_info,json=extendInfo" json:"extend_info,omitempty"` // 扩展信息(JSON串,参考配置要求进行填充) } func (x *T2BBankSignReq) Reset() { *x = T2BBankSignReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *T2BBankSignReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*T2BBankSignReq) ProtoMessage() {} func (x *T2BBankSignReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 T2BBankSignReq.ProtoReflect.Descriptor instead. func (*T2BBankSignReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{20} } func (x *T2BBankSignReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *T2BBankSignReq) GetExtOperatorID() uint64 { if x != nil && x.ExtOperatorID != nil { return *x.ExtOperatorID } return 0 } func (x *T2BBankSignReq) GetExchId() string { if x != nil && x.ExchId != nil { return *x.ExchId } return "" } func (x *T2BBankSignReq) GetTradeDate() string { if x != nil && x.TradeDate != nil { return *x.TradeDate } return "" } func (x *T2BBankSignReq) GetExchTicket() string { if x != nil && x.ExchTicket != nil { return *x.ExchTicket } return "" } func (x *T2BBankSignReq) GetAccountCode() string { if x != nil && x.AccountCode != nil { return *x.AccountCode } return "" } func (x *T2BBankSignReq) GetAccountName() string { if x != nil && x.AccountName != nil { return *x.AccountName } return "" } func (x *T2BBankSignReq) GetCusBankID() string { if x != nil && x.CusBankID != nil { return *x.CusBankID } return "" } func (x *T2BBankSignReq) GetOperateType() int32 { if x != nil && x.OperateType != nil { return *x.OperateType } return 0 } func (x *T2BBankSignReq) GetIsForce() int32 { if x != nil && x.IsForce != nil { return *x.IsForce } return 0 } func (x *T2BBankSignReq) GetCurrency() string { if x != nil && x.Currency != nil { return *x.Currency } return "" } func (x *T2BBankSignReq) GetAccountType() int32 { if x != nil && x.AccountType != nil { return *x.AccountType } return 0 } func (x *T2BBankSignReq) GetOpenBankAccId() string { if x != nil && x.OpenBankAccId != nil { return *x.OpenBankAccId } return "" } func (x *T2BBankSignReq) GetForceSignBankAccountNo() string { if x != nil && x.ForceSignBankAccountNo != nil { return *x.ForceSignBankAccountNo } return "" } func (x *T2BBankSignReq) GetForceSignBankAccountName() string { if x != nil && x.ForceSignBankAccountName != nil { return *x.ForceSignBankAccountName } return "" } func (x *T2BBankSignReq) GetBankAccountNo() string { if x != nil && x.BankAccountNo != nil { return *x.BankAccountNo } return "" } func (x *T2BBankSignReq) GetBankAccountName() string { if x != nil && x.BankAccountName != nil { return *x.BankAccountName } return "" } func (x *T2BBankSignReq) GetExBankName() string { if x != nil && x.ExBankName != nil { return *x.ExBankName } return "" } func (x *T2BBankSignReq) GetOpenBankNo() string { if x != nil && x.OpenBankNo != nil { return *x.OpenBankNo } return "" } func (x *T2BBankSignReq) GetOpenBankName() string { if x != nil && x.OpenBankName != nil { return *x.OpenBankName } return "" } func (x *T2BBankSignReq) GetCertType() string { if x != nil && x.CertType != nil { return *x.CertType } return "" } func (x *T2BBankSignReq) GetCertID() string { if x != nil && x.CertID != nil { return *x.CertID } return "" } func (x *T2BBankSignReq) GetBankAccountPWD() string { if x != nil && x.BankAccountPWD != nil { return *x.BankAccountPWD } return "" } func (x *T2BBankSignReq) GetAgentName() string { if x != nil && x.AgentName != nil { return *x.AgentName } return "" } func (x *T2BBankSignReq) GetAgentCertType() int32 { if x != nil && x.AgentCertType != nil { return *x.AgentCertType } return 0 } func (x *T2BBankSignReq) GetAgentCertID() string { if x != nil && x.AgentCertID != nil { return *x.AgentCertID } return "" } func (x *T2BBankSignReq) GetBankAccountType() int32 { if x != nil && x.BankAccountType != nil { return *x.BankAccountType } return 0 } func (x *T2BBankSignReq) GetBankProvince() string { if x != nil && x.BankProvince != nil { return *x.BankProvince } return "" } func (x *T2BBankSignReq) GetBankCity() string { if x != nil && x.BankCity != nil { return *x.BankCity } return "" } func (x *T2BBankSignReq) GetBankCardType() int32 { if x != nil && x.BankCardType != nil { return *x.BankCardType } return 0 } func (x *T2BBankSignReq) GetMobilePhone() string { if x != nil && x.MobilePhone != nil { return *x.MobilePhone } return "" } func (x *T2BBankSignReq) GetIdentifyCode() string { if x != nil && x.IdentifyCode != nil { return *x.IdentifyCode } return "" } func (x *T2BBankSignReq) GetEmail() string { if x != nil && x.Email != nil { return *x.Email } return "" } func (x *T2BBankSignReq) GetExtendInfo() string { if x != nil && x.ExtendInfo != nil { return *x.ExtendInfo } return "" } // 签约应答 type T2BBankSignRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 ExtOperatorID *uint64 `protobuf:"varint,4,opt,name=ExtOperatorID" json:"ExtOperatorID,omitempty"` // 外部操作流水号 AccountCode *string `protobuf:"bytes,5,opt,name=AccountCode" json:"AccountCode,omitempty"` // 账户 NetAddr *string `protobuf:"bytes,6,opt,name=NetAddr" json:"NetAddr,omitempty"` // 网络地址(当这里有网址时,应自动跳转网页) Status *int32 `protobuf:"varint,7,opt,name=Status" json:"Status,omitempty"` // 状态(0成功,其他数值参考银行服务的错误码) ExchTicket *string `protobuf:"bytes,8,req,name=ExchTicket" json:"ExchTicket,omitempty"` // 交易所流水号 ExchId *string `protobuf:"bytes,9,opt,name=ExchId" json:"ExchId,omitempty"` // 交易所编号 TradeDate *string `protobuf:"bytes,10,opt,name=TradeDate" json:"TradeDate,omitempty"` // 交易所业务日期 CenterTicket *string `protobuf:"bytes,11,opt,name=CenterTicket" json:"CenterTicket,omitempty"` // 中心流水号 CenterErrCode *string `protobuf:"bytes,12,opt,name=CenterErrCode" json:"CenterErrCode,omitempty"` // 返回码 CenterErrMsg *string `protobuf:"bytes,13,opt,name=CenterErrMsg" json:"CenterErrMsg,omitempty"` // 返回结果说明 BankChildAcc *string `protobuf:"bytes,14,opt,name=bankChildAcc" json:"bankChildAcc,omitempty"` // 银行账号 BankChildAccName *string `protobuf:"bytes,15,opt,name=bankChildAccName" json:"bankChildAccName,omitempty"` // 银行账户名 BankId *string `protobuf:"bytes,16,opt,name=BankId" json:"BankId,omitempty"` // 银行卡行号 BankAccNum *string `protobuf:"bytes,17,opt,name=BankAccNum" json:"BankAccNum,omitempty"` // 银行卡号 BankAccName *string `protobuf:"bytes,18,opt,name=BankAccName" json:"BankAccName,omitempty"` // 银行卡户名 } func (x *T2BBankSignRsp) Reset() { *x = T2BBankSignRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *T2BBankSignRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*T2BBankSignRsp) ProtoMessage() {} func (x *T2BBankSignRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 T2BBankSignRsp.ProtoReflect.Descriptor instead. func (*T2BBankSignRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{21} } func (x *T2BBankSignRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *T2BBankSignRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *T2BBankSignRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *T2BBankSignRsp) GetExtOperatorID() uint64 { if x != nil && x.ExtOperatorID != nil { return *x.ExtOperatorID } return 0 } func (x *T2BBankSignRsp) GetAccountCode() string { if x != nil && x.AccountCode != nil { return *x.AccountCode } return "" } func (x *T2BBankSignRsp) GetNetAddr() string { if x != nil && x.NetAddr != nil { return *x.NetAddr } return "" } func (x *T2BBankSignRsp) GetStatus() int32 { if x != nil && x.Status != nil { return *x.Status } return 0 } func (x *T2BBankSignRsp) GetExchTicket() string { if x != nil && x.ExchTicket != nil { return *x.ExchTicket } return "" } func (x *T2BBankSignRsp) GetExchId() string { if x != nil && x.ExchId != nil { return *x.ExchId } return "" } func (x *T2BBankSignRsp) GetTradeDate() string { if x != nil && x.TradeDate != nil { return *x.TradeDate } return "" } func (x *T2BBankSignRsp) GetCenterTicket() string { if x != nil && x.CenterTicket != nil { return *x.CenterTicket } return "" } func (x *T2BBankSignRsp) GetCenterErrCode() string { if x != nil && x.CenterErrCode != nil { return *x.CenterErrCode } return "" } func (x *T2BBankSignRsp) GetCenterErrMsg() string { if x != nil && x.CenterErrMsg != nil { return *x.CenterErrMsg } return "" } func (x *T2BBankSignRsp) GetBankChildAcc() string { if x != nil && x.BankChildAcc != nil { return *x.BankChildAcc } return "" } func (x *T2BBankSignRsp) GetBankChildAccName() string { if x != nil && x.BankChildAccName != nil { return *x.BankChildAccName } return "" } func (x *T2BBankSignRsp) GetBankId() string { if x != nil && x.BankId != nil { return *x.BankId } return "" } func (x *T2BBankSignRsp) GetBankAccNum() string { if x != nil && x.BankAccNum != nil { return *x.BankAccNum } return "" } func (x *T2BBankSignRsp) GetBankAccName() string { if x != nil && x.BankAccName != nil { return *x.BankAccName } return "" } // 解约请求 type T2BBankCancelSignReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` ExtOperatorID *uint64 `protobuf:"varint,2,req,name=ExtOperatorID" json:"ExtOperatorID,omitempty"` // 外部操作流水号 ExchId *string `protobuf:"bytes,3,opt,name=ExchId" json:"ExchId,omitempty"` // 交易所编号 AccountCode *string `protobuf:"bytes,4,req,name=AccountCode" json:"AccountCode,omitempty"` // 账户 CusBankID *string `protobuf:"bytes,5,req,name=CusBankID" json:"CusBankID,omitempty"` // 托管银行编号 IsForce *int32 `protobuf:"varint,6,req,name=IsForce" json:"IsForce,omitempty"` // 是否强制 Currency *string `protobuf:"bytes,7,opt,name=Currency" json:"Currency,omitempty"` // 币种 TradeDate *string `protobuf:"bytes,8,opt,name=TradeDate" json:"TradeDate,omitempty"` // 交易所业务日期 ExchTicket *string `protobuf:"bytes,9,opt,name=ExchTicket" json:"ExchTicket,omitempty"` // 交易所流水号 BankChildAcc *string `protobuf:"bytes,10,opt,name=BankChildAcc" json:"BankChildAcc,omitempty"` // 银行子账号 BankChildAccName *string `protobuf:"bytes,11,opt,name=BankChildAccName" json:"BankChildAccName,omitempty"` // 银行子账号名 } func (x *T2BBankCancelSignReq) Reset() { *x = T2BBankCancelSignReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *T2BBankCancelSignReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*T2BBankCancelSignReq) ProtoMessage() {} func (x *T2BBankCancelSignReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use T2BBankCancelSignReq.ProtoReflect.Descriptor instead. func (*T2BBankCancelSignReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{22} } func (x *T2BBankCancelSignReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *T2BBankCancelSignReq) GetExtOperatorID() uint64 { if x != nil && x.ExtOperatorID != nil { return *x.ExtOperatorID } return 0 } func (x *T2BBankCancelSignReq) GetExchId() string { if x != nil && x.ExchId != nil { return *x.ExchId } return "" } func (x *T2BBankCancelSignReq) GetAccountCode() string { if x != nil && x.AccountCode != nil { return *x.AccountCode } return "" } func (x *T2BBankCancelSignReq) GetCusBankID() string { if x != nil && x.CusBankID != nil { return *x.CusBankID } return "" } func (x *T2BBankCancelSignReq) GetIsForce() int32 { if x != nil && x.IsForce != nil { return *x.IsForce } return 0 } func (x *T2BBankCancelSignReq) GetCurrency() string { if x != nil && x.Currency != nil { return *x.Currency } return "" } func (x *T2BBankCancelSignReq) GetTradeDate() string { if x != nil && x.TradeDate != nil { return *x.TradeDate } return "" } func (x *T2BBankCancelSignReq) GetExchTicket() string { if x != nil && x.ExchTicket != nil { return *x.ExchTicket } return "" } func (x *T2BBankCancelSignReq) GetBankChildAcc() string { if x != nil && x.BankChildAcc != nil { return *x.BankChildAcc } return "" } func (x *T2BBankCancelSignReq) GetBankChildAccName() string { if x != nil && x.BankChildAccName != nil { return *x.BankChildAccName } return "" } // 解约应答 type T2BBankCancelSignRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 ExtOperatorID *uint64 `protobuf:"varint,4,opt,name=ExtOperatorID" json:"ExtOperatorID,omitempty"` // 外部操作流水号 AccountCode *string `protobuf:"bytes,5,opt,name=AccountCode" json:"AccountCode,omitempty"` // 账户 NetAddr *string `protobuf:"bytes,6,opt,name=NetAddr" json:"NetAddr,omitempty"` // 网络地址(当这里有网址时,应自动跳转网页) Status *int32 `protobuf:"varint,7,opt,name=Status" json:"Status,omitempty"` // 状态(0成功,其他数值参考银行服务的错误码) ExchTicket *string `protobuf:"bytes,8,req,name=ExchTicket" json:"ExchTicket,omitempty"` // 交易所流水号 ExchId *string `protobuf:"bytes,9,opt,name=ExchId" json:"ExchId,omitempty"` // 交易所编号 TradeDate *string `protobuf:"bytes,10,opt,name=TradeDate" json:"TradeDate,omitempty"` // 交易所业务日期 CenterTicket *string `protobuf:"bytes,11,opt,name=CenterTicket" json:"CenterTicket,omitempty"` // 中心流水号 CenterErrCode *string `protobuf:"bytes,12,opt,name=CenterErrCode" json:"CenterErrCode,omitempty"` // 返回码 CenterErrMsg *string `protobuf:"bytes,13,opt,name=CenterErrMsg" json:"CenterErrMsg,omitempty"` // 返回结果说明 } func (x *T2BBankCancelSignRsp) Reset() { *x = T2BBankCancelSignRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *T2BBankCancelSignRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*T2BBankCancelSignRsp) ProtoMessage() {} func (x *T2BBankCancelSignRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use T2BBankCancelSignRsp.ProtoReflect.Descriptor instead. func (*T2BBankCancelSignRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{23} } func (x *T2BBankCancelSignRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *T2BBankCancelSignRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *T2BBankCancelSignRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *T2BBankCancelSignRsp) GetExtOperatorID() uint64 { if x != nil && x.ExtOperatorID != nil { return *x.ExtOperatorID } return 0 } func (x *T2BBankCancelSignRsp) GetAccountCode() string { if x != nil && x.AccountCode != nil { return *x.AccountCode } return "" } func (x *T2BBankCancelSignRsp) GetNetAddr() string { if x != nil && x.NetAddr != nil { return *x.NetAddr } return "" } func (x *T2BBankCancelSignRsp) GetStatus() int32 { if x != nil && x.Status != nil { return *x.Status } return 0 } func (x *T2BBankCancelSignRsp) GetExchTicket() string { if x != nil && x.ExchTicket != nil { return *x.ExchTicket } return "" } func (x *T2BBankCancelSignRsp) GetExchId() string { if x != nil && x.ExchId != nil { return *x.ExchId } return "" } func (x *T2BBankCancelSignRsp) GetTradeDate() string { if x != nil && x.TradeDate != nil { return *x.TradeDate } return "" } func (x *T2BBankCancelSignRsp) GetCenterTicket() string { if x != nil && x.CenterTicket != nil { return *x.CenterTicket } return "" } func (x *T2BBankCancelSignRsp) GetCenterErrCode() string { if x != nil && x.CenterErrCode != nil { return *x.CenterErrCode } return "" } func (x *T2BBankCancelSignRsp) GetCenterErrMsg() string { if x != nil && x.CenterErrMsg != nil { return *x.CenterErrMsg } return "" } // 出金请求 type T2BBankWithdrawReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` ExtOperatorID *uint64 `protobuf:"varint,2,req,name=ExtOperatorID" json:"ExtOperatorID,omitempty"` // 外部操作流水号 ExchId *string `protobuf:"bytes,3,opt,name=ExchId" json:"ExchId,omitempty"` // 交易所编号 AccountCode *string `protobuf:"bytes,4,req,name=AccountCode" json:"AccountCode,omitempty"` // 资金账户 CusBankID *string `protobuf:"bytes,5,req,name=CusBankID" json:"CusBankID,omitempty"` // 托管银行编号 Currency *string `protobuf:"bytes,6,req,name=Currency" json:"Currency,omitempty"` // 币种 AccountType *int32 `protobuf:"varint,7,opt,name=AccountType" json:"AccountType,omitempty"` // 账户类型 BankChildAccount *string `protobuf:"bytes,8,opt,name=BankChildAccount" json:"BankChildAccount,omitempty"` // 银行子账号 BankChildAccountName *string `protobuf:"bytes,9,opt,name=BankChildAccountName" json:"BankChildAccountName,omitempty"` // 银行子账号名 OpenCardBankId *string `protobuf:"bytes,10,opt,name=OpenCardBankId" json:"OpenCardBankId,omitempty"` // 银行卡行号 BankAccoutNum *string `protobuf:"bytes,11,opt,name=BankAccoutNum" json:"BankAccoutNum,omitempty"` // 银行卡号 BankAccoutName *string `protobuf:"bytes,12,opt,name=BankAccoutName" json:"BankAccoutName,omitempty"` // 银行卡户名 Amount *float64 `protobuf:"fixed64,13,req,name=Amount" json:"Amount,omitempty"` // 出金金额 AppDateTime *string `protobuf:"bytes,14,opt,name=AppDateTime" json:"AppDateTime,omitempty"` // 申请日期和时间 OldTaPWD *string `protobuf:"bytes,15,opt,name=OldTaPWD" json:"OldTaPWD,omitempty"` // 资金密码 Desc *string `protobuf:"bytes,16,opt,name=Desc" json:"Desc,omitempty"` // 备注 IdentifyCode *string `protobuf:"bytes,17,opt,name=IdentifyCode" json:"IdentifyCode,omitempty"` // 验证码 BranchBankName *string `protobuf:"bytes,18,opt,name=BranchBankName" json:"BranchBankName,omitempty"` // 收款支行名称 ExtendInfo *string `protobuf:"bytes,19,opt,name=extend_info,json=extendInfo" json:"extend_info,omitempty"` // 扩展信息(JSON串,参考配置要求进行填充) Remark *string `protobuf:"bytes,20,opt,name=Remark" json:"Remark,omitempty"` // 备注 ExchTicket *string `protobuf:"bytes,21,opt,name=ExchTicket" json:"ExchTicket,omitempty"` // 交易所流水号 } func (x *T2BBankWithdrawReq) Reset() { *x = T2BBankWithdrawReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *T2BBankWithdrawReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*T2BBankWithdrawReq) ProtoMessage() {} func (x *T2BBankWithdrawReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use T2BBankWithdrawReq.ProtoReflect.Descriptor instead. func (*T2BBankWithdrawReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{24} } func (x *T2BBankWithdrawReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *T2BBankWithdrawReq) GetExtOperatorID() uint64 { if x != nil && x.ExtOperatorID != nil { return *x.ExtOperatorID } return 0 } func (x *T2BBankWithdrawReq) GetExchId() string { if x != nil && x.ExchId != nil { return *x.ExchId } return "" } func (x *T2BBankWithdrawReq) GetAccountCode() string { if x != nil && x.AccountCode != nil { return *x.AccountCode } return "" } func (x *T2BBankWithdrawReq) GetCusBankID() string { if x != nil && x.CusBankID != nil { return *x.CusBankID } return "" } func (x *T2BBankWithdrawReq) GetCurrency() string { if x != nil && x.Currency != nil { return *x.Currency } return "" } func (x *T2BBankWithdrawReq) GetAccountType() int32 { if x != nil && x.AccountType != nil { return *x.AccountType } return 0 } func (x *T2BBankWithdrawReq) GetBankChildAccount() string { if x != nil && x.BankChildAccount != nil { return *x.BankChildAccount } return "" } func (x *T2BBankWithdrawReq) GetBankChildAccountName() string { if x != nil && x.BankChildAccountName != nil { return *x.BankChildAccountName } return "" } func (x *T2BBankWithdrawReq) GetOpenCardBankId() string { if x != nil && x.OpenCardBankId != nil { return *x.OpenCardBankId } return "" } func (x *T2BBankWithdrawReq) GetBankAccoutNum() string { if x != nil && x.BankAccoutNum != nil { return *x.BankAccoutNum } return "" } func (x *T2BBankWithdrawReq) GetBankAccoutName() string { if x != nil && x.BankAccoutName != nil { return *x.BankAccoutName } return "" } func (x *T2BBankWithdrawReq) GetAmount() float64 { if x != nil && x.Amount != nil { return *x.Amount } return 0 } func (x *T2BBankWithdrawReq) GetAppDateTime() string { if x != nil && x.AppDateTime != nil { return *x.AppDateTime } return "" } func (x *T2BBankWithdrawReq) GetOldTaPWD() string { if x != nil && x.OldTaPWD != nil { return *x.OldTaPWD } return "" } func (x *T2BBankWithdrawReq) GetDesc() string { if x != nil && x.Desc != nil { return *x.Desc } return "" } func (x *T2BBankWithdrawReq) GetIdentifyCode() string { if x != nil && x.IdentifyCode != nil { return *x.IdentifyCode } return "" } func (x *T2BBankWithdrawReq) GetBranchBankName() string { if x != nil && x.BranchBankName != nil { return *x.BranchBankName } return "" } func (x *T2BBankWithdrawReq) GetExtendInfo() string { if x != nil && x.ExtendInfo != nil { return *x.ExtendInfo } return "" } func (x *T2BBankWithdrawReq) GetRemark() string { if x != nil && x.Remark != nil { return *x.Remark } return "" } func (x *T2BBankWithdrawReq) GetExchTicket() string { if x != nil && x.ExchTicket != nil { return *x.ExchTicket } return "" } // 出金应答 type T2BBankWithdrawRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 ExtOperatorID *uint64 `protobuf:"varint,4,opt,name=ExtOperatorID" json:"ExtOperatorID,omitempty"` // 外部操作流水号 Status *int32 `protobuf:"varint,5,opt,name=Status" json:"Status,omitempty"` // 状态(0成功,其他数值参考银行服务的错误码) ExchTicket *string `protobuf:"bytes,6,req,name=ExchTicket" json:"ExchTicket,omitempty"` // 交易所流水号 ExchId *string `protobuf:"bytes,7,opt,name=ExchId" json:"ExchId,omitempty"` // 交易所编号 TradeDate *string `protobuf:"bytes,8,opt,name=TradeDate" json:"TradeDate,omitempty"` // 交易日 CenterTicket *string `protobuf:"bytes,9,opt,name=CenterTicket" json:"CenterTicket,omitempty"` // 中心流水号 CenterErrCode *string `protobuf:"bytes,10,opt,name=CenterErrCode" json:"CenterErrCode,omitempty"` // 中心返回码 CenterErrMsg *string `protobuf:"bytes,11,opt,name=CenterErrMsg" json:"CenterErrMsg,omitempty"` // 中心返回结果说明 CerterCheckDate *string `protobuf:"bytes,12,opt,name=CerterCheckDate" json:"CerterCheckDate,omitempty"` // 中心对账日期 NetAddr *string `protobuf:"bytes,13,opt,name=NetAddr" json:"NetAddr,omitempty"` // 网络地址(当这里有网址时,应自动跳转网页) } func (x *T2BBankWithdrawRsp) Reset() { *x = T2BBankWithdrawRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *T2BBankWithdrawRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*T2BBankWithdrawRsp) ProtoMessage() {} func (x *T2BBankWithdrawRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use T2BBankWithdrawRsp.ProtoReflect.Descriptor instead. func (*T2BBankWithdrawRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{25} } func (x *T2BBankWithdrawRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *T2BBankWithdrawRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *T2BBankWithdrawRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *T2BBankWithdrawRsp) GetExtOperatorID() uint64 { if x != nil && x.ExtOperatorID != nil { return *x.ExtOperatorID } return 0 } func (x *T2BBankWithdrawRsp) GetStatus() int32 { if x != nil && x.Status != nil { return *x.Status } return 0 } func (x *T2BBankWithdrawRsp) GetExchTicket() string { if x != nil && x.ExchTicket != nil { return *x.ExchTicket } return "" } func (x *T2BBankWithdrawRsp) GetExchId() string { if x != nil && x.ExchId != nil { return *x.ExchId } return "" } func (x *T2BBankWithdrawRsp) GetTradeDate() string { if x != nil && x.TradeDate != nil { return *x.TradeDate } return "" } func (x *T2BBankWithdrawRsp) GetCenterTicket() string { if x != nil && x.CenterTicket != nil { return *x.CenterTicket } return "" } func (x *T2BBankWithdrawRsp) GetCenterErrCode() string { if x != nil && x.CenterErrCode != nil { return *x.CenterErrCode } return "" } func (x *T2BBankWithdrawRsp) GetCenterErrMsg() string { if x != nil && x.CenterErrMsg != nil { return *x.CenterErrMsg } return "" } func (x *T2BBankWithdrawRsp) GetCerterCheckDate() string { if x != nil && x.CerterCheckDate != nil { return *x.CerterCheckDate } return "" } func (x *T2BBankWithdrawRsp) GetNetAddr() string { if x != nil && x.NetAddr != nil { return *x.NetAddr } return "" } // 入金请求 type T2BBankDepositReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` ExtOperatorID *uint64 `protobuf:"varint,2,req,name=ExtOperatorID" json:"ExtOperatorID,omitempty"` // 外部操作流水号 CusBankID *string `protobuf:"bytes,3,req,name=CusBankID" json:"CusBankID,omitempty"` // 托管银行编号 ExchId *string `protobuf:"bytes,4,opt,name=ExchId" json:"ExchId,omitempty"` // 交易所编号 TradeDate *string `protobuf:"bytes,5,opt,name=TradeDate" json:"TradeDate,omitempty"` // 交易日 ExchTicket *string `protobuf:"bytes,6,opt,name=ExchTicket" json:"ExchTicket,omitempty"` // 交易所流水号 AccountCode *string `protobuf:"bytes,7,req,name=AccountCode" json:"AccountCode,omitempty"` // 资金账户 BusinessNo *string `protobuf:"bytes,8,opt,name=BusinessNo" json:"BusinessNo,omitempty"` // 银行业务编号 BankChildAccount *string `protobuf:"bytes,9,opt,name=BankChildAccount" json:"BankChildAccount,omitempty"` // 银行子账号 BankChildAccountName *string `protobuf:"bytes,10,opt,name=BankChildAccountName" json:"BankChildAccountName,omitempty"` // 银行子账号名 OldTaPWD *string `protobuf:"bytes,11,opt,name=OldTaPWD" json:"OldTaPWD,omitempty"` // 资金密码 Amount *float64 `protobuf:"fixed64,12,req,name=Amount" json:"Amount,omitempty"` // 金额 Currency *string `protobuf:"bytes,13,req,name=Currency" json:"Currency,omitempty"` // 币种 Remark *string `protobuf:"bytes,14,opt,name=Remark" json:"Remark,omitempty"` // 备注 OpenCardBankId *string `protobuf:"bytes,15,opt,name=OpenCardBankId" json:"OpenCardBankId,omitempty"` // 银行卡行号 BankAccoutNum *string `protobuf:"bytes,16,opt,name=BankAccoutNum" json:"BankAccoutNum,omitempty"` // 银行卡号 BankAccoutName *string `protobuf:"bytes,17,opt,name=BankAccoutName" json:"BankAccoutName,omitempty"` // 银行卡户名 ExtendInfo *string `protobuf:"bytes,18,opt,name=extend_info,json=extendInfo" json:"extend_info,omitempty"` // 扩展信息(JSON串,参考配置要求进行填充) } func (x *T2BBankDepositReq) Reset() { *x = T2BBankDepositReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *T2BBankDepositReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*T2BBankDepositReq) ProtoMessage() {} func (x *T2BBankDepositReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use T2BBankDepositReq.ProtoReflect.Descriptor instead. func (*T2BBankDepositReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{26} } func (x *T2BBankDepositReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *T2BBankDepositReq) GetExtOperatorID() uint64 { if x != nil && x.ExtOperatorID != nil { return *x.ExtOperatorID } return 0 } func (x *T2BBankDepositReq) GetCusBankID() string { if x != nil && x.CusBankID != nil { return *x.CusBankID } return "" } func (x *T2BBankDepositReq) GetExchId() string { if x != nil && x.ExchId != nil { return *x.ExchId } return "" } func (x *T2BBankDepositReq) GetTradeDate() string { if x != nil && x.TradeDate != nil { return *x.TradeDate } return "" } func (x *T2BBankDepositReq) GetExchTicket() string { if x != nil && x.ExchTicket != nil { return *x.ExchTicket } return "" } func (x *T2BBankDepositReq) GetAccountCode() string { if x != nil && x.AccountCode != nil { return *x.AccountCode } return "" } func (x *T2BBankDepositReq) GetBusinessNo() string { if x != nil && x.BusinessNo != nil { return *x.BusinessNo } return "" } func (x *T2BBankDepositReq) GetBankChildAccount() string { if x != nil && x.BankChildAccount != nil { return *x.BankChildAccount } return "" } func (x *T2BBankDepositReq) GetBankChildAccountName() string { if x != nil && x.BankChildAccountName != nil { return *x.BankChildAccountName } return "" } func (x *T2BBankDepositReq) GetOldTaPWD() string { if x != nil && x.OldTaPWD != nil { return *x.OldTaPWD } return "" } func (x *T2BBankDepositReq) GetAmount() float64 { if x != nil && x.Amount != nil { return *x.Amount } return 0 } func (x *T2BBankDepositReq) GetCurrency() string { if x != nil && x.Currency != nil { return *x.Currency } return "" } func (x *T2BBankDepositReq) GetRemark() string { if x != nil && x.Remark != nil { return *x.Remark } return "" } func (x *T2BBankDepositReq) GetOpenCardBankId() string { if x != nil && x.OpenCardBankId != nil { return *x.OpenCardBankId } return "" } func (x *T2BBankDepositReq) GetBankAccoutNum() string { if x != nil && x.BankAccoutNum != nil { return *x.BankAccoutNum } return "" } func (x *T2BBankDepositReq) GetBankAccoutName() string { if x != nil && x.BankAccoutName != nil { return *x.BankAccoutName } return "" } func (x *T2BBankDepositReq) GetExtendInfo() string { if x != nil && x.ExtendInfo != nil { return *x.ExtendInfo } return "" } // 入金应答 type T2BBankDepositRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 ExtOperatorID *uint64 `protobuf:"varint,4,opt,name=ExtOperatorID" json:"ExtOperatorID,omitempty"` // 外部操作流水号 Status *int32 `protobuf:"varint,5,opt,name=Status" json:"Status,omitempty"` // 状态(0成功,其他数值参考银行服务的错误码) ExchTicket *string `protobuf:"bytes,6,req,name=ExchTicket" json:"ExchTicket,omitempty"` // 交易所流水号 ExchId *string `protobuf:"bytes,7,opt,name=ExchId" json:"ExchId,omitempty"` // 交易所编号 TradeDate *string `protobuf:"bytes,8,opt,name=TradeDate" json:"TradeDate,omitempty"` // 交易日 CenterTicket *string `protobuf:"bytes,9,opt,name=CenterTicket" json:"CenterTicket,omitempty"` // 中心流水号 CenterErrCode *string `protobuf:"bytes,10,opt,name=CenterErrCode" json:"CenterErrCode,omitempty"` // 中心返回码 CenterErrMsg *string `protobuf:"bytes,11,opt,name=CenterErrMsg" json:"CenterErrMsg,omitempty"` // 中心返回结果说明 CerterCheckDate *string `protobuf:"bytes,12,opt,name=CerterCheckDate" json:"CerterCheckDate,omitempty"` // 中心对账日期 NetAddr *string `protobuf:"bytes,13,opt,name=NetAddr" json:"NetAddr,omitempty"` // 网络地址(当这里有网址时,应自动跳转网页) } func (x *T2BBankDepositRsp) Reset() { *x = T2BBankDepositRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *T2BBankDepositRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*T2BBankDepositRsp) ProtoMessage() {} func (x *T2BBankDepositRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[27] 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 T2BBankDepositRsp.ProtoReflect.Descriptor instead. func (*T2BBankDepositRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{27} } func (x *T2BBankDepositRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *T2BBankDepositRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *T2BBankDepositRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *T2BBankDepositRsp) GetExtOperatorID() uint64 { if x != nil && x.ExtOperatorID != nil { return *x.ExtOperatorID } return 0 } func (x *T2BBankDepositRsp) GetStatus() int32 { if x != nil && x.Status != nil { return *x.Status } return 0 } func (x *T2BBankDepositRsp) GetExchTicket() string { if x != nil && x.ExchTicket != nil { return *x.ExchTicket } return "" } func (x *T2BBankDepositRsp) GetExchId() string { if x != nil && x.ExchId != nil { return *x.ExchId } return "" } func (x *T2BBankDepositRsp) GetTradeDate() string { if x != nil && x.TradeDate != nil { return *x.TradeDate } return "" } func (x *T2BBankDepositRsp) GetCenterTicket() string { if x != nil && x.CenterTicket != nil { return *x.CenterTicket } return "" } func (x *T2BBankDepositRsp) GetCenterErrCode() string { if x != nil && x.CenterErrCode != nil { return *x.CenterErrCode } return "" } func (x *T2BBankDepositRsp) GetCenterErrMsg() string { if x != nil && x.CenterErrMsg != nil { return *x.CenterErrMsg } return "" } func (x *T2BBankDepositRsp) GetCerterCheckDate() string { if x != nil && x.CerterCheckDate != nil { return *x.CerterCheckDate } return "" } func (x *T2BBankDepositRsp) GetNetAddr() string { if x != nil && x.NetAddr != nil { return *x.NetAddr } return "" } // 仓单服务公共协议结构 type WRCommon struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserID *uint64 `protobuf:"varint,1,opt,name=UserID" json:"UserID,omitempty"` // 用户ID RelatedOrderID *uint64 `protobuf:"varint,2,opt,name=RelatedOrderID" json:"RelatedOrderID,omitempty"` // 关联ID BusinessID *uint64 `protobuf:"varint,3,opt,name=BusinessID" json:"BusinessID,omitempty"` // 业务ID TradeID *uint64 `protobuf:"varint,4,opt,name=TradeID" json:"TradeID,omitempty"` // 成交ID AccountID *uint64 `protobuf:"varint,5,opt,name=AccountID" json:"AccountID,omitempty"` // 账号ID } func (x *WRCommon) Reset() { *x = WRCommon{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WRCommon) String() string { return protoimpl.X.MessageStringOf(x) } func (*WRCommon) ProtoMessage() {} func (x *WRCommon) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[28] 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 WRCommon.ProtoReflect.Descriptor instead. func (*WRCommon) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{28} } func (x *WRCommon) GetUserID() uint64 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *WRCommon) GetRelatedOrderID() uint64 { if x != nil && x.RelatedOrderID != nil { return *x.RelatedOrderID } return 0 } func (x *WRCommon) GetBusinessID() uint64 { if x != nil && x.BusinessID != nil { return *x.BusinessID } return 0 } func (x *WRCommon) GetTradeID() uint64 { if x != nil && x.TradeID != nil { return *x.TradeID } return 0 } func (x *WRCommon) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } // 仓库申请请求 0 29 141 type WarehouseApplyReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // MessageHead Userid *uint64 `protobuf:"varint,2,opt,name=userid" json:"userid,omitempty"` // uint64 用户ID Type *int32 `protobuf:"varint,3,opt,name=type" json:"type,omitempty"` // int32 类型 1 新增 2 修改 Warehouseid *uint64 `protobuf:"varint,4,opt,name=warehouseid" json:"warehouseid,omitempty"` // uint64 仓库ID Warehousecode *string `protobuf:"bytes,5,opt,name=warehousecode" json:"warehousecode,omitempty"` // string 仓库代码 Warehousename *string `protobuf:"bytes,6,opt,name=warehousename" json:"warehousename,omitempty"` // string 仓库名称 Warehousetype *int32 `protobuf:"varint,7,opt,name=warehousetype" json:"warehousetype,omitempty"` // int32 仓库类型 - 1 厂库 2 自有库 3 合作库 Provinceid *uint64 `protobuf:"varint,8,opt,name=provinceid" json:"provinceid,omitempty"` // uint64 省 Cityid *uint64 `protobuf:"varint,9,opt,name=cityid" json:"cityid,omitempty"` // uint64 市 Districtid *int32 `protobuf:"varint,10,opt,name=districtid" json:"districtid,omitempty"` // int32 区 Address *string `protobuf:"bytes,11,opt,name=address" json:"address,omitempty"` // string 详细地址 Contactname *string `protobuf:"bytes,12,opt,name=contactname" json:"contactname,omitempty"` // string 联系人 Contactnum *string `protobuf:"bytes,13,opt,name=contactnum" json:"contactnum,omitempty"` // string 联系电话 } func (x *WarehouseApplyReq) Reset() { *x = WarehouseApplyReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WarehouseApplyReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*WarehouseApplyReq) ProtoMessage() {} func (x *WarehouseApplyReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[29] 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 WarehouseApplyReq.ProtoReflect.Descriptor instead. func (*WarehouseApplyReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{29} } func (x *WarehouseApplyReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *WarehouseApplyReq) GetUserid() uint64 { if x != nil && x.Userid != nil { return *x.Userid } return 0 } func (x *WarehouseApplyReq) GetType() int32 { if x != nil && x.Type != nil { return *x.Type } return 0 } func (x *WarehouseApplyReq) GetWarehouseid() uint64 { if x != nil && x.Warehouseid != nil { return *x.Warehouseid } return 0 } func (x *WarehouseApplyReq) GetWarehousecode() string { if x != nil && x.Warehousecode != nil { return *x.Warehousecode } return "" } func (x *WarehouseApplyReq) GetWarehousename() string { if x != nil && x.Warehousename != nil { return *x.Warehousename } return "" } func (x *WarehouseApplyReq) GetWarehousetype() int32 { if x != nil && x.Warehousetype != nil { return *x.Warehousetype } return 0 } func (x *WarehouseApplyReq) GetProvinceid() uint64 { if x != nil && x.Provinceid != nil { return *x.Provinceid } return 0 } func (x *WarehouseApplyReq) GetCityid() uint64 { if x != nil && x.Cityid != nil { return *x.Cityid } return 0 } func (x *WarehouseApplyReq) GetDistrictid() int32 { if x != nil && x.Districtid != nil { return *x.Districtid } return 0 } func (x *WarehouseApplyReq) GetAddress() string { if x != nil && x.Address != nil { return *x.Address } return "" } func (x *WarehouseApplyReq) GetContactname() string { if x != nil && x.Contactname != nil { return *x.Contactname } return "" } func (x *WarehouseApplyReq) GetContactnum() string { if x != nil && x.Contactnum != nil { return *x.Contactnum } return "" } // 仓库申请请求 0 29 142 type WarehouseApplyRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // MessageHead 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // int32 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // string 描述信息 Warehouseid *uint64 `protobuf:"varint,4,opt,name=warehouseid" json:"warehouseid,omitempty"` // uint64 仓库ID } func (x *WarehouseApplyRsp) Reset() { *x = WarehouseApplyRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WarehouseApplyRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*WarehouseApplyRsp) ProtoMessage() {} func (x *WarehouseApplyRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[30] 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 WarehouseApplyRsp.ProtoReflect.Descriptor instead. func (*WarehouseApplyRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{30} } func (x *WarehouseApplyRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *WarehouseApplyRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *WarehouseApplyRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *WarehouseApplyRsp) GetWarehouseid() uint64 { if x != nil && x.Warehouseid != nil { return *x.Warehouseid } return 0 } // 违约申请请求 0 20 9 type PerformanceContractedApplyReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // MessageHead PerformancePlanID *uint64 `protobuf:"varint,2,opt,name=PerformancePlanID" json:"PerformancePlanID,omitempty"` // uint64 履约计划ID BreachType *uint32 `protobuf:"varint,3,opt,name=BreachType" json:"BreachType,omitempty"` // uint32 违约方类型 Applicant *uint64 `protobuf:"varint,4,opt,name=Applicant" json:"Applicant,omitempty"` // uint64 违约申请人 ApplyRemark *string `protobuf:"bytes,5,opt,name=ApplyRemark" json:"ApplyRemark,omitempty"` // string 申请备注 Attachment *string `protobuf:"bytes,6,opt,name=Attachment" json:"Attachment,omitempty"` // string 附件 } func (x *PerformanceContractedApplyReq) Reset() { *x = PerformanceContractedApplyReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PerformanceContractedApplyReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*PerformanceContractedApplyReq) ProtoMessage() {} func (x *PerformanceContractedApplyReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[31] 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 PerformanceContractedApplyReq.ProtoReflect.Descriptor instead. func (*PerformanceContractedApplyReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{31} } func (x *PerformanceContractedApplyReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *PerformanceContractedApplyReq) GetPerformancePlanID() uint64 { if x != nil && x.PerformancePlanID != nil { return *x.PerformancePlanID } return 0 } func (x *PerformanceContractedApplyReq) GetBreachType() uint32 { if x != nil && x.BreachType != nil { return *x.BreachType } return 0 } func (x *PerformanceContractedApplyReq) GetApplicant() uint64 { if x != nil && x.Applicant != nil { return *x.Applicant } return 0 } func (x *PerformanceContractedApplyReq) GetApplyRemark() string { if x != nil && x.ApplyRemark != nil { return *x.ApplyRemark } return "" } func (x *PerformanceContractedApplyReq) GetAttachment() string { if x != nil && x.Attachment != nil { return *x.Attachment } return "" } // 违约申请应答 0 20 10 type PerformanceContractedApplyRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // MessageHead 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // int32 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // string 描述信息 PerformancePlanID *uint64 `protobuf:"varint,4,opt,name=PerformancePlanID" json:"PerformancePlanID,omitempty"` // uint64 履约计划ID } func (x *PerformanceContractedApplyRsp) Reset() { *x = PerformanceContractedApplyRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PerformanceContractedApplyRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*PerformanceContractedApplyRsp) ProtoMessage() {} func (x *PerformanceContractedApplyRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[32] 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 PerformanceContractedApplyRsp.ProtoReflect.Descriptor instead. func (*PerformanceContractedApplyRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{32} } func (x *PerformanceContractedApplyRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *PerformanceContractedApplyRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *PerformanceContractedApplyRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *PerformanceContractedApplyRsp) GetPerformancePlanID() uint64 { if x != nil && x.PerformancePlanID != nil { return *x.PerformancePlanID } return 0 } // 延期申请请求 0 20 5 type PerformanceDelayApplyReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // MessageHead PerformancePlanStepID *uint64 `protobuf:"varint,2,opt,name=PerformancePlanStepID" json:"PerformancePlanStepID,omitempty"` // uint64 履约计划步骤ID Delaydays *uint32 `protobuf:"varint,3,opt,name=delaydays" json:"delaydays,omitempty"` // uint32 申请延期天数 Applicant *uint64 `protobuf:"varint,4,opt,name=applicant" json:"applicant,omitempty"` // uint64 申请人 Applyremark *string `protobuf:"bytes,5,opt,name=applyremark" json:"applyremark,omitempty"` // string 申请备注 } func (x *PerformanceDelayApplyReq) Reset() { *x = PerformanceDelayApplyReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PerformanceDelayApplyReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*PerformanceDelayApplyReq) ProtoMessage() {} func (x *PerformanceDelayApplyReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[33] 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 PerformanceDelayApplyReq.ProtoReflect.Descriptor instead. func (*PerformanceDelayApplyReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{33} } func (x *PerformanceDelayApplyReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *PerformanceDelayApplyReq) GetPerformancePlanStepID() uint64 { if x != nil && x.PerformancePlanStepID != nil { return *x.PerformancePlanStepID } return 0 } func (x *PerformanceDelayApplyReq) GetDelaydays() uint32 { if x != nil && x.Delaydays != nil { return *x.Delaydays } return 0 } func (x *PerformanceDelayApplyReq) GetApplicant() uint64 { if x != nil && x.Applicant != nil { return *x.Applicant } return 0 } func (x *PerformanceDelayApplyReq) GetApplyremark() string { if x != nil && x.Applyremark != nil { return *x.Applyremark } return "" } // 延期申请应答 0 20 6 type PerformanceDelayApplyRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // MessageHead 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // int32 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // string 描述信息 PerformancePlanStepID *uint64 `protobuf:"varint,4,opt,name=PerformancePlanStepID" json:"PerformancePlanStepID,omitempty"` // uint64 履约计划步骤ID Applicant *uint64 `protobuf:"varint,5,opt,name=applicant" json:"applicant,omitempty"` // uint64 申请人 } func (x *PerformanceDelayApplyRsp) Reset() { *x = PerformanceDelayApplyRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PerformanceDelayApplyRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*PerformanceDelayApplyRsp) ProtoMessage() {} func (x *PerformanceDelayApplyRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[34] 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 PerformanceDelayApplyRsp.ProtoReflect.Descriptor instead. func (*PerformanceDelayApplyRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{34} } func (x *PerformanceDelayApplyRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *PerformanceDelayApplyRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *PerformanceDelayApplyRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *PerformanceDelayApplyRsp) GetPerformancePlanStepID() uint64 { if x != nil && x.PerformancePlanStepID != nil { return *x.PerformancePlanStepID } return 0 } func (x *PerformanceDelayApplyRsp) GetApplicant() uint64 { if x != nil && x.Applicant != nil { return *x.Applicant } return 0 } // 履约手动确认请求 0 20 3 type PerformanceManualConfirmReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // MessageHead PerformancePlanStepID *uint64 `protobuf:"varint,2,opt,name=PerformancePlanStepID" json:"PerformancePlanStepID,omitempty"` // uint64 履约计划步骤ID OverShortAmount *float64 `protobuf:"fixed64,3,opt,name=OverShortAmount" json:"OverShortAmount,omitempty"` // double 溢短金额 PerformanceExecuteSide *uint32 `protobuf:"varint,4,opt,name=PerformanceExecuteSide" json:"PerformanceExecuteSide,omitempty"` // uint32 履约步骤执行方 1买方 2 卖方 StepRemark *string `protobuf:"bytes,5,opt,name=StepRemark" json:"StepRemark,omitempty"` // string 步骤备注 OverShortQty *float64 `protobuf:"fixed64,6,opt,name=OverShortQty" json:"OverShortQty,omitempty"` // double 溢短数量 ExpressFee *float64 `protobuf:"fixed64,7,opt,name=ExpressFee" json:"ExpressFee,omitempty"` // double 运费金额 } func (x *PerformanceManualConfirmReq) Reset() { *x = PerformanceManualConfirmReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PerformanceManualConfirmReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*PerformanceManualConfirmReq) ProtoMessage() {} func (x *PerformanceManualConfirmReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[35] 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 PerformanceManualConfirmReq.ProtoReflect.Descriptor instead. func (*PerformanceManualConfirmReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{35} } func (x *PerformanceManualConfirmReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *PerformanceManualConfirmReq) GetPerformancePlanStepID() uint64 { if x != nil && x.PerformancePlanStepID != nil { return *x.PerformancePlanStepID } return 0 } func (x *PerformanceManualConfirmReq) GetOverShortAmount() float64 { if x != nil && x.OverShortAmount != nil { return *x.OverShortAmount } return 0 } func (x *PerformanceManualConfirmReq) GetPerformanceExecuteSide() uint32 { if x != nil && x.PerformanceExecuteSide != nil { return *x.PerformanceExecuteSide } return 0 } func (x *PerformanceManualConfirmReq) GetStepRemark() string { if x != nil && x.StepRemark != nil { return *x.StepRemark } return "" } func (x *PerformanceManualConfirmReq) GetOverShortQty() float64 { if x != nil && x.OverShortQty != nil { return *x.OverShortQty } return 0 } func (x *PerformanceManualConfirmReq) GetExpressFee() float64 { if x != nil && x.ExpressFee != nil { return *x.ExpressFee } return 0 } // 履约手动确认应答 0 20 4 type PerformanceManualConfirmRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // MessageHead 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // int32 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // string 描述信息 PerformancePlanStepID *uint64 `protobuf:"varint,4,opt,name=PerformancePlanStepID" json:"PerformancePlanStepID,omitempty"` // uint64 履约计划步骤ID } func (x *PerformanceManualConfirmRsp) Reset() { *x = PerformanceManualConfirmRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PerformanceManualConfirmRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*PerformanceManualConfirmRsp) ProtoMessage() {} func (x *PerformanceManualConfirmRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[36] 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 PerformanceManualConfirmRsp.ProtoReflect.Descriptor instead. func (*PerformanceManualConfirmRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{36} } func (x *PerformanceManualConfirmRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *PerformanceManualConfirmRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *PerformanceManualConfirmRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *PerformanceManualConfirmRsp) GetPerformancePlanStepID() uint64 { if x != nil && x.PerformancePlanStepID != nil { return *x.PerformancePlanStepID } return 0 } // 履约修改联络信息请求 0 20 15 type PerformanceModifyContactReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // MessageHead PerformancePlanID *uint64 `protobuf:"varint,2,opt,name=PerformancePlanID" json:"PerformancePlanID,omitempty"` // uint64 履约计划ID AccountID *uint64 `protobuf:"varint,3,opt,name=AccountID" json:"AccountID,omitempty"` // uint64 账号 ContactInfo *string `protobuf:"bytes,4,opt,name=ContactInfo" json:"ContactInfo,omitempty"` // string 联络信息 } func (x *PerformanceModifyContactReq) Reset() { *x = PerformanceModifyContactReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PerformanceModifyContactReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*PerformanceModifyContactReq) ProtoMessage() {} func (x *PerformanceModifyContactReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[37] 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 PerformanceModifyContactReq.ProtoReflect.Descriptor instead. func (*PerformanceModifyContactReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{37} } func (x *PerformanceModifyContactReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *PerformanceModifyContactReq) GetPerformancePlanID() uint64 { if x != nil && x.PerformancePlanID != nil { return *x.PerformancePlanID } return 0 } func (x *PerformanceModifyContactReq) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *PerformanceModifyContactReq) GetContactInfo() string { if x != nil && x.ContactInfo != nil { return *x.ContactInfo } return "" } // 履约修改联络信息回应 0 20 16 type PerformanceModifyContactRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // MessageHead 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // int32 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // string 描述信息 PerformancePlanID *uint64 `protobuf:"varint,4,opt,name=PerformancePlanID" json:"PerformancePlanID,omitempty"` // uint64 履约计划ID AccountID *uint64 `protobuf:"varint,5,opt,name=AccountID" json:"AccountID,omitempty"` // uint64 账号 } func (x *PerformanceModifyContactRsp) Reset() { *x = PerformanceModifyContactRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PerformanceModifyContactRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*PerformanceModifyContactRsp) ProtoMessage() {} func (x *PerformanceModifyContactRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[38] 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 PerformanceModifyContactRsp.ProtoReflect.Descriptor instead. func (*PerformanceModifyContactRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{38} } func (x *PerformanceModifyContactRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *PerformanceModifyContactRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *PerformanceModifyContactRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *PerformanceModifyContactRsp) GetPerformancePlanID() uint64 { if x != nil && x.PerformancePlanID != nil { return *x.PerformancePlanID } return 0 } func (x *PerformanceModifyContactRsp) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } // 新增钻石商品接口响应 type AddZSGoodsRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 UserID *uint64 `protobuf:"varint,4,opt,name=UserID" json:"UserID,omitempty"` // 用户ID AccountID *uint64 `protobuf:"varint,5,opt,name=AccountID" json:"AccountID,omitempty"` // 资金账户ID WRStandardID *uint64 `protobuf:"varint,6,opt,name=WRStandardID" json:"WRStandardID,omitempty"` // 现货商品ID WRFactorTypeID *uint64 `protobuf:"varint,7,opt,name=WRFactorTypeID" json:"WRFactorTypeID,omitempty"` // 仓单要素类型ID LadingBillID *uint64 `protobuf:"varint,8,opt,name=LadingBillID" json:"LadingBillID,omitempty"` // 提单ID SubNum *uint32 `protobuf:"varint,9,opt,name=SubNum" json:"SubNum,omitempty"` // 提单子单号 ClientSerialNo *string `protobuf:"bytes,10,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *AddZSGoodsRsp) Reset() { *x = AddZSGoodsRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AddZSGoodsRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*AddZSGoodsRsp) ProtoMessage() {} func (x *AddZSGoodsRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[39] 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 AddZSGoodsRsp.ProtoReflect.Descriptor instead. func (*AddZSGoodsRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{39} } func (x *AddZSGoodsRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *AddZSGoodsRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *AddZSGoodsRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *AddZSGoodsRsp) GetUserID() uint64 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *AddZSGoodsRsp) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *AddZSGoodsRsp) GetWRStandardID() uint64 { if x != nil && x.WRStandardID != nil { return *x.WRStandardID } return 0 } func (x *AddZSGoodsRsp) GetWRFactorTypeID() uint64 { if x != nil && x.WRFactorTypeID != nil { return *x.WRFactorTypeID } return 0 } func (x *AddZSGoodsRsp) GetLadingBillID() uint64 { if x != nil && x.LadingBillID != nil { return *x.LadingBillID } return 0 } func (x *AddZSGoodsRsp) GetSubNum() uint32 { if x != nil && x.SubNum != nil { return *x.SubNum } return 0 } func (x *AddZSGoodsRsp) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 商品收藏操作接口请求 type GoodsFavoriteOperateReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` UserID *uint32 `protobuf:"varint,2,opt,name=UserID" json:"UserID,omitempty"` // 用户ID,必填 WRTradeOrderID *uint64 `protobuf:"varint,3,opt,name=WRTradeOrderID" json:"WRTradeOrderID,omitempty"` // 委托单ID,必填 OperateType *uint32 `protobuf:"varint,4,opt,name=OperateType" json:"OperateType,omitempty"` // 操作类型,1:添加2:删除,必填 ClientType *uint32 `protobuf:"varint,5,opt,name=ClientType" json:"ClientType,omitempty"` // 终端类型 MarketID *uint32 `protobuf:"varint,6,opt,name=MarketID" json:"MarketID,omitempty"` // 市场ID,必填 ClientSerialNo *string `protobuf:"bytes,7,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *GoodsFavoriteOperateReq) Reset() { *x = GoodsFavoriteOperateReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GoodsFavoriteOperateReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*GoodsFavoriteOperateReq) ProtoMessage() {} func (x *GoodsFavoriteOperateReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[40] 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 GoodsFavoriteOperateReq.ProtoReflect.Descriptor instead. func (*GoodsFavoriteOperateReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{40} } func (x *GoodsFavoriteOperateReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *GoodsFavoriteOperateReq) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *GoodsFavoriteOperateReq) GetWRTradeOrderID() uint64 { if x != nil && x.WRTradeOrderID != nil { return *x.WRTradeOrderID } return 0 } func (x *GoodsFavoriteOperateReq) GetOperateType() uint32 { if x != nil && x.OperateType != nil { return *x.OperateType } return 0 } func (x *GoodsFavoriteOperateReq) GetClientType() uint32 { if x != nil && x.ClientType != nil { return *x.ClientType } return 0 } func (x *GoodsFavoriteOperateReq) GetMarketID() uint32 { if x != nil && x.MarketID != nil { return *x.MarketID } return 0 } func (x *GoodsFavoriteOperateReq) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 商品收藏操作接口应答 type GoodsFavoriteOperateRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 UserID *uint32 `protobuf:"varint,4,opt,name=UserID" json:"UserID,omitempty"` // 用户ID WRTradeOrderID *uint64 `protobuf:"varint,5,opt,name=WRTradeOrderID" json:"WRTradeOrderID,omitempty"` // 委托单ID ClientSerialNo *string `protobuf:"bytes,6,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *GoodsFavoriteOperateRsp) Reset() { *x = GoodsFavoriteOperateRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GoodsFavoriteOperateRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*GoodsFavoriteOperateRsp) ProtoMessage() {} func (x *GoodsFavoriteOperateRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[41] 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 GoodsFavoriteOperateRsp.ProtoReflect.Descriptor instead. func (*GoodsFavoriteOperateRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{41} } func (x *GoodsFavoriteOperateRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *GoodsFavoriteOperateRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *GoodsFavoriteOperateRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *GoodsFavoriteOperateRsp) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *GoodsFavoriteOperateRsp) GetWRTradeOrderID() uint64 { if x != nil && x.WRTradeOrderID != nil { return *x.WRTradeOrderID } return 0 } func (x *GoodsFavoriteOperateRsp) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 钻石买挂牌属性 type GZBuyOrderDetailExInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserID *uint64 `protobuf:"varint,1,opt,name=UserID" json:"UserID,omitempty"` // 用户ID AccountID *uint64 `protobuf:"varint,2,opt,name=AccountID" json:"AccountID,omitempty"` // 资金账户ID ZSCategory *uint32 `protobuf:"varint,3,opt,name=ZSCategory" json:"ZSCategory,omitempty"` // 钻石分类 ZSCurrencyType []uint32 `protobuf:"varint,4,rep,name=ZSCurrencyType" json:"ZSCurrencyType,omitempty"` // 货币类型 ZSShapeType []uint32 `protobuf:"varint,5,rep,name=ZSShapeType" json:"ZSShapeType,omitempty"` // 形状 ZSColorType []uint32 `protobuf:"varint,6,rep,name=ZSColorType" json:"ZSColorType,omitempty"` // 颜色 ZSClarityType []uint32 `protobuf:"varint,7,rep,name=ZSClarityType" json:"ZSClarityType,omitempty"` // 净度 ZSCutType []uint32 `protobuf:"varint,8,rep,name=ZSCutType" json:"ZSCutType,omitempty"` // 切工 ZSSymmetryType []uint32 `protobuf:"varint,9,rep,name=ZSSymmetryType" json:"ZSSymmetryType,omitempty"` // 对称度 ZSPolishType []uint32 `protobuf:"varint,10,rep,name=ZSPolishType" json:"ZSPolishType,omitempty"` // 抛光度 ZSFluorescenceType []uint32 `protobuf:"varint,11,rep,name=ZSFluorescenceType" json:"ZSFluorescenceType,omitempty"` // 荧光 Size []float64 `protobuf:"fixed64,12,rep,name=Size" json:"Size,omitempty"` // 尺寸 ZSCrystalType []uint32 `protobuf:"varint,13,rep,name=ZSCrystalType" json:"ZSCrystalType,omitempty"` // 晶型 Origin *string `protobuf:"bytes,14,opt,name=Origin" json:"Origin,omitempty"` // 原产地 ZSStyleType []uint32 `protobuf:"varint,15,rep,name=ZSStyleType" json:"ZSStyleType,omitempty"` // 款式 ZSCZColor1Type []uint32 `protobuf:"varint,16,rep,name=ZSCZColor1Type" json:"ZSCZColor1Type,omitempty"` // 彩钻颜色1 ZSCZColor2Type []uint32 `protobuf:"varint,17,rep,name=ZSCZColor2Type" json:"ZSCZColor2Type,omitempty"` // 彩钻颜色2 ZSCZColor3Type []uint32 `protobuf:"varint,18,rep,name=ZSCZColor3Type" json:"ZSCZColor3Type,omitempty"` // 彩钻颜色3 Remark *string `protobuf:"bytes,19,opt,name=Remark" json:"Remark,omitempty"` // 备注 WarehouseIDs []uint64 `protobuf:"varint,20,rep,name=WarehouseIDs" json:"WarehouseIDs,omitempty"` // 仓库ID } func (x *GZBuyOrderDetailExInfo) Reset() { *x = GZBuyOrderDetailExInfo{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GZBuyOrderDetailExInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*GZBuyOrderDetailExInfo) ProtoMessage() {} func (x *GZBuyOrderDetailExInfo) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 GZBuyOrderDetailExInfo.ProtoReflect.Descriptor instead. func (*GZBuyOrderDetailExInfo) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{42} } func (x *GZBuyOrderDetailExInfo) GetUserID() uint64 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *GZBuyOrderDetailExInfo) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *GZBuyOrderDetailExInfo) GetZSCategory() uint32 { if x != nil && x.ZSCategory != nil { return *x.ZSCategory } return 0 } func (x *GZBuyOrderDetailExInfo) GetZSCurrencyType() []uint32 { if x != nil { return x.ZSCurrencyType } return nil } func (x *GZBuyOrderDetailExInfo) GetZSShapeType() []uint32 { if x != nil { return x.ZSShapeType } return nil } func (x *GZBuyOrderDetailExInfo) GetZSColorType() []uint32 { if x != nil { return x.ZSColorType } return nil } func (x *GZBuyOrderDetailExInfo) GetZSClarityType() []uint32 { if x != nil { return x.ZSClarityType } return nil } func (x *GZBuyOrderDetailExInfo) GetZSCutType() []uint32 { if x != nil { return x.ZSCutType } return nil } func (x *GZBuyOrderDetailExInfo) GetZSSymmetryType() []uint32 { if x != nil { return x.ZSSymmetryType } return nil } func (x *GZBuyOrderDetailExInfo) GetZSPolishType() []uint32 { if x != nil { return x.ZSPolishType } return nil } func (x *GZBuyOrderDetailExInfo) GetZSFluorescenceType() []uint32 { if x != nil { return x.ZSFluorescenceType } return nil } func (x *GZBuyOrderDetailExInfo) GetSize() []float64 { if x != nil { return x.Size } return nil } func (x *GZBuyOrderDetailExInfo) GetZSCrystalType() []uint32 { if x != nil { return x.ZSCrystalType } return nil } func (x *GZBuyOrderDetailExInfo) GetOrigin() string { if x != nil && x.Origin != nil { return *x.Origin } return "" } func (x *GZBuyOrderDetailExInfo) GetZSStyleType() []uint32 { if x != nil { return x.ZSStyleType } return nil } func (x *GZBuyOrderDetailExInfo) GetZSCZColor1Type() []uint32 { if x != nil { return x.ZSCZColor1Type } return nil } func (x *GZBuyOrderDetailExInfo) GetZSCZColor2Type() []uint32 { if x != nil { return x.ZSCZColor2Type } return nil } func (x *GZBuyOrderDetailExInfo) GetZSCZColor3Type() []uint32 { if x != nil { return x.ZSCZColor3Type } return nil } func (x *GZBuyOrderDetailExInfo) GetRemark() string { if x != nil && x.Remark != nil { return *x.Remark } return "" } func (x *GZBuyOrderDetailExInfo) GetWarehouseIDs() []uint64 { if x != nil { return x.WarehouseIDs } return nil } // 钻石买挂牌接口请求 type ZSBuyOrderListingReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` UserID *uint32 `protobuf:"varint,2,opt,name=UserID" json:"UserID,omitempty"` // 用户ID,必填 AccountID *uint64 `protobuf:"varint,3,opt,name=AccountID" json:"AccountID,omitempty"` // 资金账号,必填 GZ_BuyOrderDetailExInfo *GZBuyOrderDetailExInfo `protobuf:"bytes,4,opt,name=GZ_BuyOrderDetailExInfo,json=GZBuyOrderDetailExInfo" json:"GZ_BuyOrderDetailExInfo,omitempty"` // 钻石买挂牌属性 PerformanceTemplateID *int64 `protobuf:"varint,5,opt,name=PerformanceTemplateID" json:"PerformanceTemplateID,omitempty"` // 履约计划模板ID MarketID *uint32 `protobuf:"varint,6,opt,name=MarketID" json:"MarketID,omitempty"` // 市场ID,必填 OrderSrc *uint32 `protobuf:"varint,7,opt,name=OrderSrc" json:"OrderSrc,omitempty"` // 委托来源 ClientOrderTime *string `protobuf:"bytes,8,opt,name=ClientOrderTime" json:"ClientOrderTime,omitempty"` // 客户端委托时间 ClientType *uint32 `protobuf:"varint,9,opt,name=ClientType" json:"ClientType,omitempty"` // 终端类型 ClientSerialNo *string `protobuf:"bytes,10,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *ZSBuyOrderListingReq) Reset() { *x = ZSBuyOrderListingReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ZSBuyOrderListingReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*ZSBuyOrderListingReq) ProtoMessage() {} func (x *ZSBuyOrderListingReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 ZSBuyOrderListingReq.ProtoReflect.Descriptor instead. func (*ZSBuyOrderListingReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{43} } func (x *ZSBuyOrderListingReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *ZSBuyOrderListingReq) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *ZSBuyOrderListingReq) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *ZSBuyOrderListingReq) GetGZ_BuyOrderDetailExInfo() *GZBuyOrderDetailExInfo { if x != nil { return x.GZ_BuyOrderDetailExInfo } return nil } func (x *ZSBuyOrderListingReq) GetPerformanceTemplateID() int64 { if x != nil && x.PerformanceTemplateID != nil { return *x.PerformanceTemplateID } return 0 } func (x *ZSBuyOrderListingReq) GetMarketID() uint32 { if x != nil && x.MarketID != nil { return *x.MarketID } return 0 } func (x *ZSBuyOrderListingReq) GetOrderSrc() uint32 { if x != nil && x.OrderSrc != nil { return *x.OrderSrc } return 0 } func (x *ZSBuyOrderListingReq) GetClientOrderTime() string { if x != nil && x.ClientOrderTime != nil { return *x.ClientOrderTime } return "" } func (x *ZSBuyOrderListingReq) GetClientType() uint32 { if x != nil && x.ClientType != nil { return *x.ClientType } return 0 } func (x *ZSBuyOrderListingReq) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 钻石买挂牌接口应答 type ZSBuyOrderListingRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 UserID *uint32 `protobuf:"varint,4,opt,name=UserID" json:"UserID,omitempty"` // 用户ID AccountID *uint64 `protobuf:"varint,5,opt,name=AccountID" json:"AccountID,omitempty"` // 资金账号 WRTradeOrderID *uint64 `protobuf:"varint,6,opt,name=WRTradeOrderID" json:"WRTradeOrderID,omitempty"` // 仓单贸易委托单ID OrderTime *string `protobuf:"bytes,7,opt,name=OrderTime" json:"OrderTime,omitempty"` // 接收委托交易的时间 ClientSerialNo *string `protobuf:"bytes,8,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *ZSBuyOrderListingRsp) Reset() { *x = ZSBuyOrderListingRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ZSBuyOrderListingRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*ZSBuyOrderListingRsp) ProtoMessage() {} func (x *ZSBuyOrderListingRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 ZSBuyOrderListingRsp.ProtoReflect.Descriptor instead. func (*ZSBuyOrderListingRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{44} } func (x *ZSBuyOrderListingRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *ZSBuyOrderListingRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *ZSBuyOrderListingRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *ZSBuyOrderListingRsp) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *ZSBuyOrderListingRsp) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *ZSBuyOrderListingRsp) GetWRTradeOrderID() uint64 { if x != nil && x.WRTradeOrderID != nil { return *x.WRTradeOrderID } return 0 } func (x *ZSBuyOrderListingRsp) GetOrderTime() string { if x != nil && x.OrderTime != nil { return *x.OrderTime } return "" } func (x *ZSBuyOrderListingRsp) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 钻石卖挂牌接口请求 type ZSSellOrderListingReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` UserID *uint64 `protobuf:"varint,2,opt,name=UserID" json:"UserID,omitempty"` // 用户ID,必填 AccountID *uint64 `protobuf:"varint,3,opt,name=AccountID" json:"AccountID,omitempty"` // 资金账户ID,必填 WRStandardID *uint64 `protobuf:"varint,4,opt,name=WRStandardID" json:"WRStandardID,omitempty"` // 现货商品ID,必填 WRFactorTypeID *uint64 `protobuf:"varint,5,opt,name=WRFactorTypeID" json:"WRFactorTypeID,omitempty"` // 仓单要素类型ID,必填 OrderQty *float64 `protobuf:"fixed64,6,opt,name=OrderQty" json:"OrderQty,omitempty"` // 挂牌数量,必填2位小数,为WeigthAvg的整数倍 LadingBillID *uint64 `protobuf:"varint,7,opt,name=LadingBillID" json:"LadingBillID,omitempty"` // 提单ID,必填 SubNum *uint32 `protobuf:"varint,8,opt,name=SubNum" json:"SubNum,omitempty"` // 提单子单号,必填 PerformanceTemplateID *int64 `protobuf:"varint,9,opt,name=PerformanceTemplateID" json:"PerformanceTemplateID,omitempty"` // 履约计划模板ID TimevalidType *uint32 `protobuf:"varint,10,opt,name=TimevalidType" json:"TimevalidType,omitempty"` // 时间有效类型 ValidTime *string `protobuf:"bytes,11,opt,name=ValidTime" json:"ValidTime,omitempty"` // 有效期限 OrderSrc *uint32 `protobuf:"varint,12,opt,name=OrderSrc" json:"OrderSrc,omitempty"` // 委托来源 ClientSerialNo *string `protobuf:"bytes,13,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 ClientOrderTime *string `protobuf:"bytes,14,opt,name=ClientOrderTime" json:"ClientOrderTime,omitempty"` // 客户端委托时间 ClientType *uint32 `protobuf:"varint,15,opt,name=ClientType" json:"ClientType,omitempty"` // 终端类型 MarketID *uint64 `protobuf:"varint,16,opt,name=MarketID" json:"MarketID,omitempty"` // 市场ID,必填 } func (x *ZSSellOrderListingReq) Reset() { *x = ZSSellOrderListingReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ZSSellOrderListingReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*ZSSellOrderListingReq) ProtoMessage() {} func (x *ZSSellOrderListingReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 ZSSellOrderListingReq.ProtoReflect.Descriptor instead. func (*ZSSellOrderListingReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{45} } func (x *ZSSellOrderListingReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *ZSSellOrderListingReq) GetUserID() uint64 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *ZSSellOrderListingReq) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *ZSSellOrderListingReq) GetWRStandardID() uint64 { if x != nil && x.WRStandardID != nil { return *x.WRStandardID } return 0 } func (x *ZSSellOrderListingReq) GetWRFactorTypeID() uint64 { if x != nil && x.WRFactorTypeID != nil { return *x.WRFactorTypeID } return 0 } func (x *ZSSellOrderListingReq) GetOrderQty() float64 { if x != nil && x.OrderQty != nil { return *x.OrderQty } return 0 } func (x *ZSSellOrderListingReq) GetLadingBillID() uint64 { if x != nil && x.LadingBillID != nil { return *x.LadingBillID } return 0 } func (x *ZSSellOrderListingReq) GetSubNum() uint32 { if x != nil && x.SubNum != nil { return *x.SubNum } return 0 } func (x *ZSSellOrderListingReq) GetPerformanceTemplateID() int64 { if x != nil && x.PerformanceTemplateID != nil { return *x.PerformanceTemplateID } return 0 } func (x *ZSSellOrderListingReq) GetTimevalidType() uint32 { if x != nil && x.TimevalidType != nil { return *x.TimevalidType } return 0 } func (x *ZSSellOrderListingReq) GetValidTime() string { if x != nil && x.ValidTime != nil { return *x.ValidTime } return "" } func (x *ZSSellOrderListingReq) GetOrderSrc() uint32 { if x != nil && x.OrderSrc != nil { return *x.OrderSrc } return 0 } func (x *ZSSellOrderListingReq) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } func (x *ZSSellOrderListingReq) GetClientOrderTime() string { if x != nil && x.ClientOrderTime != nil { return *x.ClientOrderTime } return "" } func (x *ZSSellOrderListingReq) GetClientType() uint32 { if x != nil && x.ClientType != nil { return *x.ClientType } return 0 } func (x *ZSSellOrderListingReq) GetMarketID() uint64 { if x != nil && x.MarketID != nil { return *x.MarketID } return 0 } // 钻石卖挂牌接口响应 type ZSSellOrderListingRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 UserID *uint32 `protobuf:"varint,4,opt,name=UserID" json:"UserID,omitempty"` // 用户ID AccountID *uint64 `protobuf:"varint,5,opt,name=AccountID" json:"AccountID,omitempty"` // 资金账号 WRTradeOrderID *uint64 `protobuf:"varint,6,opt,name=WRTradeOrderID" json:"WRTradeOrderID,omitempty"` // 仓单贸易委托单ID FreezeQty *uint64 `protobuf:"varint,7,opt,name=FreezeQty" json:"FreezeQty,omitempty"` // 冻结数量 OrderTime *string `protobuf:"bytes,8,opt,name=OrderTime" json:"OrderTime,omitempty"` // 接收委托交易的时间 ClientSerialNo *string `protobuf:"bytes,9,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *ZSSellOrderListingRsp) Reset() { *x = ZSSellOrderListingRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ZSSellOrderListingRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*ZSSellOrderListingRsp) ProtoMessage() {} func (x *ZSSellOrderListingRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 ZSSellOrderListingRsp.ProtoReflect.Descriptor instead. func (*ZSSellOrderListingRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{46} } func (x *ZSSellOrderListingRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *ZSSellOrderListingRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *ZSSellOrderListingRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *ZSSellOrderListingRsp) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *ZSSellOrderListingRsp) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *ZSSellOrderListingRsp) GetWRTradeOrderID() uint64 { if x != nil && x.WRTradeOrderID != nil { return *x.WRTradeOrderID } return 0 } func (x *ZSSellOrderListingRsp) GetFreezeQty() uint64 { if x != nil && x.FreezeQty != nil { return *x.FreezeQty } return 0 } func (x *ZSSellOrderListingRsp) GetOrderTime() string { if x != nil && x.OrderTime != nil { return *x.OrderTime } return "" } func (x *ZSSellOrderListingRsp) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 钻石买摘牌接口请求 type ZSBuyOrderDestingReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` UserID *uint32 `protobuf:"varint,2,opt,name=UserID" json:"UserID,omitempty"` // 用户ID,必填 AccountID *uint64 `protobuf:"varint,3,opt,name=AccountID" json:"AccountID,omitempty"` // 资金账号,必填 RelatedWRTradeOrderID *uint64 `protobuf:"varint,4,opt,name=RelatedWRTradeOrderID" json:"RelatedWRTradeOrderID,omitempty"` // 卖委托单号,必填 OrderQty *float64 `protobuf:"fixed64,5,opt,name=OrderQty" json:"OrderQty,omitempty"` // 委托数量,必填2位小数,为WeigthAvg的整数倍 OrderSrc *uint32 `protobuf:"varint,6,opt,name=OrderSrc" json:"OrderSrc,omitempty"` // 委托来源 ClientSerialNo *string `protobuf:"bytes,7,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 ClientOrderTime *string `protobuf:"bytes,8,opt,name=ClientOrderTime" json:"ClientOrderTime,omitempty"` // 客户端委托时间 ClientType *uint32 `protobuf:"varint,9,opt,name=ClientType" json:"ClientType,omitempty"` // 终端类型 OperatorID *uint64 `protobuf:"varint,10,opt,name=OperatorID" json:"OperatorID,omitempty"` // 操作员账号ID MarketID *uint64 `protobuf:"varint,11,opt,name=MarketID" json:"MarketID,omitempty"` // 市场ID,必填 } func (x *ZSBuyOrderDestingReq) Reset() { *x = ZSBuyOrderDestingReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ZSBuyOrderDestingReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*ZSBuyOrderDestingReq) ProtoMessage() {} func (x *ZSBuyOrderDestingReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 ZSBuyOrderDestingReq.ProtoReflect.Descriptor instead. func (*ZSBuyOrderDestingReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{47} } func (x *ZSBuyOrderDestingReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *ZSBuyOrderDestingReq) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *ZSBuyOrderDestingReq) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *ZSBuyOrderDestingReq) GetRelatedWRTradeOrderID() uint64 { if x != nil && x.RelatedWRTradeOrderID != nil { return *x.RelatedWRTradeOrderID } return 0 } func (x *ZSBuyOrderDestingReq) GetOrderQty() float64 { if x != nil && x.OrderQty != nil { return *x.OrderQty } return 0 } func (x *ZSBuyOrderDestingReq) GetOrderSrc() uint32 { if x != nil && x.OrderSrc != nil { return *x.OrderSrc } return 0 } func (x *ZSBuyOrderDestingReq) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } func (x *ZSBuyOrderDestingReq) GetClientOrderTime() string { if x != nil && x.ClientOrderTime != nil { return *x.ClientOrderTime } return "" } func (x *ZSBuyOrderDestingReq) GetClientType() uint32 { if x != nil && x.ClientType != nil { return *x.ClientType } return 0 } func (x *ZSBuyOrderDestingReq) GetOperatorID() uint64 { if x != nil && x.OperatorID != nil { return *x.OperatorID } return 0 } func (x *ZSBuyOrderDestingReq) GetMarketID() uint64 { if x != nil && x.MarketID != nil { return *x.MarketID } return 0 } // 钻石买摘牌接口响应 type ZSBuyOrderDestingRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 UserID *uint32 `protobuf:"varint,4,opt,name=UserID" json:"UserID,omitempty"` // 用户ID AccountID *uint64 `protobuf:"varint,5,opt,name=AccountID" json:"AccountID,omitempty"` // 资金账号 WRTradeOrderID *uint64 `protobuf:"varint,6,opt,name=WRTradeOrderID" json:"WRTradeOrderID,omitempty"` // 仓单贸易委托单ID RelatedWRTradeOrderID *uint64 `protobuf:"varint,7,opt,name=RelatedWRTradeOrderID" json:"RelatedWRTradeOrderID,omitempty"` // 关联委托单号(摘牌委托关联挂牌委托单ID) FreezeAmount *float64 `protobuf:"fixed64,8,opt,name=FreezeAmount" json:"FreezeAmount,omitempty"` // 冻结货款 OrderTime *string `protobuf:"bytes,9,opt,name=OrderTime" json:"OrderTime,omitempty"` // 接收委托交易的时间 ClientSerialNo *string `protobuf:"bytes,10,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *ZSBuyOrderDestingRsp) Reset() { *x = ZSBuyOrderDestingRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ZSBuyOrderDestingRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*ZSBuyOrderDestingRsp) ProtoMessage() {} func (x *ZSBuyOrderDestingRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 ZSBuyOrderDestingRsp.ProtoReflect.Descriptor instead. func (*ZSBuyOrderDestingRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{48} } func (x *ZSBuyOrderDestingRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *ZSBuyOrderDestingRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *ZSBuyOrderDestingRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *ZSBuyOrderDestingRsp) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *ZSBuyOrderDestingRsp) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *ZSBuyOrderDestingRsp) GetWRTradeOrderID() uint64 { if x != nil && x.WRTradeOrderID != nil { return *x.WRTradeOrderID } return 0 } func (x *ZSBuyOrderDestingRsp) GetRelatedWRTradeOrderID() uint64 { if x != nil && x.RelatedWRTradeOrderID != nil { return *x.RelatedWRTradeOrderID } return 0 } func (x *ZSBuyOrderDestingRsp) GetFreezeAmount() float64 { if x != nil && x.FreezeAmount != nil { return *x.FreezeAmount } return 0 } func (x *ZSBuyOrderDestingRsp) GetOrderTime() string { if x != nil && x.OrderTime != nil { return *x.OrderTime } return "" } func (x *ZSBuyOrderDestingRsp) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 钻石卖摘牌申请接口请求 type ZSSellOrderDestingApplyReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` UserID *uint64 `protobuf:"varint,2,opt,name=UserID" json:"UserID,omitempty"` // 用户ID,必填 AccountID *uint64 `protobuf:"varint,3,opt,name=AccountID" json:"AccountID,omitempty"` // 资金账户ID,必填 BuyWRTradeOrderID *uint64 `protobuf:"varint,4,opt,name=BuyWRTradeOrderID" json:"BuyWRTradeOrderID,omitempty"` // 买挂牌委托单ID,必填 WRStandardID *uint64 `protobuf:"varint,5,opt,name=WRStandardID" json:"WRStandardID,omitempty"` // 现货商品ID,必填 WRFactorTypeID *uint64 `protobuf:"varint,6,opt,name=WRFactorTypeID" json:"WRFactorTypeID,omitempty"` // 仓单要素类型ID,必填 ApplyQty *float64 `protobuf:"fixed64,7,opt,name=ApplyQty" json:"ApplyQty,omitempty"` // 申请数量,必填,2位小数 ApplyPrice *float64 `protobuf:"fixed64,8,opt,name=ApplyPrice" json:"ApplyPrice,omitempty"` // 申请价格,必填,2位小数 LadingBillID *uint64 `protobuf:"varint,9,opt,name=LadingBillID" json:"LadingBillID,omitempty"` // 提单ID,必填 SubNum *uint32 `protobuf:"varint,10,opt,name=SubNum" json:"SubNum,omitempty"` // 提单子单号,必填 ApplyRemark *string `protobuf:"bytes,11,opt,name=ApplyRemark" json:"ApplyRemark,omitempty"` // 备注 ClientType *uint32 `protobuf:"varint,12,opt,name=ClientType" json:"ClientType,omitempty"` // 终端类型 ClientSerialNo *string `protobuf:"bytes,13,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 MarketID *uint64 `protobuf:"varint,14,opt,name=MarketID" json:"MarketID,omitempty"` // 市场ID,必填 } func (x *ZSSellOrderDestingApplyReq) Reset() { *x = ZSSellOrderDestingApplyReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ZSSellOrderDestingApplyReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*ZSSellOrderDestingApplyReq) ProtoMessage() {} func (x *ZSSellOrderDestingApplyReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 ZSSellOrderDestingApplyReq.ProtoReflect.Descriptor instead. func (*ZSSellOrderDestingApplyReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{49} } func (x *ZSSellOrderDestingApplyReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *ZSSellOrderDestingApplyReq) GetUserID() uint64 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *ZSSellOrderDestingApplyReq) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *ZSSellOrderDestingApplyReq) GetBuyWRTradeOrderID() uint64 { if x != nil && x.BuyWRTradeOrderID != nil { return *x.BuyWRTradeOrderID } return 0 } func (x *ZSSellOrderDestingApplyReq) GetWRStandardID() uint64 { if x != nil && x.WRStandardID != nil { return *x.WRStandardID } return 0 } func (x *ZSSellOrderDestingApplyReq) GetWRFactorTypeID() uint64 { if x != nil && x.WRFactorTypeID != nil { return *x.WRFactorTypeID } return 0 } func (x *ZSSellOrderDestingApplyReq) GetApplyQty() float64 { if x != nil && x.ApplyQty != nil { return *x.ApplyQty } return 0 } func (x *ZSSellOrderDestingApplyReq) GetApplyPrice() float64 { if x != nil && x.ApplyPrice != nil { return *x.ApplyPrice } return 0 } func (x *ZSSellOrderDestingApplyReq) GetLadingBillID() uint64 { if x != nil && x.LadingBillID != nil { return *x.LadingBillID } return 0 } func (x *ZSSellOrderDestingApplyReq) GetSubNum() uint32 { if x != nil && x.SubNum != nil { return *x.SubNum } return 0 } func (x *ZSSellOrderDestingApplyReq) GetApplyRemark() string { if x != nil && x.ApplyRemark != nil { return *x.ApplyRemark } return "" } func (x *ZSSellOrderDestingApplyReq) GetClientType() uint32 { if x != nil && x.ClientType != nil { return *x.ClientType } return 0 } func (x *ZSSellOrderDestingApplyReq) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } func (x *ZSSellOrderDestingApplyReq) GetMarketID() uint64 { if x != nil && x.MarketID != nil { return *x.MarketID } return 0 } // 钻石卖摘牌申请接口响应 type ZSSellOrderDestingApplyRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 UserID *uint32 `protobuf:"varint,4,opt,name=UserID" json:"UserID,omitempty"` // 用户ID AccountID *uint64 `protobuf:"varint,5,opt,name=AccountID" json:"AccountID,omitempty"` // 资金账号 ApplyID *uint64 `protobuf:"varint,6,opt,name=ApplyID" json:"ApplyID,omitempty"` // 仓单贸易委托单ID ClientSerialNo *string `protobuf:"bytes,7,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *ZSSellOrderDestingApplyRsp) Reset() { *x = ZSSellOrderDestingApplyRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ZSSellOrderDestingApplyRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*ZSSellOrderDestingApplyRsp) ProtoMessage() {} func (x *ZSSellOrderDestingApplyRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 ZSSellOrderDestingApplyRsp.ProtoReflect.Descriptor instead. func (*ZSSellOrderDestingApplyRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{50} } func (x *ZSSellOrderDestingApplyRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *ZSSellOrderDestingApplyRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *ZSSellOrderDestingApplyRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *ZSSellOrderDestingApplyRsp) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *ZSSellOrderDestingApplyRsp) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *ZSSellOrderDestingApplyRsp) GetApplyID() uint64 { if x != nil && x.ApplyID != nil { return *x.ApplyID } return 0 } func (x *ZSSellOrderDestingApplyRsp) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 钻石卖摘牌申请操作接口请求 type ZSSellOrderDestingApplyOperateReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` UserID *uint32 `protobuf:"varint,2,opt,name=UserID" json:"UserID,omitempty"` // 用户ID,必填 AccountID *uint64 `protobuf:"varint,3,opt,name=AccountID" json:"AccountID,omitempty"` // 资金账号 SellDelistingApplyID *uint64 `protobuf:"varint,4,opt,name=SellDelistingApplyID" json:"SellDelistingApplyID,omitempty"` // 卖摘牌申请ID,必填 AuditRemark *string `protobuf:"bytes,5,opt,name=AuditRemark" json:"AuditRemark,omitempty"` // 备注 OperateType *uint32 `protobuf:"varint,6,opt,name=OperateType" json:"OperateType,omitempty"` // 操作类型,1:撤销2:拒绝 MarketID *uint32 `protobuf:"varint,7,opt,name=MarketID" json:"MarketID,omitempty"` // 市场ID,必填 ClientType *uint32 `protobuf:"varint,8,opt,name=ClientType" json:"ClientType,omitempty"` // 终端类型 OrderSrc *uint32 `protobuf:"varint,9,opt,name=OrderSrc" json:"OrderSrc,omitempty"` // 委托来源 ClientSerialNo *string `protobuf:"bytes,10,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *ZSSellOrderDestingApplyOperateReq) Reset() { *x = ZSSellOrderDestingApplyOperateReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ZSSellOrderDestingApplyOperateReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*ZSSellOrderDestingApplyOperateReq) ProtoMessage() {} func (x *ZSSellOrderDestingApplyOperateReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 ZSSellOrderDestingApplyOperateReq.ProtoReflect.Descriptor instead. func (*ZSSellOrderDestingApplyOperateReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{51} } func (x *ZSSellOrderDestingApplyOperateReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *ZSSellOrderDestingApplyOperateReq) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *ZSSellOrderDestingApplyOperateReq) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *ZSSellOrderDestingApplyOperateReq) GetSellDelistingApplyID() uint64 { if x != nil && x.SellDelistingApplyID != nil { return *x.SellDelistingApplyID } return 0 } func (x *ZSSellOrderDestingApplyOperateReq) GetAuditRemark() string { if x != nil && x.AuditRemark != nil { return *x.AuditRemark } return "" } func (x *ZSSellOrderDestingApplyOperateReq) GetOperateType() uint32 { if x != nil && x.OperateType != nil { return *x.OperateType } return 0 } func (x *ZSSellOrderDestingApplyOperateReq) GetMarketID() uint32 { if x != nil && x.MarketID != nil { return *x.MarketID } return 0 } func (x *ZSSellOrderDestingApplyOperateReq) GetClientType() uint32 { if x != nil && x.ClientType != nil { return *x.ClientType } return 0 } func (x *ZSSellOrderDestingApplyOperateReq) GetOrderSrc() uint32 { if x != nil && x.OrderSrc != nil { return *x.OrderSrc } return 0 } func (x *ZSSellOrderDestingApplyOperateReq) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 钻石卖摘牌申请操作接口应答 type ZSSellOrderDestingApplyOperateRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 UserID *uint32 `protobuf:"varint,4,opt,name=UserID" json:"UserID,omitempty"` // 用户ID AccountID *uint64 `protobuf:"varint,5,opt,name=AccountID" json:"AccountID,omitempty"` // 资金账号 SellDelistingApplyID *uint64 `protobuf:"varint,6,opt,name=SellDelistingApplyID" json:"SellDelistingApplyID,omitempty"` // 卖摘牌申请ID WRTradeOrderID *uint64 `protobuf:"varint,7,opt,name=WRTradeOrderID" json:"WRTradeOrderID,omitempty"` // 仓单贸易委托单ID FreezeAmount *float64 `protobuf:"fixed64,8,opt,name=FreezeAmount" json:"FreezeAmount,omitempty"` // 冻结货款 OrderTime *string `protobuf:"bytes,9,opt,name=OrderTime" json:"OrderTime,omitempty"` // 接收委托交易的时间 ClientSerialNo *string `protobuf:"bytes,10,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *ZSSellOrderDestingApplyOperateRsp) Reset() { *x = ZSSellOrderDestingApplyOperateRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ZSSellOrderDestingApplyOperateRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*ZSSellOrderDestingApplyOperateRsp) ProtoMessage() {} func (x *ZSSellOrderDestingApplyOperateRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 ZSSellOrderDestingApplyOperateRsp.ProtoReflect.Descriptor instead. func (*ZSSellOrderDestingApplyOperateRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{52} } func (x *ZSSellOrderDestingApplyOperateRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *ZSSellOrderDestingApplyOperateRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *ZSSellOrderDestingApplyOperateRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *ZSSellOrderDestingApplyOperateRsp) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *ZSSellOrderDestingApplyOperateRsp) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *ZSSellOrderDestingApplyOperateRsp) GetSellDelistingApplyID() uint64 { if x != nil && x.SellDelistingApplyID != nil { return *x.SellDelistingApplyID } return 0 } func (x *ZSSellOrderDestingApplyOperateRsp) GetWRTradeOrderID() uint64 { if x != nil && x.WRTradeOrderID != nil { return *x.WRTradeOrderID } return 0 } func (x *ZSSellOrderDestingApplyOperateRsp) GetFreezeAmount() float64 { if x != nil && x.FreezeAmount != nil { return *x.FreezeAmount } return 0 } func (x *ZSSellOrderDestingApplyOperateRsp) GetOrderTime() string { if x != nil && x.OrderTime != nil { return *x.OrderTime } return "" } func (x *ZSSellOrderDestingApplyOperateRsp) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 买摘牌询价接口请求 type ZSBuyOrderDestingNegPriceReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` UserID *uint32 `protobuf:"varint,2,opt,name=UserID" json:"UserID,omitempty"` // 用户ID,必填 AccountID *uint64 `protobuf:"varint,3,opt,name=AccountID" json:"AccountID,omitempty"` // 资金账号,必填 RelatedOrderID *uint64 `protobuf:"varint,4,opt,name=RelatedOrderID" json:"RelatedOrderID,omitempty"` // 卖委托单号,必填 OrderQty *float64 `protobuf:"fixed64,5,opt,name=OrderQty" json:"OrderQty,omitempty"` // 议价数量,2位小数,必填 ApplyPrice *float64 `protobuf:"fixed64,6,opt,name=ApplyPrice" json:"ApplyPrice,omitempty"` // 协议价格,2位小数,必填 OrderSrc *uint32 `protobuf:"varint,7,opt,name=OrderSrc" json:"OrderSrc,omitempty"` // 委托来源 ClientSerialNo *string `protobuf:"bytes,8,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 ClientOrderTime *string `protobuf:"bytes,9,opt,name=ClientOrderTime" json:"ClientOrderTime,omitempty"` // 客户端委托时间 ClientType *uint32 `protobuf:"varint,10,opt,name=ClientType" json:"ClientType,omitempty"` // 终端类型 OperatorID *uint64 `protobuf:"varint,11,opt,name=OperatorID" json:"OperatorID,omitempty"` // 操作员账号ID MarketID *uint32 `protobuf:"varint,12,opt,name=MarketID" json:"MarketID,omitempty"` // 市场ID,必填 ApplyRemark *string `protobuf:"bytes,13,opt,name=ApplyRemark" json:"ApplyRemark,omitempty"` // 申请备注 } func (x *ZSBuyOrderDestingNegPriceReq) Reset() { *x = ZSBuyOrderDestingNegPriceReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ZSBuyOrderDestingNegPriceReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*ZSBuyOrderDestingNegPriceReq) ProtoMessage() {} func (x *ZSBuyOrderDestingNegPriceReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 ZSBuyOrderDestingNegPriceReq.ProtoReflect.Descriptor instead. func (*ZSBuyOrderDestingNegPriceReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{53} } func (x *ZSBuyOrderDestingNegPriceReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *ZSBuyOrderDestingNegPriceReq) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *ZSBuyOrderDestingNegPriceReq) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *ZSBuyOrderDestingNegPriceReq) GetRelatedOrderID() uint64 { if x != nil && x.RelatedOrderID != nil { return *x.RelatedOrderID } return 0 } func (x *ZSBuyOrderDestingNegPriceReq) GetOrderQty() float64 { if x != nil && x.OrderQty != nil { return *x.OrderQty } return 0 } func (x *ZSBuyOrderDestingNegPriceReq) GetApplyPrice() float64 { if x != nil && x.ApplyPrice != nil { return *x.ApplyPrice } return 0 } func (x *ZSBuyOrderDestingNegPriceReq) GetOrderSrc() uint32 { if x != nil && x.OrderSrc != nil { return *x.OrderSrc } return 0 } func (x *ZSBuyOrderDestingNegPriceReq) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } func (x *ZSBuyOrderDestingNegPriceReq) GetClientOrderTime() string { if x != nil && x.ClientOrderTime != nil { return *x.ClientOrderTime } return "" } func (x *ZSBuyOrderDestingNegPriceReq) GetClientType() uint32 { if x != nil && x.ClientType != nil { return *x.ClientType } return 0 } func (x *ZSBuyOrderDestingNegPriceReq) GetOperatorID() uint64 { if x != nil && x.OperatorID != nil { return *x.OperatorID } return 0 } func (x *ZSBuyOrderDestingNegPriceReq) GetMarketID() uint32 { if x != nil && x.MarketID != nil { return *x.MarketID } return 0 } func (x *ZSBuyOrderDestingNegPriceReq) GetApplyRemark() string { if x != nil && x.ApplyRemark != nil { return *x.ApplyRemark } return "" } // 买摘牌询价接口应答 type ZSBuyOrderDestingNegPriceRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 UserID *uint32 `protobuf:"varint,4,opt,name=UserID" json:"UserID,omitempty"` // 用户ID AccountID *uint64 `protobuf:"varint,5,opt,name=AccountID" json:"AccountID,omitempty"` // 资金账号 WRTradeOrderID *uint64 `protobuf:"varint,6,opt,name=WRTradeOrderID" json:"WRTradeOrderID,omitempty"` // 摘牌委托单ID WRBargainID *uint64 `protobuf:"varint,7,opt,name=WRBargainID" json:"WRBargainID,omitempty"` // 议价申请单ID OrderTime *string `protobuf:"bytes,8,opt,name=OrderTime" json:"OrderTime,omitempty"` // 接收委托交易的时间 ClientSerialNo *string `protobuf:"bytes,9,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *ZSBuyOrderDestingNegPriceRsp) Reset() { *x = ZSBuyOrderDestingNegPriceRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ZSBuyOrderDestingNegPriceRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*ZSBuyOrderDestingNegPriceRsp) ProtoMessage() {} func (x *ZSBuyOrderDestingNegPriceRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 ZSBuyOrderDestingNegPriceRsp.ProtoReflect.Descriptor instead. func (*ZSBuyOrderDestingNegPriceRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{54} } func (x *ZSBuyOrderDestingNegPriceRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *ZSBuyOrderDestingNegPriceRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *ZSBuyOrderDestingNegPriceRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *ZSBuyOrderDestingNegPriceRsp) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *ZSBuyOrderDestingNegPriceRsp) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *ZSBuyOrderDestingNegPriceRsp) GetWRTradeOrderID() uint64 { if x != nil && x.WRTradeOrderID != nil { return *x.WRTradeOrderID } return 0 } func (x *ZSBuyOrderDestingNegPriceRsp) GetWRBargainID() uint64 { if x != nil && x.WRBargainID != nil { return *x.WRBargainID } return 0 } func (x *ZSBuyOrderDestingNegPriceRsp) GetOrderTime() string { if x != nil && x.OrderTime != nil { return *x.OrderTime } return "" } func (x *ZSBuyOrderDestingNegPriceRsp) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 买摘牌询价操作接口请求 type ZSBuyOrderDestingNegPriceOperateReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` UserID *uint32 `protobuf:"varint,2,opt,name=UserID" json:"UserID,omitempty"` // 用户ID,必填 AccountID *uint64 `protobuf:"varint,3,opt,name=AccountID" json:"AccountID,omitempty"` // 资金账号,必填 WRBargainID *uint64 `protobuf:"varint,4,opt,name=WRBargainID" json:"WRBargainID,omitempty"` // 议价申请单ID,必填 AuditRemark *string `protobuf:"bytes,5,opt,name=AuditRemark" json:"AuditRemark,omitempty"` // 备注 OperateType *uint32 `protobuf:"varint,6,opt,name=OperateType" json:"OperateType,omitempty"` // 操作类型,1:撤销2:拒绝 MarketID *uint32 `protobuf:"varint,7,opt,name=MarketID" json:"MarketID,omitempty"` // 市场ID,必填 ClientType *uint32 `protobuf:"varint,8,opt,name=ClientType" json:"ClientType,omitempty"` // 终端类型 OrderSrc *uint32 `protobuf:"varint,9,opt,name=OrderSrc" json:"OrderSrc,omitempty"` // 委托来源 ClientSerialNo *string `protobuf:"bytes,10,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *ZSBuyOrderDestingNegPriceOperateReq) Reset() { *x = ZSBuyOrderDestingNegPriceOperateReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ZSBuyOrderDestingNegPriceOperateReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*ZSBuyOrderDestingNegPriceOperateReq) ProtoMessage() {} func (x *ZSBuyOrderDestingNegPriceOperateReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 ZSBuyOrderDestingNegPriceOperateReq.ProtoReflect.Descriptor instead. func (*ZSBuyOrderDestingNegPriceOperateReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{55} } func (x *ZSBuyOrderDestingNegPriceOperateReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *ZSBuyOrderDestingNegPriceOperateReq) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *ZSBuyOrderDestingNegPriceOperateReq) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *ZSBuyOrderDestingNegPriceOperateReq) GetWRBargainID() uint64 { if x != nil && x.WRBargainID != nil { return *x.WRBargainID } return 0 } func (x *ZSBuyOrderDestingNegPriceOperateReq) GetAuditRemark() string { if x != nil && x.AuditRemark != nil { return *x.AuditRemark } return "" } func (x *ZSBuyOrderDestingNegPriceOperateReq) GetOperateType() uint32 { if x != nil && x.OperateType != nil { return *x.OperateType } return 0 } func (x *ZSBuyOrderDestingNegPriceOperateReq) GetMarketID() uint32 { if x != nil && x.MarketID != nil { return *x.MarketID } return 0 } func (x *ZSBuyOrderDestingNegPriceOperateReq) GetClientType() uint32 { if x != nil && x.ClientType != nil { return *x.ClientType } return 0 } func (x *ZSBuyOrderDestingNegPriceOperateReq) GetOrderSrc() uint32 { if x != nil && x.OrderSrc != nil { return *x.OrderSrc } return 0 } func (x *ZSBuyOrderDestingNegPriceOperateReq) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 买摘牌询价操作接口应答 type ZSBuyOrderDestingNegPriceOperateRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 UserID *uint32 `protobuf:"varint,4,opt,name=UserID" json:"UserID,omitempty"` // 用户ID AccountID *uint64 `protobuf:"varint,5,opt,name=AccountID" json:"AccountID,omitempty"` // 资金账号 WRBargainID *uint64 `protobuf:"varint,6,opt,name=WRBargainID" json:"WRBargainID,omitempty"` // 卖委托单号 ClientSerialNo *string `protobuf:"bytes,7,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *ZSBuyOrderDestingNegPriceOperateRsp) Reset() { *x = ZSBuyOrderDestingNegPriceOperateRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ZSBuyOrderDestingNegPriceOperateRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*ZSBuyOrderDestingNegPriceOperateRsp) ProtoMessage() {} func (x *ZSBuyOrderDestingNegPriceOperateRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 ZSBuyOrderDestingNegPriceOperateRsp.ProtoReflect.Descriptor instead. func (*ZSBuyOrderDestingNegPriceOperateRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{56} } func (x *ZSBuyOrderDestingNegPriceOperateRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *ZSBuyOrderDestingNegPriceOperateRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *ZSBuyOrderDestingNegPriceOperateRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *ZSBuyOrderDestingNegPriceOperateRsp) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *ZSBuyOrderDestingNegPriceOperateRsp) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *ZSBuyOrderDestingNegPriceOperateRsp) GetWRBargainID() uint64 { if x != nil && x.WRBargainID != nil { return *x.WRBargainID } return 0 } func (x *ZSBuyOrderDestingNegPriceOperateRsp) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 挂牌撤单请求 type WRListingCancelOrderReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` UserID *uint32 `protobuf:"varint,2,opt,name=UserID" json:"UserID,omitempty"` // 用户ID AccountID *uint64 `protobuf:"varint,3,opt,name=AccountID" json:"AccountID,omitempty"` // 资金账号 OldWRTradeOrderID *uint64 `protobuf:"varint,4,opt,name=OldWRTradeOrderID" json:"OldWRTradeOrderID,omitempty"` // 目标仓单贸易委托单ID OrderSrc *uint32 `protobuf:"varint,5,opt,name=OrderSrc" json:"OrderSrc,omitempty"` // 委托来源 ClientSerialNo *string `protobuf:"bytes,6,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 ClientOrderTime *string `protobuf:"bytes,7,opt,name=ClientOrderTime" json:"ClientOrderTime,omitempty"` // 客户端委托时间 ClientType *uint32 `protobuf:"varint,8,opt,name=ClientType" json:"ClientType,omitempty"` // 终端类型 OperatorID *uint64 `protobuf:"varint,9,opt,name=OperatorID" json:"OperatorID,omitempty"` // 操作员账号ID BuyOrSell *uint32 `protobuf:"varint,10,opt,name=BuyOrSell" json:"BuyOrSell,omitempty"` // 买卖方向 WRID *uint64 `protobuf:"varint,11,opt,name=WRID" json:"WRID,omitempty"` // 仓单ID,卖的时候填写 } func (x *WRListingCancelOrderReq) Reset() { *x = WRListingCancelOrderReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WRListingCancelOrderReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*WRListingCancelOrderReq) ProtoMessage() {} func (x *WRListingCancelOrderReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 WRListingCancelOrderReq.ProtoReflect.Descriptor instead. func (*WRListingCancelOrderReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{57} } func (x *WRListingCancelOrderReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *WRListingCancelOrderReq) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *WRListingCancelOrderReq) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *WRListingCancelOrderReq) GetOldWRTradeOrderID() uint64 { if x != nil && x.OldWRTradeOrderID != nil { return *x.OldWRTradeOrderID } return 0 } func (x *WRListingCancelOrderReq) GetOrderSrc() uint32 { if x != nil && x.OrderSrc != nil { return *x.OrderSrc } return 0 } func (x *WRListingCancelOrderReq) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } func (x *WRListingCancelOrderReq) GetClientOrderTime() string { if x != nil && x.ClientOrderTime != nil { return *x.ClientOrderTime } return "" } func (x *WRListingCancelOrderReq) GetClientType() uint32 { if x != nil && x.ClientType != nil { return *x.ClientType } return 0 } func (x *WRListingCancelOrderReq) GetOperatorID() uint64 { if x != nil && x.OperatorID != nil { return *x.OperatorID } return 0 } func (x *WRListingCancelOrderReq) GetBuyOrSell() uint32 { if x != nil && x.BuyOrSell != nil { return *x.BuyOrSell } return 0 } func (x *WRListingCancelOrderReq) GetWRID() uint64 { if x != nil && x.WRID != nil { return *x.WRID } return 0 } // 挂牌撤单应答 type WRListingCancelOrderRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 WRTradeCancelID *uint64 `protobuf:"varint,4,opt,name=WRTradeCancelID" json:"WRTradeCancelID,omitempty"` // 仓单贸易撤单号 OldWRTradeOrderID *uint64 `protobuf:"varint,5,opt,name=OldWRTradeOrderID" json:"OldWRTradeOrderID,omitempty"` // 目标仓单贸易委托单ID UserID *uint32 `protobuf:"varint,6,opt,name=UserID" json:"UserID,omitempty"` // 用户ID AccountID *uint64 `protobuf:"varint,7,opt,name=AccountID" json:"AccountID,omitempty"` // 资金账号 CancelQty *uint64 `protobuf:"varint,8,opt,name=CancelQty" json:"CancelQty,omitempty"` // 撤单数量 OrderTime *string `protobuf:"bytes,9,opt,name=OrderTime" json:"OrderTime,omitempty"` // 接受撤单的时间 ClientSerialNo *string `protobuf:"bytes,10,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *WRListingCancelOrderRsp) Reset() { *x = WRListingCancelOrderRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WRListingCancelOrderRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*WRListingCancelOrderRsp) ProtoMessage() {} func (x *WRListingCancelOrderRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 WRListingCancelOrderRsp.ProtoReflect.Descriptor instead. func (*WRListingCancelOrderRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{58} } func (x *WRListingCancelOrderRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *WRListingCancelOrderRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *WRListingCancelOrderRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *WRListingCancelOrderRsp) GetWRTradeCancelID() uint64 { if x != nil && x.WRTradeCancelID != nil { return *x.WRTradeCancelID } return 0 } func (x *WRListingCancelOrderRsp) GetOldWRTradeOrderID() uint64 { if x != nil && x.OldWRTradeOrderID != nil { return *x.OldWRTradeOrderID } return 0 } func (x *WRListingCancelOrderRsp) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *WRListingCancelOrderRsp) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *WRListingCancelOrderRsp) GetCancelQty() uint64 { if x != nil && x.CancelQty != nil { return *x.CancelQty } return 0 } func (x *WRListingCancelOrderRsp) GetOrderTime() string { if x != nil && x.OrderTime != nil { return *x.OrderTime } return "" } func (x *WRListingCancelOrderRsp) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 钻石出库申请接口请求 type ReceiptZSOutApplyReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` Common *WRCommon `protobuf:"bytes,2,opt,name=Common" json:"Common,omitempty"` // UserID *uint64 `protobuf:"varint,3,opt,name=UserID" json:"UserID,omitempty"` // 用户ID,必填 AccountID *uint64 `protobuf:"varint,4,opt,name=AccountID" json:"AccountID,omitempty"` // 用户帐户ID WRStandardID *uint64 `protobuf:"varint,5,opt,name=WRStandardID" json:"WRStandardID,omitempty"` // 现货品种ID WarehouseID *uint32 `protobuf:"varint,6,opt,name=WarehouseID" json:"WarehouseID,omitempty"` // 仓库ID Mobile *string `protobuf:"bytes,7,opt,name=Mobile" json:"Mobile,omitempty"` // 申请人手机号 AppointmentDate *string `protobuf:"bytes,8,opt,name=AppointmentDate" json:"AppointmentDate,omitempty"` // 预约日期 AppointmentModel *int32 `protobuf:"varint,9,opt,name=AppointmentModel" json:"AppointmentModel,omitempty"` // 预约方式:1-物流3-自提 CountryID *uint64 `protobuf:"varint,10,opt,name=CountryID" json:"CountryID,omitempty"` // 国家 ProvinceID *uint64 `protobuf:"varint,11,opt,name=ProvinceID" json:"ProvinceID,omitempty"` // 省 DistrictID *uint64 `protobuf:"varint,12,opt,name=DistrictID" json:"DistrictID,omitempty"` // 区 CityID *uint64 `protobuf:"varint,13,opt,name=CityID" json:"CityID,omitempty"` // 市 Address *string `protobuf:"bytes,14,opt,name=Address" json:"Address,omitempty"` // 详细地址 ContactName *string `protobuf:"bytes,15,opt,name=ContactName" json:"ContactName,omitempty"` // 收货人提货人 ContactNum *string `protobuf:"bytes,16,opt,name=ContactNum" json:"ContactNum,omitempty"` // 收货人提货人手机 AppointmentRemark *string `protobuf:"bytes,17,opt,name=AppointmentRemark" json:"AppointmentRemark,omitempty"` // 预约备注 LadingBillID *uint64 `protobuf:"varint,18,opt,name=LadingBillID" json:"LadingBillID,omitempty"` // 提单ID,必填 SubNum *uint32 `protobuf:"varint,19,opt,name=SubNum" json:"SubNum,omitempty"` // 提单子单号,必填 Qty *float64 `protobuf:"fixed64,20,opt,name=Qty" json:"Qty,omitempty"` // 出库数量,两位小数,必填 Remark *string `protobuf:"bytes,21,opt,name=Remark" json:"Remark,omitempty"` // 备注 ApplyType *uint32 `protobuf:"varint,22,opt,name=ApplyType" json:"ApplyType,omitempty"` // 申请类型1:会员申请2:平台申请 ClientType *uint32 `protobuf:"varint,23,opt,name=ClientType" json:"ClientType,omitempty"` // 终端类型 ClientTicket *string `protobuf:"bytes,24,opt,name=ClientTicket" json:"ClientTicket,omitempty"` // 客户端流水号 } func (x *ReceiptZSOutApplyReq) Reset() { *x = ReceiptZSOutApplyReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReceiptZSOutApplyReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReceiptZSOutApplyReq) ProtoMessage() {} func (x *ReceiptZSOutApplyReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 ReceiptZSOutApplyReq.ProtoReflect.Descriptor instead. func (*ReceiptZSOutApplyReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{59} } func (x *ReceiptZSOutApplyReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *ReceiptZSOutApplyReq) GetCommon() *WRCommon { if x != nil { return x.Common } return nil } func (x *ReceiptZSOutApplyReq) GetUserID() uint64 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *ReceiptZSOutApplyReq) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *ReceiptZSOutApplyReq) GetWRStandardID() uint64 { if x != nil && x.WRStandardID != nil { return *x.WRStandardID } return 0 } func (x *ReceiptZSOutApplyReq) GetWarehouseID() uint32 { if x != nil && x.WarehouseID != nil { return *x.WarehouseID } return 0 } func (x *ReceiptZSOutApplyReq) GetMobile() string { if x != nil && x.Mobile != nil { return *x.Mobile } return "" } func (x *ReceiptZSOutApplyReq) GetAppointmentDate() string { if x != nil && x.AppointmentDate != nil { return *x.AppointmentDate } return "" } func (x *ReceiptZSOutApplyReq) GetAppointmentModel() int32 { if x != nil && x.AppointmentModel != nil { return *x.AppointmentModel } return 0 } func (x *ReceiptZSOutApplyReq) GetCountryID() uint64 { if x != nil && x.CountryID != nil { return *x.CountryID } return 0 } func (x *ReceiptZSOutApplyReq) GetProvinceID() uint64 { if x != nil && x.ProvinceID != nil { return *x.ProvinceID } return 0 } func (x *ReceiptZSOutApplyReq) GetDistrictID() uint64 { if x != nil && x.DistrictID != nil { return *x.DistrictID } return 0 } func (x *ReceiptZSOutApplyReq) GetCityID() uint64 { if x != nil && x.CityID != nil { return *x.CityID } return 0 } func (x *ReceiptZSOutApplyReq) GetAddress() string { if x != nil && x.Address != nil { return *x.Address } return "" } func (x *ReceiptZSOutApplyReq) GetContactName() string { if x != nil && x.ContactName != nil { return *x.ContactName } return "" } func (x *ReceiptZSOutApplyReq) GetContactNum() string { if x != nil && x.ContactNum != nil { return *x.ContactNum } return "" } func (x *ReceiptZSOutApplyReq) GetAppointmentRemark() string { if x != nil && x.AppointmentRemark != nil { return *x.AppointmentRemark } return "" } func (x *ReceiptZSOutApplyReq) GetLadingBillID() uint64 { if x != nil && x.LadingBillID != nil { return *x.LadingBillID } return 0 } func (x *ReceiptZSOutApplyReq) GetSubNum() uint32 { if x != nil && x.SubNum != nil { return *x.SubNum } return 0 } func (x *ReceiptZSOutApplyReq) GetQty() float64 { if x != nil && x.Qty != nil { return *x.Qty } return 0 } func (x *ReceiptZSOutApplyReq) GetRemark() string { if x != nil && x.Remark != nil { return *x.Remark } return "" } func (x *ReceiptZSOutApplyReq) GetApplyType() uint32 { if x != nil && x.ApplyType != nil { return *x.ApplyType } return 0 } func (x *ReceiptZSOutApplyReq) GetClientType() uint32 { if x != nil && x.ClientType != nil { return *x.ClientType } return 0 } func (x *ReceiptZSOutApplyReq) GetClientTicket() string { if x != nil && x.ClientTicket != nil { return *x.ClientTicket } return "" } // 钻石出库申请接口响应 type ReceiptZSOutApplyRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 Common *WRCommon `protobuf:"bytes,4,opt,name=Common" json:"Common,omitempty"` // ApplyID *uint64 `protobuf:"varint,5,opt,name=ApplyID" json:"ApplyID,omitempty"` // 申请ID ClientTicket *string `protobuf:"bytes,6,opt,name=ClientTicket" json:"ClientTicket,omitempty"` // 客户端流水号 } func (x *ReceiptZSOutApplyRsp) Reset() { *x = ReceiptZSOutApplyRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReceiptZSOutApplyRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReceiptZSOutApplyRsp) ProtoMessage() {} func (x *ReceiptZSOutApplyRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 ReceiptZSOutApplyRsp.ProtoReflect.Descriptor instead. func (*ReceiptZSOutApplyRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{60} } func (x *ReceiptZSOutApplyRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *ReceiptZSOutApplyRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *ReceiptZSOutApplyRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *ReceiptZSOutApplyRsp) GetCommon() *WRCommon { if x != nil { return x.Common } return nil } func (x *ReceiptZSOutApplyRsp) GetApplyID() uint64 { if x != nil && x.ApplyID != nil { return *x.ApplyID } return 0 } func (x *ReceiptZSOutApplyRsp) GetClientTicket() string { if x != nil && x.ClientTicket != nil { return *x.ClientTicket } return "" } // 铁合金保证金配置信息 type DepositConfigInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DepositRate *float64 `protobuf:"fixed64,1,opt,name=DepositRate" json:"DepositRate,omitempty"` // 定金比例 DiscountAmount *float64 `protobuf:"fixed64,2,opt,name=DiscountAmount" json:"DiscountAmount,omitempty"` // 优惠金额 } func (x *DepositConfigInfo) Reset() { *x = DepositConfigInfo{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DepositConfigInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*DepositConfigInfo) ProtoMessage() {} func (x *DepositConfigInfo) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 DepositConfigInfo.ProtoReflect.Descriptor instead. func (*DepositConfigInfo) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{61} } func (x *DepositConfigInfo) GetDepositRate() float64 { if x != nil && x.DepositRate != nil { return *x.DepositRate } return 0 } func (x *DepositConfigInfo) GetDiscountAmount() float64 { if x != nil && x.DiscountAmount != nil { return *x.DiscountAmount } return 0 } // 铁合金现货预售挂牌接口请求 type SpotPresaleListingOrderReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` UserID *uint32 `protobuf:"varint,2,opt,name=UserID" json:"UserID,omitempty"` // 用户ID,必填 AccountID *uint64 `protobuf:"varint,3,opt,name=AccountID" json:"AccountID,omitempty"` // 资金账号,必填 WRStandardID *uint32 `protobuf:"varint,4,opt,name=WRStandardID" json:"WRStandardID,omitempty"` // 现货商品ID,必填 WarehouseID *uint32 `protobuf:"varint,5,opt,name=WarehouseID" json:"WarehouseID,omitempty"` // 仓库ID,必填 Qty *uint64 `protobuf:"varint,6,opt,name=Qty" json:"Qty,omitempty"` // 预售数量,必填 EndDate *string `protobuf:"bytes,7,opt,name=EndDate" json:"EndDate,omitempty"` // 到期时间,必填 DepositConfigs []*DepositConfigInfo `protobuf:"bytes,8,rep,name=DepositConfigs" json:"DepositConfigs,omitempty"` // 保证金配置信息,至少一组 ClientType *uint32 `protobuf:"varint,9,opt,name=ClientType" json:"ClientType,omitempty"` // 终端类型 ClientSerialNo *string `protobuf:"bytes,10,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 UnitPrice *float64 `protobuf:"fixed64,11,opt,name=UnitPrice" json:"UnitPrice,omitempty"` // 参考价,小数,前10,后2,必填 } func (x *SpotPresaleListingOrderReq) Reset() { *x = SpotPresaleListingOrderReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SpotPresaleListingOrderReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*SpotPresaleListingOrderReq) ProtoMessage() {} func (x *SpotPresaleListingOrderReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 SpotPresaleListingOrderReq.ProtoReflect.Descriptor instead. func (*SpotPresaleListingOrderReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{62} } func (x *SpotPresaleListingOrderReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *SpotPresaleListingOrderReq) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *SpotPresaleListingOrderReq) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *SpotPresaleListingOrderReq) GetWRStandardID() uint32 { if x != nil && x.WRStandardID != nil { return *x.WRStandardID } return 0 } func (x *SpotPresaleListingOrderReq) GetWarehouseID() uint32 { if x != nil && x.WarehouseID != nil { return *x.WarehouseID } return 0 } func (x *SpotPresaleListingOrderReq) GetQty() uint64 { if x != nil && x.Qty != nil { return *x.Qty } return 0 } func (x *SpotPresaleListingOrderReq) GetEndDate() string { if x != nil && x.EndDate != nil { return *x.EndDate } return "" } func (x *SpotPresaleListingOrderReq) GetDepositConfigs() []*DepositConfigInfo { if x != nil { return x.DepositConfigs } return nil } func (x *SpotPresaleListingOrderReq) GetClientType() uint32 { if x != nil && x.ClientType != nil { return *x.ClientType } return 0 } func (x *SpotPresaleListingOrderReq) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } func (x *SpotPresaleListingOrderReq) GetUnitPrice() float64 { if x != nil && x.UnitPrice != nil { return *x.UnitPrice } return 0 } // 铁合金现货预售挂牌接口应答 type SpotPresaleListingOrderRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 PresaleApplyID *uint64 `protobuf:"varint,4,opt,name=PresaleApplyID" json:"PresaleApplyID,omitempty"` // 预售申请ID WRTradeOrderID *uint64 `protobuf:"varint,5,opt,name=WRTradeOrderID" json:"WRTradeOrderID,omitempty"` // 委托单ID ClientSerialNo *string `protobuf:"bytes,6,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *SpotPresaleListingOrderRsp) Reset() { *x = SpotPresaleListingOrderRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SpotPresaleListingOrderRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*SpotPresaleListingOrderRsp) ProtoMessage() {} func (x *SpotPresaleListingOrderRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 SpotPresaleListingOrderRsp.ProtoReflect.Descriptor instead. func (*SpotPresaleListingOrderRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{63} } func (x *SpotPresaleListingOrderRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *SpotPresaleListingOrderRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *SpotPresaleListingOrderRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *SpotPresaleListingOrderRsp) GetPresaleApplyID() uint64 { if x != nil && x.PresaleApplyID != nil { return *x.PresaleApplyID } return 0 } func (x *SpotPresaleListingOrderRsp) GetWRTradeOrderID() uint64 { if x != nil && x.WRTradeOrderID != nil { return *x.WRTradeOrderID } return 0 } func (x *SpotPresaleListingOrderRsp) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 铁合金成交通知 type THJPurchaseTradeNtf struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 WRTradeDetailID *uint64 `protobuf:"varint,2,opt,name=WRTradeDetailID" json:"WRTradeDetailID,omitempty"` // uint64 预售成交明细ID } func (x *THJPurchaseTradeNtf) Reset() { *x = THJPurchaseTradeNtf{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *THJPurchaseTradeNtf) String() string { return protoimpl.X.MessageStringOf(x) } func (*THJPurchaseTradeNtf) ProtoMessage() {} func (x *THJPurchaseTradeNtf) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 THJPurchaseTradeNtf.ProtoReflect.Descriptor instead. func (*THJPurchaseTradeNtf) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{64} } func (x *THJPurchaseTradeNtf) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *THJPurchaseTradeNtf) GetWRTradeDetailID() uint64 { if x != nil && x.WRTradeDetailID != nil { return *x.WRTradeDetailID } return 0 } // 铁合金协议转让通知 type PurchaseTransferNtf struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 TransferID *uint64 `protobuf:"varint,2,opt,name=TransferID" json:"TransferID,omitempty"` // uint64 协议转让ID } func (x *PurchaseTransferNtf) Reset() { *x = PurchaseTransferNtf{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PurchaseTransferNtf) String() string { return protoimpl.X.MessageStringOf(x) } func (*PurchaseTransferNtf) ProtoMessage() {} func (x *PurchaseTransferNtf) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 PurchaseTransferNtf.ProtoReflect.Descriptor instead. func (*PurchaseTransferNtf) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{65} } func (x *PurchaseTransferNtf) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *PurchaseTransferNtf) GetTransferID() uint64 { if x != nil && x.TransferID != nil { return *x.TransferID } return 0 } // 仓单贸易成交通知 type WRTradeDealedNtf struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 NtfHeader *NotifyHead `protobuf:"bytes,2,opt,name=NtfHeader" json:"NtfHeader,omitempty"` // NotifyHead 公共消息头 ListingOrderID *uint64 `protobuf:"varint,3,opt,name=ListingOrderID" json:"ListingOrderID,omitempty"` // uint64 挂牌委托单号 DelistingOrderID *uint64 `protobuf:"varint,4,opt,name=DelistingOrderID" json:"DelistingOrderID,omitempty"` // uint64 摘牌委托单号 TradeQty *uint64 `protobuf:"varint,5,opt,name=TradeQty" json:"TradeQty,omitempty"` // uint64 挂牌成交数量 ActiveQty *uint64 `protobuf:"varint,6,opt,name=ActiveQty" json:"ActiveQty,omitempty"` // uint64 挂牌剩余数量 RealTradeQty *uint64 `protobuf:"varint,7,opt,name=RealTradeQty" json:"RealTradeQty,omitempty"` // uint64 摘牌实际成交数量 TradeID *uint64 `protobuf:"varint,8,opt,name=TradeID" json:"TradeID,omitempty"` // uint64 成交单ID BuyAccountID *uint64 `protobuf:"varint,9,opt,name=BuyAccountID" json:"BuyAccountID,omitempty"` // uint64 买资金账号 SellAccountID *uint64 `protobuf:"varint,10,opt,name=SellAccountID" json:"SellAccountID,omitempty"` // uint64 卖资金账号 TradePrice *float64 `protobuf:"fixed64,11,opt,name=TradePrice" json:"TradePrice,omitempty"` // double 成交价 TradeTime *string `protobuf:"bytes,12,opt,name=TradeTime" json:"TradeTime,omitempty"` // string 成交时间 WRFactorTypeID *uint64 `protobuf:"varint,13,opt,name=WRFactorTypeID" json:"WRFactorTypeID,omitempty"` // uint64 仓单要素ID WRTransferUserID *uint32 `protobuf:"varint,14,opt,name=WRTransferUserID" json:"WRTransferUserID,omitempty"` // uint32 仓单受让账户 FreezeFirstAmount *float64 `protobuf:"fixed64,15,opt,name=FreezeFirstAmount" json:"FreezeFirstAmount,omitempty"` // double 冻结首付金额 UnFreezeFirstAmount *float64 `protobuf:"fixed64,16,opt,name=UnFreezeFirstAmount" json:"UnFreezeFirstAmount,omitempty"` // double 解冻首付金额 RealTradeAmount *float64 `protobuf:"fixed64,17,opt,name=RealTradeAmount" json:"RealTradeAmount,omitempty"` // double 实际成交金额 PerformanceAmount *float64 `protobuf:"fixed64,18,opt,name=PerformanceAmount" json:"PerformanceAmount,omitempty"` // double 履约金额 PerformancePlanID *uint64 `protobuf:"varint,19,opt,name=PerformancePlanID" json:"PerformancePlanID,omitempty"` // uint64 履约计划ID PerformanceTemplateID *int64 `protobuf:"varint,20,opt,name=PerformanceTemplateID" json:"PerformanceTemplateID,omitempty"` // int64 履约计划模板ID } func (x *WRTradeDealedNtf) Reset() { *x = WRTradeDealedNtf{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WRTradeDealedNtf) String() string { return protoimpl.X.MessageStringOf(x) } func (*WRTradeDealedNtf) ProtoMessage() {} func (x *WRTradeDealedNtf) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 WRTradeDealedNtf.ProtoReflect.Descriptor instead. func (*WRTradeDealedNtf) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{66} } func (x *WRTradeDealedNtf) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *WRTradeDealedNtf) GetNtfHeader() *NotifyHead { if x != nil { return x.NtfHeader } return nil } func (x *WRTradeDealedNtf) GetListingOrderID() uint64 { if x != nil && x.ListingOrderID != nil { return *x.ListingOrderID } return 0 } func (x *WRTradeDealedNtf) GetDelistingOrderID() uint64 { if x != nil && x.DelistingOrderID != nil { return *x.DelistingOrderID } return 0 } func (x *WRTradeDealedNtf) GetTradeQty() uint64 { if x != nil && x.TradeQty != nil { return *x.TradeQty } return 0 } func (x *WRTradeDealedNtf) GetActiveQty() uint64 { if x != nil && x.ActiveQty != nil { return *x.ActiveQty } return 0 } func (x *WRTradeDealedNtf) GetRealTradeQty() uint64 { if x != nil && x.RealTradeQty != nil { return *x.RealTradeQty } return 0 } func (x *WRTradeDealedNtf) GetTradeID() uint64 { if x != nil && x.TradeID != nil { return *x.TradeID } return 0 } func (x *WRTradeDealedNtf) GetBuyAccountID() uint64 { if x != nil && x.BuyAccountID != nil { return *x.BuyAccountID } return 0 } func (x *WRTradeDealedNtf) GetSellAccountID() uint64 { if x != nil && x.SellAccountID != nil { return *x.SellAccountID } return 0 } func (x *WRTradeDealedNtf) GetTradePrice() float64 { if x != nil && x.TradePrice != nil { return *x.TradePrice } return 0 } func (x *WRTradeDealedNtf) GetTradeTime() string { if x != nil && x.TradeTime != nil { return *x.TradeTime } return "" } func (x *WRTradeDealedNtf) GetWRFactorTypeID() uint64 { if x != nil && x.WRFactorTypeID != nil { return *x.WRFactorTypeID } return 0 } func (x *WRTradeDealedNtf) GetWRTransferUserID() uint32 { if x != nil && x.WRTransferUserID != nil { return *x.WRTransferUserID } return 0 } func (x *WRTradeDealedNtf) GetFreezeFirstAmount() float64 { if x != nil && x.FreezeFirstAmount != nil { return *x.FreezeFirstAmount } return 0 } func (x *WRTradeDealedNtf) GetUnFreezeFirstAmount() float64 { if x != nil && x.UnFreezeFirstAmount != nil { return *x.UnFreezeFirstAmount } return 0 } func (x *WRTradeDealedNtf) GetRealTradeAmount() float64 { if x != nil && x.RealTradeAmount != nil { return *x.RealTradeAmount } return 0 } func (x *WRTradeDealedNtf) GetPerformanceAmount() float64 { if x != nil && x.PerformanceAmount != nil { return *x.PerformanceAmount } return 0 } func (x *WRTradeDealedNtf) GetPerformancePlanID() uint64 { if x != nil && x.PerformancePlanID != nil { return *x.PerformancePlanID } return 0 } func (x *WRTradeDealedNtf) GetPerformanceTemplateID() int64 { if x != nil && x.PerformanceTemplateID != nil { return *x.PerformanceTemplateID } return 0 } // 出境检测会员操作请求 type CJJCMemberOperateReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` UserID *uint32 `protobuf:"varint,2,opt,name=UserID" json:"UserID,omitempty"` // 用户ID,必填 OperateID *uint64 `protobuf:"varint,3,opt,name=OperateID" json:"OperateID,omitempty"` // 操作人ID,必填,LoginAccount的LoginID OperateAccount *string `protobuf:"bytes,4,opt,name=OperateAccount" json:"OperateAccount,omitempty"` // 操作人账户,LoginAccount的LoginCode,LoginCode为空则填LoginID,必 OrderID *uint64 `protobuf:"varint,5,opt,name=OrderID" json:"OrderID,omitempty"` // 单据ID,必填 OperateType *uint32 `protobuf:"varint,6,opt,name=OperateType" json:"OperateType,omitempty"` // 操作类型,必填,1:撤回2:确认发货3:确认检测结果 Remark *string `protobuf:"bytes,7,opt,name=Remark" json:"Remark,omitempty"` // 备注 ClientType *uint32 `protobuf:"varint,8,opt,name=ClientType" json:"ClientType,omitempty"` // 终端类型 ClientSerialNo *string `protobuf:"bytes,9,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *CJJCMemberOperateReq) Reset() { *x = CJJCMemberOperateReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CJJCMemberOperateReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*CJJCMemberOperateReq) ProtoMessage() {} func (x *CJJCMemberOperateReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[67] 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 CJJCMemberOperateReq.ProtoReflect.Descriptor instead. func (*CJJCMemberOperateReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{67} } func (x *CJJCMemberOperateReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *CJJCMemberOperateReq) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *CJJCMemberOperateReq) GetOperateID() uint64 { if x != nil && x.OperateID != nil { return *x.OperateID } return 0 } func (x *CJJCMemberOperateReq) GetOperateAccount() string { if x != nil && x.OperateAccount != nil { return *x.OperateAccount } return "" } func (x *CJJCMemberOperateReq) GetOrderID() uint64 { if x != nil && x.OrderID != nil { return *x.OrderID } return 0 } func (x *CJJCMemberOperateReq) GetOperateType() uint32 { if x != nil && x.OperateType != nil { return *x.OperateType } return 0 } func (x *CJJCMemberOperateReq) GetRemark() string { if x != nil && x.Remark != nil { return *x.Remark } return "" } func (x *CJJCMemberOperateReq) GetClientType() uint32 { if x != nil && x.ClientType != nil { return *x.ClientType } return 0 } func (x *CJJCMemberOperateReq) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 出境检测会员操作响应 type CJJCMemberOperateRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 UserID *uint32 `protobuf:"varint,4,opt,name=UserID" json:"UserID,omitempty"` // 用户ID AccountID *uint64 `protobuf:"varint,5,opt,name=AccountID" json:"AccountID,omitempty"` // 资金账号 ClientSerialNo *string `protobuf:"bytes,6,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *CJJCMemberOperateRsp) Reset() { *x = CJJCMemberOperateRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CJJCMemberOperateRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*CJJCMemberOperateRsp) ProtoMessage() {} func (x *CJJCMemberOperateRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[68] 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 CJJCMemberOperateRsp.ProtoReflect.Descriptor instead. func (*CJJCMemberOperateRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{68} } func (x *CJJCMemberOperateRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *CJJCMemberOperateRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *CJJCMemberOperateRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *CJJCMemberOperateRsp) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *CJJCMemberOperateRsp) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *CJJCMemberOperateRsp) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 保税服务会员操作请求 type BSFWMemberOperateReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` UserID *uint32 `protobuf:"varint,2,opt,name=UserID" json:"UserID,omitempty"` // 用户ID,必填 OperateID *uint64 `protobuf:"varint,3,opt,name=OperateID" json:"OperateID,omitempty"` // 操作人ID,必填,LoginAccount的LoginID OperateAccount *string `protobuf:"bytes,4,opt,name=OperateAccount" json:"OperateAccount,omitempty"` // 操作人账户,LoginAccount的LoginCode,LoginCode为空则填LoginID,必 OrderID *uint64 `protobuf:"varint,5,opt,name=OrderID" json:"OrderID,omitempty"` // 单据ID,必填 OperateType *uint32 `protobuf:"varint,6,opt,name=OperateType" json:"OperateType,omitempty"` // 操作类型,必填,1:上传发货单2:上传盖章单据3:确认预付款 FileDetails []*FileDetail `protobuf:"bytes,7,rep,name=FileDetails" json:"FileDetails,omitempty"` // 文件列表 Remark *string `protobuf:"bytes,8,opt,name=Remark" json:"Remark,omitempty"` // 备注 GZBSDeliveryType *uint32 `protobuf:"varint,9,opt,name=GZBSDeliveryType" json:"GZBSDeliveryType,omitempty"` // 收货方式,OperateType=1:上传发货单时必填,枚举“GZBSDeliveryType” OtherLogistics *string `protobuf:"bytes,10,opt,name=OtherLogistics" json:"OtherLogistics,omitempty"` // 指定其它物流,OperateType=1:上传发货单时填写 ClientType *uint32 `protobuf:"varint,11,opt,name=ClientType" json:"ClientType,omitempty"` // 终端类型 ClientSerialNo *string `protobuf:"bytes,12,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *BSFWMemberOperateReq) Reset() { *x = BSFWMemberOperateReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BSFWMemberOperateReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*BSFWMemberOperateReq) ProtoMessage() {} func (x *BSFWMemberOperateReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[69] 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 BSFWMemberOperateReq.ProtoReflect.Descriptor instead. func (*BSFWMemberOperateReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{69} } func (x *BSFWMemberOperateReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *BSFWMemberOperateReq) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *BSFWMemberOperateReq) GetOperateID() uint64 { if x != nil && x.OperateID != nil { return *x.OperateID } return 0 } func (x *BSFWMemberOperateReq) GetOperateAccount() string { if x != nil && x.OperateAccount != nil { return *x.OperateAccount } return "" } func (x *BSFWMemberOperateReq) GetOrderID() uint64 { if x != nil && x.OrderID != nil { return *x.OrderID } return 0 } func (x *BSFWMemberOperateReq) GetOperateType() uint32 { if x != nil && x.OperateType != nil { return *x.OperateType } return 0 } func (x *BSFWMemberOperateReq) GetFileDetails() []*FileDetail { if x != nil { return x.FileDetails } return nil } func (x *BSFWMemberOperateReq) GetRemark() string { if x != nil && x.Remark != nil { return *x.Remark } return "" } func (x *BSFWMemberOperateReq) GetGZBSDeliveryType() uint32 { if x != nil && x.GZBSDeliveryType != nil { return *x.GZBSDeliveryType } return 0 } func (x *BSFWMemberOperateReq) GetOtherLogistics() string { if x != nil && x.OtherLogistics != nil { return *x.OtherLogistics } return "" } func (x *BSFWMemberOperateReq) GetClientType() uint32 { if x != nil && x.ClientType != nil { return *x.ClientType } return 0 } func (x *BSFWMemberOperateReq) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 保税服务会员操作响应 type BSFWMemberOperateRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 UserID *uint32 `protobuf:"varint,4,opt,name=UserID" json:"UserID,omitempty"` // 用户ID AccountID *uint64 `protobuf:"varint,5,opt,name=AccountID" json:"AccountID,omitempty"` // 资金账号 ClientSerialNo *string `protobuf:"bytes,6,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *BSFWMemberOperateRsp) Reset() { *x = BSFWMemberOperateRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BSFWMemberOperateRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*BSFWMemberOperateRsp) ProtoMessage() {} func (x *BSFWMemberOperateRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[70] 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 BSFWMemberOperateRsp.ProtoReflect.Descriptor instead. func (*BSFWMemberOperateRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{70} } func (x *BSFWMemberOperateRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *BSFWMemberOperateRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *BSFWMemberOperateRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *BSFWMemberOperateRsp) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *BSFWMemberOperateRsp) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *BSFWMemberOperateRsp) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 账户资金信息请求 type AccountFundInfoReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` OrderId *uint64 `protobuf:"varint,2,opt,name=OrderId" json:"OrderId,omitempty"` // 查询委托单号 AccountId *uint64 `protobuf:"varint,3,opt,name=AccountId" json:"AccountId,omitempty"` // 查询资金账号 QueryBitMask *uint32 `protobuf:"varint,4,opt,name=QueryBitMask" json:"QueryBitMask,omitempty"` // 查询位掩码 } func (x *AccountFundInfoReq) Reset() { *x = AccountFundInfoReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AccountFundInfoReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*AccountFundInfoReq) ProtoMessage() {} func (x *AccountFundInfoReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[71] 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 AccountFundInfoReq.ProtoReflect.Descriptor instead. func (*AccountFundInfoReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{71} } func (x *AccountFundInfoReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *AccountFundInfoReq) GetOrderId() uint64 { if x != nil && x.OrderId != nil { return *x.OrderId } return 0 } func (x *AccountFundInfoReq) GetAccountId() uint64 { if x != nil && x.AccountId != nil { return *x.AccountId } return 0 } func (x *AccountFundInfoReq) GetQueryBitMask() uint32 { if x != nil && x.QueryBitMask != nil { return *x.QueryBitMask } return 0 } // 账户资金信息响应 type AccountFundInfoRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 OrderId *uint64 `protobuf:"varint,4,opt,name=OrderId" json:"OrderId,omitempty"` // 查询委托单号 AccountId *uint64 `protobuf:"varint,5,opt,name=AccountId" json:"AccountId,omitempty"` // 查询资金账号 AvailableMargin *float64 `protobuf:"fixed64,6,opt,name=AvailableMargin" json:"AvailableMargin,omitempty"` // 可用保证金,查询位掩码:1 AvailableOutMoney *float64 `protobuf:"fixed64,7,opt,name=AvailableOutMoney" json:"AvailableOutMoney,omitempty"` // 可出资金,查询位掩码:2 IsCleanAccount *int32 `protobuf:"varint,8,opt,name=IsCleanAccount" json:"IsCleanAccount,omitempty"` // 是否是干净账户,查询位掩码:4 } func (x *AccountFundInfoRsp) Reset() { *x = AccountFundInfoRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AccountFundInfoRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*AccountFundInfoRsp) ProtoMessage() {} func (x *AccountFundInfoRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[72] 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 AccountFundInfoRsp.ProtoReflect.Descriptor instead. func (*AccountFundInfoRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{72} } func (x *AccountFundInfoRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *AccountFundInfoRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *AccountFundInfoRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *AccountFundInfoRsp) GetOrderId() uint64 { if x != nil && x.OrderId != nil { return *x.OrderId } return 0 } func (x *AccountFundInfoRsp) GetAccountId() uint64 { if x != nil && x.AccountId != nil { return *x.AccountId } return 0 } func (x *AccountFundInfoRsp) GetAvailableMargin() float64 { if x != nil && x.AvailableMargin != nil { return *x.AvailableMargin } return 0 } func (x *AccountFundInfoRsp) GetAvailableOutMoney() float64 { if x != nil && x.AvailableOutMoney != nil { return *x.AvailableOutMoney } return 0 } func (x *AccountFundInfoRsp) GetIsCleanAccount() int32 { if x != nil && x.IsCleanAccount != nil { return *x.IsCleanAccount } return 0 } // 广钻预售申请请求 type GZPresaleApplyReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` SellUserID *uint32 `protobuf:"varint,2,opt,name=SellUserID" json:"SellUserID,omitempty"` // 发行方用户,必填 SellAccountID *uint64 `protobuf:"varint,3,opt,name=SellAccountID" json:"SellAccountID,omitempty"` // 发行方资金账户ID,必填 WRStandardName *string `protobuf:"bytes,4,opt,name=WRStandardName" json:"WRStandardName,omitempty"` // 现货商品名称,必填 PresaleQty *float64 `protobuf:"fixed64,5,opt,name=PresaleQty" json:"PresaleQty,omitempty"` // 预售总量,必填,小数,两位 MinBuyQty *float64 `protobuf:"fixed64,6,opt,name=MinBuyQty" json:"MinBuyQty,omitempty"` // 单人最小申购量,必填,小数,两位 MaxBuyQty *float64 `protobuf:"fixed64,7,opt,name=MaxBuyQty" json:"MaxBuyQty,omitempty"` // 单人最大申购量,必填,小数,两位 MinSuccessQty *float64 `protobuf:"fixed64,8,opt,name=MinSuccessQty" json:"MinSuccessQty,omitempty"` // 最低成团量,必填,小数,两位 UnitPrice *float64 `protobuf:"fixed64,9,opt,name=UnitPrice" json:"UnitPrice,omitempty"` // 预售价格,小数,两位,必填 StartDate *string `protobuf:"bytes,10,opt,name=StartDate" json:"StartDate,omitempty"` // 预售开始日期,必填 EndDate *string `protobuf:"bytes,11,opt,name=EndDate" json:"EndDate,omitempty"` // 预售结束日期,必填 BuyMarginAlgorithm *uint32 `protobuf:"varint,12,opt,name=BuyMarginAlgorithm" json:"BuyMarginAlgorithm,omitempty"` // 买方保证金方式,必填 BuyMarginValue *float64 `protobuf:"fixed64,13,opt,name=BuyMarginValue" json:"BuyMarginValue,omitempty"` // 买方保证金设置值,小数,四位,必填 PerformanceTemplateID *int64 `protobuf:"varint,14,opt,name=PerformanceTemplateID" json:"PerformanceTemplateID,omitempty"` // 履约计划模板ID,必填 MarketID *uint32 `protobuf:"varint,15,opt,name=MarketID" json:"MarketID,omitempty"` // 市场ID,必填 YSZSCategory *uint32 `protobuf:"varint,16,opt,name=YSZSCategory" json:"YSZSCategory,omitempty"` // 预售钻石分类 ZSColorTypeStr *string `protobuf:"bytes,17,opt,name=ZSColorTypeStr" json:"ZSColorTypeStr,omitempty"` // 颜色,最大允许64个字符 ZSClarityTypeStr *string `protobuf:"bytes,18,opt,name=ZSClarityTypeStr" json:"ZSClarityTypeStr,omitempty"` // 净度,最大允许64个字符 SizeStr *string `protobuf:"bytes,19,opt,name=SizeStr" json:"SizeStr,omitempty"` // 尺寸,最大允许64个字符 YieldRate *string `protobuf:"bytes,20,opt,name=YieldRate" json:"YieldRate,omitempty"` // 成品率,最大允许64个字符 QtyDesc *string `protobuf:"bytes,21,opt,name=QtyDesc" json:"QtyDesc,omitempty"` // 数量描述,最大允许64个字符 WeightDesc *string `protobuf:"bytes,22,opt,name=WeightDesc" json:"WeightDesc,omitempty"` // 重量描述,最大允许64个字符 YSProductionMode *uint32 `protobuf:"varint,23,opt,name=YSProductionMode" json:"YSProductionMode,omitempty"` // 生产方式 PictureUrls *string `protobuf:"bytes,24,opt,name=PictureUrls" json:"PictureUrls,omitempty"` // 图片路径,CLOB,多张逗号分隔 Remark *string `protobuf:"bytes,25,opt,name=Remark" json:"Remark,omitempty"` // 备注,最大允许256个字符 ClientType *uint32 `protobuf:"varint,26,opt,name=ClientType" json:"ClientType,omitempty"` // 终端类型 ClientSerialNo *string `protobuf:"bytes,27,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *GZPresaleApplyReq) Reset() { *x = GZPresaleApplyReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GZPresaleApplyReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*GZPresaleApplyReq) ProtoMessage() {} func (x *GZPresaleApplyReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[73] 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 GZPresaleApplyReq.ProtoReflect.Descriptor instead. func (*GZPresaleApplyReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{73} } func (x *GZPresaleApplyReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *GZPresaleApplyReq) GetSellUserID() uint32 { if x != nil && x.SellUserID != nil { return *x.SellUserID } return 0 } func (x *GZPresaleApplyReq) GetSellAccountID() uint64 { if x != nil && x.SellAccountID != nil { return *x.SellAccountID } return 0 } func (x *GZPresaleApplyReq) GetWRStandardName() string { if x != nil && x.WRStandardName != nil { return *x.WRStandardName } return "" } func (x *GZPresaleApplyReq) GetPresaleQty() float64 { if x != nil && x.PresaleQty != nil { return *x.PresaleQty } return 0 } func (x *GZPresaleApplyReq) GetMinBuyQty() float64 { if x != nil && x.MinBuyQty != nil { return *x.MinBuyQty } return 0 } func (x *GZPresaleApplyReq) GetMaxBuyQty() float64 { if x != nil && x.MaxBuyQty != nil { return *x.MaxBuyQty } return 0 } func (x *GZPresaleApplyReq) GetMinSuccessQty() float64 { if x != nil && x.MinSuccessQty != nil { return *x.MinSuccessQty } return 0 } func (x *GZPresaleApplyReq) GetUnitPrice() float64 { if x != nil && x.UnitPrice != nil { return *x.UnitPrice } return 0 } func (x *GZPresaleApplyReq) GetStartDate() string { if x != nil && x.StartDate != nil { return *x.StartDate } return "" } func (x *GZPresaleApplyReq) GetEndDate() string { if x != nil && x.EndDate != nil { return *x.EndDate } return "" } func (x *GZPresaleApplyReq) GetBuyMarginAlgorithm() uint32 { if x != nil && x.BuyMarginAlgorithm != nil { return *x.BuyMarginAlgorithm } return 0 } func (x *GZPresaleApplyReq) GetBuyMarginValue() float64 { if x != nil && x.BuyMarginValue != nil { return *x.BuyMarginValue } return 0 } func (x *GZPresaleApplyReq) GetPerformanceTemplateID() int64 { if x != nil && x.PerformanceTemplateID != nil { return *x.PerformanceTemplateID } return 0 } func (x *GZPresaleApplyReq) GetMarketID() uint32 { if x != nil && x.MarketID != nil { return *x.MarketID } return 0 } func (x *GZPresaleApplyReq) GetYSZSCategory() uint32 { if x != nil && x.YSZSCategory != nil { return *x.YSZSCategory } return 0 } func (x *GZPresaleApplyReq) GetZSColorTypeStr() string { if x != nil && x.ZSColorTypeStr != nil { return *x.ZSColorTypeStr } return "" } func (x *GZPresaleApplyReq) GetZSClarityTypeStr() string { if x != nil && x.ZSClarityTypeStr != nil { return *x.ZSClarityTypeStr } return "" } func (x *GZPresaleApplyReq) GetSizeStr() string { if x != nil && x.SizeStr != nil { return *x.SizeStr } return "" } func (x *GZPresaleApplyReq) GetYieldRate() string { if x != nil && x.YieldRate != nil { return *x.YieldRate } return "" } func (x *GZPresaleApplyReq) GetQtyDesc() string { if x != nil && x.QtyDesc != nil { return *x.QtyDesc } return "" } func (x *GZPresaleApplyReq) GetWeightDesc() string { if x != nil && x.WeightDesc != nil { return *x.WeightDesc } return "" } func (x *GZPresaleApplyReq) GetYSProductionMode() uint32 { if x != nil && x.YSProductionMode != nil { return *x.YSProductionMode } return 0 } func (x *GZPresaleApplyReq) GetPictureUrls() string { if x != nil && x.PictureUrls != nil { return *x.PictureUrls } return "" } func (x *GZPresaleApplyReq) GetRemark() string { if x != nil && x.Remark != nil { return *x.Remark } return "" } func (x *GZPresaleApplyReq) GetClientType() uint32 { if x != nil && x.ClientType != nil { return *x.ClientType } return 0 } func (x *GZPresaleApplyReq) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 广钻预售申请响应 type GZPresaleApplyRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 SellUserID *uint32 `protobuf:"varint,4,opt,name=SellUserID" json:"SellUserID,omitempty"` // 发行方用户 PresaleApplyID *uint64 `protobuf:"varint,5,opt,name=PresaleApplyID" json:"PresaleApplyID,omitempty"` // 预售申请ID ClientSerialNo *string `protobuf:"bytes,6,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *GZPresaleApplyRsp) Reset() { *x = GZPresaleApplyRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GZPresaleApplyRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*GZPresaleApplyRsp) ProtoMessage() {} func (x *GZPresaleApplyRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[74] 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 GZPresaleApplyRsp.ProtoReflect.Descriptor instead. func (*GZPresaleApplyRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{74} } func (x *GZPresaleApplyRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *GZPresaleApplyRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *GZPresaleApplyRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *GZPresaleApplyRsp) GetSellUserID() uint32 { if x != nil && x.SellUserID != nil { return *x.SellUserID } return 0 } func (x *GZPresaleApplyRsp) GetPresaleApplyID() uint64 { if x != nil && x.PresaleApplyID != nil { return *x.PresaleApplyID } return 0 } func (x *GZPresaleApplyRsp) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 广钻预售认购下单请求 type GZPresaleOrderReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` UserID *uint32 `protobuf:"varint,2,opt,name=UserID" json:"UserID,omitempty"` // 用户ID,必填 AccountID *uint64 `protobuf:"varint,3,opt,name=AccountID" json:"AccountID,omitempty"` // 资金账户ID,必填 WRTradeOrderID *uint64 `protobuf:"varint,4,opt,name=WRTradeOrderID" json:"WRTradeOrderID,omitempty"` // 仓单贸易委托单ID,必填 OrderQty *float64 `protobuf:"fixed64,5,opt,name=OrderQty" json:"OrderQty,omitempty"` // 认购数量,必填,2位小数 MarketID *uint32 `protobuf:"varint,6,opt,name=MarketID" json:"MarketID,omitempty"` // 市场ID,必填 ClientOrderTime *string `protobuf:"bytes,7,opt,name=ClientOrderTime" json:"ClientOrderTime,omitempty"` // 委托时间,必填 ClientType *uint32 `protobuf:"varint,8,opt,name=ClientType" json:"ClientType,omitempty"` // 终端类型 ClientSerialNo *string `protobuf:"bytes,9,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *GZPresaleOrderReq) Reset() { *x = GZPresaleOrderReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GZPresaleOrderReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*GZPresaleOrderReq) ProtoMessage() {} func (x *GZPresaleOrderReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[75] 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 GZPresaleOrderReq.ProtoReflect.Descriptor instead. func (*GZPresaleOrderReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{75} } func (x *GZPresaleOrderReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *GZPresaleOrderReq) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *GZPresaleOrderReq) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *GZPresaleOrderReq) GetWRTradeOrderID() uint64 { if x != nil && x.WRTradeOrderID != nil { return *x.WRTradeOrderID } return 0 } func (x *GZPresaleOrderReq) GetOrderQty() float64 { if x != nil && x.OrderQty != nil { return *x.OrderQty } return 0 } func (x *GZPresaleOrderReq) GetMarketID() uint32 { if x != nil && x.MarketID != nil { return *x.MarketID } return 0 } func (x *GZPresaleOrderReq) GetClientOrderTime() string { if x != nil && x.ClientOrderTime != nil { return *x.ClientOrderTime } return "" } func (x *GZPresaleOrderReq) GetClientType() uint32 { if x != nil && x.ClientType != nil { return *x.ClientType } return 0 } func (x *GZPresaleOrderReq) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 广钻预售认购下单响应 type GZPresaleOrderRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 UserID *uint32 `protobuf:"varint,4,opt,name=UserID" json:"UserID,omitempty"` // 用户ID AccountID *uint64 `protobuf:"varint,5,opt,name=AccountID" json:"AccountID,omitempty"` // 资金账户ID WRTradeOrderID *uint64 `protobuf:"varint,6,opt,name=WRTradeOrderID" json:"WRTradeOrderID,omitempty"` // 仓单贸易委托单ID ClientSerialNo *string `protobuf:"bytes,7,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *GZPresaleOrderRsp) Reset() { *x = GZPresaleOrderRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GZPresaleOrderRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*GZPresaleOrderRsp) ProtoMessage() {} func (x *GZPresaleOrderRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[76] 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 GZPresaleOrderRsp.ProtoReflect.Descriptor instead. func (*GZPresaleOrderRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{76} } func (x *GZPresaleOrderRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *GZPresaleOrderRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *GZPresaleOrderRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *GZPresaleOrderRsp) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *GZPresaleOrderRsp) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *GZPresaleOrderRsp) GetWRTradeOrderID() uint64 { if x != nil && x.WRTradeOrderID != nil { return *x.WRTradeOrderID } return 0 } func (x *GZPresaleOrderRsp) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 广钻集采价格列表 type GZCenterPurchasePriceList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StepIndex *uint32 `protobuf:"varint,1,opt,name=StepIndex" json:"StepIndex,omitempty"` // 档位序号,必填 Qty *float64 `protobuf:"fixed64,2,opt,name=Qty" json:"Qty,omitempty"` // 档位数量,必填,小数,两位 Price *float64 `protobuf:"fixed64,3,opt,name=Price" json:"Price,omitempty"` // 档位价格,小数,两位,必填 } func (x *GZCenterPurchasePriceList) Reset() { *x = GZCenterPurchasePriceList{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GZCenterPurchasePriceList) String() string { return protoimpl.X.MessageStringOf(x) } func (*GZCenterPurchasePriceList) ProtoMessage() {} func (x *GZCenterPurchasePriceList) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[77] 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 GZCenterPurchasePriceList.ProtoReflect.Descriptor instead. func (*GZCenterPurchasePriceList) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{77} } func (x *GZCenterPurchasePriceList) GetStepIndex() uint32 { if x != nil && x.StepIndex != nil { return *x.StepIndex } return 0 } func (x *GZCenterPurchasePriceList) GetQty() float64 { if x != nil && x.Qty != nil { return *x.Qty } return 0 } func (x *GZCenterPurchasePriceList) GetPrice() float64 { if x != nil && x.Price != nil { return *x.Price } return 0 } // 广钻集采申请请求 type GZCenterPurchaseApplyReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` SellUserID *uint32 `protobuf:"varint,2,opt,name=SellUserID" json:"SellUserID,omitempty"` // 发行方用户,必填 SellAccountID *uint64 `protobuf:"varint,3,opt,name=SellAccountID" json:"SellAccountID,omitempty"` // 发行方资金账户ID,必填 WRStandardName *string `protobuf:"bytes,4,opt,name=WRStandardName" json:"WRStandardName,omitempty"` // 现货商品名称,必填 PresaleQty *float64 `protobuf:"fixed64,5,opt,name=PresaleQty" json:"PresaleQty,omitempty"` // 预售总量,必填,小数,两位 MinBuyQty *float64 `protobuf:"fixed64,6,opt,name=MinBuyQty" json:"MinBuyQty,omitempty"` // 单人最小申购量,必填,小数,两位 MaxBuyQty *float64 `protobuf:"fixed64,7,opt,name=MaxBuyQty" json:"MaxBuyQty,omitempty"` // 单人最大申购量,必填,小数,两位 MinSuccessQty *float64 `protobuf:"fixed64,8,opt,name=MinSuccessQty" json:"MinSuccessQty,omitempty"` // 最低成团量,必填,小数,两位 StartDate *string `protobuf:"bytes,9,opt,name=StartDate" json:"StartDate,omitempty"` // 预售开始日期,必填 EndDate *string `protobuf:"bytes,10,opt,name=EndDate" json:"EndDate,omitempty"` // 预售结束日期,必填 BuyMarginAlgorithm *uint32 `protobuf:"varint,11,opt,name=BuyMarginAlgorithm" json:"BuyMarginAlgorithm,omitempty"` // 买方保证金方式,必填 BuyMarginValue *float64 `protobuf:"fixed64,12,opt,name=BuyMarginValue" json:"BuyMarginValue,omitempty"` // 买方保证金设置值,小数,四位,必填 PerformanceTemplateID *int64 `protobuf:"varint,13,opt,name=PerformanceTemplateID" json:"PerformanceTemplateID,omitempty"` // 履约计划模板ID,必填 GZCenterPurchasePriceLists []*GZCenterPurchasePriceList `protobuf:"bytes,14,rep,name=GZCenterPurchasePriceLists" json:"GZCenterPurchasePriceLists,omitempty"` // 价格列表,必填 MarketID *uint32 `protobuf:"varint,15,opt,name=MarketID" json:"MarketID,omitempty"` // 市场ID,必填 YSZSCategory *uint32 `protobuf:"varint,16,opt,name=YSZSCategory" json:"YSZSCategory,omitempty"` // 预售钻石分类 ZSShapeTypeStr *string `protobuf:"bytes,17,opt,name=ZSShapeTypeStr" json:"ZSShapeTypeStr,omitempty"` // 形状,最大允许64个字符 ZSColorTypeStr *string `protobuf:"bytes,18,opt,name=ZSColorTypeStr" json:"ZSColorTypeStr,omitempty"` // 颜色,最大允许64个字符 ZSClarityTypeStr *string `protobuf:"bytes,19,opt,name=ZSClarityTypeStr" json:"ZSClarityTypeStr,omitempty"` // 净度,最大允许64个字符 ZSCutTypeStr *string `protobuf:"bytes,20,opt,name=ZSCutTypeStr" json:"ZSCutTypeStr,omitempty"` // 切工,最大允许64个字符 ZSSymmetryTypeStr *string `protobuf:"bytes,21,opt,name=ZSSymmetryTypeStr" json:"ZSSymmetryTypeStr,omitempty"` // 对称,最大允许64个字符 ZSPolishTypeStr *string `protobuf:"bytes,22,opt,name=ZSPolishTypeStr" json:"ZSPolishTypeStr,omitempty"` // 抛光,最大允许64个字符 ZSFluorescenceTypeStr *string `protobuf:"bytes,23,opt,name=ZSFluorescenceTypeStr" json:"ZSFluorescenceTypeStr,omitempty"` // 荧光,最大允许64个字符 SizeStr *string `protobuf:"bytes,24,opt,name=SizeStr" json:"SizeStr,omitempty"` // 尺寸,最大允许64个字符 YieldRate *string `protobuf:"bytes,25,opt,name=YieldRate" json:"YieldRate,omitempty"` // 成品率,最大允许64个字符 QtyDesc *string `protobuf:"bytes,26,opt,name=QtyDesc" json:"QtyDesc,omitempty"` // 数量描述,最大允许64个字符 WeightDesc *string `protobuf:"bytes,27,opt,name=WeightDesc" json:"WeightDesc,omitempty"` // 重量描述,最大允许64个字符 YSProductionMode *uint32 `protobuf:"varint,28,opt,name=YSProductionMode" json:"YSProductionMode,omitempty"` // 生产方式 PictureUrls *string `protobuf:"bytes,29,opt,name=PictureUrls" json:"PictureUrls,omitempty"` // 图片路径,CLOB,多张逗号分隔 Remark *string `protobuf:"bytes,30,opt,name=Remark" json:"Remark,omitempty"` // 备注,最大允许256个字符 ClientType *uint32 `protobuf:"varint,31,opt,name=ClientType" json:"ClientType,omitempty"` // 终端类型 ClientSerialNo *string `protobuf:"bytes,32,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *GZCenterPurchaseApplyReq) Reset() { *x = GZCenterPurchaseApplyReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GZCenterPurchaseApplyReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*GZCenterPurchaseApplyReq) ProtoMessage() {} func (x *GZCenterPurchaseApplyReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[78] 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 GZCenterPurchaseApplyReq.ProtoReflect.Descriptor instead. func (*GZCenterPurchaseApplyReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{78} } func (x *GZCenterPurchaseApplyReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *GZCenterPurchaseApplyReq) GetSellUserID() uint32 { if x != nil && x.SellUserID != nil { return *x.SellUserID } return 0 } func (x *GZCenterPurchaseApplyReq) GetSellAccountID() uint64 { if x != nil && x.SellAccountID != nil { return *x.SellAccountID } return 0 } func (x *GZCenterPurchaseApplyReq) GetWRStandardName() string { if x != nil && x.WRStandardName != nil { return *x.WRStandardName } return "" } func (x *GZCenterPurchaseApplyReq) GetPresaleQty() float64 { if x != nil && x.PresaleQty != nil { return *x.PresaleQty } return 0 } func (x *GZCenterPurchaseApplyReq) GetMinBuyQty() float64 { if x != nil && x.MinBuyQty != nil { return *x.MinBuyQty } return 0 } func (x *GZCenterPurchaseApplyReq) GetMaxBuyQty() float64 { if x != nil && x.MaxBuyQty != nil { return *x.MaxBuyQty } return 0 } func (x *GZCenterPurchaseApplyReq) GetMinSuccessQty() float64 { if x != nil && x.MinSuccessQty != nil { return *x.MinSuccessQty } return 0 } func (x *GZCenterPurchaseApplyReq) GetStartDate() string { if x != nil && x.StartDate != nil { return *x.StartDate } return "" } func (x *GZCenterPurchaseApplyReq) GetEndDate() string { if x != nil && x.EndDate != nil { return *x.EndDate } return "" } func (x *GZCenterPurchaseApplyReq) GetBuyMarginAlgorithm() uint32 { if x != nil && x.BuyMarginAlgorithm != nil { return *x.BuyMarginAlgorithm } return 0 } func (x *GZCenterPurchaseApplyReq) GetBuyMarginValue() float64 { if x != nil && x.BuyMarginValue != nil { return *x.BuyMarginValue } return 0 } func (x *GZCenterPurchaseApplyReq) GetPerformanceTemplateID() int64 { if x != nil && x.PerformanceTemplateID != nil { return *x.PerformanceTemplateID } return 0 } func (x *GZCenterPurchaseApplyReq) GetGZCenterPurchasePriceLists() []*GZCenterPurchasePriceList { if x != nil { return x.GZCenterPurchasePriceLists } return nil } func (x *GZCenterPurchaseApplyReq) GetMarketID() uint32 { if x != nil && x.MarketID != nil { return *x.MarketID } return 0 } func (x *GZCenterPurchaseApplyReq) GetYSZSCategory() uint32 { if x != nil && x.YSZSCategory != nil { return *x.YSZSCategory } return 0 } func (x *GZCenterPurchaseApplyReq) GetZSShapeTypeStr() string { if x != nil && x.ZSShapeTypeStr != nil { return *x.ZSShapeTypeStr } return "" } func (x *GZCenterPurchaseApplyReq) GetZSColorTypeStr() string { if x != nil && x.ZSColorTypeStr != nil { return *x.ZSColorTypeStr } return "" } func (x *GZCenterPurchaseApplyReq) GetZSClarityTypeStr() string { if x != nil && x.ZSClarityTypeStr != nil { return *x.ZSClarityTypeStr } return "" } func (x *GZCenterPurchaseApplyReq) GetZSCutTypeStr() string { if x != nil && x.ZSCutTypeStr != nil { return *x.ZSCutTypeStr } return "" } func (x *GZCenterPurchaseApplyReq) GetZSSymmetryTypeStr() string { if x != nil && x.ZSSymmetryTypeStr != nil { return *x.ZSSymmetryTypeStr } return "" } func (x *GZCenterPurchaseApplyReq) GetZSPolishTypeStr() string { if x != nil && x.ZSPolishTypeStr != nil { return *x.ZSPolishTypeStr } return "" } func (x *GZCenterPurchaseApplyReq) GetZSFluorescenceTypeStr() string { if x != nil && x.ZSFluorescenceTypeStr != nil { return *x.ZSFluorescenceTypeStr } return "" } func (x *GZCenterPurchaseApplyReq) GetSizeStr() string { if x != nil && x.SizeStr != nil { return *x.SizeStr } return "" } func (x *GZCenterPurchaseApplyReq) GetYieldRate() string { if x != nil && x.YieldRate != nil { return *x.YieldRate } return "" } func (x *GZCenterPurchaseApplyReq) GetQtyDesc() string { if x != nil && x.QtyDesc != nil { return *x.QtyDesc } return "" } func (x *GZCenterPurchaseApplyReq) GetWeightDesc() string { if x != nil && x.WeightDesc != nil { return *x.WeightDesc } return "" } func (x *GZCenterPurchaseApplyReq) GetYSProductionMode() uint32 { if x != nil && x.YSProductionMode != nil { return *x.YSProductionMode } return 0 } func (x *GZCenterPurchaseApplyReq) GetPictureUrls() string { if x != nil && x.PictureUrls != nil { return *x.PictureUrls } return "" } func (x *GZCenterPurchaseApplyReq) GetRemark() string { if x != nil && x.Remark != nil { return *x.Remark } return "" } func (x *GZCenterPurchaseApplyReq) GetClientType() uint32 { if x != nil && x.ClientType != nil { return *x.ClientType } return 0 } func (x *GZCenterPurchaseApplyReq) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 广钻集采申请响应 type GZCenterPurchaseApplyRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 SellUserID *uint32 `protobuf:"varint,4,opt,name=SellUserID" json:"SellUserID,omitempty"` // 发行方用户 PresaleApplyID *uint64 `protobuf:"varint,5,opt,name=PresaleApplyID" json:"PresaleApplyID,omitempty"` // 预售申请ID ClientSerialNo *string `protobuf:"bytes,6,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *GZCenterPurchaseApplyRsp) Reset() { *x = GZCenterPurchaseApplyRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GZCenterPurchaseApplyRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*GZCenterPurchaseApplyRsp) ProtoMessage() {} func (x *GZCenterPurchaseApplyRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[79] 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 GZCenterPurchaseApplyRsp.ProtoReflect.Descriptor instead. func (*GZCenterPurchaseApplyRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{79} } func (x *GZCenterPurchaseApplyRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *GZCenterPurchaseApplyRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *GZCenterPurchaseApplyRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *GZCenterPurchaseApplyRsp) GetSellUserID() uint32 { if x != nil && x.SellUserID != nil { return *x.SellUserID } return 0 } func (x *GZCenterPurchaseApplyRsp) GetPresaleApplyID() uint64 { if x != nil && x.PresaleApplyID != nil { return *x.PresaleApplyID } return 0 } func (x *GZCenterPurchaseApplyRsp) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 广钻集采认购下单请求 type GZCenterPurchaseOrderReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` UserID *uint32 `protobuf:"varint,2,opt,name=UserID" json:"UserID,omitempty"` // 用户ID,必填 AccountID *uint64 `protobuf:"varint,3,opt,name=AccountID" json:"AccountID,omitempty"` // 资金账户ID,必填 WRTradeOrderID *uint64 `protobuf:"varint,4,opt,name=WRTradeOrderID" json:"WRTradeOrderID,omitempty"` // 仓单贸易委托单ID,必填 OrderQty *float64 `protobuf:"fixed64,5,opt,name=OrderQty" json:"OrderQty,omitempty"` // 认购数量,必填,2位小数 MarketID *uint32 `protobuf:"varint,6,opt,name=MarketID" json:"MarketID,omitempty"` // 市场ID,必填 ClientOrderTime *string `protobuf:"bytes,7,opt,name=ClientOrderTime" json:"ClientOrderTime,omitempty"` // 委托时间,必填 ClientType *uint32 `protobuf:"varint,8,opt,name=ClientType" json:"ClientType,omitempty"` // 终端类型 ClientSerialNo *string `protobuf:"bytes,9,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *GZCenterPurchaseOrderReq) Reset() { *x = GZCenterPurchaseOrderReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GZCenterPurchaseOrderReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*GZCenterPurchaseOrderReq) ProtoMessage() {} func (x *GZCenterPurchaseOrderReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[80] 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 GZCenterPurchaseOrderReq.ProtoReflect.Descriptor instead. func (*GZCenterPurchaseOrderReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{80} } func (x *GZCenterPurchaseOrderReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *GZCenterPurchaseOrderReq) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *GZCenterPurchaseOrderReq) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *GZCenterPurchaseOrderReq) GetWRTradeOrderID() uint64 { if x != nil && x.WRTradeOrderID != nil { return *x.WRTradeOrderID } return 0 } func (x *GZCenterPurchaseOrderReq) GetOrderQty() float64 { if x != nil && x.OrderQty != nil { return *x.OrderQty } return 0 } func (x *GZCenterPurchaseOrderReq) GetMarketID() uint32 { if x != nil && x.MarketID != nil { return *x.MarketID } return 0 } func (x *GZCenterPurchaseOrderReq) GetClientOrderTime() string { if x != nil && x.ClientOrderTime != nil { return *x.ClientOrderTime } return "" } func (x *GZCenterPurchaseOrderReq) GetClientType() uint32 { if x != nil && x.ClientType != nil { return *x.ClientType } return 0 } func (x *GZCenterPurchaseOrderReq) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 广钻集采认购下单响应 type GZCenterPurchaseOrderRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 UserID *uint32 `protobuf:"varint,4,opt,name=UserID" json:"UserID,omitempty"` // 用户ID AccountID *uint64 `protobuf:"varint,5,opt,name=AccountID" json:"AccountID,omitempty"` // 资金账户ID WRTradeOrderID *uint64 `protobuf:"varint,6,opt,name=WRTradeOrderID" json:"WRTradeOrderID,omitempty"` // 仓单贸易委托单ID ClientSerialNo *string `protobuf:"bytes,7,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *GZCenterPurchaseOrderRsp) Reset() { *x = GZCenterPurchaseOrderRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GZCenterPurchaseOrderRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*GZCenterPurchaseOrderRsp) ProtoMessage() {} func (x *GZCenterPurchaseOrderRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[81] 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 GZCenterPurchaseOrderRsp.ProtoReflect.Descriptor instead. func (*GZCenterPurchaseOrderRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{81} } func (x *GZCenterPurchaseOrderRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *GZCenterPurchaseOrderRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *GZCenterPurchaseOrderRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *GZCenterPurchaseOrderRsp) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *GZCenterPurchaseOrderRsp) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *GZCenterPurchaseOrderRsp) GetWRTradeOrderID() uint64 { if x != nil && x.WRTradeOrderID != nil { return *x.WRTradeOrderID } return 0 } func (x *GZCenterPurchaseOrderRsp) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // WMS结算单支付接口请求 type BSWMSReckonPayReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` UserID *uint32 `protobuf:"varint,2,opt,name=UserID" json:"UserID,omitempty"` // 用户ID,必填 OrderID *uint64 `protobuf:"varint,3,opt,name=OrderID" json:"OrderID,omitempty"` // 单据ID,必填 ClientSerialNo *string `protobuf:"bytes,4,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *BSWMSReckonPayReq) Reset() { *x = BSWMSReckonPayReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BSWMSReckonPayReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*BSWMSReckonPayReq) ProtoMessage() {} func (x *BSWMSReckonPayReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[82] 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 BSWMSReckonPayReq.ProtoReflect.Descriptor instead. func (*BSWMSReckonPayReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{82} } func (x *BSWMSReckonPayReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *BSWMSReckonPayReq) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *BSWMSReckonPayReq) GetOrderID() uint64 { if x != nil && x.OrderID != nil { return *x.OrderID } return 0 } func (x *BSWMSReckonPayReq) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // WMS结算单支付接口响应 type BSWMSReckonPayRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 UserID *uint32 `protobuf:"varint,4,opt,name=UserID" json:"UserID,omitempty"` // 用户ID OrderID *uint64 `protobuf:"varint,5,opt,name=OrderID" json:"OrderID,omitempty"` // 单据ID ClientSerialNo *string `protobuf:"bytes,6,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *BSWMSReckonPayRsp) Reset() { *x = BSWMSReckonPayRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BSWMSReckonPayRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*BSWMSReckonPayRsp) ProtoMessage() {} func (x *BSWMSReckonPayRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[83] 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 BSWMSReckonPayRsp.ProtoReflect.Descriptor instead. func (*BSWMSReckonPayRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{83} } func (x *BSWMSReckonPayRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *BSWMSReckonPayRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *BSWMSReckonPayRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *BSWMSReckonPayRsp) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *BSWMSReckonPayRsp) GetOrderID() uint64 { if x != nil && x.OrderID != nil { return *x.OrderID } return 0 } func (x *BSWMSReckonPayRsp) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 仓单贸易浮动价商品配置信息 type WRGoodsInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GoodsID *uint32 `protobuf:"varint,1,opt,name=GoodsID" json:"GoodsID,omitempty"` // 配置商品ID GoodsCode *string `protobuf:"bytes,2,opt,name=GoodsCode" json:"GoodsCode,omitempty"` // 配置商品代码 PriceFactor *float64 `protobuf:"fixed64,3,opt,name=PriceFactor" json:"PriceFactor,omitempty"` // 商品价格系数 PriceMove *float64 `protobuf:"fixed64,4,opt,name=PriceMove" json:"PriceMove,omitempty"` // 商品升贴水值 WeightRatio *float64 `protobuf:"fixed64,5,opt,name=WeightRatio" json:"WeightRatio,omitempty"` // 商品重量系数 } func (x *WRGoodsInfo) Reset() { *x = WRGoodsInfo{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WRGoodsInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*WRGoodsInfo) ProtoMessage() {} func (x *WRGoodsInfo) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[84] 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 WRGoodsInfo.ProtoReflect.Descriptor instead. func (*WRGoodsInfo) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{84} } func (x *WRGoodsInfo) GetGoodsID() uint32 { if x != nil && x.GoodsID != nil { return *x.GoodsID } return 0 } func (x *WRGoodsInfo) GetGoodsCode() string { if x != nil && x.GoodsCode != nil { return *x.GoodsCode } return "" } func (x *WRGoodsInfo) GetPriceFactor() float64 { if x != nil && x.PriceFactor != nil { return *x.PriceFactor } return 0 } func (x *WRGoodsInfo) GetPriceMove() float64 { if x != nil && x.PriceMove != nil { return *x.PriceMove } return 0 } func (x *WRGoodsInfo) GetWeightRatio() float64 { if x != nil && x.WeightRatio != nil { return *x.WeightRatio } return 0 } // 要素类型明细 type DGFactoryItems struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DGFactoryItemTypeID *uint64 `protobuf:"varint,1,opt,name=DGFactoryItemTypeID" json:"DGFactoryItemTypeID,omitempty"` // 要素项类型ID DGFactoryItemID *uint64 `protobuf:"varint,2,opt,name=DGFactoryItemID" json:"DGFactoryItemID,omitempty"` // 预约要素项类型值 ItemTypeMode *uint32 `protobuf:"varint,3,opt,name=ItemTypeMode" json:"ItemTypeMode,omitempty"` // 要素项类型模式 } func (x *DGFactoryItems) Reset() { *x = DGFactoryItems{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DGFactoryItems) String() string { return protoimpl.X.MessageStringOf(x) } func (*DGFactoryItems) ProtoMessage() {} func (x *DGFactoryItems) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[85] 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 DGFactoryItems.ProtoReflect.Descriptor instead. func (*DGFactoryItems) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{85} } func (x *DGFactoryItems) GetDGFactoryItemTypeID() uint64 { if x != nil && x.DGFactoryItemTypeID != nil { return *x.DGFactoryItemTypeID } return 0 } func (x *DGFactoryItems) GetDGFactoryItemID() uint64 { if x != nil && x.DGFactoryItemID != nil { return *x.DGFactoryItemID } return 0 } func (x *DGFactoryItems) GetItemTypeMode() uint32 { if x != nil && x.ItemTypeMode != nil { return *x.ItemTypeMode } return 0 } // 持仓单挂牌请求 type HdWROrderReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` LadingBillId *uint64 `protobuf:"varint,2,opt,name=LadingBillId" json:"LadingBillId,omitempty"` // 提单id(wrholdlb的LadingBillId字段),卖的时候填写 TradeDate *string `protobuf:"bytes,3,req,name=TradeDate" json:"TradeDate,omitempty"` // 交易日 SubNum *uint64 `protobuf:"varint,4,opt,name=SubNum" json:"SubNum,omitempty"` // 提单子单号(wrholdlb的SubNum字段),卖的时候填写 WRFactorTypeId *uint64 `protobuf:"varint,5,opt,name=WRFactorTypeId" json:"WRFactorTypeId,omitempty"` // 仓单要素ID(wrholdlb的WRFactorTypeId字段),卖的时候填写 UserID *uint32 `protobuf:"varint,6,req,name=UserID" json:"UserID,omitempty"` // 用户ID AccountID *uint64 `protobuf:"varint,7,req,name=AccountID" json:"AccountID,omitempty"` // 资金账号 IsSpecified *uint32 `protobuf:"varint,8,opt,name=IsSpecified" json:"IsSpecified,omitempty"` // 是否指定对手 MatchAccIDs []uint64 `protobuf:"varint,9,rep,name=MatchAccIDs" json:"MatchAccIDs,omitempty"` // 仓单贸易对手用户ID集合(指定对手时填写) OrderQty *uint64 `protobuf:"varint,10,req,name=OrderQty" json:"OrderQty,omitempty"` // 委托数量(可挂部分数据量) DeliveryGoodsID *uint32 `protobuf:"varint,11,req,name=DeliveryGoodsID" json:"DeliveryGoodsID,omitempty"` // 交割商品商品ID WRPriceType *uint32 `protobuf:"varint,12,opt,name=WRPriceType" json:"WRPriceType,omitempty"` // 价格方式 FixedPrice *float64 `protobuf:"fixed64,13,opt,name=FixedPrice" json:"FixedPrice,omitempty"` // 固定价格 WRTradeGoods []*WRGoodsInfo `protobuf:"bytes,14,rep,name=WRTradeGoods" json:"WRTradeGoods,omitempty"` // 仓单贸易商品配置集合(浮动价时填写) PriceFactor *float64 `protobuf:"fixed64,15,opt,name=PriceFactor" json:"PriceFactor,omitempty"` // 价格系数(浮动价时填写)-[挂牌] PriceMove *float64 `protobuf:"fixed64,16,opt,name=PriceMove" json:"PriceMove,omitempty"` // 升贴水(浮动价时填写) TimevalidType *uint32 `protobuf:"varint,17,opt,name=TimevalidType" json:"TimevalidType,omitempty"` // 时间有效类型 ValidTime *string `protobuf:"bytes,18,opt,name=ValidTime" json:"ValidTime,omitempty"` // 有效期限 FirstRatio *float64 `protobuf:"fixed64,19,opt,name=FirstRatio" json:"FirstRatio,omitempty"` // 首付比例 PerformanceTemplateID *int64 `protobuf:"varint,20,opt,name=PerformanceTemplateID" json:"PerformanceTemplateID,omitempty"` // 履约计划模板ID OrderSrc *uint32 `protobuf:"varint,21,opt,name=OrderSrc" json:"OrderSrc,omitempty"` // 委托来源 ClientSerialNo *string `protobuf:"bytes,22,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 ClientOrderTime *string `protobuf:"bytes,23,opt,name=ClientOrderTime" json:"ClientOrderTime,omitempty"` // 客户端委托时间 ClientType *uint32 `protobuf:"varint,24,opt,name=ClientType" json:"ClientType,omitempty"` // 终端类型 OperatorID *uint64 `protobuf:"varint,25,opt,name=OperatorID" json:"OperatorID,omitempty"` // 操作员账号ID BuyOrSell *uint32 `protobuf:"varint,26,opt,name=BuyOrSell" json:"BuyOrSell,omitempty"` // 买卖方向 PriceDisplayMode *uint32 `protobuf:"varint,27,opt,name=PriceDisplayMode" json:"PriceDisplayMode,omitempty"` // 浮动价显示方式 CanBargain *uint32 `protobuf:"varint,28,opt,name=CanBargain" json:"CanBargain,omitempty"` // 挂牌是否可议价0:不可1:可-摘牌是否议价 Attachment1 *string `protobuf:"bytes,29,opt,name=Attachment1" json:"Attachment1,omitempty"` // 附件1 Attachment2 *string `protobuf:"bytes,30,opt,name=Attachment2" json:"Attachment2,omitempty"` // 附件2 Remark *string `protobuf:"bytes,31,opt,name=Remark" json:"Remark,omitempty"` // 备注 ApplyID *uint64 `protobuf:"varint,32,opt,name=ApplyID" json:"ApplyID,omitempty"` // 申请ID CanPart *uint32 `protobuf:"varint,33,opt,name=CanPart" json:"CanPart,omitempty"` // 是否允许部份摘牌0:不允许;1:允许 MatchAccIDsString []string `protobuf:"bytes,34,rep,name=MatchAccIDsString" json:"MatchAccIDsString,omitempty"` // 仓单贸易对手用户ID集合(指定对手时填写) DeliveryMonth *string `protobuf:"bytes,35,opt,name=DeliveryMonth" json:"DeliveryMonth,omitempty"` // 交收月 HasWr *uint32 `protobuf:"varint,36,opt,name=HasWr" json:"HasWr,omitempty"` // 是否有仓单-0:没有仓单1:有仓单 WRStandardID *uint32 `protobuf:"varint,37,opt,name=WRStandardID" json:"WRStandardID,omitempty"` // 现货品种ID FactoryItems []*DGFactoryItems `protobuf:"bytes,38,rep,name=FactoryItems" json:"FactoryItems,omitempty"` // 要素类型明细集合(没有仓单要素ID填写) DelistMinQty *uint64 `protobuf:"varint,39,opt,name=DelistMinQty" json:"DelistMinQty,omitempty"` // 起摘数量 MarginFlag *uint32 `protobuf:"varint,40,opt,name=MarginFlag" json:"MarginFlag,omitempty"` // 挂牌是否指定保证金0:否1:是 MarginAlgorithm *uint32 `protobuf:"varint,41,opt,name=MarginAlgorithm" json:"MarginAlgorithm,omitempty"` // 指定保证金方式1:比率2:固定 MarginValue *float64 `protobuf:"fixed64,42,opt,name=MarginValue" json:"MarginValue,omitempty"` // 指定保证金设置值 AllFriendsFlag *uint32 `protobuf:"varint,43,opt,name=AllFriendsFlag" json:"AllFriendsFlag,omitempty"` // 是否全好友可见0:否1:是 } func (x *HdWROrderReq) Reset() { *x = HdWROrderReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HdWROrderReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*HdWROrderReq) ProtoMessage() {} func (x *HdWROrderReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[86] 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 HdWROrderReq.ProtoReflect.Descriptor instead. func (*HdWROrderReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{86} } func (x *HdWROrderReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *HdWROrderReq) GetLadingBillId() uint64 { if x != nil && x.LadingBillId != nil { return *x.LadingBillId } return 0 } func (x *HdWROrderReq) GetTradeDate() string { if x != nil && x.TradeDate != nil { return *x.TradeDate } return "" } func (x *HdWROrderReq) GetSubNum() uint64 { if x != nil && x.SubNum != nil { return *x.SubNum } return 0 } func (x *HdWROrderReq) GetWRFactorTypeId() uint64 { if x != nil && x.WRFactorTypeId != nil { return *x.WRFactorTypeId } return 0 } func (x *HdWROrderReq) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *HdWROrderReq) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *HdWROrderReq) GetIsSpecified() uint32 { if x != nil && x.IsSpecified != nil { return *x.IsSpecified } return 0 } func (x *HdWROrderReq) GetMatchAccIDs() []uint64 { if x != nil { return x.MatchAccIDs } return nil } func (x *HdWROrderReq) GetOrderQty() uint64 { if x != nil && x.OrderQty != nil { return *x.OrderQty } return 0 } func (x *HdWROrderReq) GetDeliveryGoodsID() uint32 { if x != nil && x.DeliveryGoodsID != nil { return *x.DeliveryGoodsID } return 0 } func (x *HdWROrderReq) GetWRPriceType() uint32 { if x != nil && x.WRPriceType != nil { return *x.WRPriceType } return 0 } func (x *HdWROrderReq) GetFixedPrice() float64 { if x != nil && x.FixedPrice != nil { return *x.FixedPrice } return 0 } func (x *HdWROrderReq) GetWRTradeGoods() []*WRGoodsInfo { if x != nil { return x.WRTradeGoods } return nil } func (x *HdWROrderReq) GetPriceFactor() float64 { if x != nil && x.PriceFactor != nil { return *x.PriceFactor } return 0 } func (x *HdWROrderReq) GetPriceMove() float64 { if x != nil && x.PriceMove != nil { return *x.PriceMove } return 0 } func (x *HdWROrderReq) GetTimevalidType() uint32 { if x != nil && x.TimevalidType != nil { return *x.TimevalidType } return 0 } func (x *HdWROrderReq) GetValidTime() string { if x != nil && x.ValidTime != nil { return *x.ValidTime } return "" } func (x *HdWROrderReq) GetFirstRatio() float64 { if x != nil && x.FirstRatio != nil { return *x.FirstRatio } return 0 } func (x *HdWROrderReq) GetPerformanceTemplateID() int64 { if x != nil && x.PerformanceTemplateID != nil { return *x.PerformanceTemplateID } return 0 } func (x *HdWROrderReq) GetOrderSrc() uint32 { if x != nil && x.OrderSrc != nil { return *x.OrderSrc } return 0 } func (x *HdWROrderReq) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } func (x *HdWROrderReq) GetClientOrderTime() string { if x != nil && x.ClientOrderTime != nil { return *x.ClientOrderTime } return "" } func (x *HdWROrderReq) GetClientType() uint32 { if x != nil && x.ClientType != nil { return *x.ClientType } return 0 } func (x *HdWROrderReq) GetOperatorID() uint64 { if x != nil && x.OperatorID != nil { return *x.OperatorID } return 0 } func (x *HdWROrderReq) GetBuyOrSell() uint32 { if x != nil && x.BuyOrSell != nil { return *x.BuyOrSell } return 0 } func (x *HdWROrderReq) GetPriceDisplayMode() uint32 { if x != nil && x.PriceDisplayMode != nil { return *x.PriceDisplayMode } return 0 } func (x *HdWROrderReq) GetCanBargain() uint32 { if x != nil && x.CanBargain != nil { return *x.CanBargain } return 0 } func (x *HdWROrderReq) GetAttachment1() string { if x != nil && x.Attachment1 != nil { return *x.Attachment1 } return "" } func (x *HdWROrderReq) GetAttachment2() string { if x != nil && x.Attachment2 != nil { return *x.Attachment2 } return "" } func (x *HdWROrderReq) GetRemark() string { if x != nil && x.Remark != nil { return *x.Remark } return "" } func (x *HdWROrderReq) GetApplyID() uint64 { if x != nil && x.ApplyID != nil { return *x.ApplyID } return 0 } func (x *HdWROrderReq) GetCanPart() uint32 { if x != nil && x.CanPart != nil { return *x.CanPart } return 0 } func (x *HdWROrderReq) GetMatchAccIDsString() []string { if x != nil { return x.MatchAccIDsString } return nil } func (x *HdWROrderReq) GetDeliveryMonth() string { if x != nil && x.DeliveryMonth != nil { return *x.DeliveryMonth } return "" } func (x *HdWROrderReq) GetHasWr() uint32 { if x != nil && x.HasWr != nil { return *x.HasWr } return 0 } func (x *HdWROrderReq) GetWRStandardID() uint32 { if x != nil && x.WRStandardID != nil { return *x.WRStandardID } return 0 } func (x *HdWROrderReq) GetFactoryItems() []*DGFactoryItems { if x != nil { return x.FactoryItems } return nil } func (x *HdWROrderReq) GetDelistMinQty() uint64 { if x != nil && x.DelistMinQty != nil { return *x.DelistMinQty } return 0 } func (x *HdWROrderReq) GetMarginFlag() uint32 { if x != nil && x.MarginFlag != nil { return *x.MarginFlag } return 0 } func (x *HdWROrderReq) GetMarginAlgorithm() uint32 { if x != nil && x.MarginAlgorithm != nil { return *x.MarginAlgorithm } return 0 } func (x *HdWROrderReq) GetMarginValue() float64 { if x != nil && x.MarginValue != nil { return *x.MarginValue } return 0 } func (x *HdWROrderReq) GetAllFriendsFlag() uint32 { if x != nil && x.AllFriendsFlag != nil { return *x.AllFriendsFlag } return 0 } // 持仓单挂牌应答 type HdWROrderRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 UserID *uint32 `protobuf:"varint,4,opt,name=UserID" json:"UserID,omitempty"` // 用户ID AccountID *uint64 `protobuf:"varint,5,opt,name=AccountID" json:"AccountID,omitempty"` // 资金账号 WRTradeOrderID *uint64 `protobuf:"varint,6,opt,name=WRTradeOrderID" json:"WRTradeOrderID,omitempty"` // 仓单贸易委托单ID FreezeQty *uint64 `protobuf:"varint,7,opt,name=FreezeQty" json:"FreezeQty,omitempty"` // 冻结数量 OrderTime *string `protobuf:"bytes,8,opt,name=OrderTime" json:"OrderTime,omitempty"` // 接收委托交易的时间 ClientSerialNo *string `protobuf:"bytes,9,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *HdWROrderRsp) Reset() { *x = HdWROrderRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HdWROrderRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*HdWROrderRsp) ProtoMessage() {} func (x *HdWROrderRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[87] 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 HdWROrderRsp.ProtoReflect.Descriptor instead. func (*HdWROrderRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{87} } func (x *HdWROrderRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *HdWROrderRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *HdWROrderRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *HdWROrderRsp) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *HdWROrderRsp) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *HdWROrderRsp) GetWRTradeOrderID() uint64 { if x != nil && x.WRTradeOrderID != nil { return *x.WRTradeOrderID } return 0 } func (x *HdWROrderRsp) GetFreezeQty() uint64 { if x != nil && x.FreezeQty != nil { return *x.FreezeQty } return 0 } func (x *HdWROrderRsp) GetOrderTime() string { if x != nil && x.OrderTime != nil { return *x.OrderTime } return "" } func (x *HdWROrderRsp) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 仓单出库提单明细数据 type WROutInDetail struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields LadingBillID *string `protobuf:"bytes,1,opt,name=LadingBillID" json:"LadingBillID,omitempty"` // 提单ID SubNum *uint64 `protobuf:"varint,2,opt,name=SubNum" json:"SubNum,omitempty"` // 提单子单号 Qty *uint64 `protobuf:"varint,3,opt,name=Qty" json:"Qty,omitempty"` // 子提单总数量 OutQty *uint64 `protobuf:"varint,4,opt,name=OutQty" json:"OutQty,omitempty"` // 预约数量 } func (x *WROutInDetail) Reset() { *x = WROutInDetail{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WROutInDetail) String() string { return protoimpl.X.MessageStringOf(x) } func (*WROutInDetail) ProtoMessage() {} func (x *WROutInDetail) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[88] 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 WROutInDetail.ProtoReflect.Descriptor instead. func (*WROutInDetail) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{88} } func (x *WROutInDetail) GetLadingBillID() string { if x != nil && x.LadingBillID != nil { return *x.LadingBillID } return "" } func (x *WROutInDetail) GetSubNum() uint64 { if x != nil && x.SubNum != nil { return *x.SubNum } return 0 } func (x *WROutInDetail) GetQty() uint64 { if x != nil && x.Qty != nil { return *x.Qty } return 0 } func (x *WROutInDetail) GetOutQty() uint64 { if x != nil && x.OutQty != nil { return *x.OutQty } return 0 } // 仓单出库申请 type WROutApplyReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` ClientSerialID *uint64 `protobuf:"varint,2,opt,name=ClientSerialID" json:"ClientSerialID,omitempty"` // 客户端唯一ID WRStandardID *uint64 `protobuf:"varint,3,opt,name=WRStandardID" json:"WRStandardID,omitempty"` // 仓单标准ID WarehouseID *uint64 `protobuf:"varint,4,opt,name=WarehouseID" json:"WarehouseID,omitempty"` // 仓库ID UserID *uint64 `protobuf:"varint,5,opt,name=UserID" json:"UserID,omitempty"` // 申请人ID AccountID *uint64 `protobuf:"varint,6,opt,name=AccountID" json:"AccountID,omitempty"` // 申请人账户ID Mobile *string `protobuf:"bytes,7,opt,name=Mobile" json:"Mobile,omitempty"` // 申请人手机号 AppointmentDate *string `protobuf:"bytes,8,opt,name=AppointmentDate" json:"AppointmentDate,omitempty"` // 预约出库时间(格式:20200101) AppointmentModel *uint32 `protobuf:"varint,9,opt,name=AppointmentModel" json:"AppointmentModel,omitempty"` // 预约方式:1-物流,2-自送,3-自提 CountryID *uint64 `protobuf:"varint,10,opt,name=CountryID" json:"CountryID,omitempty"` // 国家 ProvinceID *uint64 `protobuf:"varint,11,opt,name=ProvinceID" json:"ProvinceID,omitempty"` // 省 DistrictID *uint64 `protobuf:"varint,12,opt,name=DistrictID" json:"DistrictID,omitempty"` // 区 CityID *uint64 `protobuf:"varint,13,opt,name=CityID" json:"CityID,omitempty"` // 市 Address *string `protobuf:"bytes,14,opt,name=Address" json:"Address,omitempty"` // 详细地址 ContactName *string `protobuf:"bytes,15,opt,name=ContactName" json:"ContactName,omitempty"` // 收货人提货人 ContactNum *string `protobuf:"bytes,16,opt,name=ContactNum" json:"ContactNum,omitempty"` // 收货人提货人手机 AppointmentRemark *string `protobuf:"bytes,17,opt,name=AppointmentRemark" json:"AppointmentRemark,omitempty"` // 预约备注 CreatorID *uint64 `protobuf:"varint,18,opt,name=CreatorID" json:"CreatorID,omitempty"` // 创建人ID WROutInDetails []*WROutInDetail `protobuf:"bytes,19,rep,name=WROutInDetails" json:"WROutInDetails,omitempty"` // 仓单出库提单明细数据 } func (x *WROutApplyReq) Reset() { *x = WROutApplyReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WROutApplyReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*WROutApplyReq) ProtoMessage() {} func (x *WROutApplyReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[89] 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 WROutApplyReq.ProtoReflect.Descriptor instead. func (*WROutApplyReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{89} } func (x *WROutApplyReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *WROutApplyReq) GetClientSerialID() uint64 { if x != nil && x.ClientSerialID != nil { return *x.ClientSerialID } return 0 } func (x *WROutApplyReq) GetWRStandardID() uint64 { if x != nil && x.WRStandardID != nil { return *x.WRStandardID } return 0 } func (x *WROutApplyReq) GetWarehouseID() uint64 { if x != nil && x.WarehouseID != nil { return *x.WarehouseID } return 0 } func (x *WROutApplyReq) GetUserID() uint64 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *WROutApplyReq) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *WROutApplyReq) GetMobile() string { if x != nil && x.Mobile != nil { return *x.Mobile } return "" } func (x *WROutApplyReq) GetAppointmentDate() string { if x != nil && x.AppointmentDate != nil { return *x.AppointmentDate } return "" } func (x *WROutApplyReq) GetAppointmentModel() uint32 { if x != nil && x.AppointmentModel != nil { return *x.AppointmentModel } return 0 } func (x *WROutApplyReq) GetCountryID() uint64 { if x != nil && x.CountryID != nil { return *x.CountryID } return 0 } func (x *WROutApplyReq) GetProvinceID() uint64 { if x != nil && x.ProvinceID != nil { return *x.ProvinceID } return 0 } func (x *WROutApplyReq) GetDistrictID() uint64 { if x != nil && x.DistrictID != nil { return *x.DistrictID } return 0 } func (x *WROutApplyReq) GetCityID() uint64 { if x != nil && x.CityID != nil { return *x.CityID } return 0 } func (x *WROutApplyReq) GetAddress() string { if x != nil && x.Address != nil { return *x.Address } return "" } func (x *WROutApplyReq) GetContactName() string { if x != nil && x.ContactName != nil { return *x.ContactName } return "" } func (x *WROutApplyReq) GetContactNum() string { if x != nil && x.ContactNum != nil { return *x.ContactNum } return "" } func (x *WROutApplyReq) GetAppointmentRemark() string { if x != nil && x.AppointmentRemark != nil { return *x.AppointmentRemark } return "" } func (x *WROutApplyReq) GetCreatorID() uint64 { if x != nil && x.CreatorID != nil { return *x.CreatorID } return 0 } func (x *WROutApplyReq) GetWROutInDetails() []*WROutInDetail { if x != nil { return x.WROutInDetails } return nil } // 仓单出库申请响应 type WROutApplyRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 ClientSerialID *uint64 `protobuf:"varint,4,opt,name=ClientSerialID" json:"ClientSerialID,omitempty"` // 客户端唯一ID } func (x *WROutApplyRsp) Reset() { *x = WROutApplyRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WROutApplyRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*WROutApplyRsp) ProtoMessage() {} func (x *WROutApplyRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[90] 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 WROutApplyRsp.ProtoReflect.Descriptor instead. func (*WROutApplyRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{90} } func (x *WROutApplyRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *WROutApplyRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *WROutApplyRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *WROutApplyRsp) GetClientSerialID() uint64 { if x != nil && x.ClientSerialID != nil { return *x.ClientSerialID } return 0 } // 交易委托请求 type OrderReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` ClientSerialNo *string `protobuf:"bytes,2,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 ClientOrderTime *string `protobuf:"bytes,3,opt,name=ClientOrderTime" json:"ClientOrderTime,omitempty"` // 客户端委托时间 ClientType *uint32 `protobuf:"varint,4,opt,name=ClientType" json:"ClientType,omitempty"` // 终端类型 LoginID *uint64 `protobuf:"varint,5,opt,name=LoginID" json:"LoginID,omitempty"` // 登陆账号 AccountID *uint64 `protobuf:"varint,6,opt,name=AccountID" json:"AccountID,omitempty"` // 交易账号 GoodsID *uint32 `protobuf:"varint,7,opt,name=GoodsID" json:"GoodsID,omitempty"` // 商品ID MarketID *uint32 `protobuf:"varint,8,opt,name=MarketID" json:"MarketID,omitempty"` // 市场ID ValidType *int32 `protobuf:"varint,9,opt,name=ValidType" json:"ValidType,omitempty"` // 校验类型 OperateType *uint32 `protobuf:"varint,10,opt,name=OperateType" json:"OperateType,omitempty"` // 操作类型: OrderSrc *uint32 `protobuf:"varint,11,opt,name=OrderSrc" json:"OrderSrc,omitempty"` // 单据来源 OperatorID *uint64 `protobuf:"varint,12,opt,name=OperatorID" json:"OperatorID,omitempty"` // 操作员账号ID OrderPrice *float64 `protobuf:"fixed64,13,opt,name=OrderPrice" json:"OrderPrice,omitempty"` // 委托价格 MarketMaxSub *float64 `protobuf:"fixed64,14,opt,name=MarketMaxSub" json:"MarketMaxSub,omitempty"` // 市价允许最大偏差(做市) OrderQty *uint64 `protobuf:"varint,15,opt,name=OrderQty" json:"OrderQty,omitempty"` // 委托数量 BuyOrSell *uint32 `protobuf:"varint,16,opt,name=BuyOrSell" json:"BuyOrSell,omitempty"` // 买卖方向 BuildType *uint32 `protobuf:"varint,17,opt,name=BuildType" json:"BuildType,omitempty"` // 下单类型 CurtQuotePrice *float64 `protobuf:"fixed64,18,opt,name=CurtQuotePrice" json:"CurtQuotePrice,omitempty"` // 保留,计算冻结金额使用 SpPrice *float64 `protobuf:"fixed64,19,opt,name=SpPrice" json:"SpPrice,omitempty"` // 止盈价格 SlPrice *float64 `protobuf:"fixed64,20,opt,name=SlPrice" json:"SlPrice,omitempty"` // 止损价格 PriceMode *uint32 `protobuf:"varint,21,opt,name=PriceMode" json:"PriceMode,omitempty"` // 取价方式 TimevalidType *uint32 `protobuf:"varint,22,opt,name=TimevalidType" json:"TimevalidType,omitempty"` // 时间有效类型 TriggerType *uint32 `protobuf:"varint,23,opt,name=TriggerType" json:"TriggerType,omitempty"` // 预埋单触发类型 TriggerPrice *float64 `protobuf:"fixed64,24,opt,name=TriggerPrice" json:"TriggerPrice,omitempty"` // 预埋单触发价格 ListingSelectType *uint32 `protobuf:"varint,25,opt,name=ListingSelectType" json:"ListingSelectType,omitempty"` // 挂牌点选类型 DelistingType *uint32 `protobuf:"varint,26,opt,name=DelistingType" json:"DelistingType,omitempty"` // 摘牌类型 RelatedID *uint64 `protobuf:"varint,27,opt,name=RelatedID" json:"RelatedID,omitempty"` // 关联单号 OptionType *uint32 `protobuf:"varint,28,opt,name=OptionType" json:"OptionType,omitempty"` // 期权类型(1:认购(看涨)2:认沽(看跌)) Premium *float64 `protobuf:"fixed64,29,opt,name=Premium" json:"Premium,omitempty"` // 权利金 TriggerOperator *uint32 `protobuf:"varint,30,opt,name=TriggerOperator" json:"TriggerOperator,omitempty"` // 触发条件(1:大于等于2:小于等于) ServiceTime *string `protobuf:"bytes,31,opt,name=ServiceTime" json:"ServiceTime,omitempty"` // 服务端时间 CouponTypeID *uint64 `protobuf:"varint,32,opt,name=CouponTypeID" json:"CouponTypeID,omitempty"` // 优惠券类型ID(买方) UsedQty *uint32 `protobuf:"varint,33,opt,name=UsedQty" json:"UsedQty,omitempty"` // 使用数量 ValidTime *string `protobuf:"bytes,34,opt,name=ValidTime" json:"ValidTime,omitempty"` // 指定有效日期 ReceiveInfoID *uint64 `protobuf:"varint,35,opt,name=ReceiveInfoID" json:"ReceiveInfoID,omitempty"` // 收货地址ID OrderFlag *uint32 `protobuf:"varint,36,opt,name=OrderFlag" json:"OrderFlag,omitempty"` // 委托标识-1:按量 OrderAmount *float64 `protobuf:"fixed64,37,opt,name=OrderAmount" json:"OrderAmount,omitempty"` // 委托金额OrderFlag=2必填 } func (x *OrderReq) Reset() { *x = OrderReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OrderReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*OrderReq) ProtoMessage() {} func (x *OrderReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[91] 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 OrderReq.ProtoReflect.Descriptor instead. func (*OrderReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{91} } func (x *OrderReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *OrderReq) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } func (x *OrderReq) GetClientOrderTime() string { if x != nil && x.ClientOrderTime != nil { return *x.ClientOrderTime } return "" } func (x *OrderReq) GetClientType() uint32 { if x != nil && x.ClientType != nil { return *x.ClientType } return 0 } func (x *OrderReq) GetLoginID() uint64 { if x != nil && x.LoginID != nil { return *x.LoginID } return 0 } func (x *OrderReq) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *OrderReq) GetGoodsID() uint32 { if x != nil && x.GoodsID != nil { return *x.GoodsID } return 0 } func (x *OrderReq) GetMarketID() uint32 { if x != nil && x.MarketID != nil { return *x.MarketID } return 0 } func (x *OrderReq) GetValidType() int32 { if x != nil && x.ValidType != nil { return *x.ValidType } return 0 } func (x *OrderReq) GetOperateType() uint32 { if x != nil && x.OperateType != nil { return *x.OperateType } return 0 } func (x *OrderReq) GetOrderSrc() uint32 { if x != nil && x.OrderSrc != nil { return *x.OrderSrc } return 0 } func (x *OrderReq) GetOperatorID() uint64 { if x != nil && x.OperatorID != nil { return *x.OperatorID } return 0 } func (x *OrderReq) GetOrderPrice() float64 { if x != nil && x.OrderPrice != nil { return *x.OrderPrice } return 0 } func (x *OrderReq) GetMarketMaxSub() float64 { if x != nil && x.MarketMaxSub != nil { return *x.MarketMaxSub } return 0 } func (x *OrderReq) GetOrderQty() uint64 { if x != nil && x.OrderQty != nil { return *x.OrderQty } return 0 } func (x *OrderReq) GetBuyOrSell() uint32 { if x != nil && x.BuyOrSell != nil { return *x.BuyOrSell } return 0 } func (x *OrderReq) GetBuildType() uint32 { if x != nil && x.BuildType != nil { return *x.BuildType } return 0 } func (x *OrderReq) GetCurtQuotePrice() float64 { if x != nil && x.CurtQuotePrice != nil { return *x.CurtQuotePrice } return 0 } func (x *OrderReq) GetSpPrice() float64 { if x != nil && x.SpPrice != nil { return *x.SpPrice } return 0 } func (x *OrderReq) GetSlPrice() float64 { if x != nil && x.SlPrice != nil { return *x.SlPrice } return 0 } func (x *OrderReq) GetPriceMode() uint32 { if x != nil && x.PriceMode != nil { return *x.PriceMode } return 0 } func (x *OrderReq) GetTimevalidType() uint32 { if x != nil && x.TimevalidType != nil { return *x.TimevalidType } return 0 } func (x *OrderReq) GetTriggerType() uint32 { if x != nil && x.TriggerType != nil { return *x.TriggerType } return 0 } func (x *OrderReq) GetTriggerPrice() float64 { if x != nil && x.TriggerPrice != nil { return *x.TriggerPrice } return 0 } func (x *OrderReq) GetListingSelectType() uint32 { if x != nil && x.ListingSelectType != nil { return *x.ListingSelectType } return 0 } func (x *OrderReq) GetDelistingType() uint32 { if x != nil && x.DelistingType != nil { return *x.DelistingType } return 0 } func (x *OrderReq) GetRelatedID() uint64 { if x != nil && x.RelatedID != nil { return *x.RelatedID } return 0 } func (x *OrderReq) GetOptionType() uint32 { if x != nil && x.OptionType != nil { return *x.OptionType } return 0 } func (x *OrderReq) GetPremium() float64 { if x != nil && x.Premium != nil { return *x.Premium } return 0 } func (x *OrderReq) GetTriggerOperator() uint32 { if x != nil && x.TriggerOperator != nil { return *x.TriggerOperator } return 0 } func (x *OrderReq) GetServiceTime() string { if x != nil && x.ServiceTime != nil { return *x.ServiceTime } return "" } func (x *OrderReq) GetCouponTypeID() uint64 { if x != nil && x.CouponTypeID != nil { return *x.CouponTypeID } return 0 } func (x *OrderReq) GetUsedQty() uint32 { if x != nil && x.UsedQty != nil { return *x.UsedQty } return 0 } func (x *OrderReq) GetValidTime() string { if x != nil && x.ValidTime != nil { return *x.ValidTime } return "" } func (x *OrderReq) GetReceiveInfoID() uint64 { if x != nil && x.ReceiveInfoID != nil { return *x.ReceiveInfoID } return 0 } func (x *OrderReq) GetOrderFlag() uint32 { if x != nil && x.OrderFlag != nil { return *x.OrderFlag } return 0 } func (x *OrderReq) GetOrderAmount() float64 { if x != nil && x.OrderAmount != nil { return *x.OrderAmount } return 0 } // 交易委托应答 type OrderRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 OrderID *uint64 `protobuf:"varint,4,opt,name=OrderID" json:"OrderID,omitempty"` // 一级生成的订单号 OrderTime *string `protobuf:"bytes,5,opt,name=OrderTime" json:"OrderTime,omitempty"` // 接收委托交易的时间 } func (x *OrderRsp) Reset() { *x = OrderRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OrderRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*OrderRsp) ProtoMessage() {} func (x *OrderRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[92] 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 OrderRsp.ProtoReflect.Descriptor instead. func (*OrderRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{92} } func (x *OrderRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *OrderRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *OrderRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *OrderRsp) GetOrderID() uint64 { if x != nil && x.OrderID != nil { return *x.OrderID } return 0 } func (x *OrderRsp) GetOrderTime() string { if x != nil && x.OrderTime != nil { return *x.OrderTime } return "" } // 撤单请求 type CancelOrderReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` ClientSerialNo *string `protobuf:"bytes,2,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 ClientOrderTime *string `protobuf:"bytes,3,opt,name=ClientOrderTime" json:"ClientOrderTime,omitempty"` // 客户端委托时间 ClientType *uint32 `protobuf:"varint,4,opt,name=ClientType" json:"ClientType,omitempty"` // 终端类型 OperateType *uint32 `protobuf:"varint,5,opt,name=OperateType" json:"OperateType,omitempty"` // 操作类型 OldOrderId *uint64 `protobuf:"varint,6,opt,name=OldOrderId" json:"OldOrderId,omitempty"` // 原委托单号 AccountID *uint64 `protobuf:"varint,7,opt,name=AccountID" json:"AccountID,omitempty"` // 交易账号 OrderSrc *uint32 `protobuf:"varint,8,opt,name=OrderSrc" json:"OrderSrc,omitempty"` // 单据来源 OperatorID *uint64 `protobuf:"varint,9,opt,name=OperatorID" json:"OperatorID,omitempty"` // 操作员账号ID } func (x *CancelOrderReq) Reset() { *x = CancelOrderReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CancelOrderReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*CancelOrderReq) ProtoMessage() {} func (x *CancelOrderReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[93] 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 CancelOrderReq.ProtoReflect.Descriptor instead. func (*CancelOrderReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{93} } func (x *CancelOrderReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *CancelOrderReq) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } func (x *CancelOrderReq) GetClientOrderTime() string { if x != nil && x.ClientOrderTime != nil { return *x.ClientOrderTime } return "" } func (x *CancelOrderReq) GetClientType() uint32 { if x != nil && x.ClientType != nil { return *x.ClientType } return 0 } func (x *CancelOrderReq) GetOperateType() uint32 { if x != nil && x.OperateType != nil { return *x.OperateType } return 0 } func (x *CancelOrderReq) GetOldOrderId() uint64 { if x != nil && x.OldOrderId != nil { return *x.OldOrderId } return 0 } func (x *CancelOrderReq) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *CancelOrderReq) GetOrderSrc() uint32 { if x != nil && x.OrderSrc != nil { return *x.OrderSrc } return 0 } func (x *CancelOrderReq) GetOperatorID() uint64 { if x != nil && x.OperatorID != nil { return *x.OperatorID } return 0 } // 撤单应答 type CancelOrderRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 ExchActionID *uint64 `protobuf:"varint,4,opt,name=ExchActionID" json:"ExchActionID,omitempty"` // 交易所操作号 OrderTime *string `protobuf:"bytes,5,opt,name=OrderTime" json:"OrderTime,omitempty"` // 接收委托交易的时间 } func (x *CancelOrderRsp) Reset() { *x = CancelOrderRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CancelOrderRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*CancelOrderRsp) ProtoMessage() {} func (x *CancelOrderRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[94] 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 CancelOrderRsp.ProtoReflect.Descriptor instead. func (*CancelOrderRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{94} } func (x *CancelOrderRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *CancelOrderRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *CancelOrderRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *CancelOrderRsp) GetExchActionID() uint64 { if x != nil && x.ExchActionID != nil { return *x.ExchActionID } return 0 } func (x *CancelOrderRsp) GetOrderTime() string { if x != nil && x.OrderTime != nil { return *x.OrderTime } return "" } // 按单平仓请求 type HolderCloseReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` TradeID *uint64 `protobuf:"varint,2,opt,name=TradeID" json:"TradeID,omitempty"` // 持仓单号 ClientSerialNo *string `protobuf:"bytes,3,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 ClientOrderTime *string `protobuf:"bytes,4,opt,name=ClientOrderTime" json:"ClientOrderTime,omitempty"` // 客户端委托时间 ClientType *uint32 `protobuf:"varint,5,opt,name=ClientType" json:"ClientType,omitempty"` // 终端类型 LoginID *uint64 `protobuf:"varint,6,opt,name=LoginID" json:"LoginID,omitempty"` // 登陆账号 AccountID *uint64 `protobuf:"varint,7,opt,name=AccountID" json:"AccountID,omitempty"` // 交易账号 GoodsID *uint32 `protobuf:"varint,8,opt,name=GoodsID" json:"GoodsID,omitempty"` // 商品ID BuyOrSell *uint32 `protobuf:"varint,9,opt,name=BuyOrSell" json:"BuyOrSell,omitempty"` // 买卖方向 MarketID *uint32 `protobuf:"varint,10,opt,name=MarketID" json:"MarketID,omitempty"` // 市场ID OrderSrc *uint32 `protobuf:"varint,11,opt,name=OrderSrc" json:"OrderSrc,omitempty"` // 单据来源 OperatorID *uint64 `protobuf:"varint,12,opt,name=OperatorID" json:"OperatorID,omitempty"` // 操作员账号ID } func (x *HolderCloseReq) Reset() { *x = HolderCloseReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HolderCloseReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*HolderCloseReq) ProtoMessage() {} func (x *HolderCloseReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[95] 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 HolderCloseReq.ProtoReflect.Descriptor instead. func (*HolderCloseReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{95} } func (x *HolderCloseReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *HolderCloseReq) GetTradeID() uint64 { if x != nil && x.TradeID != nil { return *x.TradeID } return 0 } func (x *HolderCloseReq) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } func (x *HolderCloseReq) GetClientOrderTime() string { if x != nil && x.ClientOrderTime != nil { return *x.ClientOrderTime } return "" } func (x *HolderCloseReq) GetClientType() uint32 { if x != nil && x.ClientType != nil { return *x.ClientType } return 0 } func (x *HolderCloseReq) GetLoginID() uint64 { if x != nil && x.LoginID != nil { return *x.LoginID } return 0 } func (x *HolderCloseReq) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *HolderCloseReq) GetGoodsID() uint32 { if x != nil && x.GoodsID != nil { return *x.GoodsID } return 0 } func (x *HolderCloseReq) GetBuyOrSell() uint32 { if x != nil && x.BuyOrSell != nil { return *x.BuyOrSell } return 0 } func (x *HolderCloseReq) GetMarketID() uint32 { if x != nil && x.MarketID != nil { return *x.MarketID } return 0 } func (x *HolderCloseReq) GetOrderSrc() uint32 { if x != nil && x.OrderSrc != nil { return *x.OrderSrc } return 0 } func (x *HolderCloseReq) GetOperatorID() uint64 { if x != nil && x.OperatorID != nil { return *x.OperatorID } return 0 } // 按单平仓应答 type HolderCloseRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 OrderID *uint64 `protobuf:"varint,4,opt,name=OrderID" json:"OrderID,omitempty"` // 一级生成的订单号 OrderTime *string `protobuf:"bytes,5,opt,name=OrderTime" json:"OrderTime,omitempty"` // 接收委托交易的时间 } func (x *HolderCloseRsp) Reset() { *x = HolderCloseRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HolderCloseRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*HolderCloseRsp) ProtoMessage() {} func (x *HolderCloseRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[96] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use HolderCloseRsp.ProtoReflect.Descriptor instead. func (*HolderCloseRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{96} } func (x *HolderCloseRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *HolderCloseRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *HolderCloseRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *HolderCloseRsp) GetOrderID() uint64 { if x != nil && x.OrderID != nil { return *x.OrderID } return 0 } func (x *HolderCloseRsp) GetOrderTime() string { if x != nil && x.OrderTime != nil { return *x.OrderTime } return "" } // 交割申报单明细 type DeliveryOrderDetail struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields AccountID *uint64 `protobuf:"varint,1,opt,name=AccountID" json:"AccountID,omitempty"` // 对手方账号 Qty *uint64 `protobuf:"varint,2,opt,name=Qty" json:"Qty,omitempty"` // 点选数量 BrandID *uint32 `protobuf:"varint,3,opt,name=BrandID" json:"BrandID,omitempty"` // 品牌 QualityID *uint32 `protobuf:"varint,4,opt,name=QualityID" json:"QualityID,omitempty"` // 品质 StandardID *uint32 `protobuf:"varint,5,opt,name=StandardID" json:"StandardID,omitempty"` // 规格 WarehouseID *uint32 `protobuf:"varint,6,opt,name=WarehouseID" json:"WarehouseID,omitempty"` // 仓库 DeliveryMonthID *uint32 `protobuf:"varint,7,opt,name=DeliveryMonthID" json:"DeliveryMonthID,omitempty"` // 月份 ReceiverAddress *string `protobuf:"bytes,8,opt,name=ReceiverAddress" json:"ReceiverAddress,omitempty"` // 提货地址 TakeMode *uint32 `protobuf:"varint,9,opt,name=TakeMode" json:"TakeMode,omitempty"` // 提货方式 LadingBillID *uint64 `protobuf:"varint,10,opt,name=LadingBillID" json:"LadingBillID,omitempty"` // 提单ID SubNum *uint64 `protobuf:"varint,11,opt,name=SubNum" json:"SubNum,omitempty"` // 提单子单号 WRFactorTypeID *uint64 `protobuf:"varint,12,opt,name=WRFactorTypeID" json:"WRFactorTypeID,omitempty"` // 仓单要素类型ID } func (x *DeliveryOrderDetail) Reset() { *x = DeliveryOrderDetail{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeliveryOrderDetail) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeliveryOrderDetail) ProtoMessage() {} func (x *DeliveryOrderDetail) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[97] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DeliveryOrderDetail.ProtoReflect.Descriptor instead. func (*DeliveryOrderDetail) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{97} } func (x *DeliveryOrderDetail) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *DeliveryOrderDetail) GetQty() uint64 { if x != nil && x.Qty != nil { return *x.Qty } return 0 } func (x *DeliveryOrderDetail) GetBrandID() uint32 { if x != nil && x.BrandID != nil { return *x.BrandID } return 0 } func (x *DeliveryOrderDetail) GetQualityID() uint32 { if x != nil && x.QualityID != nil { return *x.QualityID } return 0 } func (x *DeliveryOrderDetail) GetStandardID() uint32 { if x != nil && x.StandardID != nil { return *x.StandardID } return 0 } func (x *DeliveryOrderDetail) GetWarehouseID() uint32 { if x != nil && x.WarehouseID != nil { return *x.WarehouseID } return 0 } func (x *DeliveryOrderDetail) GetDeliveryMonthID() uint32 { if x != nil && x.DeliveryMonthID != nil { return *x.DeliveryMonthID } return 0 } func (x *DeliveryOrderDetail) GetReceiverAddress() string { if x != nil && x.ReceiverAddress != nil { return *x.ReceiverAddress } return "" } func (x *DeliveryOrderDetail) GetTakeMode() uint32 { if x != nil && x.TakeMode != nil { return *x.TakeMode } return 0 } func (x *DeliveryOrderDetail) GetLadingBillID() uint64 { if x != nil && x.LadingBillID != nil { return *x.LadingBillID } return 0 } func (x *DeliveryOrderDetail) GetSubNum() uint64 { if x != nil && x.SubNum != nil { return *x.SubNum } return 0 } func (x *DeliveryOrderDetail) GetWRFactorTypeID() uint64 { if x != nil && x.WRFactorTypeID != nil { return *x.WRFactorTypeID } return 0 } // 交割申报请求 type DeliveryOrderReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` ClientSerialNo *string `protobuf:"bytes,2,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 ClientOrderTime *string `protobuf:"bytes,3,opt,name=ClientOrderTime" json:"ClientOrderTime,omitempty"` // 客户端委托时间 ClientType *uint32 `protobuf:"varint,4,opt,name=ClientType" json:"ClientType,omitempty"` // 终端类型 AccountID *uint64 `protobuf:"varint,5,opt,name=AccountID" json:"AccountID,omitempty"` // 交易账号 XGoodsID *uint32 `protobuf:"varint,6,opt,name=XGoodsID" json:"XGoodsID,omitempty"` // 主商品ID(交割合约) PGoodsID *uint32 `protobuf:"varint,7,opt,name=PGoodsID" json:"PGoodsID,omitempty"` // 辅助商品ID(辅助合约) P2GoodsID *uint32 `protobuf:"varint,8,opt,name=P2GoodsID" json:"P2GoodsID,omitempty"` // 辅助商品ID(辅助合约2) DeliveryGoodsID *uint32 `protobuf:"varint,9,opt,name=DeliveryGoodsID" json:"DeliveryGoodsID,omitempty"` // 交割商品ID XQty *uint64 `protobuf:"varint,10,opt,name=XQty" json:"XQty,omitempty"` // 交割合约数量 PQty *uint64 `protobuf:"varint,11,opt,name=PQty" json:"PQty,omitempty"` // 辅助合约数量 P2Qty *uint64 `protobuf:"varint,12,opt,name=P2Qty" json:"P2Qty,omitempty"` // 辅助合约2数量 DeliveryQty *uint64 `protobuf:"varint,13,opt,name=DeliveryQty" json:"DeliveryQty,omitempty"` // 交割商品仓单数量 OperateType *uint32 `protobuf:"varint,14,opt,name=OperateType" json:"OperateType,omitempty"` // 操作类型: OrderSrc *uint32 `protobuf:"varint,15,opt,name=OrderSrc" json:"OrderSrc,omitempty"` // 单据来源 OperatorID *uint32 `protobuf:"varint,16,opt,name=OperatorID" json:"OperatorID,omitempty"` // 操作员账号ID DeliveryOrderDetail *DeliveryOrderDetail `protobuf:"bytes,17,opt,name=DeliveryOrderDetail" json:"DeliveryOrderDetail,omitempty"` // 关联仓单头寸 TakeMode *uint32 `protobuf:"varint,18,opt,name=TakeMode" json:"TakeMode,omitempty"` // 提货方式 ReceiverAddress *string `protobuf:"bytes,19,opt,name=ReceiverAddress" json:"ReceiverAddress,omitempty"` // 提货地址 } func (x *DeliveryOrderReq) Reset() { *x = DeliveryOrderReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeliveryOrderReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeliveryOrderReq) ProtoMessage() {} func (x *DeliveryOrderReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[98] 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 DeliveryOrderReq.ProtoReflect.Descriptor instead. func (*DeliveryOrderReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{98} } func (x *DeliveryOrderReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *DeliveryOrderReq) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } func (x *DeliveryOrderReq) GetClientOrderTime() string { if x != nil && x.ClientOrderTime != nil { return *x.ClientOrderTime } return "" } func (x *DeliveryOrderReq) GetClientType() uint32 { if x != nil && x.ClientType != nil { return *x.ClientType } return 0 } func (x *DeliveryOrderReq) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *DeliveryOrderReq) GetXGoodsID() uint32 { if x != nil && x.XGoodsID != nil { return *x.XGoodsID } return 0 } func (x *DeliveryOrderReq) GetPGoodsID() uint32 { if x != nil && x.PGoodsID != nil { return *x.PGoodsID } return 0 } func (x *DeliveryOrderReq) GetP2GoodsID() uint32 { if x != nil && x.P2GoodsID != nil { return *x.P2GoodsID } return 0 } func (x *DeliveryOrderReq) GetDeliveryGoodsID() uint32 { if x != nil && x.DeliveryGoodsID != nil { return *x.DeliveryGoodsID } return 0 } func (x *DeliveryOrderReq) GetXQty() uint64 { if x != nil && x.XQty != nil { return *x.XQty } return 0 } func (x *DeliveryOrderReq) GetPQty() uint64 { if x != nil && x.PQty != nil { return *x.PQty } return 0 } func (x *DeliveryOrderReq) GetP2Qty() uint64 { if x != nil && x.P2Qty != nil { return *x.P2Qty } return 0 } func (x *DeliveryOrderReq) GetDeliveryQty() uint64 { if x != nil && x.DeliveryQty != nil { return *x.DeliveryQty } return 0 } func (x *DeliveryOrderReq) GetOperateType() uint32 { if x != nil && x.OperateType != nil { return *x.OperateType } return 0 } func (x *DeliveryOrderReq) GetOrderSrc() uint32 { if x != nil && x.OrderSrc != nil { return *x.OrderSrc } return 0 } func (x *DeliveryOrderReq) GetOperatorID() uint32 { if x != nil && x.OperatorID != nil { return *x.OperatorID } return 0 } func (x *DeliveryOrderReq) GetDeliveryOrderDetail() *DeliveryOrderDetail { if x != nil { return x.DeliveryOrderDetail } return nil } func (x *DeliveryOrderReq) GetTakeMode() uint32 { if x != nil && x.TakeMode != nil { return *x.TakeMode } return 0 } func (x *DeliveryOrderReq) GetReceiverAddress() string { if x != nil && x.ReceiverAddress != nil { return *x.ReceiverAddress } return "" } // 交割申报应答 type DeliveryOrderRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 ClientSerialNo *string `protobuf:"bytes,4,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 DeliveryOrderDetails []*DeliveryOrderDetail `protobuf:"bytes,5,rep,name=DeliveryOrderDetails" json:"DeliveryOrderDetails,omitempty"` // 一级生成的订单号 OrderTime *string `protobuf:"bytes,6,opt,name=OrderTime" json:"OrderTime,omitempty"` // 接收委托交易的时间 } func (x *DeliveryOrderRsp) Reset() { *x = DeliveryOrderRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeliveryOrderRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeliveryOrderRsp) ProtoMessage() {} func (x *DeliveryOrderRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[99] 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 DeliveryOrderRsp.ProtoReflect.Descriptor instead. func (*DeliveryOrderRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{99} } func (x *DeliveryOrderRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *DeliveryOrderRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *DeliveryOrderRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *DeliveryOrderRsp) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } func (x *DeliveryOrderRsp) GetDeliveryOrderDetails() []*DeliveryOrderDetail { if x != nil { return x.DeliveryOrderDetails } return nil } func (x *DeliveryOrderRsp) GetOrderTime() string { if x != nil && x.OrderTime != nil { return *x.OrderTime } return "" } // 补足定金请求 type MakeUpDepositReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` TradeID *uint64 `protobuf:"varint,2,opt,name=TradeID" json:"TradeID,omitempty"` // 成交单号,必填 UserID *uint32 `protobuf:"varint,3,opt,name=UserID" json:"UserID,omitempty"` // 用户ID,必填 AccountID *uint64 `protobuf:"varint,4,opt,name=AccountID" json:"AccountID,omitempty"` // 交易账号,必填 ClientSerialNo *string `protobuf:"bytes,5,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 ClientType *uint32 `protobuf:"varint,6,opt,name=ClientType" json:"ClientType,omitempty"` // 终端类型 } func (x *MakeUpDepositReq) Reset() { *x = MakeUpDepositReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MakeUpDepositReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*MakeUpDepositReq) ProtoMessage() {} func (x *MakeUpDepositReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[100] 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 MakeUpDepositReq.ProtoReflect.Descriptor instead. func (*MakeUpDepositReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{100} } func (x *MakeUpDepositReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *MakeUpDepositReq) GetTradeID() uint64 { if x != nil && x.TradeID != nil { return *x.TradeID } return 0 } func (x *MakeUpDepositReq) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *MakeUpDepositReq) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *MakeUpDepositReq) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } func (x *MakeUpDepositReq) GetClientType() uint32 { if x != nil && x.ClientType != nil { return *x.ClientType } return 0 } // 补足定金应答 type MakeUpDepositRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 TradeID *uint64 `protobuf:"varint,4,opt,name=TradeID" json:"TradeID,omitempty"` // 成交单号,必填 ClientSerialNo *string `protobuf:"bytes,5,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *MakeUpDepositRsp) Reset() { *x = MakeUpDepositRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MakeUpDepositRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*MakeUpDepositRsp) ProtoMessage() {} func (x *MakeUpDepositRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[101] 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 MakeUpDepositRsp.ProtoReflect.Descriptor instead. func (*MakeUpDepositRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{101} } func (x *MakeUpDepositRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *MakeUpDepositRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *MakeUpDepositRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *MakeUpDepositRsp) GetTradeID() uint64 { if x != nil && x.TradeID != nil { return *x.TradeID } return 0 } func (x *MakeUpDepositRsp) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 持仓追加定金接口请求 type HoldAppendDepositReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` GoodsID *uint64 `protobuf:"varint,2,opt,name=GoodsID" json:"GoodsID,omitempty"` // 商品ID,必填 AccountID *uint64 `protobuf:"varint,3,opt,name=AccountID" json:"AccountID,omitempty"` // 交易账号,必填 ClientSerialNo *string `protobuf:"bytes,4,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 ClientType *uint32 `protobuf:"varint,5,opt,name=ClientType" json:"ClientType,omitempty"` // 终端类型 } func (x *HoldAppendDepositReq) Reset() { *x = HoldAppendDepositReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HoldAppendDepositReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*HoldAppendDepositReq) ProtoMessage() {} func (x *HoldAppendDepositReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[102] 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 HoldAppendDepositReq.ProtoReflect.Descriptor instead. func (*HoldAppendDepositReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{102} } func (x *HoldAppendDepositReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *HoldAppendDepositReq) GetGoodsID() uint64 { if x != nil && x.GoodsID != nil { return *x.GoodsID } return 0 } func (x *HoldAppendDepositReq) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *HoldAppendDepositReq) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } func (x *HoldAppendDepositReq) GetClientType() uint32 { if x != nil && x.ClientType != nil { return *x.ClientType } return 0 } // 持仓追加定金接口应答 type HoldAppendDepositRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 GoodsID *uint64 `protobuf:"varint,4,opt,name=GoodsID" json:"GoodsID,omitempty"` // 商品ID,必填 AccountID *uint64 `protobuf:"varint,5,opt,name=AccountID" json:"AccountID,omitempty"` // 交易账号,必填 ClientSerialNo *string `protobuf:"bytes,6,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *HoldAppendDepositRsp) Reset() { *x = HoldAppendDepositRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HoldAppendDepositRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*HoldAppendDepositRsp) ProtoMessage() {} func (x *HoldAppendDepositRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[103] 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 HoldAppendDepositRsp.ProtoReflect.Descriptor instead. func (*HoldAppendDepositRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{103} } func (x *HoldAppendDepositRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *HoldAppendDepositRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *HoldAppendDepositRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *HoldAppendDepositRsp) GetGoodsID() uint64 { if x != nil && x.GoodsID != nil { return *x.GoodsID } return 0 } func (x *HoldAppendDepositRsp) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *HoldAppendDepositRsp) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 线下交收申请请求 type OfflineDeliveryReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` AccountID *uint64 `protobuf:"varint,2,opt,name=AccountID" json:"AccountID,omitempty"` // 账号ID UserID *uint32 `protobuf:"varint,3,opt,name=UserID" json:"UserID,omitempty"` // 用户ID GoodsCode *string `protobuf:"bytes,4,opt,name=GoodsCode" json:"GoodsCode,omitempty"` // 商品代码 GoodsID *uint32 `protobuf:"varint,5,opt,name=GoodsID" json:"GoodsID,omitempty"` // 商品ID BuyOrSell *uint32 `protobuf:"varint,6,opt,name=BuyOrSell" json:"BuyOrSell,omitempty"` // 方向 DeliveryLot *uint32 `protobuf:"varint,7,opt,name=DeliveryLot" json:"DeliveryLot,omitempty"` // 交收手数 DeliveryInfo *string `protobuf:"bytes,8,opt,name=DeliveryInfo" json:"DeliveryInfo,omitempty"` // 交收信息 ClientTicket *string `protobuf:"bytes,9,opt,name=ClientTicket" json:"ClientTicket,omitempty"` // 客户端流水号 } func (x *OfflineDeliveryReq) Reset() { *x = OfflineDeliveryReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OfflineDeliveryReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*OfflineDeliveryReq) ProtoMessage() {} func (x *OfflineDeliveryReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[104] 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 OfflineDeliveryReq.ProtoReflect.Descriptor instead. func (*OfflineDeliveryReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{104} } func (x *OfflineDeliveryReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *OfflineDeliveryReq) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *OfflineDeliveryReq) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *OfflineDeliveryReq) GetGoodsCode() string { if x != nil && x.GoodsCode != nil { return *x.GoodsCode } return "" } func (x *OfflineDeliveryReq) GetGoodsID() uint32 { if x != nil && x.GoodsID != nil { return *x.GoodsID } return 0 } func (x *OfflineDeliveryReq) GetBuyOrSell() uint32 { if x != nil && x.BuyOrSell != nil { return *x.BuyOrSell } return 0 } func (x *OfflineDeliveryReq) GetDeliveryLot() uint32 { if x != nil && x.DeliveryLot != nil { return *x.DeliveryLot } return 0 } func (x *OfflineDeliveryReq) GetDeliveryInfo() string { if x != nil && x.DeliveryInfo != nil { return *x.DeliveryInfo } return "" } func (x *OfflineDeliveryReq) GetClientTicket() string { if x != nil && x.ClientTicket != nil { return *x.ClientTicket } return "" } // 线下交收申请请求 type OfflineDeliveryRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 AccountID *uint64 `protobuf:"varint,4,opt,name=AccountID" json:"AccountID,omitempty"` // 账号ID UserID *uint32 `protobuf:"varint,5,opt,name=UserID" json:"UserID,omitempty"` // 用户ID ApplyID *uint64 `protobuf:"varint,6,opt,name=ApplyID" json:"ApplyID,omitempty"` // 申请ID ClientTicket *string `protobuf:"bytes,7,opt,name=ClientTicket" json:"ClientTicket,omitempty"` // 客户端流水号 } func (x *OfflineDeliveryRsp) Reset() { *x = OfflineDeliveryRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OfflineDeliveryRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*OfflineDeliveryRsp) ProtoMessage() {} func (x *OfflineDeliveryRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[105] 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 OfflineDeliveryRsp.ProtoReflect.Descriptor instead. func (*OfflineDeliveryRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{105} } func (x *OfflineDeliveryRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *OfflineDeliveryRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *OfflineDeliveryRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *OfflineDeliveryRsp) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *OfflineDeliveryRsp) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *OfflineDeliveryRsp) GetApplyID() uint64 { if x != nil && x.ApplyID != nil { return *x.ApplyID } return 0 } func (x *OfflineDeliveryRsp) GetClientTicket() string { if x != nil && x.ClientTicket != nil { return *x.ClientTicket } return "" } // 持仓单摘牌请求 type HdWRDealOrderReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` UserID *uint32 `protobuf:"varint,2,opt,name=UserID" json:"UserID,omitempty"` // 用户ID AccountID *uint64 `protobuf:"varint,3,opt,name=AccountID" json:"AccountID,omitempty"` // 资金账号 RelatedWRTradeOrderID *uint64 `protobuf:"varint,4,opt,name=RelatedWRTradeOrderID" json:"RelatedWRTradeOrderID,omitempty"` // 关联委托单号(摘牌委托关联挂牌委托单ID) WRTransferUserID *uint32 `protobuf:"varint,5,opt,name=WRTransferUserID" json:"WRTransferUserID,omitempty"` // 仓单受让用户 OrderQty *uint64 `protobuf:"varint,6,opt,name=OrderQty" json:"OrderQty,omitempty"` // 委托数量 OrderSrc *uint32 `protobuf:"varint,7,opt,name=OrderSrc" json:"OrderSrc,omitempty"` // 委托来源 ClientSerialNo *string `protobuf:"bytes,8,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 ClientOrderTime *string `protobuf:"bytes,9,opt,name=ClientOrderTime" json:"ClientOrderTime,omitempty"` // 客户端委托时间 ClientType *uint32 `protobuf:"varint,10,opt,name=ClientType" json:"ClientType,omitempty"` // 终端类型 OperatorID *uint64 `protobuf:"varint,11,opt,name=OperatorID" json:"OperatorID,omitempty"` // 操作员账号ID BuyOrSell *uint32 `protobuf:"varint,12,opt,name=BuyOrSell" json:"BuyOrSell,omitempty"` // 买卖方向 ApplyID *uint64 `protobuf:"varint,13,opt,name=ApplyID" json:"ApplyID,omitempty"` // 申请ID LadingBillId *uint64 `protobuf:"varint,14,opt,name=LadingBillId" json:"LadingBillId,omitempty"` // 提单id(wrholdlb的LadingBillId字段),卖的时候填写 SubNum *uint64 `protobuf:"varint,15,opt,name=SubNum" json:"SubNum,omitempty"` // 提单子单号(wrholdlb的SubNum字段),卖的时候填写 WRFactorTypeId *uint64 `protobuf:"varint,16,opt,name=WRFactorTypeId" json:"WRFactorTypeId,omitempty"` // 仓单要素ID(wrholdlb的WRFactorTypeId字段),卖的时候填写 TradeDate *string `protobuf:"bytes,17,opt,name=TradeDate" json:"TradeDate,omitempty"` // 交易日 DeliveryMonth *string `protobuf:"bytes,18,opt,name=DeliveryMonth" json:"DeliveryMonth,omitempty"` // 交收月 HasWr *uint32 `protobuf:"varint,19,opt,name=HasWr" json:"HasWr,omitempty"` // 是否有仓单-0:没有仓单1:有仓单 IsFinancing *uint32 `protobuf:"varint,20,opt,name=IsFinancing" json:"IsFinancing,omitempty"` // 是否融资购买(买摘牌时有效)-0:否1:是 ProductDetailID *uint64 `protobuf:"varint,21,opt,name=ProductDetailID" json:"ProductDetailID,omitempty"` // 金融机构产品组合ID(融资购买时有效) } func (x *HdWRDealOrderReq) Reset() { *x = HdWRDealOrderReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HdWRDealOrderReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*HdWRDealOrderReq) ProtoMessage() {} func (x *HdWRDealOrderReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[106] 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 HdWRDealOrderReq.ProtoReflect.Descriptor instead. func (*HdWRDealOrderReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{106} } func (x *HdWRDealOrderReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *HdWRDealOrderReq) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *HdWRDealOrderReq) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *HdWRDealOrderReq) GetRelatedWRTradeOrderID() uint64 { if x != nil && x.RelatedWRTradeOrderID != nil { return *x.RelatedWRTradeOrderID } return 0 } func (x *HdWRDealOrderReq) GetWRTransferUserID() uint32 { if x != nil && x.WRTransferUserID != nil { return *x.WRTransferUserID } return 0 } func (x *HdWRDealOrderReq) GetOrderQty() uint64 { if x != nil && x.OrderQty != nil { return *x.OrderQty } return 0 } func (x *HdWRDealOrderReq) GetOrderSrc() uint32 { if x != nil && x.OrderSrc != nil { return *x.OrderSrc } return 0 } func (x *HdWRDealOrderReq) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } func (x *HdWRDealOrderReq) GetClientOrderTime() string { if x != nil && x.ClientOrderTime != nil { return *x.ClientOrderTime } return "" } func (x *HdWRDealOrderReq) GetClientType() uint32 { if x != nil && x.ClientType != nil { return *x.ClientType } return 0 } func (x *HdWRDealOrderReq) GetOperatorID() uint64 { if x != nil && x.OperatorID != nil { return *x.OperatorID } return 0 } func (x *HdWRDealOrderReq) GetBuyOrSell() uint32 { if x != nil && x.BuyOrSell != nil { return *x.BuyOrSell } return 0 } func (x *HdWRDealOrderReq) GetApplyID() uint64 { if x != nil && x.ApplyID != nil { return *x.ApplyID } return 0 } func (x *HdWRDealOrderReq) GetLadingBillId() uint64 { if x != nil && x.LadingBillId != nil { return *x.LadingBillId } return 0 } func (x *HdWRDealOrderReq) GetSubNum() uint64 { if x != nil && x.SubNum != nil { return *x.SubNum } return 0 } func (x *HdWRDealOrderReq) GetWRFactorTypeId() uint64 { if x != nil && x.WRFactorTypeId != nil { return *x.WRFactorTypeId } return 0 } func (x *HdWRDealOrderReq) GetTradeDate() string { if x != nil && x.TradeDate != nil { return *x.TradeDate } return "" } func (x *HdWRDealOrderReq) GetDeliveryMonth() string { if x != nil && x.DeliveryMonth != nil { return *x.DeliveryMonth } return "" } func (x *HdWRDealOrderReq) GetHasWr() uint32 { if x != nil && x.HasWr != nil { return *x.HasWr } return 0 } func (x *HdWRDealOrderReq) GetIsFinancing() uint32 { if x != nil && x.IsFinancing != nil { return *x.IsFinancing } return 0 } func (x *HdWRDealOrderReq) GetProductDetailID() uint64 { if x != nil && x.ProductDetailID != nil { return *x.ProductDetailID } return 0 } // 持仓单摘牌应答 type HdWRDealOrderRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 UserID *uint32 `protobuf:"varint,4,opt,name=UserID" json:"UserID,omitempty"` // 用户ID AccountID *uint64 `protobuf:"varint,5,opt,name=AccountID" json:"AccountID,omitempty"` // 资金账号 WRTradeOrderID *uint64 `protobuf:"varint,6,opt,name=WRTradeOrderID" json:"WRTradeOrderID,omitempty"` // 仓单贸易委托单ID RelatedWRTradeOrderID *uint64 `protobuf:"varint,7,opt,name=RelatedWRTradeOrderID" json:"RelatedWRTradeOrderID,omitempty"` // 关联委托单号(摘牌委托关联挂牌委托单ID) FreezeAmount *float64 `protobuf:"fixed64,8,opt,name=FreezeAmount" json:"FreezeAmount,omitempty"` // 冻结货款 OrderTime *string `protobuf:"bytes,9,opt,name=OrderTime" json:"OrderTime,omitempty"` // 接收委托交易的时间 ClientSerialNo *string `protobuf:"bytes,10,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *HdWRDealOrderRsp) Reset() { *x = HdWRDealOrderRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HdWRDealOrderRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*HdWRDealOrderRsp) ProtoMessage() {} func (x *HdWRDealOrderRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[107] 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 HdWRDealOrderRsp.ProtoReflect.Descriptor instead. func (*HdWRDealOrderRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{107} } func (x *HdWRDealOrderRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *HdWRDealOrderRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *HdWRDealOrderRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *HdWRDealOrderRsp) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *HdWRDealOrderRsp) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *HdWRDealOrderRsp) GetWRTradeOrderID() uint64 { if x != nil && x.WRTradeOrderID != nil { return *x.WRTradeOrderID } return 0 } func (x *HdWRDealOrderRsp) GetRelatedWRTradeOrderID() uint64 { if x != nil && x.RelatedWRTradeOrderID != nil { return *x.RelatedWRTradeOrderID } return 0 } func (x *HdWRDealOrderRsp) GetFreezeAmount() float64 { if x != nil && x.FreezeAmount != nil { return *x.FreezeAmount } return 0 } func (x *HdWRDealOrderRsp) GetOrderTime() string { if x != nil && x.OrderTime != nil { return *x.OrderTime } return "" } func (x *HdWRDealOrderRsp) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 补充定金接口请求 type SupplementDepositReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` TradeID *uint64 `protobuf:"varint,2,opt,name=TradeID" json:"TradeID,omitempty"` // 成交单号,必填 BuyOrSell *uint32 `protobuf:"varint,3,opt,name=BuyOrSell" json:"BuyOrSell,omitempty"` // 买卖方向,必填 UserID *uint32 `protobuf:"varint,4,opt,name=UserID" json:"UserID,omitempty"` // 用户ID,必填 AccountID *uint64 `protobuf:"varint,5,opt,name=AccountID" json:"AccountID,omitempty"` // 交易账号,必填 RestockDeposit *float64 `protobuf:"fixed64,6,opt,name=RestockDeposit" json:"RestockDeposit,omitempty"` // 补充定金,必填 MarketID *uint32 `protobuf:"varint,7,opt,name=MarketID" json:"MarketID,omitempty"` // 市场ID,必填 ClientSerialNo *string `protobuf:"bytes,8,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 ClientType *uint32 `protobuf:"varint,9,opt,name=ClientType" json:"ClientType,omitempty"` // 终端类型 } func (x *SupplementDepositReq) Reset() { *x = SupplementDepositReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SupplementDepositReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*SupplementDepositReq) ProtoMessage() {} func (x *SupplementDepositReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[108] 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 SupplementDepositReq.ProtoReflect.Descriptor instead. func (*SupplementDepositReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{108} } func (x *SupplementDepositReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *SupplementDepositReq) GetTradeID() uint64 { if x != nil && x.TradeID != nil { return *x.TradeID } return 0 } func (x *SupplementDepositReq) GetBuyOrSell() uint32 { if x != nil && x.BuyOrSell != nil { return *x.BuyOrSell } return 0 } func (x *SupplementDepositReq) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *SupplementDepositReq) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *SupplementDepositReq) GetRestockDeposit() float64 { if x != nil && x.RestockDeposit != nil { return *x.RestockDeposit } return 0 } func (x *SupplementDepositReq) GetMarketID() uint32 { if x != nil && x.MarketID != nil { return *x.MarketID } return 0 } func (x *SupplementDepositReq) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } func (x *SupplementDepositReq) GetClientType() uint32 { if x != nil && x.ClientType != nil { return *x.ClientType } return 0 } // 补充定金接口响应 type SupplementDepositRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 TradeID *uint64 `protobuf:"varint,4,opt,name=TradeID" json:"TradeID,omitempty"` // 成交单号,必填 UserID *uint32 `protobuf:"varint,5,opt,name=UserID" json:"UserID,omitempty"` // 用户ID,必填 AccountID *uint64 `protobuf:"varint,6,opt,name=AccountID" json:"AccountID,omitempty"` // 交易账号,必填 ClientSerialNo *string `protobuf:"bytes,7,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *SupplementDepositRsp) Reset() { *x = SupplementDepositRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SupplementDepositRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*SupplementDepositRsp) ProtoMessage() {} func (x *SupplementDepositRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[109] 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 SupplementDepositRsp.ProtoReflect.Descriptor instead. func (*SupplementDepositRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{109} } func (x *SupplementDepositRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *SupplementDepositRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *SupplementDepositRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *SupplementDepositRsp) GetTradeID() uint64 { if x != nil && x.TradeID != nil { return *x.TradeID } return 0 } func (x *SupplementDepositRsp) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *SupplementDepositRsp) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *SupplementDepositRsp) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 退返定金接口请求 type RefundedDepositReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` TradeID *uint64 `protobuf:"varint,2,opt,name=TradeID" json:"TradeID,omitempty"` // 成交单号,必填 BuyOrSell *uint32 `protobuf:"varint,3,opt,name=BuyOrSell" json:"BuyOrSell,omitempty"` // 买卖方向,必填 UserID *uint32 `protobuf:"varint,4,opt,name=UserID" json:"UserID,omitempty"` // 用户ID,必填 AccountID *uint64 `protobuf:"varint,5,opt,name=AccountID" json:"AccountID,omitempty"` // 交易账号,必填 RestockDeposit *float64 `protobuf:"fixed64,6,opt,name=RestockDeposit" json:"RestockDeposit,omitempty"` // 补充定金,必填 MarketID *uint32 `protobuf:"varint,7,opt,name=MarketID" json:"MarketID,omitempty"` // 市场ID,必填 ClientSerialNo *string `protobuf:"bytes,8,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 ClientType *uint32 `protobuf:"varint,9,opt,name=ClientType" json:"ClientType,omitempty"` // 终端类型 } func (x *RefundedDepositReq) Reset() { *x = RefundedDepositReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RefundedDepositReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*RefundedDepositReq) ProtoMessage() {} func (x *RefundedDepositReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[110] 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 RefundedDepositReq.ProtoReflect.Descriptor instead. func (*RefundedDepositReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{110} } func (x *RefundedDepositReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *RefundedDepositReq) GetTradeID() uint64 { if x != nil && x.TradeID != nil { return *x.TradeID } return 0 } func (x *RefundedDepositReq) GetBuyOrSell() uint32 { if x != nil && x.BuyOrSell != nil { return *x.BuyOrSell } return 0 } func (x *RefundedDepositReq) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *RefundedDepositReq) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *RefundedDepositReq) GetRestockDeposit() float64 { if x != nil && x.RestockDeposit != nil { return *x.RestockDeposit } return 0 } func (x *RefundedDepositReq) GetMarketID() uint32 { if x != nil && x.MarketID != nil { return *x.MarketID } return 0 } func (x *RefundedDepositReq) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } func (x *RefundedDepositReq) GetClientType() uint32 { if x != nil && x.ClientType != nil { return *x.ClientType } return 0 } // 退返定金接口响应 type RefundedDepositRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 TradeID *uint64 `protobuf:"varint,4,opt,name=TradeID" json:"TradeID,omitempty"` // 成交单号,必填 UserID *uint32 `protobuf:"varint,5,opt,name=UserID" json:"UserID,omitempty"` // 用户ID,必填 AccountID *uint64 `protobuf:"varint,6,opt,name=AccountID" json:"AccountID,omitempty"` // 交易账号,必填 ClientSerialNo *string `protobuf:"bytes,7,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *RefundedDepositRsp) Reset() { *x = RefundedDepositRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RefundedDepositRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*RefundedDepositRsp) ProtoMessage() {} func (x *RefundedDepositRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[111] 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 RefundedDepositRsp.ProtoReflect.Descriptor instead. func (*RefundedDepositRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{111} } func (x *RefundedDepositRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *RefundedDepositRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *RefundedDepositRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *RefundedDepositRsp) GetTradeID() uint64 { if x != nil && x.TradeID != nil { return *x.TradeID } return 0 } func (x *RefundedDepositRsp) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *RefundedDepositRsp) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *RefundedDepositRsp) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 持仓明细 type MarketOrderHoldDetails struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TradeID *uint64 `protobuf:"varint,1,opt,name=TradeID" json:"TradeID,omitempty"` // 成交单号,必填 DeliveryQty *uint64 `protobuf:"varint,2,opt,name=DeliveryQty" json:"DeliveryQty,omitempty"` // 交收数量,必填 } func (x *MarketOrderHoldDetails) Reset() { *x = MarketOrderHoldDetails{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MarketOrderHoldDetails) String() string { return protoimpl.X.MessageStringOf(x) } func (*MarketOrderHoldDetails) ProtoMessage() {} func (x *MarketOrderHoldDetails) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[112] 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 MarketOrderHoldDetails.ProtoReflect.Descriptor instead. func (*MarketOrderHoldDetails) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{112} } func (x *MarketOrderHoldDetails) GetTradeID() uint64 { if x != nil && x.TradeID != nil { return *x.TradeID } return 0 } func (x *MarketOrderHoldDetails) GetDeliveryQty() uint64 { if x != nil && x.DeliveryQty != nil { return *x.DeliveryQty } return 0 } // 付款凭证 type PayAttrs struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FileName *string `protobuf:"bytes,1,opt,name=FileName" json:"FileName,omitempty"` // 文件名,必填 FileAddr *string `protobuf:"bytes,2,opt,name=FileAddr" json:"FileAddr,omitempty"` // 文件地址,必填 } func (x *PayAttrs) Reset() { *x = PayAttrs{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PayAttrs) String() string { return protoimpl.X.MessageStringOf(x) } func (*PayAttrs) ProtoMessage() {} func (x *PayAttrs) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[113] 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 PayAttrs.ProtoReflect.Descriptor instead. func (*PayAttrs) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{113} } func (x *PayAttrs) GetFileName() string { if x != nil && x.FileName != nil { return *x.FileName } return "" } func (x *PayAttrs) GetFileAddr() string { if x != nil && x.FileAddr != nil { return *x.FileAddr } return "" } // 按单做市交收申请接口请求 type MarketOrderDeliveryApplyReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` UserID *uint32 `protobuf:"varint,2,opt,name=UserID" json:"UserID,omitempty"` // 用户ID,必填 AccountID *uint64 `protobuf:"varint,3,opt,name=AccountID" json:"AccountID,omitempty"` // 交易账号,必填 BuyOrSell *uint32 `protobuf:"varint,4,opt,name=BuyOrSell" json:"BuyOrSell,omitempty"` // 方向,必填 HoldDetails []*MarketOrderHoldDetails `protobuf:"bytes,5,rep,name=HoldDetails" json:"HoldDetails,omitempty"` // 持仓明细,必填 ClientSerialNo *string `protobuf:"bytes,6,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 ClientType *uint32 `protobuf:"varint,7,opt,name=ClientType" json:"ClientType,omitempty"` // 终端类型 } func (x *MarketOrderDeliveryApplyReq) Reset() { *x = MarketOrderDeliveryApplyReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MarketOrderDeliveryApplyReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*MarketOrderDeliveryApplyReq) ProtoMessage() {} func (x *MarketOrderDeliveryApplyReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[114] 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 MarketOrderDeliveryApplyReq.ProtoReflect.Descriptor instead. func (*MarketOrderDeliveryApplyReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{114} } func (x *MarketOrderDeliveryApplyReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *MarketOrderDeliveryApplyReq) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *MarketOrderDeliveryApplyReq) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *MarketOrderDeliveryApplyReq) GetBuyOrSell() uint32 { if x != nil && x.BuyOrSell != nil { return *x.BuyOrSell } return 0 } func (x *MarketOrderDeliveryApplyReq) GetHoldDetails() []*MarketOrderHoldDetails { if x != nil { return x.HoldDetails } return nil } func (x *MarketOrderDeliveryApplyReq) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } func (x *MarketOrderDeliveryApplyReq) GetClientType() uint32 { if x != nil && x.ClientType != nil { return *x.ClientType } return 0 } // 按单做市交收申请接口响应 type MarketOrderDeliveryApplyRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 UserID *uint32 `protobuf:"varint,4,opt,name=UserID" json:"UserID,omitempty"` // 用户ID,必填 AccountID *uint64 `protobuf:"varint,5,opt,name=AccountID" json:"AccountID,omitempty"` // 交易账号,必填 ClientSerialNo *string `protobuf:"bytes,6,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *MarketOrderDeliveryApplyRsp) Reset() { *x = MarketOrderDeliveryApplyRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MarketOrderDeliveryApplyRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*MarketOrderDeliveryApplyRsp) ProtoMessage() {} func (x *MarketOrderDeliveryApplyRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[115] 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 MarketOrderDeliveryApplyRsp.ProtoReflect.Descriptor instead. func (*MarketOrderDeliveryApplyRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{115} } func (x *MarketOrderDeliveryApplyRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *MarketOrderDeliveryApplyRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *MarketOrderDeliveryApplyRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *MarketOrderDeliveryApplyRsp) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *MarketOrderDeliveryApplyRsp) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *MarketOrderDeliveryApplyRsp) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 交收终端操作接口请求 type DeliveryClientOperatorReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` UserID *uint32 `protobuf:"varint,2,opt,name=UserID" json:"UserID,omitempty"` // 用户ID,必填 AccountID *uint64 `protobuf:"varint,3,opt,name=AccountID" json:"AccountID,omitempty"` // 交易账号,必填 DeliveryOrderID *uint64 `protobuf:"varint,4,opt,name=DeliveryOrderID" json:"DeliveryOrderID,omitempty"` // 交收单号,必填 OperateType *uint32 `protobuf:"varint,5,opt,name=OperateType" json:"OperateType,omitempty"` // 操作类型,必填1:客户确认2:客户付款 DeliveryPayMode *uint32 `protobuf:"varint,6,opt,name=DeliveryPayMode" json:"DeliveryPayMode,omitempty"` // 付款方式,必填1:线上支付2:线下支付 PayAmount *float64 `protobuf:"fixed64,7,opt,name=PayAmount" json:"PayAmount,omitempty"` // 付款金额,必填 PayAttr []*PayAttrs `protobuf:"bytes,8,rep,name=PayAttr" json:"PayAttr,omitempty"` // 付款凭证,必填 OperatorID *uint32 `protobuf:"varint,9,opt,name=OperatorID" json:"OperatorID,omitempty"` // 操作人ID OperatorAccount *string `protobuf:"bytes,10,opt,name=OperatorAccount" json:"OperatorAccount,omitempty"` // 操作人账号 OperatorName *string `protobuf:"bytes,11,opt,name=OperatorName" json:"OperatorName,omitempty"` // 操作人名称 Remark *string `protobuf:"bytes,12,opt,name=Remark" json:"Remark,omitempty"` // 操作备注 ClientSerialNo *string `protobuf:"bytes,13,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 ClientType *uint32 `protobuf:"varint,14,opt,name=ClientType" json:"ClientType,omitempty"` // 终端类型 } func (x *DeliveryClientOperatorReq) Reset() { *x = DeliveryClientOperatorReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeliveryClientOperatorReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeliveryClientOperatorReq) ProtoMessage() {} func (x *DeliveryClientOperatorReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[116] 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 DeliveryClientOperatorReq.ProtoReflect.Descriptor instead. func (*DeliveryClientOperatorReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{116} } func (x *DeliveryClientOperatorReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *DeliveryClientOperatorReq) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *DeliveryClientOperatorReq) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *DeliveryClientOperatorReq) GetDeliveryOrderID() uint64 { if x != nil && x.DeliveryOrderID != nil { return *x.DeliveryOrderID } return 0 } func (x *DeliveryClientOperatorReq) GetOperateType() uint32 { if x != nil && x.OperateType != nil { return *x.OperateType } return 0 } func (x *DeliveryClientOperatorReq) GetDeliveryPayMode() uint32 { if x != nil && x.DeliveryPayMode != nil { return *x.DeliveryPayMode } return 0 } func (x *DeliveryClientOperatorReq) GetPayAmount() float64 { if x != nil && x.PayAmount != nil { return *x.PayAmount } return 0 } func (x *DeliveryClientOperatorReq) GetPayAttr() []*PayAttrs { if x != nil { return x.PayAttr } return nil } func (x *DeliveryClientOperatorReq) GetOperatorID() uint32 { if x != nil && x.OperatorID != nil { return *x.OperatorID } return 0 } func (x *DeliveryClientOperatorReq) GetOperatorAccount() string { if x != nil && x.OperatorAccount != nil { return *x.OperatorAccount } return "" } func (x *DeliveryClientOperatorReq) GetOperatorName() string { if x != nil && x.OperatorName != nil { return *x.OperatorName } return "" } func (x *DeliveryClientOperatorReq) GetRemark() string { if x != nil && x.Remark != nil { return *x.Remark } return "" } func (x *DeliveryClientOperatorReq) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } func (x *DeliveryClientOperatorReq) GetClientType() uint32 { if x != nil && x.ClientType != nil { return *x.ClientType } return 0 } // 交收终端操作接口响应 type DeliveryClientOperatorRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 DeliveryOrderID *uint64 `protobuf:"varint,4,opt,name=DeliveryOrderID" json:"DeliveryOrderID,omitempty"` // 交收单号,必填 UserID *uint32 `protobuf:"varint,5,opt,name=UserID" json:"UserID,omitempty"` // 用户ID,必填 AccountID *uint64 `protobuf:"varint,6,opt,name=AccountID" json:"AccountID,omitempty"` // 交易账号,必填 ClientSerialNo *string `protobuf:"bytes,7,opt,name=ClientSerialNo" json:"ClientSerialNo,omitempty"` // 客户端流水号 } func (x *DeliveryClientOperatorRsp) Reset() { *x = DeliveryClientOperatorRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeliveryClientOperatorRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeliveryClientOperatorRsp) ProtoMessage() {} func (x *DeliveryClientOperatorRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[117] 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 DeliveryClientOperatorRsp.ProtoReflect.Descriptor instead. func (*DeliveryClientOperatorRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{117} } func (x *DeliveryClientOperatorRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *DeliveryClientOperatorRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *DeliveryClientOperatorRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *DeliveryClientOperatorRsp) GetDeliveryOrderID() uint64 { if x != nil && x.DeliveryOrderID != nil { return *x.DeliveryOrderID } return 0 } func (x *DeliveryClientOperatorRsp) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *DeliveryClientOperatorRsp) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *DeliveryClientOperatorRsp) GetClientSerialNo() string { if x != nil && x.ClientSerialNo != nil { return *x.ClientSerialNo } return "" } // 用户登录请求 type LoginReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` LoginID *uint64 `protobuf:"varint,2,opt,name=LoginID" json:"LoginID,omitempty"` // 登录ID LoginPWD *string `protobuf:"bytes,3,opt,name=LoginPWD" json:"LoginPWD,omitempty"` // 登录密码 LoginType *uint32 `protobuf:"varint,4,opt,name=LoginType" json:"LoginType,omitempty"` // 登陆类型 ClientType *uint32 `protobuf:"varint,5,opt,name=ClientType" json:"ClientType,omitempty"` // 终端软件类型 Version *string `protobuf:"bytes,6,opt,name=Version" json:"Version,omitempty"` // 终端软件版本号 MobilePhone *string `protobuf:"bytes,7,opt,name=MobilePhone" json:"MobilePhone,omitempty"` // 移动电话 GUID *string `protobuf:"bytes,8,opt,name=GUID" json:"GUID,omitempty"` // 唯一标识码 LoginIp *string `protobuf:"bytes,9,opt,name=LoginIp" json:"LoginIp,omitempty"` // 登录IP地址 LoginPort *uint32 `protobuf:"varint,10,opt,name=LoginPort" json:"LoginPort,omitempty"` // 登陆通信端口 DeviceID *string `protobuf:"bytes,11,opt,name=DeviceID" json:"DeviceID,omitempty"` // 设备标识 EnvironmentInfo *string `protobuf:"bytes,12,opt,name=EnvironmentInfo" json:"EnvironmentInfo,omitempty"` // 软件环境信息 LoginCode *string `protobuf:"bytes,13,opt,name=LoginCode" json:"LoginCode,omitempty"` // 登陆码 ClientSystemInfo []byte `protobuf:"bytes,14,opt,name=ClientSystemInfo" json:"ClientSystemInfo,omitempty"` // 终端系统信息 ClientAppID *string `protobuf:"bytes,15,opt,name=ClientAppID" json:"ClientAppID,omitempty"` // 终端AppID } func (x *LoginReq) Reset() { *x = LoginReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LoginReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*LoginReq) ProtoMessage() {} func (x *LoginReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[118] 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 LoginReq.ProtoReflect.Descriptor instead. func (*LoginReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{118} } func (x *LoginReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *LoginReq) GetLoginID() uint64 { if x != nil && x.LoginID != nil { return *x.LoginID } return 0 } func (x *LoginReq) GetLoginPWD() string { if x != nil && x.LoginPWD != nil { return *x.LoginPWD } return "" } func (x *LoginReq) GetLoginType() uint32 { if x != nil && x.LoginType != nil { return *x.LoginType } return 0 } func (x *LoginReq) GetClientType() uint32 { if x != nil && x.ClientType != nil { return *x.ClientType } return 0 } func (x *LoginReq) GetVersion() string { if x != nil && x.Version != nil { return *x.Version } return "" } func (x *LoginReq) GetMobilePhone() string { if x != nil && x.MobilePhone != nil { return *x.MobilePhone } return "" } func (x *LoginReq) GetGUID() string { if x != nil && x.GUID != nil { return *x.GUID } return "" } func (x *LoginReq) GetLoginIp() string { if x != nil && x.LoginIp != nil { return *x.LoginIp } return "" } func (x *LoginReq) GetLoginPort() uint32 { if x != nil && x.LoginPort != nil { return *x.LoginPort } return 0 } func (x *LoginReq) GetDeviceID() string { if x != nil && x.DeviceID != nil { return *x.DeviceID } return "" } func (x *LoginReq) GetEnvironmentInfo() string { if x != nil && x.EnvironmentInfo != nil { return *x.EnvironmentInfo } return "" } func (x *LoginReq) GetLoginCode() string { if x != nil && x.LoginCode != nil { return *x.LoginCode } return "" } func (x *LoginReq) GetClientSystemInfo() []byte { if x != nil { return x.ClientSystemInfo } return nil } func (x *LoginReq) GetClientAppID() string { if x != nil && x.ClientAppID != nil { return *x.ClientAppID } return "" } // 用户登录应答 type LoginRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 LoginID *uint64 `protobuf:"varint,4,opt,name=LoginID" json:"LoginID,omitempty"` // 登录ID LoginUserType *uint32 `protobuf:"varint,5,opt,name=LoginUserType" json:"LoginUserType,omitempty"` // 登陆用户类型 AccountStatus *uint32 `protobuf:"varint,6,opt,name=AccountStatus" json:"AccountStatus,omitempty"` // 用户状态 UserID *uint32 `protobuf:"varint,7,opt,name=UserID" json:"UserID,omitempty"` // 用户ID MemberUserID *uint32 `protobuf:"varint,8,opt,name=MemberUserID" json:"MemberUserID,omitempty"` // 用户所属会员用户ID AccountIDs []uint64 `protobuf:"varint,9,rep,name=AccountIDs" json:"AccountIDs,omitempty"` // 账户ID列表(有权限的) Token *string `protobuf:"bytes,10,opt,name=Token" json:"Token,omitempty"` // 用户令牌 SystemTime *uint64 `protobuf:"varint,11,opt,name=SystemTime" json:"SystemTime,omitempty"` // 系统时间 HasUpdatedPwd *uint32 `protobuf:"varint,12,opt,name=HasUpdatedPwd" json:"HasUpdatedPwd,omitempty"` // 是否已更改密码 PwdWrongCnt *uint32 `protobuf:"varint,13,opt,name=PwdWrongCnt" json:"PwdWrongCnt,omitempty"` // 当前密码输入错误次数 PwdWrongLockCnt *uint32 `protobuf:"varint,14,opt,name=PwdWrongLockCnt" json:"PwdWrongLockCnt,omitempty"` // 登陆账号锁定密码输入错误次数 LoginLockHourNum *uint32 `protobuf:"varint,15,opt,name=LoginLockHourNum" json:"LoginLockHourNum,omitempty"` // 登陆账号锁定时长(小时) LoginCode *string `protobuf:"bytes,16,opt,name=LoginCode" json:"LoginCode,omitempty"` // 登陆码 ClientSystemInfo []byte `protobuf:"bytes,17,opt,name=ClientSystemInfo" json:"ClientSystemInfo,omitempty"` // 终端系统信息 ClientID *uint64 `protobuf:"varint,18,opt,name=ClientID" json:"ClientID,omitempty"` // 终端ID(登陆服务分配,用于通道交易关联链路) } func (x *LoginRsp) Reset() { *x = LoginRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LoginRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*LoginRsp) ProtoMessage() {} func (x *LoginRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[119] 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 LoginRsp.ProtoReflect.Descriptor instead. func (*LoginRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{119} } func (x *LoginRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *LoginRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *LoginRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } func (x *LoginRsp) GetLoginID() uint64 { if x != nil && x.LoginID != nil { return *x.LoginID } return 0 } func (x *LoginRsp) GetLoginUserType() uint32 { if x != nil && x.LoginUserType != nil { return *x.LoginUserType } return 0 } func (x *LoginRsp) GetAccountStatus() uint32 { if x != nil && x.AccountStatus != nil { return *x.AccountStatus } return 0 } func (x *LoginRsp) GetUserID() uint32 { if x != nil && x.UserID != nil { return *x.UserID } return 0 } func (x *LoginRsp) GetMemberUserID() uint32 { if x != nil && x.MemberUserID != nil { return *x.MemberUserID } return 0 } func (x *LoginRsp) GetAccountIDs() []uint64 { if x != nil { return x.AccountIDs } return nil } func (x *LoginRsp) GetToken() string { if x != nil && x.Token != nil { return *x.Token } return "" } func (x *LoginRsp) GetSystemTime() uint64 { if x != nil && x.SystemTime != nil { return *x.SystemTime } return 0 } func (x *LoginRsp) GetHasUpdatedPwd() uint32 { if x != nil && x.HasUpdatedPwd != nil { return *x.HasUpdatedPwd } return 0 } func (x *LoginRsp) GetPwdWrongCnt() uint32 { if x != nil && x.PwdWrongCnt != nil { return *x.PwdWrongCnt } return 0 } func (x *LoginRsp) GetPwdWrongLockCnt() uint32 { if x != nil && x.PwdWrongLockCnt != nil { return *x.PwdWrongLockCnt } return 0 } func (x *LoginRsp) GetLoginLockHourNum() uint32 { if x != nil && x.LoginLockHourNum != nil { return *x.LoginLockHourNum } return 0 } func (x *LoginRsp) GetLoginCode() string { if x != nil && x.LoginCode != nil { return *x.LoginCode } return "" } func (x *LoginRsp) GetClientSystemInfo() []byte { if x != nil { return x.ClientSystemInfo } return nil } func (x *LoginRsp) GetClientID() uint64 { if x != nil && x.ClientID != nil { return *x.ClientID } return 0 } // 客户离线通知 type CustOfflineNtf struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 SessionID []uint32 `protobuf:"varint,2,rep,name=SessionID" json:"SessionID,omitempty"` // uint32 用户的sessionid(由接入服务分配的),是一数组。该接口是系统内部服务使用的接口 LoginID []uint64 `protobuf:"varint,3,rep,name=LoginID" json:"LoginID,omitempty"` // uint64 用户登陆的loginid,是一数组。该接口是系统内部服务使用的接口 } func (x *CustOfflineNtf) Reset() { *x = CustOfflineNtf{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CustOfflineNtf) String() string { return protoimpl.X.MessageStringOf(x) } func (*CustOfflineNtf) ProtoMessage() {} func (x *CustOfflineNtf) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[120] 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 CustOfflineNtf.ProtoReflect.Descriptor instead. func (*CustOfflineNtf) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{120} } func (x *CustOfflineNtf) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *CustOfflineNtf) GetSessionID() []uint32 { if x != nil { return x.SessionID } return nil } func (x *CustOfflineNtf) GetLoginID() []uint64 { if x != nil { return x.LoginID } return nil } // 用户登出请求 type LogoutReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` LoginID *uint64 `protobuf:"varint,2,opt,name=LoginID" json:"LoginID,omitempty"` // 登录ID Token *string `protobuf:"bytes,3,opt,name=Token" json:"Token,omitempty"` // 登录时返回的用户令牌 LoginIp *string `protobuf:"bytes,4,opt,name=LoginIp" json:"LoginIp,omitempty"` // 登出IP地址 LoginPort *uint32 `protobuf:"varint,5,opt,name=LoginPort" json:"LoginPort,omitempty"` // 登出通信端口 } func (x *LogoutReq) Reset() { *x = LogoutReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LogoutReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*LogoutReq) ProtoMessage() {} func (x *LogoutReq) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[121] 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 LogoutReq.ProtoReflect.Descriptor instead. func (*LogoutReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{121} } func (x *LogoutReq) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *LogoutReq) GetLoginID() uint64 { if x != nil && x.LoginID != nil { return *x.LoginID } return 0 } func (x *LogoutReq) GetToken() string { if x != nil && x.Token != nil { return *x.Token } return "" } func (x *LogoutReq) GetLoginIp() string { if x != nil && x.LoginIp != nil { return *x.LoginIp } return "" } func (x *LogoutReq) GetLoginPort() uint32 { if x != nil && x.LoginPort != nil { return *x.LoginPort } return 0 } // 用户登出应答 type LogoutRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Header *MessageHead `protobuf:"bytes,1,opt,name=Header" json:"Header,omitempty"` // 消息头 RetCode *int32 `protobuf:"varint,2,opt,name=RetCode" json:"RetCode,omitempty"` // 返回码 RetDesc *string `protobuf:"bytes,3,opt,name=RetDesc" json:"RetDesc,omitempty"` // 描述信息 } func (x *LogoutRsp) Reset() { *x = LogoutRsp{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LogoutRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*LogoutRsp) ProtoMessage() {} func (x *LogoutRsp) ProtoReflect() protoreflect.Message { mi := &file_mtp2_proto_msgTypes[122] 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 LogoutRsp.ProtoReflect.Descriptor instead. func (*LogoutRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{122} } func (x *LogoutRsp) GetHeader() *MessageHead { if x != nil { return x.Header } return nil } func (x *LogoutRsp) GetRetCode() int32 { if x != nil && x.RetCode != nil { return *x.RetCode } return 0 } func (x *LogoutRsp) GetRetDesc() string { if x != nil && x.RetDesc != nil { return *x.RetDesc } return "" } var File_mtp2_proto protoreflect.FileDescriptor var file_mtp2_proto_rawDesc = []byte{ 0x0a, 0x0a, 0x6d, 0x74, 0x70, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0xc7, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x46, 0x75, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x46, 0x75, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x32, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x32, 0x22, 0xa6, 0x01, 0x0a, 0x0a, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4e, 0x74, 0x66, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4e, 0x74, 0x66, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x63, 0x63, 0x74, 0x49, 0x44, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x63, 0x63, 0x74, 0x49, 0x44, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x78, 0x63, 0x68, 0x49, 0x44, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x45, 0x78, 0x63, 0x68, 0x49, 0x44, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x44, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x44, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0a, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x22, 0x86, 0x01, 0x0a, 0x0f, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x4e, 0x74, 0x66, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x09, 0x4e, 0x74, 0x66, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x52, 0x09, 0x4e, 0x74, 0x66, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x22, 0x86, 0x03, 0x0a, 0x0e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x51, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x51, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x50, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x50, 0x4c, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x6c, 0x73, 0x55, 0x73, 0x65, 0x64, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x52, 0x6c, 0x73, 0x55, 0x73, 0x65, 0x64, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x64, 0x65, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x54, 0x72, 0x61, 0x64, 0x65, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x57, 0x61, 0x72, 0x65, 0x48, 0x6f, 0x75, 0x73, 0x65, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x57, 0x61, 0x72, 0x65, 0x48, 0x6f, 0x75, 0x73, 0x65, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x64, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x54, 0x72, 0x61, 0x64, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x65, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x4f, 0x70, 0x65, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x61, 0x6c, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x50, 0x4c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x52, 0x65, 0x61, 0x6c, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x50, 0x4c, 0x22, 0xed, 0x06, 0x0a, 0x0e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x4e, 0x74, 0x66, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x09, 0x4e, 0x74, 0x66, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x52, 0x09, 0x4e, 0x74, 0x66, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x64, 0x65, 0x51, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x54, 0x72, 0x61, 0x64, 0x65, 0x51, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x51, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x51, 0x74, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x72, 0x61, 0x64, 0x65, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x72, 0x61, 0x64, 0x65, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x72, 0x61, 0x64, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x54, 0x72, 0x61, 0x64, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x53, 0x65, 0x6c, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x53, 0x65, 0x6c, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x51, 0x74, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x51, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x64, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x54, 0x72, 0x61, 0x64, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x0a, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x64, 0x65, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x54, 0x72, 0x61, 0x64, 0x65, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x57, 0x61, 0x72, 0x65, 0x48, 0x6f, 0x75, 0x73, 0x65, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x57, 0x61, 0x72, 0x65, 0x48, 0x6f, 0x75, 0x73, 0x65, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x64, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x55, 0x73, 0x65, 0x64, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x44, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x18, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0xfa, 0x01, 0x0a, 0x15, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x74, 0x66, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x09, 0x4e, 0x74, 0x66, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x52, 0x09, 0x4e, 0x74, 0x66, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x65, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x53, 0x74, 0x65, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xde, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x74, 0x66, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x09, 0x4e, 0x74, 0x66, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x52, 0x09, 0x4e, 0x74, 0x66, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x51, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x51, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x64, 0x65, 0x51, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x54, 0x72, 0x61, 0x64, 0x65, 0x51, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x51, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x51, 0x74, 0x79, 0x22, 0x44, 0x0a, 0x0a, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x46, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, 0xaf, 0x01, 0x0a, 0x0c, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x50, 0x77, 0x64, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x50, 0x77, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x50, 0x77, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x50, 0x77, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x50, 0x77, 0x64, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x6c, 0x64, 0x50, 0x77, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4f, 0x6c, 0x64, 0x50, 0x77, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x4e, 0x65, 0x77, 0x50, 0x77, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4e, 0x65, 0x77, 0x50, 0x77, 0x64, 0x22, 0x6b, 0x0a, 0x0c, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x50, 0x77, 0x64, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x22, 0xcd, 0x03, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x69, 0x74, 0x79, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x43, 0x69, 0x74, 0x79, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x54, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x64, 0x22, 0x97, 0x01, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x64, 0x22, 0x66, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x64, 0x22, 0x74, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x22, 0x72, 0x0a, 0x17, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x49, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x75, 0x74, 0x6f, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x41, 0x75, 0x74, 0x6f, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x8e, 0x01, 0x0a, 0x17, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x49, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x75, 0x74, 0x6f, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x41, 0x75, 0x74, 0x6f, 0x49, 0x64, 0x22, 0xb3, 0x03, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x61, 0x78, 0x70, 0x61, 0x79, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x54, 0x61, 0x78, 0x70, 0x61, 0x79, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x42, 0x61, 0x6e, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x26, 0x0a, 0x0e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x44, 0x4e, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x49, 0x44, 0x4e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x97, 0x01, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x64, 0x22, 0x66, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x64, 0x22, 0x74, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x22, 0xac, 0x09, 0x0a, 0x0e, 0x74, 0x32, 0x62, 0x42, 0x61, 0x6e, 0x6b, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x45, 0x78, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x02, 0x28, 0x04, 0x52, 0x0d, 0x45, 0x78, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x78, 0x63, 0x68, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x78, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x45, 0x78, 0x63, 0x68, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x45, 0x78, 0x63, 0x68, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x75, 0x73, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x44, 0x18, 0x08, 0x20, 0x02, 0x28, 0x09, 0x52, 0x09, 0x43, 0x75, 0x73, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x02, 0x28, 0x05, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x73, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x02, 0x28, 0x05, 0x52, 0x07, 0x49, 0x73, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x4f, 0x70, 0x65, 0x6e, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x49, 0x64, 0x18, 0x0d, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0d, 0x4f, 0x70, 0x65, 0x6e, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x16, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x6f, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x6f, 0x12, 0x3a, 0x0a, 0x18, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x6f, 0x18, 0x10, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0d, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x45, 0x78, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0a, 0x45, 0x78, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x6e, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x4f, 0x70, 0x65, 0x6e, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x4f, 0x70, 0x65, 0x6e, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x4f, 0x70, 0x65, 0x6e, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x65, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x15, 0x20, 0x02, 0x28, 0x09, 0x52, 0x08, 0x43, 0x65, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x65, 0x72, 0x74, 0x49, 0x44, 0x18, 0x16, 0x20, 0x02, 0x28, 0x09, 0x52, 0x06, 0x43, 0x65, 0x72, 0x74, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x57, 0x44, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x57, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x65, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x65, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x65, 0x72, 0x74, 0x49, 0x44, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x65, 0x72, 0x74, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x61, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x42, 0x61, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x69, 0x74, 0x79, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x69, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x21, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xd5, 0x04, 0x0a, 0x0e, 0x74, 0x32, 0x62, 0x42, 0x61, 0x6e, 0x6b, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x24, 0x0a, 0x0d, 0x45, 0x78, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x45, 0x78, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4e, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x45, 0x78, 0x63, 0x68, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x08, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0a, 0x45, 0x78, 0x63, 0x68, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x78, 0x63, 0x68, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x78, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x61, 0x6e, 0x6b, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x41, 0x63, 0x63, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x61, 0x6e, 0x6b, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x41, 0x63, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x62, 0x61, 0x6e, 0x6b, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x41, 0x63, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, 0x61, 0x6e, 0x6b, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x41, 0x63, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x4e, 0x75, 0x6d, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x81, 0x03, 0x0a, 0x14, 0x74, 0x32, 0x62, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x45, 0x78, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x02, 0x28, 0x04, 0x52, 0x0d, 0x45, 0x78, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x78, 0x63, 0x68, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x78, 0x63, 0x68, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x75, 0x73, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x44, 0x18, 0x05, 0x20, 0x02, 0x28, 0x09, 0x52, 0x09, 0x43, 0x75, 0x73, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x73, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x06, 0x20, 0x02, 0x28, 0x05, 0x52, 0x07, 0x49, 0x73, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x45, 0x78, 0x63, 0x68, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x45, 0x78, 0x63, 0x68, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x41, 0x63, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x41, 0x63, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x41, 0x63, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x41, 0x63, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xb1, 0x03, 0x0a, 0x14, 0x74, 0x32, 0x62, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x24, 0x0a, 0x0d, 0x45, 0x78, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x45, 0x78, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4e, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x45, 0x78, 0x63, 0x68, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x08, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0a, 0x45, 0x78, 0x63, 0x68, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x78, 0x63, 0x68, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x78, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0xde, 0x05, 0x0a, 0x12, 0x74, 0x32, 0x62, 0x42, 0x61, 0x6e, 0x6b, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x45, 0x78, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x02, 0x28, 0x04, 0x52, 0x0d, 0x45, 0x78, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x78, 0x63, 0x68, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x78, 0x63, 0x68, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x75, 0x73, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x44, 0x18, 0x05, 0x20, 0x02, 0x28, 0x09, 0x52, 0x09, 0x43, 0x75, 0x73, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x06, 0x20, 0x02, 0x28, 0x09, 0x52, 0x08, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x14, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x26, 0x0a, 0x0e, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x02, 0x28, 0x01, 0x52, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x41, 0x70, 0x70, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x6c, 0x64, 0x54, 0x61, 0x50, 0x57, 0x44, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x6c, 0x64, 0x54, 0x61, 0x50, 0x57, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, 0x12, 0x22, 0x0a, 0x0c, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x45, 0x78, 0x63, 0x68, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x45, 0x78, 0x63, 0x68, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x22, 0xb7, 0x03, 0x0a, 0x12, 0x74, 0x32, 0x62, 0x42, 0x61, 0x6e, 0x6b, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x24, 0x0a, 0x0d, 0x45, 0x78, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x45, 0x78, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x45, 0x78, 0x63, 0x68, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x06, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0a, 0x45, 0x78, 0x63, 0x68, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x78, 0x63, 0x68, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x78, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x65, 0x72, 0x74, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x43, 0x65, 0x72, 0x74, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4e, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x22, 0xf7, 0x04, 0x0a, 0x11, 0x74, 0x32, 0x62, 0x42, 0x61, 0x6e, 0x6b, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x45, 0x78, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x02, 0x28, 0x04, 0x52, 0x0d, 0x45, 0x78, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x75, 0x73, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x44, 0x18, 0x03, 0x20, 0x02, 0x28, 0x09, 0x52, 0x09, 0x43, 0x75, 0x73, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x78, 0x63, 0x68, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x78, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x45, 0x78, 0x63, 0x68, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x45, 0x78, 0x63, 0x68, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x42, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x4e, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x42, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x4e, 0x6f, 0x12, 0x2a, 0x0a, 0x10, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x14, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x6c, 0x64, 0x54, 0x61, 0x50, 0x57, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x6c, 0x64, 0x54, 0x61, 0x50, 0x57, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x02, 0x28, 0x01, 0x52, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0d, 0x20, 0x02, 0x28, 0x09, 0x52, 0x08, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x26, 0x0a, 0x0e, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xb6, 0x03, 0x0a, 0x11, 0x74, 0x32, 0x62, 0x42, 0x61, 0x6e, 0x6b, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x24, 0x0a, 0x0d, 0x45, 0x78, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x45, 0x78, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x45, 0x78, 0x63, 0x68, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x06, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0a, 0x45, 0x78, 0x63, 0x68, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x78, 0x63, 0x68, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x78, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x65, 0x72, 0x74, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x43, 0x65, 0x72, 0x74, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4e, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x22, 0xa2, 0x01, 0x0a, 0x08, 0x57, 0x52, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x42, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x42, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x72, 0x61, 0x64, 0x65, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x72, 0x61, 0x64, 0x65, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x22, 0xb0, 0x03, 0x0a, 0x11, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x69, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x69, 0x74, 0x79, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x69, 0x74, 0x79, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x6e, 0x75, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x6e, 0x75, 0x6d, 0x22, 0x92, 0x01, 0x0a, 0x11, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x20, 0x0a, 0x0b, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x69, 0x64, 0x22, 0xf6, 0x01, 0x0a, 0x1d, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x42, 0x72, 0x65, 0x61, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x42, 0x72, 0x65, 0x61, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xaa, 0x01, 0x0a, 0x1d, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x2c, 0x0a, 0x11, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x44, 0x22, 0xd7, 0x01, 0x0a, 0x18, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x15, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x53, 0x74, 0x65, 0x70, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x53, 0x74, 0x65, 0x70, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x64, 0x61, 0x79, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x64, 0x61, 0x79, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x22, 0xcb, 0x01, 0x0a, 0x18, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x34, 0x0a, 0x15, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x53, 0x74, 0x65, 0x70, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x53, 0x74, 0x65, 0x70, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x22, 0xc2, 0x02, 0x0a, 0x1b, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x15, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x53, 0x74, 0x65, 0x70, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x53, 0x74, 0x65, 0x70, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x4f, 0x76, 0x65, 0x72, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x4f, 0x76, 0x65, 0x72, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x16, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x53, 0x69, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x53, 0x69, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x74, 0x65, 0x70, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x53, 0x74, 0x65, 0x70, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x22, 0x0a, 0x0c, 0x4f, 0x76, 0x65, 0x72, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x51, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x4f, 0x76, 0x65, 0x72, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x51, 0x74, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x46, 0x65, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x46, 0x65, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x1b, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x34, 0x0a, 0x15, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x53, 0x74, 0x65, 0x70, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x53, 0x74, 0x65, 0x70, 0x49, 0x44, 0x22, 0xb4, 0x01, 0x0a, 0x1b, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xc6, 0x01, 0x0a, 0x1b, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x2c, 0x0a, 0x11, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x22, 0xd2, 0x02, 0x0a, 0x0d, 0x41, 0x64, 0x64, 0x5a, 0x53, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x57, 0x52, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x57, 0x52, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x57, 0x52, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x57, 0x52, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x4c, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x53, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0x88, 0x02, 0x0a, 0x17, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x46, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0xde, 0x01, 0x0a, 0x17, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x46, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0xc2, 0x05, 0x0a, 0x16, 0x47, 0x5a, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x45, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x5a, 0x53, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x5a, 0x53, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x5a, 0x53, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x5a, 0x53, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x5a, 0x53, 0x53, 0x68, 0x61, 0x70, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0b, 0x5a, 0x53, 0x53, 0x68, 0x61, 0x70, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x5a, 0x53, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0b, 0x5a, 0x53, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x5a, 0x53, 0x43, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0d, 0x5a, 0x53, 0x43, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x5a, 0x53, 0x43, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, 0x5a, 0x53, 0x43, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x5a, 0x53, 0x53, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x5a, 0x53, 0x53, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x5a, 0x53, 0x50, 0x6f, 0x6c, 0x69, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0c, 0x5a, 0x53, 0x50, 0x6f, 0x6c, 0x69, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x5a, 0x53, 0x46, 0x6c, 0x75, 0x6f, 0x72, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x12, 0x5a, 0x53, 0x46, 0x6c, 0x75, 0x6f, 0x72, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x01, 0x52, 0x04, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x5a, 0x53, 0x43, 0x72, 0x79, 0x73, 0x74, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0d, 0x5a, 0x53, 0x43, 0x72, 0x79, 0x73, 0x74, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x5a, 0x53, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0b, 0x5a, 0x53, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x5a, 0x53, 0x43, 0x5a, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x31, 0x54, 0x79, 0x70, 0x65, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x5a, 0x53, 0x43, 0x5a, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x31, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x5a, 0x53, 0x43, 0x5a, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x32, 0x54, 0x79, 0x70, 0x65, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x5a, 0x53, 0x43, 0x5a, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x32, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x5a, 0x53, 0x43, 0x5a, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x33, 0x54, 0x79, 0x70, 0x65, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x5a, 0x53, 0x43, 0x5a, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x33, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x22, 0x0a, 0x0c, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x49, 0x44, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0c, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x49, 0x44, 0x73, 0x22, 0xaa, 0x03, 0x0a, 0x14, 0x5a, 0x53, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x53, 0x0a, 0x17, 0x47, 0x5a, 0x5f, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x45, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x5a, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x45, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x16, 0x47, 0x5a, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x45, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x34, 0x0a, 0x15, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x72, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x72, 0x63, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0x97, 0x02, 0x0a, 0x14, 0x5a, 0x53, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0xbe, 0x04, 0x0a, 0x15, 0x5a, 0x53, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x57, 0x52, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x57, 0x52, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x57, 0x52, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x57, 0x52, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x51, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x51, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x4c, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x53, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x34, 0x0a, 0x15, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x54, 0x69, 0x6d, 0x65, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x54, 0x69, 0x6d, 0x65, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x72, 0x63, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x72, 0x63, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x22, 0xb6, 0x02, 0x0a, 0x15, 0x5a, 0x53, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x51, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x51, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0x91, 0x03, 0x0a, 0x14, 0x5a, 0x53, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x34, 0x0a, 0x15, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x51, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x51, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x72, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x72, 0x63, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x22, 0xf1, 0x02, 0x0a, 0x14, 0x5a, 0x53, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x34, 0x0a, 0x15, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0xf3, 0x03, 0x0a, 0x1a, 0x5a, 0x53, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, 0x42, 0x75, 0x79, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x42, 0x75, 0x79, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x57, 0x52, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x57, 0x52, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x57, 0x52, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x57, 0x52, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x51, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x51, 0x74, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x4c, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x53, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x22, 0xf1, 0x01, 0x0a, 0x1a, 0x5a, 0x53, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0xfa, 0x02, 0x0a, 0x21, 0x5a, 0x53, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x32, 0x0a, 0x14, 0x53, 0x65, 0x6c, 0x6c, 0x44, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x53, 0x65, 0x6c, 0x6c, 0x44, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x72, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x72, 0x63, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0xfc, 0x02, 0x0a, 0x21, 0x5a, 0x53, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x32, 0x0a, 0x14, 0x53, 0x65, 0x6c, 0x6c, 0x44, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x53, 0x65, 0x6c, 0x6c, 0x44, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0xcd, 0x03, 0x0a, 0x1c, 0x5a, 0x53, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x4e, 0x65, 0x67, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x51, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x51, 0x74, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x72, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x72, 0x63, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x22, 0xc1, 0x02, 0x0a, 0x1c, 0x5a, 0x53, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x4e, 0x65, 0x67, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x57, 0x52, 0x42, 0x61, 0x72, 0x67, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x57, 0x52, 0x42, 0x61, 0x72, 0x67, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0xea, 0x02, 0x0a, 0x23, 0x5a, 0x53, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x4e, 0x65, 0x67, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x57, 0x52, 0x42, 0x61, 0x72, 0x67, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x57, 0x52, 0x42, 0x61, 0x72, 0x67, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x72, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x72, 0x63, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0x82, 0x02, 0x0a, 0x23, 0x5a, 0x53, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x4e, 0x65, 0x67, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x57, 0x52, 0x42, 0x61, 0x72, 0x67, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x57, 0x52, 0x42, 0x61, 0x72, 0x67, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0x86, 0x03, 0x0a, 0x17, 0x57, 0x52, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, 0x4f, 0x6c, 0x64, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x4f, 0x6c, 0x64, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x72, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x72, 0x63, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x53, 0x65, 0x6c, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x53, 0x65, 0x6c, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x57, 0x52, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x57, 0x52, 0x49, 0x44, 0x22, 0xe8, 0x02, 0x0a, 0x17, 0x57, 0x52, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x28, 0x0a, 0x0f, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, 0x4f, 0x6c, 0x64, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x4f, 0x6c, 0x64, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x51, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x51, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0x97, 0x06, 0x0a, 0x14, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x5a, 0x53, 0x4f, 0x75, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x06, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x57, 0x52, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x06, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x57, 0x52, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x57, 0x52, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x41, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x41, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x41, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x69, 0x74, 0x79, 0x49, 0x44, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x43, 0x69, 0x74, 0x79, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x2c, 0x0a, 0x11, 0x41, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x41, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x4c, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x53, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x51, 0x74, 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x51, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x22, 0xd7, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x5a, 0x53, 0x4f, 0x75, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x24, 0x0a, 0x06, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x57, 0x52, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x06, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x22, 0x5d, 0x0a, 0x11, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x03, 0x0a, 0x1a, 0x53, 0x70, 0x6f, 0x74, 0x50, 0x72, 0x65, 0x73, 0x61, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x57, 0x52, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x57, 0x52, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x49, 0x44, 0x12, 0x10, 0x0a, 0x03, 0x51, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x51, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3d, 0x0a, 0x0e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0xf1, 0x01, 0x0a, 0x1a, 0x53, 0x70, 0x6f, 0x74, 0x50, 0x72, 0x65, 0x73, 0x61, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x26, 0x0a, 0x0e, 0x50, 0x72, 0x65, 0x73, 0x61, 0x6c, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x50, 0x72, 0x65, 0x73, 0x61, 0x6c, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0x68, 0x0a, 0x13, 0x54, 0x48, 0x4a, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x74, 0x66, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x44, 0x22, 0x5e, 0x0a, 0x13, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x4e, 0x74, 0x66, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x49, 0x44, 0x22, 0xad, 0x06, 0x0a, 0x10, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x4e, 0x74, 0x66, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x09, 0x4e, 0x74, 0x66, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x52, 0x09, 0x4e, 0x74, 0x66, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x44, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x64, 0x65, 0x51, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x54, 0x72, 0x61, 0x64, 0x65, 0x51, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x51, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x51, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x72, 0x61, 0x64, 0x65, 0x51, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x72, 0x61, 0x64, 0x65, 0x51, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x72, 0x61, 0x64, 0x65, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x72, 0x61, 0x64, 0x65, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x75, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x42, 0x75, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6c, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x53, 0x65, 0x6c, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x72, 0x61, 0x64, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x54, 0x72, 0x61, 0x64, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x64, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x54, 0x72, 0x61, 0x64, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x57, 0x52, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x57, 0x52, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x57, 0x52, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x57, 0x52, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x46, 0x69, 0x72, 0x73, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x46, 0x69, 0x72, 0x73, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x55, 0x6e, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x46, 0x69, 0x72, 0x73, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, 0x55, 0x6e, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x46, 0x69, 0x72, 0x73, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x72, 0x61, 0x64, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x72, 0x61, 0x64, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x44, 0x18, 0x13, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x44, 0x12, 0x34, 0x0a, 0x15, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x44, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x44, 0x22, 0xb9, 0x02, 0x0a, 0x14, 0x43, 0x4a, 0x4a, 0x43, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0xd1, 0x01, 0x0a, 0x14, 0x43, 0x4a, 0x4a, 0x43, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0xbf, 0x03, 0x0a, 0x14, 0x42, 0x53, 0x46, 0x57, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x0b, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x2a, 0x0a, 0x10, 0x47, 0x5a, 0x42, 0x53, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x47, 0x5a, 0x42, 0x53, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0xd1, 0x01, 0x0a, 0x14, 0x42, 0x53, 0x46, 0x57, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0x99, 0x01, 0x0a, 0x12, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x69, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x69, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0xa9, 0x02, 0x0a, 0x12, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x12, 0x2c, 0x0a, 0x11, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x75, 0x74, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x75, 0x74, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x49, 0x73, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x49, 0x73, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xc4, 0x07, 0x0a, 0x11, 0x47, 0x5a, 0x50, 0x72, 0x65, 0x73, 0x61, 0x6c, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x53, 0x65, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6c, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x53, 0x65, 0x6c, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x57, 0x52, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x57, 0x52, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x65, 0x73, 0x61, 0x6c, 0x65, 0x51, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x50, 0x72, 0x65, 0x73, 0x61, 0x6c, 0x65, 0x51, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x4d, 0x69, 0x6e, 0x42, 0x75, 0x79, 0x51, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x4d, 0x69, 0x6e, 0x42, 0x75, 0x79, 0x51, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x4d, 0x61, 0x78, 0x42, 0x75, 0x79, 0x51, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x4d, 0x61, 0x78, 0x42, 0x75, 0x79, 0x51, 0x74, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x4d, 0x69, 0x6e, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x51, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x4d, 0x69, 0x6e, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x51, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x26, 0x0a, 0x0e, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x44, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x59, 0x53, 0x5a, 0x53, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x59, 0x53, 0x5a, 0x53, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x5a, 0x53, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x5a, 0x53, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x5a, 0x53, 0x43, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x72, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x5a, 0x53, 0x43, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x69, 0x7a, 0x65, 0x53, 0x74, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x69, 0x7a, 0x65, 0x53, 0x74, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x59, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x61, 0x74, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x59, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x51, 0x74, 0x79, 0x44, 0x65, 0x73, 0x63, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x51, 0x74, 0x79, 0x44, 0x65, 0x73, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x59, 0x53, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x59, 0x53, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0xe0, 0x01, 0x0a, 0x11, 0x47, 0x5a, 0x50, 0x72, 0x65, 0x73, 0x61, 0x6c, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x53, 0x65, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x50, 0x72, 0x65, 0x73, 0x61, 0x6c, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x50, 0x72, 0x65, 0x73, 0x61, 0x6c, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0xc4, 0x02, 0x0a, 0x11, 0x47, 0x5a, 0x50, 0x72, 0x65, 0x73, 0x61, 0x6c, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x51, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x51, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0xf6, 0x01, 0x0a, 0x11, 0x47, 0x5a, 0x50, 0x72, 0x65, 0x73, 0x61, 0x6c, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0x61, 0x0a, 0x19, 0x47, 0x5a, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x65, 0x70, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x53, 0x74, 0x65, 0x70, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x51, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x51, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0xe6, 0x09, 0x0a, 0x18, 0x47, 0x5a, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x53, 0x65, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6c, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x53, 0x65, 0x6c, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x57, 0x52, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x57, 0x52, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x65, 0x73, 0x61, 0x6c, 0x65, 0x51, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x50, 0x72, 0x65, 0x73, 0x61, 0x6c, 0x65, 0x51, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x4d, 0x69, 0x6e, 0x42, 0x75, 0x79, 0x51, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x4d, 0x69, 0x6e, 0x42, 0x75, 0x79, 0x51, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x4d, 0x61, 0x78, 0x42, 0x75, 0x79, 0x51, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x4d, 0x61, 0x78, 0x42, 0x75, 0x79, 0x51, 0x74, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x4d, 0x69, 0x6e, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x51, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x4d, 0x69, 0x6e, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x51, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x26, 0x0a, 0x0e, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x44, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x44, 0x12, 0x5d, 0x0a, 0x1a, 0x47, 0x5a, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x5a, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x1a, 0x47, 0x5a, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x59, 0x53, 0x5a, 0x53, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x59, 0x53, 0x5a, 0x53, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x5a, 0x53, 0x53, 0x68, 0x61, 0x70, 0x65, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x5a, 0x53, 0x53, 0x68, 0x61, 0x70, 0x65, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x5a, 0x53, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x72, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x5a, 0x53, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x5a, 0x53, 0x43, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x5a, 0x53, 0x43, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x5a, 0x53, 0x43, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x72, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x5a, 0x53, 0x43, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x5a, 0x53, 0x53, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x72, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x5a, 0x53, 0x53, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x5a, 0x53, 0x50, 0x6f, 0x6c, 0x69, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x5a, 0x53, 0x50, 0x6f, 0x6c, 0x69, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x72, 0x12, 0x34, 0x0a, 0x15, 0x5a, 0x53, 0x46, 0x6c, 0x75, 0x6f, 0x72, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x72, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x5a, 0x53, 0x46, 0x6c, 0x75, 0x6f, 0x72, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x69, 0x7a, 0x65, 0x53, 0x74, 0x72, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x69, 0x7a, 0x65, 0x53, 0x74, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x59, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x61, 0x74, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x59, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x51, 0x74, 0x79, 0x44, 0x65, 0x73, 0x63, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x51, 0x74, 0x79, 0x44, 0x65, 0x73, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x59, 0x53, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x59, 0x53, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0xe7, 0x01, 0x0a, 0x18, 0x47, 0x5a, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x53, 0x65, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x50, 0x72, 0x65, 0x73, 0x61, 0x6c, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x50, 0x72, 0x65, 0x73, 0x61, 0x6c, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0xcb, 0x02, 0x0a, 0x18, 0x47, 0x5a, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x51, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x51, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0xfd, 0x01, 0x0a, 0x18, 0x47, 0x5a, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0x96, 0x01, 0x0a, 0x11, 0x42, 0x53, 0x57, 0x4d, 0x53, 0x52, 0x65, 0x63, 0x6b, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0xca, 0x01, 0x0a, 0x11, 0x42, 0x53, 0x57, 0x4d, 0x53, 0x52, 0x65, 0x63, 0x6b, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0xa7, 0x01, 0x0a, 0x0b, 0x57, 0x52, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x76, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x22, 0x90, 0x01, 0x0a, 0x0e, 0x44, 0x47, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x44, 0x47, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x44, 0x47, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x44, 0x47, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x44, 0x47, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0xf0, 0x0b, 0x0a, 0x0c, 0x48, 0x64, 0x57, 0x52, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x6c, 0x6c, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x4c, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x02, 0x28, 0x09, 0x52, 0x09, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x53, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x26, 0x0a, 0x0e, 0x57, 0x52, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x57, 0x52, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x07, 0x20, 0x02, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x49, 0x73, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x63, 0x63, 0x49, 0x44, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x63, 0x63, 0x49, 0x44, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x51, 0x74, 0x79, 0x18, 0x0a, 0x20, 0x02, 0x28, 0x04, 0x52, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x51, 0x74, 0x79, 0x12, 0x28, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x0f, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x57, 0x52, 0x50, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x57, 0x52, 0x50, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x46, 0x69, 0x78, 0x65, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x46, 0x69, 0x78, 0x65, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x33, 0x0a, 0x0c, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x57, 0x52, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x76, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x76, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x54, 0x69, 0x6d, 0x65, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x54, 0x69, 0x6d, 0x65, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x46, 0x69, 0x72, 0x73, 0x74, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x13, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x46, 0x69, 0x72, 0x73, 0x74, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x34, 0x0a, 0x15, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x44, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x72, 0x63, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x72, 0x63, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x18, 0x19, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x53, 0x65, 0x6c, 0x6c, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x53, 0x65, 0x6c, 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x50, 0x72, 0x69, 0x63, 0x65, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x50, 0x72, 0x69, 0x63, 0x65, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x6e, 0x42, 0x61, 0x72, 0x67, 0x61, 0x69, 0x6e, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x43, 0x61, 0x6e, 0x42, 0x61, 0x72, 0x67, 0x61, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x31, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x31, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x32, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x18, 0x20, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x61, 0x6e, 0x50, 0x61, 0x72, 0x74, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x43, 0x61, 0x6e, 0x50, 0x61, 0x72, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x63, 0x63, 0x49, 0x44, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x22, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x63, 0x63, 0x49, 0x44, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x48, 0x61, 0x73, 0x57, 0x72, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x48, 0x61, 0x73, 0x57, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x57, 0x52, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x57, 0x52, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x36, 0x0a, 0x0c, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x26, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x47, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x0c, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x4d, 0x69, 0x6e, 0x51, 0x74, 0x79, 0x18, 0x27, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x44, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x4d, 0x69, 0x6e, 0x51, 0x74, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x28, 0x0a, 0x0f, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x41, 0x6c, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x41, 0x6c, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x22, 0xad, 0x02, 0x0a, 0x0c, 0x48, 0x64, 0x57, 0x52, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x51, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x51, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0x75, 0x0a, 0x0d, 0x57, 0x52, 0x4f, 0x75, 0x74, 0x49, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x4c, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x53, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x51, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x51, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x75, 0x74, 0x51, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x4f, 0x75, 0x74, 0x51, 0x74, 0x79, 0x22, 0xa3, 0x05, 0x0a, 0x0d, 0x57, 0x52, 0x4f, 0x75, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x57, 0x52, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x57, 0x52, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x41, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x41, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x41, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x69, 0x74, 0x79, 0x49, 0x44, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x43, 0x69, 0x74, 0x79, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x2c, 0x0a, 0x11, 0x41, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x41, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x12, 0x39, 0x0a, 0x0e, 0x57, 0x52, 0x4f, 0x75, 0x74, 0x49, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x57, 0x52, 0x4f, 0x75, 0x74, 0x49, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x0e, 0x57, 0x52, 0x4f, 0x75, 0x74, 0x49, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x94, 0x01, 0x0a, 0x0d, 0x57, 0x52, 0x4f, 0x75, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x49, 0x44, 0x22, 0xcb, 0x09, 0x0a, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x72, 0x63, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x72, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4d, 0x61, 0x78, 0x53, 0x75, 0x62, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4d, 0x61, 0x78, 0x53, 0x75, 0x62, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x51, 0x74, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x51, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x53, 0x65, 0x6c, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x53, 0x65, 0x6c, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x75, 0x72, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x43, 0x75, 0x72, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x70, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x53, 0x70, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x53, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x54, 0x69, 0x6d, 0x65, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x54, 0x69, 0x6d, 0x65, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x44, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x49, 0x44, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x50, 0x72, 0x65, 0x6d, 0x69, 0x75, 0x6d, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x50, 0x72, 0x65, 0x6d, 0x69, 0x75, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x6f, 0x75, 0x70, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x18, 0x20, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x43, 0x6f, 0x75, 0x70, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x64, 0x51, 0x74, 0x79, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x55, 0x73, 0x65, 0x64, 0x51, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x44, 0x18, 0x23, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x25, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9f, 0x01, 0x0a, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xc7, 0x02, 0x0a, 0x0e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x6c, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x4f, 0x6c, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x72, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x72, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x22, 0xaf, 0x01, 0x0a, 0x0e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x63, 0x68, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x45, 0x78, 0x63, 0x68, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x8d, 0x03, 0x0a, 0x0e, 0x48, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x72, 0x61, 0x64, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x72, 0x61, 0x64, 0x65, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x53, 0x65, 0x6c, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x53, 0x65, 0x6c, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x72, 0x63, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x72, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x22, 0xa5, 0x01, 0x0a, 0x0e, 0x48, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x93, 0x03, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x10, 0x0a, 0x03, 0x51, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x51, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x72, 0x61, 0x6e, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x42, 0x72, 0x61, 0x6e, 0x64, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x61, 0x6b, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x54, 0x61, 0x6b, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x4c, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x53, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x26, 0x0a, 0x0e, 0x57, 0x52, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x57, 0x52, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x22, 0x9a, 0x05, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x58, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x58, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x50, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x32, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x50, 0x32, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x58, 0x51, 0x74, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x58, 0x51, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x51, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x50, 0x51, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x32, 0x51, 0x74, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x50, 0x32, 0x51, 0x74, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x51, 0x74, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x51, 0x74, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x72, 0x63, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x72, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x12, 0x49, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x13, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x61, 0x6b, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x54, 0x61, 0x6b, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x82, 0x02, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x12, 0x4b, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x14, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xd3, 0x01, 0x0a, 0x10, 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x72, 0x61, 0x64, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x72, 0x61, 0x64, 0x65, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0xb1, 0x01, 0x0a, 0x10, 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x72, 0x61, 0x64, 0x65, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x72, 0x61, 0x64, 0x65, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0xbf, 0x01, 0x0a, 0x14, 0x48, 0x6f, 0x6c, 0x64, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0xd3, 0x01, 0x0a, 0x14, 0x48, 0x6f, 0x6c, 0x64, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0xb3, 0x02, 0x0a, 0x12, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x53, 0x65, 0x6c, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x53, 0x65, 0x6c, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x4c, 0x6f, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x4c, 0x6f, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x22, 0xe5, 0x01, 0x0a, 0x12, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x22, 0xdf, 0x05, 0x0a, 0x10, 0x48, 0x64, 0x57, 0x52, 0x44, 0x65, 0x61, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x34, 0x0a, 0x15, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x57, 0x52, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x57, 0x52, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x51, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x51, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x72, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x72, 0x63, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x53, 0x65, 0x6c, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x53, 0x65, 0x6c, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x6c, 0x6c, 0x49, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x4c, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x53, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x26, 0x0a, 0x0e, 0x57, 0x52, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x57, 0x52, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x48, 0x61, 0x73, 0x57, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x48, 0x61, 0x73, 0x57, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x49, 0x73, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x44, 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x44, 0x22, 0xed, 0x02, 0x0a, 0x10, 0x48, 0x64, 0x57, 0x52, 0x44, 0x65, 0x61, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x34, 0x0a, 0x15, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x57, 0x52, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0xb9, 0x02, 0x0a, 0x14, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x72, 0x61, 0x64, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x72, 0x61, 0x64, 0x65, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x53, 0x65, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x53, 0x65, 0x6c, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0xeb, 0x01, 0x0a, 0x14, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x72, 0x61, 0x64, 0x65, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x72, 0x61, 0x64, 0x65, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0xb7, 0x02, 0x0a, 0x12, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x72, 0x61, 0x64, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x72, 0x61, 0x64, 0x65, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x53, 0x65, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x53, 0x65, 0x6c, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0xe9, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x72, 0x61, 0x64, 0x65, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x72, 0x61, 0x64, 0x65, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0x54, 0x0a, 0x16, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x6f, 0x6c, 0x64, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x72, 0x61, 0x64, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x72, 0x61, 0x64, 0x65, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x51, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x51, 0x74, 0x79, 0x22, 0x42, 0x0a, 0x08, 0x50, 0x61, 0x79, 0x41, 0x74, 0x74, 0x72, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x69, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x46, 0x69, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, 0x22, 0xa0, 0x02, 0x0a, 0x1b, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x53, 0x65, 0x6c, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x53, 0x65, 0x6c, 0x6c, 0x12, 0x3c, 0x0a, 0x0b, 0x48, 0x6f, 0x6c, 0x64, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x6f, 0x6c, 0x64, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0b, 0x48, 0x6f, 0x6c, 0x64, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0xd8, 0x01, 0x0a, 0x1b, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0x84, 0x04, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x50, 0x61, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x50, 0x61, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x61, 0x79, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x50, 0x61, 0x79, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x07, 0x50, 0x61, 0x79, 0x41, 0x74, 0x74, 0x72, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x79, 0x41, 0x74, 0x74, 0x72, 0x73, 0x52, 0x07, 0x50, 0x61, 0x79, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x80, 0x02, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x28, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x22, 0xe1, 0x03, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x57, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x57, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x47, 0x55, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x47, 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x70, 0x70, 0x49, 0x44, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x70, 0x70, 0x49, 0x44, 0x22, 0xe3, 0x04, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0a, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x48, 0x61, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x50, 0x77, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x48, 0x61, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x50, 0x77, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x77, 0x64, 0x57, 0x72, 0x6f, 0x6e, 0x67, 0x43, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x50, 0x77, 0x64, 0x57, 0x72, 0x6f, 0x6e, 0x67, 0x43, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x50, 0x77, 0x64, 0x57, 0x72, 0x6f, 0x6e, 0x67, 0x4c, 0x6f, 0x63, 0x6b, 0x43, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x50, 0x77, 0x64, 0x57, 0x72, 0x6f, 0x6e, 0x67, 0x4c, 0x6f, 0x63, 0x6b, 0x43, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x6f, 0x75, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x6f, 0x75, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x22, 0x71, 0x0a, 0x0e, 0x43, 0x75, 0x73, 0x74, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x74, 0x66, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x44, 0x22, 0x9c, 0x01, 0x0a, 0x09, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x22, 0x68, 0x0a, 0x09, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, } var ( file_mtp2_proto_rawDescOnce sync.Once file_mtp2_proto_rawDescData = file_mtp2_proto_rawDesc ) func file_mtp2_proto_rawDescGZIP() []byte { file_mtp2_proto_rawDescOnce.Do(func() { file_mtp2_proto_rawDescData = protoimpl.X.CompressGZIP(file_mtp2_proto_rawDescData) }) return file_mtp2_proto_rawDescData } var file_mtp2_proto_msgTypes = make([]protoimpl.MessageInfo, 123) var file_mtp2_proto_goTypes = []interface{}{ (*MessageHead)(nil), // 0: pb.MessageHead (*NotifyHead)(nil), // 1: pb.NotifyHead (*MoneyChangedNtf)(nil), // 2: pb.MoneyChangedNtf (*ArrayCloseInfo)(nil), // 3: pb.ArrayCloseInfo (*OrderDealedNtf)(nil), // 4: pb.OrderDealedNtf (*MarketStatusChangeNtf)(nil), // 5: pb.MarketStatusChangeNtf (*ListingOrderChangeNtf)(nil), // 6: pb.ListingOrderChangeNtf (*FileDetail)(nil), // 7: pb.FileDetail (*ModifyPwdReq)(nil), // 8: pb.ModifyPwdReq (*ModifyPwdRsp)(nil), // 9: pb.ModifyPwdRsp (*UserReceiveInfoReq)(nil), // 10: pb.UserReceiveInfoReq (*UserReceiveInfoRsp)(nil), // 11: pb.UserReceiveInfoRsp (*DelUserReceiveInfoReq)(nil), // 12: pb.DelUserReceiveInfoReq (*DelUserReceiveInfoRsp)(nil), // 13: pb.DelUserReceiveInfoRsp (*UserReceiveIsDefaultReq)(nil), // 14: pb.UserReceiveIsDefaultReq (*UserReceiveIsDefaultRsp)(nil), // 15: pb.UserReceiveIsDefaultRsp (*UserReceiptInfoReq)(nil), // 16: pb.UserReceiptInfoReq (*UserReceiptInfoRsp)(nil), // 17: pb.UserReceiptInfoRsp (*DelUserReceiptInfoReq)(nil), // 18: pb.DelUserReceiptInfoReq (*DelUserReceiptInfoRsp)(nil), // 19: pb.DelUserReceiptInfoRsp (*T2BBankSignReq)(nil), // 20: pb.t2bBankSignReq (*T2BBankSignRsp)(nil), // 21: pb.t2bBankSignRsp (*T2BBankCancelSignReq)(nil), // 22: pb.t2bBankCancelSignReq (*T2BBankCancelSignRsp)(nil), // 23: pb.t2bBankCancelSignRsp (*T2BBankWithdrawReq)(nil), // 24: pb.t2bBankWithdrawReq (*T2BBankWithdrawRsp)(nil), // 25: pb.t2bBankWithdrawRsp (*T2BBankDepositReq)(nil), // 26: pb.t2bBankDepositReq (*T2BBankDepositRsp)(nil), // 27: pb.t2bBankDepositRsp (*WRCommon)(nil), // 28: pb.WRCommon (*WarehouseApplyReq)(nil), // 29: pb.WarehouseApplyReq (*WarehouseApplyRsp)(nil), // 30: pb.WarehouseApplyRsp (*PerformanceContractedApplyReq)(nil), // 31: pb.PerformanceContractedApplyReq (*PerformanceContractedApplyRsp)(nil), // 32: pb.PerformanceContractedApplyRsp (*PerformanceDelayApplyReq)(nil), // 33: pb.PerformanceDelayApplyReq (*PerformanceDelayApplyRsp)(nil), // 34: pb.PerformanceDelayApplyRsp (*PerformanceManualConfirmReq)(nil), // 35: pb.PerformanceManualConfirmReq (*PerformanceManualConfirmRsp)(nil), // 36: pb.PerformanceManualConfirmRsp (*PerformanceModifyContactReq)(nil), // 37: pb.PerformanceModifyContactReq (*PerformanceModifyContactRsp)(nil), // 38: pb.PerformanceModifyContactRsp (*AddZSGoodsRsp)(nil), // 39: pb.AddZSGoodsRsp (*GoodsFavoriteOperateReq)(nil), // 40: pb.GoodsFavoriteOperateReq (*GoodsFavoriteOperateRsp)(nil), // 41: pb.GoodsFavoriteOperateRsp (*GZBuyOrderDetailExInfo)(nil), // 42: pb.GZBuyOrderDetailExInfo (*ZSBuyOrderListingReq)(nil), // 43: pb.ZSBuyOrderListingReq (*ZSBuyOrderListingRsp)(nil), // 44: pb.ZSBuyOrderListingRsp (*ZSSellOrderListingReq)(nil), // 45: pb.ZSSellOrderListingReq (*ZSSellOrderListingRsp)(nil), // 46: pb.ZSSellOrderListingRsp (*ZSBuyOrderDestingReq)(nil), // 47: pb.ZSBuyOrderDestingReq (*ZSBuyOrderDestingRsp)(nil), // 48: pb.ZSBuyOrderDestingRsp (*ZSSellOrderDestingApplyReq)(nil), // 49: pb.ZSSellOrderDestingApplyReq (*ZSSellOrderDestingApplyRsp)(nil), // 50: pb.ZSSellOrderDestingApplyRsp (*ZSSellOrderDestingApplyOperateReq)(nil), // 51: pb.ZSSellOrderDestingApplyOperateReq (*ZSSellOrderDestingApplyOperateRsp)(nil), // 52: pb.ZSSellOrderDestingApplyOperateRsp (*ZSBuyOrderDestingNegPriceReq)(nil), // 53: pb.ZSBuyOrderDestingNegPriceReq (*ZSBuyOrderDestingNegPriceRsp)(nil), // 54: pb.ZSBuyOrderDestingNegPriceRsp (*ZSBuyOrderDestingNegPriceOperateReq)(nil), // 55: pb.ZSBuyOrderDestingNegPriceOperateReq (*ZSBuyOrderDestingNegPriceOperateRsp)(nil), // 56: pb.ZSBuyOrderDestingNegPriceOperateRsp (*WRListingCancelOrderReq)(nil), // 57: pb.WRListingCancelOrderReq (*WRListingCancelOrderRsp)(nil), // 58: pb.WRListingCancelOrderRsp (*ReceiptZSOutApplyReq)(nil), // 59: pb.ReceiptZSOutApplyReq (*ReceiptZSOutApplyRsp)(nil), // 60: pb.ReceiptZSOutApplyRsp (*DepositConfigInfo)(nil), // 61: pb.DepositConfigInfo (*SpotPresaleListingOrderReq)(nil), // 62: pb.SpotPresaleListingOrderReq (*SpotPresaleListingOrderRsp)(nil), // 63: pb.SpotPresaleListingOrderRsp (*THJPurchaseTradeNtf)(nil), // 64: pb.THJPurchaseTradeNtf (*PurchaseTransferNtf)(nil), // 65: pb.PurchaseTransferNtf (*WRTradeDealedNtf)(nil), // 66: pb.WRTradeDealedNtf (*CJJCMemberOperateReq)(nil), // 67: pb.CJJCMemberOperateReq (*CJJCMemberOperateRsp)(nil), // 68: pb.CJJCMemberOperateRsp (*BSFWMemberOperateReq)(nil), // 69: pb.BSFWMemberOperateReq (*BSFWMemberOperateRsp)(nil), // 70: pb.BSFWMemberOperateRsp (*AccountFundInfoReq)(nil), // 71: pb.AccountFundInfoReq (*AccountFundInfoRsp)(nil), // 72: pb.AccountFundInfoRsp (*GZPresaleApplyReq)(nil), // 73: pb.GZPresaleApplyReq (*GZPresaleApplyRsp)(nil), // 74: pb.GZPresaleApplyRsp (*GZPresaleOrderReq)(nil), // 75: pb.GZPresaleOrderReq (*GZPresaleOrderRsp)(nil), // 76: pb.GZPresaleOrderRsp (*GZCenterPurchasePriceList)(nil), // 77: pb.GZCenterPurchasePriceList (*GZCenterPurchaseApplyReq)(nil), // 78: pb.GZCenterPurchaseApplyReq (*GZCenterPurchaseApplyRsp)(nil), // 79: pb.GZCenterPurchaseApplyRsp (*GZCenterPurchaseOrderReq)(nil), // 80: pb.GZCenterPurchaseOrderReq (*GZCenterPurchaseOrderRsp)(nil), // 81: pb.GZCenterPurchaseOrderRsp (*BSWMSReckonPayReq)(nil), // 82: pb.BSWMSReckonPayReq (*BSWMSReckonPayRsp)(nil), // 83: pb.BSWMSReckonPayRsp (*WRGoodsInfo)(nil), // 84: pb.WRGoodsInfo (*DGFactoryItems)(nil), // 85: pb.DGFactoryItems (*HdWROrderReq)(nil), // 86: pb.HdWROrderReq (*HdWROrderRsp)(nil), // 87: pb.HdWROrderRsp (*WROutInDetail)(nil), // 88: pb.WROutInDetail (*WROutApplyReq)(nil), // 89: pb.WROutApplyReq (*WROutApplyRsp)(nil), // 90: pb.WROutApplyRsp (*OrderReq)(nil), // 91: pb.OrderReq (*OrderRsp)(nil), // 92: pb.OrderRsp (*CancelOrderReq)(nil), // 93: pb.CancelOrderReq (*CancelOrderRsp)(nil), // 94: pb.CancelOrderRsp (*HolderCloseReq)(nil), // 95: pb.HolderCloseReq (*HolderCloseRsp)(nil), // 96: pb.HolderCloseRsp (*DeliveryOrderDetail)(nil), // 97: pb.DeliveryOrderDetail (*DeliveryOrderReq)(nil), // 98: pb.DeliveryOrderReq (*DeliveryOrderRsp)(nil), // 99: pb.DeliveryOrderRsp (*MakeUpDepositReq)(nil), // 100: pb.MakeUpDepositReq (*MakeUpDepositRsp)(nil), // 101: pb.MakeUpDepositRsp (*HoldAppendDepositReq)(nil), // 102: pb.HoldAppendDepositReq (*HoldAppendDepositRsp)(nil), // 103: pb.HoldAppendDepositRsp (*OfflineDeliveryReq)(nil), // 104: pb.OfflineDeliveryReq (*OfflineDeliveryRsp)(nil), // 105: pb.OfflineDeliveryRsp (*HdWRDealOrderReq)(nil), // 106: pb.HdWRDealOrderReq (*HdWRDealOrderRsp)(nil), // 107: pb.HdWRDealOrderRsp (*SupplementDepositReq)(nil), // 108: pb.SupplementDepositReq (*SupplementDepositRsp)(nil), // 109: pb.SupplementDepositRsp (*RefundedDepositReq)(nil), // 110: pb.RefundedDepositReq (*RefundedDepositRsp)(nil), // 111: pb.RefundedDepositRsp (*MarketOrderHoldDetails)(nil), // 112: pb.MarketOrderHoldDetails (*PayAttrs)(nil), // 113: pb.PayAttrs (*MarketOrderDeliveryApplyReq)(nil), // 114: pb.MarketOrderDeliveryApplyReq (*MarketOrderDeliveryApplyRsp)(nil), // 115: pb.MarketOrderDeliveryApplyRsp (*DeliveryClientOperatorReq)(nil), // 116: pb.DeliveryClientOperatorReq (*DeliveryClientOperatorRsp)(nil), // 117: pb.DeliveryClientOperatorRsp (*LoginReq)(nil), // 118: pb.LoginReq (*LoginRsp)(nil), // 119: pb.LoginRsp (*CustOfflineNtf)(nil), // 120: pb.CustOfflineNtf (*LogoutReq)(nil), // 121: pb.LogoutReq (*LogoutRsp)(nil), // 122: pb.LogoutRsp } var file_mtp2_proto_depIdxs = []int32{ 0, // 0: pb.MoneyChangedNtf.Header:type_name -> pb.MessageHead 1, // 1: pb.MoneyChangedNtf.NtfHeader:type_name -> pb.NotifyHead 0, // 2: pb.OrderDealedNtf.Header:type_name -> pb.MessageHead 1, // 3: pb.OrderDealedNtf.NtfHeader:type_name -> pb.NotifyHead 3, // 4: pb.OrderDealedNtf.CloseInfos:type_name -> pb.ArrayCloseInfo 0, // 5: pb.MarketStatusChangeNtf.Header:type_name -> pb.MessageHead 1, // 6: pb.MarketStatusChangeNtf.NtfHeader:type_name -> pb.NotifyHead 0, // 7: pb.ListingOrderChangeNtf.Header:type_name -> pb.MessageHead 1, // 8: pb.ListingOrderChangeNtf.NtfHeader:type_name -> pb.NotifyHead 0, // 9: pb.ModifyPwdReq.Header:type_name -> pb.MessageHead 0, // 10: pb.ModifyPwdRsp.Header:type_name -> pb.MessageHead 0, // 11: pb.UserReceiveInfoReq.Header:type_name -> pb.MessageHead 0, // 12: pb.UserReceiveInfoRsp.Header:type_name -> pb.MessageHead 0, // 13: pb.DelUserReceiveInfoReq.Header:type_name -> pb.MessageHead 0, // 14: pb.DelUserReceiveInfoRsp.Header:type_name -> pb.MessageHead 0, // 15: pb.UserReceiveIsDefaultReq.Header:type_name -> pb.MessageHead 0, // 16: pb.UserReceiveIsDefaultRsp.Header:type_name -> pb.MessageHead 0, // 17: pb.UserReceiptInfoReq.Header:type_name -> pb.MessageHead 0, // 18: pb.UserReceiptInfoRsp.Header:type_name -> pb.MessageHead 0, // 19: pb.DelUserReceiptInfoReq.Header:type_name -> pb.MessageHead 0, // 20: pb.DelUserReceiptInfoRsp.Header:type_name -> pb.MessageHead 0, // 21: pb.t2bBankSignReq.Header:type_name -> pb.MessageHead 0, // 22: pb.t2bBankSignRsp.Header:type_name -> pb.MessageHead 0, // 23: pb.t2bBankCancelSignReq.Header:type_name -> pb.MessageHead 0, // 24: pb.t2bBankCancelSignRsp.Header:type_name -> pb.MessageHead 0, // 25: pb.t2bBankWithdrawReq.Header:type_name -> pb.MessageHead 0, // 26: pb.t2bBankWithdrawRsp.Header:type_name -> pb.MessageHead 0, // 27: pb.t2bBankDepositReq.Header:type_name -> pb.MessageHead 0, // 28: pb.t2bBankDepositRsp.Header:type_name -> pb.MessageHead 0, // 29: pb.WarehouseApplyReq.Header:type_name -> pb.MessageHead 0, // 30: pb.WarehouseApplyRsp.Header:type_name -> pb.MessageHead 0, // 31: pb.PerformanceContractedApplyReq.Header:type_name -> pb.MessageHead 0, // 32: pb.PerformanceContractedApplyRsp.Header:type_name -> pb.MessageHead 0, // 33: pb.PerformanceDelayApplyReq.Header:type_name -> pb.MessageHead 0, // 34: pb.PerformanceDelayApplyRsp.Header:type_name -> pb.MessageHead 0, // 35: pb.PerformanceManualConfirmReq.Header:type_name -> pb.MessageHead 0, // 36: pb.PerformanceManualConfirmRsp.Header:type_name -> pb.MessageHead 0, // 37: pb.PerformanceModifyContactReq.Header:type_name -> pb.MessageHead 0, // 38: pb.PerformanceModifyContactRsp.Header:type_name -> pb.MessageHead 0, // 39: pb.AddZSGoodsRsp.Header:type_name -> pb.MessageHead 0, // 40: pb.GoodsFavoriteOperateReq.Header:type_name -> pb.MessageHead 0, // 41: pb.GoodsFavoriteOperateRsp.Header:type_name -> pb.MessageHead 0, // 42: pb.ZSBuyOrderListingReq.Header:type_name -> pb.MessageHead 42, // 43: pb.ZSBuyOrderListingReq.GZ_BuyOrderDetailExInfo:type_name -> pb.GZBuyOrderDetailExInfo 0, // 44: pb.ZSBuyOrderListingRsp.Header:type_name -> pb.MessageHead 0, // 45: pb.ZSSellOrderListingReq.Header:type_name -> pb.MessageHead 0, // 46: pb.ZSSellOrderListingRsp.Header:type_name -> pb.MessageHead 0, // 47: pb.ZSBuyOrderDestingReq.Header:type_name -> pb.MessageHead 0, // 48: pb.ZSBuyOrderDestingRsp.Header:type_name -> pb.MessageHead 0, // 49: pb.ZSSellOrderDestingApplyReq.Header:type_name -> pb.MessageHead 0, // 50: pb.ZSSellOrderDestingApplyRsp.Header:type_name -> pb.MessageHead 0, // 51: pb.ZSSellOrderDestingApplyOperateReq.Header:type_name -> pb.MessageHead 0, // 52: pb.ZSSellOrderDestingApplyOperateRsp.Header:type_name -> pb.MessageHead 0, // 53: pb.ZSBuyOrderDestingNegPriceReq.Header:type_name -> pb.MessageHead 0, // 54: pb.ZSBuyOrderDestingNegPriceRsp.Header:type_name -> pb.MessageHead 0, // 55: pb.ZSBuyOrderDestingNegPriceOperateReq.Header:type_name -> pb.MessageHead 0, // 56: pb.ZSBuyOrderDestingNegPriceOperateRsp.Header:type_name -> pb.MessageHead 0, // 57: pb.WRListingCancelOrderReq.Header:type_name -> pb.MessageHead 0, // 58: pb.WRListingCancelOrderRsp.Header:type_name -> pb.MessageHead 0, // 59: pb.ReceiptZSOutApplyReq.Header:type_name -> pb.MessageHead 28, // 60: pb.ReceiptZSOutApplyReq.Common:type_name -> pb.WRCommon 0, // 61: pb.ReceiptZSOutApplyRsp.Header:type_name -> pb.MessageHead 28, // 62: pb.ReceiptZSOutApplyRsp.Common:type_name -> pb.WRCommon 0, // 63: pb.SpotPresaleListingOrderReq.Header:type_name -> pb.MessageHead 61, // 64: pb.SpotPresaleListingOrderReq.DepositConfigs:type_name -> pb.DepositConfigInfo 0, // 65: pb.SpotPresaleListingOrderRsp.Header:type_name -> pb.MessageHead 0, // 66: pb.THJPurchaseTradeNtf.Header:type_name -> pb.MessageHead 0, // 67: pb.PurchaseTransferNtf.Header:type_name -> pb.MessageHead 0, // 68: pb.WRTradeDealedNtf.Header:type_name -> pb.MessageHead 1, // 69: pb.WRTradeDealedNtf.NtfHeader:type_name -> pb.NotifyHead 0, // 70: pb.CJJCMemberOperateReq.Header:type_name -> pb.MessageHead 0, // 71: pb.CJJCMemberOperateRsp.Header:type_name -> pb.MessageHead 0, // 72: pb.BSFWMemberOperateReq.Header:type_name -> pb.MessageHead 7, // 73: pb.BSFWMemberOperateReq.FileDetails:type_name -> pb.FileDetail 0, // 74: pb.BSFWMemberOperateRsp.Header:type_name -> pb.MessageHead 0, // 75: pb.AccountFundInfoReq.Header:type_name -> pb.MessageHead 0, // 76: pb.AccountFundInfoRsp.Header:type_name -> pb.MessageHead 0, // 77: pb.GZPresaleApplyReq.Header:type_name -> pb.MessageHead 0, // 78: pb.GZPresaleApplyRsp.Header:type_name -> pb.MessageHead 0, // 79: pb.GZPresaleOrderReq.Header:type_name -> pb.MessageHead 0, // 80: pb.GZPresaleOrderRsp.Header:type_name -> pb.MessageHead 0, // 81: pb.GZCenterPurchaseApplyReq.Header:type_name -> pb.MessageHead 77, // 82: pb.GZCenterPurchaseApplyReq.GZCenterPurchasePriceLists:type_name -> pb.GZCenterPurchasePriceList 0, // 83: pb.GZCenterPurchaseApplyRsp.Header:type_name -> pb.MessageHead 0, // 84: pb.GZCenterPurchaseOrderReq.Header:type_name -> pb.MessageHead 0, // 85: pb.GZCenterPurchaseOrderRsp.Header:type_name -> pb.MessageHead 0, // 86: pb.BSWMSReckonPayReq.Header:type_name -> pb.MessageHead 0, // 87: pb.BSWMSReckonPayRsp.Header:type_name -> pb.MessageHead 0, // 88: pb.HdWROrderReq.Header:type_name -> pb.MessageHead 84, // 89: pb.HdWROrderReq.WRTradeGoods:type_name -> pb.WRGoodsInfo 85, // 90: pb.HdWROrderReq.FactoryItems:type_name -> pb.DGFactoryItems 0, // 91: pb.HdWROrderRsp.Header:type_name -> pb.MessageHead 0, // 92: pb.WROutApplyReq.Header:type_name -> pb.MessageHead 88, // 93: pb.WROutApplyReq.WROutInDetails:type_name -> pb.WROutInDetail 0, // 94: pb.WROutApplyRsp.Header:type_name -> pb.MessageHead 0, // 95: pb.OrderReq.Header:type_name -> pb.MessageHead 0, // 96: pb.OrderRsp.Header:type_name -> pb.MessageHead 0, // 97: pb.CancelOrderReq.Header:type_name -> pb.MessageHead 0, // 98: pb.CancelOrderRsp.Header:type_name -> pb.MessageHead 0, // 99: pb.HolderCloseReq.Header:type_name -> pb.MessageHead 0, // 100: pb.HolderCloseRsp.Header:type_name -> pb.MessageHead 0, // 101: pb.DeliveryOrderReq.Header:type_name -> pb.MessageHead 97, // 102: pb.DeliveryOrderReq.DeliveryOrderDetail:type_name -> pb.DeliveryOrderDetail 0, // 103: pb.DeliveryOrderRsp.Header:type_name -> pb.MessageHead 97, // 104: pb.DeliveryOrderRsp.DeliveryOrderDetails:type_name -> pb.DeliveryOrderDetail 0, // 105: pb.MakeUpDepositReq.Header:type_name -> pb.MessageHead 0, // 106: pb.MakeUpDepositRsp.Header:type_name -> pb.MessageHead 0, // 107: pb.HoldAppendDepositReq.Header:type_name -> pb.MessageHead 0, // 108: pb.HoldAppendDepositRsp.Header:type_name -> pb.MessageHead 0, // 109: pb.OfflineDeliveryReq.Header:type_name -> pb.MessageHead 0, // 110: pb.OfflineDeliveryRsp.Header:type_name -> pb.MessageHead 0, // 111: pb.HdWRDealOrderReq.Header:type_name -> pb.MessageHead 0, // 112: pb.HdWRDealOrderRsp.Header:type_name -> pb.MessageHead 0, // 113: pb.SupplementDepositReq.Header:type_name -> pb.MessageHead 0, // 114: pb.SupplementDepositRsp.Header:type_name -> pb.MessageHead 0, // 115: pb.RefundedDepositReq.Header:type_name -> pb.MessageHead 0, // 116: pb.RefundedDepositRsp.Header:type_name -> pb.MessageHead 0, // 117: pb.MarketOrderDeliveryApplyReq.Header:type_name -> pb.MessageHead 112, // 118: pb.MarketOrderDeliveryApplyReq.HoldDetails:type_name -> pb.MarketOrderHoldDetails 0, // 119: pb.MarketOrderDeliveryApplyRsp.Header:type_name -> pb.MessageHead 0, // 120: pb.DeliveryClientOperatorReq.Header:type_name -> pb.MessageHead 113, // 121: pb.DeliveryClientOperatorReq.PayAttr:type_name -> pb.PayAttrs 0, // 122: pb.DeliveryClientOperatorRsp.Header:type_name -> pb.MessageHead 0, // 123: pb.LoginReq.Header:type_name -> pb.MessageHead 0, // 124: pb.LoginRsp.Header:type_name -> pb.MessageHead 0, // 125: pb.CustOfflineNtf.Header:type_name -> pb.MessageHead 0, // 126: pb.LogoutReq.Header:type_name -> pb.MessageHead 0, // 127: pb.LogoutRsp.Header:type_name -> pb.MessageHead 128, // [128:128] is the sub-list for method output_type 128, // [128:128] is the sub-list for method input_type 128, // [128:128] is the sub-list for extension type_name 128, // [128:128] is the sub-list for extension extendee 0, // [0:128] is the sub-list for field type_name } func init() { file_mtp2_proto_init() } func file_mtp2_proto_init() { if File_mtp2_proto != nil { return } if !protoimpl.UnsafeEnabled { file_mtp2_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MessageHead); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NotifyHead); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MoneyChangedNtf); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ArrayCloseInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OrderDealedNtf); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MarketStatusChangeNtf); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListingOrderChangeNtf); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FileDetail); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ModifyPwdReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ModifyPwdRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserReceiveInfoReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserReceiveInfoRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DelUserReceiveInfoReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DelUserReceiveInfoRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserReceiveIsDefaultReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserReceiveIsDefaultRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserReceiptInfoReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserReceiptInfoRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DelUserReceiptInfoReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DelUserReceiptInfoRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*T2BBankSignReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*T2BBankSignRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*T2BBankCancelSignReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*T2BBankCancelSignRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*T2BBankWithdrawReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*T2BBankWithdrawRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*T2BBankDepositReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*T2BBankDepositRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WRCommon); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WarehouseApplyReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WarehouseApplyRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PerformanceContractedApplyReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PerformanceContractedApplyRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PerformanceDelayApplyReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PerformanceDelayApplyRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PerformanceManualConfirmReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PerformanceManualConfirmRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PerformanceModifyContactReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PerformanceModifyContactRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddZSGoodsRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GoodsFavoriteOperateReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GoodsFavoriteOperateRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GZBuyOrderDetailExInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ZSBuyOrderListingReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ZSBuyOrderListingRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ZSSellOrderListingReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ZSSellOrderListingRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ZSBuyOrderDestingReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ZSBuyOrderDestingRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ZSSellOrderDestingApplyReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ZSSellOrderDestingApplyRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ZSSellOrderDestingApplyOperateReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ZSSellOrderDestingApplyOperateRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ZSBuyOrderDestingNegPriceReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ZSBuyOrderDestingNegPriceRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ZSBuyOrderDestingNegPriceOperateReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ZSBuyOrderDestingNegPriceOperateRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WRListingCancelOrderReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WRListingCancelOrderRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReceiptZSOutApplyReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReceiptZSOutApplyRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DepositConfigInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SpotPresaleListingOrderReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SpotPresaleListingOrderRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*THJPurchaseTradeNtf); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PurchaseTransferNtf); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WRTradeDealedNtf); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CJJCMemberOperateReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CJJCMemberOperateRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BSFWMemberOperateReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BSFWMemberOperateRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountFundInfoReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountFundInfoRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GZPresaleApplyReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GZPresaleApplyRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GZPresaleOrderReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GZPresaleOrderRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GZCenterPurchasePriceList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GZCenterPurchaseApplyReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GZCenterPurchaseApplyRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GZCenterPurchaseOrderReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GZCenterPurchaseOrderRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BSWMSReckonPayReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BSWMSReckonPayRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WRGoodsInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DGFactoryItems); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HdWROrderReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HdWROrderRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WROutInDetail); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WROutApplyReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WROutApplyRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OrderReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OrderRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CancelOrderReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CancelOrderRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HolderCloseReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HolderCloseRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeliveryOrderDetail); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeliveryOrderReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeliveryOrderRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MakeUpDepositReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MakeUpDepositRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HoldAppendDepositReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HoldAppendDepositRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OfflineDeliveryReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OfflineDeliveryRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HdWRDealOrderReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HdWRDealOrderRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SupplementDepositReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SupplementDepositRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RefundedDepositReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RefundedDepositRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MarketOrderHoldDetails); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PayAttrs); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MarketOrderDeliveryApplyReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MarketOrderDeliveryApplyRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeliveryClientOperatorReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeliveryClientOperatorRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LoginReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LoginRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CustOfflineNtf); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LogoutReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LogoutRsp); 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{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_mtp2_proto_rawDesc, NumEnums: 0, NumMessages: 123, NumExtensions: 0, NumServices: 0, }, GoTypes: file_mtp2_proto_goTypes, DependencyIndexes: file_mtp2_proto_depIdxs, MessageInfos: file_mtp2_proto_msgTypes, }.Build() File_mtp2_proto = out.File file_mtp2_proto_rawDesc = nil file_mtp2_proto_goTypes = nil file_mtp2_proto_depIdxs = nil }