// 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 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[1] 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[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 ModifyPwdReq.ProtoReflect.Descriptor instead. func (*ModifyPwdReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{1} } 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[2] 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[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 ModifyPwdRsp.ProtoReflect.Descriptor instead. func (*ModifyPwdRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{2} } 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[3] 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[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 UserReceiveInfoReq.ProtoReflect.Descriptor instead. func (*UserReceiveInfoReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{3} } 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[4] 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[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 UserReceiveInfoRsp.ProtoReflect.Descriptor instead. func (*UserReceiveInfoRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{4} } 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[5] 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[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 DelUserReceiveInfoReq.ProtoReflect.Descriptor instead. func (*DelUserReceiveInfoReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{5} } 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[6] 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[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 DelUserReceiveInfoRsp.ProtoReflect.Descriptor instead. func (*DelUserReceiveInfoRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{6} } 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[7] 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[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 UserReceiveIsDefaultReq.ProtoReflect.Descriptor instead. func (*UserReceiveIsDefaultReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{7} } 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[8] 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[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 UserReceiveIsDefaultRsp.ProtoReflect.Descriptor instead. func (*UserReceiveIsDefaultRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{8} } 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"` // 身份证号码[发票类型:个人] } func (x *UserReceiptInfoReq) Reset() { *x = UserReceiptInfoReq{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[9] 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[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 UserReceiptInfoReq.ProtoReflect.Descriptor instead. func (*UserReceiptInfoReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{9} } 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 "" } // 新增修改用户发票信息请求响应 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[10] 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[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 UserReceiptInfoRsp.ProtoReflect.Descriptor instead. func (*UserReceiptInfoRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{10} } 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[11] 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[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 DelUserReceiptInfoReq.ProtoReflect.Descriptor instead. func (*DelUserReceiptInfoReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{11} } 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[12] 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[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 DelUserReceiptInfoRsp.ProtoReflect.Descriptor instead. func (*DelUserReceiptInfoRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{12} } 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[13] 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[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 T2BBankSignReq.ProtoReflect.Descriptor instead. func (*T2BBankSignReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{13} } 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[14] 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[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 T2BBankSignRsp.ProtoReflect.Descriptor instead. func (*T2BBankSignRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{14} } 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[15] 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[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 T2BBankCancelSignReq.ProtoReflect.Descriptor instead. func (*T2BBankCancelSignReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{15} } 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[16] 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[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 T2BBankCancelSignRsp.ProtoReflect.Descriptor instead. func (*T2BBankCancelSignRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{16} } 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[17] 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[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 T2BBankWithdrawReq.ProtoReflect.Descriptor instead. func (*T2BBankWithdrawReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{17} } 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[18] 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[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 T2BBankWithdrawRsp.ProtoReflect.Descriptor instead. func (*T2BBankWithdrawRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{18} } 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[19] 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[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 T2BBankDepositReq.ProtoReflect.Descriptor instead. func (*T2BBankDepositReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{19} } 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[20] 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[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 T2BBankDepositRsp.ProtoReflect.Descriptor instead. func (*T2BBankDepositRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{20} } 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[21] 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[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 WRCommon.ProtoReflect.Descriptor instead. func (*WRCommon) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{21} } 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[22] 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[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 WarehouseApplyReq.ProtoReflect.Descriptor instead. func (*WarehouseApplyReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{22} } 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[23] 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[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 WarehouseApplyRsp.ProtoReflect.Descriptor instead. func (*WarehouseApplyRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{23} } 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[24] 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[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 PerformanceContractedApplyReq.ProtoReflect.Descriptor instead. func (*PerformanceContractedApplyReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{24} } 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[25] 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[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 PerformanceContractedApplyRsp.ProtoReflect.Descriptor instead. func (*PerformanceContractedApplyRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{25} } 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[26] 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[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 PerformanceDelayApplyReq.ProtoReflect.Descriptor instead. func (*PerformanceDelayApplyReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{26} } 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[27] 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[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 PerformanceDelayApplyRsp.ProtoReflect.Descriptor instead. func (*PerformanceDelayApplyRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{27} } 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[28] 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[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 PerformanceManualConfirmReq.ProtoReflect.Descriptor instead. func (*PerformanceManualConfirmReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{28} } 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[29] 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[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 PerformanceManualConfirmRsp.ProtoReflect.Descriptor instead. func (*PerformanceManualConfirmRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{29} } 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[30] 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[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 PerformanceModifyContactReq.ProtoReflect.Descriptor instead. func (*PerformanceModifyContactReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{30} } 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[31] 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[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 PerformanceModifyContactRsp.ProtoReflect.Descriptor instead. func (*PerformanceModifyContactRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{31} } 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[32] 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[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 AddZSGoodsRsp.ProtoReflect.Descriptor instead. func (*AddZSGoodsRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{32} } 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[33] 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[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 GoodsFavoriteOperateReq.ProtoReflect.Descriptor instead. func (*GoodsFavoriteOperateReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{33} } 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[34] 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[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 GoodsFavoriteOperateRsp.ProtoReflect.Descriptor instead. func (*GoodsFavoriteOperateRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{34} } 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[35] 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[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 GZBuyOrderDetailExInfo.ProtoReflect.Descriptor instead. func (*GZBuyOrderDetailExInfo) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{35} } 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[36] 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[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 ZSBuyOrderListingReq.ProtoReflect.Descriptor instead. func (*ZSBuyOrderListingReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{36} } 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[37] 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[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 ZSBuyOrderListingRsp.ProtoReflect.Descriptor instead. func (*ZSBuyOrderListingRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{37} } 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[38] 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[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 ZSSellOrderListingReq.ProtoReflect.Descriptor instead. func (*ZSSellOrderListingReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{38} } 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[39] 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[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 ZSSellOrderListingRsp.ProtoReflect.Descriptor instead. func (*ZSSellOrderListingRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{39} } 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[40] 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[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 ZSBuyOrderDestingReq.ProtoReflect.Descriptor instead. func (*ZSBuyOrderDestingReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{40} } 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[41] 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[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 ZSBuyOrderDestingRsp.ProtoReflect.Descriptor instead. func (*ZSBuyOrderDestingRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{41} } 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[42] 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[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 ZSSellOrderDestingApplyReq.ProtoReflect.Descriptor instead. func (*ZSSellOrderDestingApplyReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{42} } 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[43] 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[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 ZSSellOrderDestingApplyRsp.ProtoReflect.Descriptor instead. func (*ZSSellOrderDestingApplyRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{43} } 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[44] 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[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 ZSSellOrderDestingApplyOperateReq.ProtoReflect.Descriptor instead. func (*ZSSellOrderDestingApplyOperateReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{44} } 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[45] 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[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 ZSSellOrderDestingApplyOperateRsp.ProtoReflect.Descriptor instead. func (*ZSSellOrderDestingApplyOperateRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{45} } 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[46] 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[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 ZSBuyOrderDestingNegPriceReq.ProtoReflect.Descriptor instead. func (*ZSBuyOrderDestingNegPriceReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{46} } 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[47] 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[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 ZSBuyOrderDestingNegPriceRsp.ProtoReflect.Descriptor instead. func (*ZSBuyOrderDestingNegPriceRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{47} } 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[48] 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[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 ZSBuyOrderDestingNegPriceOperateReq.ProtoReflect.Descriptor instead. func (*ZSBuyOrderDestingNegPriceOperateReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{48} } 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[49] 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[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 ZSBuyOrderDestingNegPriceOperateRsp.ProtoReflect.Descriptor instead. func (*ZSBuyOrderDestingNegPriceOperateRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{49} } 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[50] 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[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 WRListingCancelOrderReq.ProtoReflect.Descriptor instead. func (*WRListingCancelOrderReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{50} } 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[51] 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[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 WRListingCancelOrderRsp.ProtoReflect.Descriptor instead. func (*WRListingCancelOrderRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{51} } 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[52] 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[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 ReceiptZSOutApplyReq.ProtoReflect.Descriptor instead. func (*ReceiptZSOutApplyReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{52} } 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[53] 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[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 ReceiptZSOutApplyRsp.ProtoReflect.Descriptor instead. func (*ReceiptZSOutApplyRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{53} } 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[54] 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[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 DepositConfigInfo.ProtoReflect.Descriptor instead. func (*DepositConfigInfo) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{54} } 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[55] 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[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 SpotPresaleListingOrderReq.ProtoReflect.Descriptor instead. func (*SpotPresaleListingOrderReq) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{55} } 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[56] 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[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 SpotPresaleListingOrderRsp.ProtoReflect.Descriptor instead. func (*SpotPresaleListingOrderRsp) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{56} } 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[57] 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[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 THJPurchaseTradeNtf.ProtoReflect.Descriptor instead. func (*THJPurchaseTradeNtf) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{57} } 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 } 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, 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, 0x9d, 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, 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, } 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, 58) var file_mtp2_proto_goTypes = []interface{}{ (*MessageHead)(nil), // 0: pb.MessageHead (*ModifyPwdReq)(nil), // 1: pb.ModifyPwdReq (*ModifyPwdRsp)(nil), // 2: pb.ModifyPwdRsp (*UserReceiveInfoReq)(nil), // 3: pb.UserReceiveInfoReq (*UserReceiveInfoRsp)(nil), // 4: pb.UserReceiveInfoRsp (*DelUserReceiveInfoReq)(nil), // 5: pb.DelUserReceiveInfoReq (*DelUserReceiveInfoRsp)(nil), // 6: pb.DelUserReceiveInfoRsp (*UserReceiveIsDefaultReq)(nil), // 7: pb.UserReceiveIsDefaultReq (*UserReceiveIsDefaultRsp)(nil), // 8: pb.UserReceiveIsDefaultRsp (*UserReceiptInfoReq)(nil), // 9: pb.UserReceiptInfoReq (*UserReceiptInfoRsp)(nil), // 10: pb.UserReceiptInfoRsp (*DelUserReceiptInfoReq)(nil), // 11: pb.DelUserReceiptInfoReq (*DelUserReceiptInfoRsp)(nil), // 12: pb.DelUserReceiptInfoRsp (*T2BBankSignReq)(nil), // 13: pb.t2bBankSignReq (*T2BBankSignRsp)(nil), // 14: pb.t2bBankSignRsp (*T2BBankCancelSignReq)(nil), // 15: pb.t2bBankCancelSignReq (*T2BBankCancelSignRsp)(nil), // 16: pb.t2bBankCancelSignRsp (*T2BBankWithdrawReq)(nil), // 17: pb.t2bBankWithdrawReq (*T2BBankWithdrawRsp)(nil), // 18: pb.t2bBankWithdrawRsp (*T2BBankDepositReq)(nil), // 19: pb.t2bBankDepositReq (*T2BBankDepositRsp)(nil), // 20: pb.t2bBankDepositRsp (*WRCommon)(nil), // 21: pb.WRCommon (*WarehouseApplyReq)(nil), // 22: pb.WarehouseApplyReq (*WarehouseApplyRsp)(nil), // 23: pb.WarehouseApplyRsp (*PerformanceContractedApplyReq)(nil), // 24: pb.PerformanceContractedApplyReq (*PerformanceContractedApplyRsp)(nil), // 25: pb.PerformanceContractedApplyRsp (*PerformanceDelayApplyReq)(nil), // 26: pb.PerformanceDelayApplyReq (*PerformanceDelayApplyRsp)(nil), // 27: pb.PerformanceDelayApplyRsp (*PerformanceManualConfirmReq)(nil), // 28: pb.PerformanceManualConfirmReq (*PerformanceManualConfirmRsp)(nil), // 29: pb.PerformanceManualConfirmRsp (*PerformanceModifyContactReq)(nil), // 30: pb.PerformanceModifyContactReq (*PerformanceModifyContactRsp)(nil), // 31: pb.PerformanceModifyContactRsp (*AddZSGoodsRsp)(nil), // 32: pb.AddZSGoodsRsp (*GoodsFavoriteOperateReq)(nil), // 33: pb.GoodsFavoriteOperateReq (*GoodsFavoriteOperateRsp)(nil), // 34: pb.GoodsFavoriteOperateRsp (*GZBuyOrderDetailExInfo)(nil), // 35: pb.GZBuyOrderDetailExInfo (*ZSBuyOrderListingReq)(nil), // 36: pb.ZSBuyOrderListingReq (*ZSBuyOrderListingRsp)(nil), // 37: pb.ZSBuyOrderListingRsp (*ZSSellOrderListingReq)(nil), // 38: pb.ZSSellOrderListingReq (*ZSSellOrderListingRsp)(nil), // 39: pb.ZSSellOrderListingRsp (*ZSBuyOrderDestingReq)(nil), // 40: pb.ZSBuyOrderDestingReq (*ZSBuyOrderDestingRsp)(nil), // 41: pb.ZSBuyOrderDestingRsp (*ZSSellOrderDestingApplyReq)(nil), // 42: pb.ZSSellOrderDestingApplyReq (*ZSSellOrderDestingApplyRsp)(nil), // 43: pb.ZSSellOrderDestingApplyRsp (*ZSSellOrderDestingApplyOperateReq)(nil), // 44: pb.ZSSellOrderDestingApplyOperateReq (*ZSSellOrderDestingApplyOperateRsp)(nil), // 45: pb.ZSSellOrderDestingApplyOperateRsp (*ZSBuyOrderDestingNegPriceReq)(nil), // 46: pb.ZSBuyOrderDestingNegPriceReq (*ZSBuyOrderDestingNegPriceRsp)(nil), // 47: pb.ZSBuyOrderDestingNegPriceRsp (*ZSBuyOrderDestingNegPriceOperateReq)(nil), // 48: pb.ZSBuyOrderDestingNegPriceOperateReq (*ZSBuyOrderDestingNegPriceOperateRsp)(nil), // 49: pb.ZSBuyOrderDestingNegPriceOperateRsp (*WRListingCancelOrderReq)(nil), // 50: pb.WRListingCancelOrderReq (*WRListingCancelOrderRsp)(nil), // 51: pb.WRListingCancelOrderRsp (*ReceiptZSOutApplyReq)(nil), // 52: pb.ReceiptZSOutApplyReq (*ReceiptZSOutApplyRsp)(nil), // 53: pb.ReceiptZSOutApplyRsp (*DepositConfigInfo)(nil), // 54: pb.DepositConfigInfo (*SpotPresaleListingOrderReq)(nil), // 55: pb.SpotPresaleListingOrderReq (*SpotPresaleListingOrderRsp)(nil), // 56: pb.SpotPresaleListingOrderRsp (*THJPurchaseTradeNtf)(nil), // 57: pb.THJPurchaseTradeNtf } var file_mtp2_proto_depIdxs = []int32{ 0, // 0: pb.ModifyPwdReq.Header:type_name -> pb.MessageHead 0, // 1: pb.ModifyPwdRsp.Header:type_name -> pb.MessageHead 0, // 2: pb.UserReceiveInfoReq.Header:type_name -> pb.MessageHead 0, // 3: pb.UserReceiveInfoRsp.Header:type_name -> pb.MessageHead 0, // 4: pb.DelUserReceiveInfoReq.Header:type_name -> pb.MessageHead 0, // 5: pb.DelUserReceiveInfoRsp.Header:type_name -> pb.MessageHead 0, // 6: pb.UserReceiveIsDefaultReq.Header:type_name -> pb.MessageHead 0, // 7: pb.UserReceiveIsDefaultRsp.Header:type_name -> pb.MessageHead 0, // 8: pb.UserReceiptInfoReq.Header:type_name -> pb.MessageHead 0, // 9: pb.UserReceiptInfoRsp.Header:type_name -> pb.MessageHead 0, // 10: pb.DelUserReceiptInfoReq.Header:type_name -> pb.MessageHead 0, // 11: pb.DelUserReceiptInfoRsp.Header:type_name -> pb.MessageHead 0, // 12: pb.t2bBankSignReq.Header:type_name -> pb.MessageHead 0, // 13: pb.t2bBankSignRsp.Header:type_name -> pb.MessageHead 0, // 14: pb.t2bBankCancelSignReq.Header:type_name -> pb.MessageHead 0, // 15: pb.t2bBankCancelSignRsp.Header:type_name -> pb.MessageHead 0, // 16: pb.t2bBankWithdrawReq.Header:type_name -> pb.MessageHead 0, // 17: pb.t2bBankWithdrawRsp.Header:type_name -> pb.MessageHead 0, // 18: pb.t2bBankDepositReq.Header:type_name -> pb.MessageHead 0, // 19: pb.t2bBankDepositRsp.Header:type_name -> pb.MessageHead 0, // 20: pb.WarehouseApplyReq.Header:type_name -> pb.MessageHead 0, // 21: pb.WarehouseApplyRsp.Header:type_name -> pb.MessageHead 0, // 22: pb.PerformanceContractedApplyReq.Header:type_name -> pb.MessageHead 0, // 23: pb.PerformanceContractedApplyRsp.Header:type_name -> pb.MessageHead 0, // 24: pb.PerformanceDelayApplyReq.Header:type_name -> pb.MessageHead 0, // 25: pb.PerformanceDelayApplyRsp.Header:type_name -> pb.MessageHead 0, // 26: pb.PerformanceManualConfirmReq.Header:type_name -> pb.MessageHead 0, // 27: pb.PerformanceManualConfirmRsp.Header:type_name -> pb.MessageHead 0, // 28: pb.PerformanceModifyContactReq.Header:type_name -> pb.MessageHead 0, // 29: pb.PerformanceModifyContactRsp.Header:type_name -> pb.MessageHead 0, // 30: pb.AddZSGoodsRsp.Header:type_name -> pb.MessageHead 0, // 31: pb.GoodsFavoriteOperateReq.Header:type_name -> pb.MessageHead 0, // 32: pb.GoodsFavoriteOperateRsp.Header:type_name -> pb.MessageHead 0, // 33: pb.ZSBuyOrderListingReq.Header:type_name -> pb.MessageHead 35, // 34: pb.ZSBuyOrderListingReq.GZ_BuyOrderDetailExInfo:type_name -> pb.GZBuyOrderDetailExInfo 0, // 35: pb.ZSBuyOrderListingRsp.Header:type_name -> pb.MessageHead 0, // 36: pb.ZSSellOrderListingReq.Header:type_name -> pb.MessageHead 0, // 37: pb.ZSSellOrderListingRsp.Header:type_name -> pb.MessageHead 0, // 38: pb.ZSBuyOrderDestingReq.Header:type_name -> pb.MessageHead 0, // 39: pb.ZSBuyOrderDestingRsp.Header:type_name -> pb.MessageHead 0, // 40: pb.ZSSellOrderDestingApplyReq.Header:type_name -> pb.MessageHead 0, // 41: pb.ZSSellOrderDestingApplyRsp.Header:type_name -> pb.MessageHead 0, // 42: pb.ZSSellOrderDestingApplyOperateReq.Header:type_name -> pb.MessageHead 0, // 43: pb.ZSSellOrderDestingApplyOperateRsp.Header:type_name -> pb.MessageHead 0, // 44: pb.ZSBuyOrderDestingNegPriceReq.Header:type_name -> pb.MessageHead 0, // 45: pb.ZSBuyOrderDestingNegPriceRsp.Header:type_name -> pb.MessageHead 0, // 46: pb.ZSBuyOrderDestingNegPriceOperateReq.Header:type_name -> pb.MessageHead 0, // 47: pb.ZSBuyOrderDestingNegPriceOperateRsp.Header:type_name -> pb.MessageHead 0, // 48: pb.WRListingCancelOrderReq.Header:type_name -> pb.MessageHead 0, // 49: pb.WRListingCancelOrderRsp.Header:type_name -> pb.MessageHead 0, // 50: pb.ReceiptZSOutApplyReq.Header:type_name -> pb.MessageHead 21, // 51: pb.ReceiptZSOutApplyReq.Common:type_name -> pb.WRCommon 0, // 52: pb.ReceiptZSOutApplyRsp.Header:type_name -> pb.MessageHead 21, // 53: pb.ReceiptZSOutApplyRsp.Common:type_name -> pb.WRCommon 0, // 54: pb.SpotPresaleListingOrderReq.Header:type_name -> pb.MessageHead 54, // 55: pb.SpotPresaleListingOrderReq.DepositConfigs:type_name -> pb.DepositConfigInfo 0, // 56: pb.SpotPresaleListingOrderRsp.Header:type_name -> pb.MessageHead 0, // 57: pb.THJPurchaseTradeNtf.Header:type_name -> pb.MessageHead 58, // [58:58] is the sub-list for method output_type 58, // [58:58] is the sub-list for method input_type 58, // [58:58] is the sub-list for extension type_name 58, // [58:58] is the sub-list for extension extendee 0, // [0:58] 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.(*ModifyPwdReq); 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.(*ModifyPwdRsp); 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.(*UserReceiveInfoReq); 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.(*UserReceiveInfoRsp); 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.(*DelUserReceiveInfoReq); 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.(*DelUserReceiveInfoRsp); 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.(*UserReceiveIsDefaultReq); 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.(*UserReceiveIsDefaultRsp); 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.(*UserReceiptInfoReq); 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.(*UserReceiptInfoRsp); 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.(*DelUserReceiptInfoReq); 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.(*DelUserReceiptInfoRsp); 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.(*T2BBankSignReq); 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.(*T2BBankSignRsp); 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.(*T2BBankCancelSignReq); 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.(*T2BBankCancelSignRsp); 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.(*T2BBankWithdrawReq); 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.(*T2BBankWithdrawRsp); 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.(*T2BBankDepositReq); 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.(*T2BBankDepositRsp); 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.(*WRCommon); 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.(*WarehouseApplyReq); 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.(*WarehouseApplyRsp); 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.(*PerformanceContractedApplyReq); 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.(*PerformanceContractedApplyRsp); 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.(*PerformanceDelayApplyReq); 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.(*PerformanceDelayApplyRsp); 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.(*PerformanceManualConfirmReq); 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.(*PerformanceManualConfirmRsp); 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.(*PerformanceModifyContactReq); 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.(*PerformanceModifyContactRsp); 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.(*AddZSGoodsRsp); 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.(*GoodsFavoriteOperateReq); 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.(*GoodsFavoriteOperateRsp); 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.(*GZBuyOrderDetailExInfo); 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.(*ZSBuyOrderListingReq); 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.(*ZSBuyOrderListingRsp); 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.(*ZSSellOrderListingReq); 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.(*ZSSellOrderListingRsp); 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.(*ZSBuyOrderDestingReq); 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.(*ZSBuyOrderDestingRsp); 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.(*ZSSellOrderDestingApplyReq); 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.(*ZSSellOrderDestingApplyRsp); 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.(*ZSSellOrderDestingApplyOperateReq); 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.(*ZSSellOrderDestingApplyOperateRsp); 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.(*ZSBuyOrderDestingNegPriceReq); 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.(*ZSBuyOrderDestingNegPriceRsp); 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.(*ZSBuyOrderDestingNegPriceOperateReq); 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.(*ZSBuyOrderDestingNegPriceOperateRsp); 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.(*WRListingCancelOrderReq); 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.(*WRListingCancelOrderRsp); 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.(*ReceiptZSOutApplyReq); 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.(*ReceiptZSOutApplyRsp); 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.(*DepositConfigInfo); 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.(*SpotPresaleListingOrderReq); 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.(*SpotPresaleListingOrderRsp); 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.(*THJPurchaseTradeNtf); 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: 58, 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 }