// 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 TradeRule struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	RuleID     *uint32  `protobuf:"varint,1,opt,name=RuleID" json:"RuleID,omitempty"`          // 交易规则ID
	ParamValue *float64 `protobuf:"fixed64,2,opt,name=ParamValue" json:"ParamValue,omitempty"` // 参数值
}

func (x *TradeRule) Reset() {
	*x = TradeRule{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mtp2_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TradeRule) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TradeRule) ProtoMessage() {}

func (x *TradeRule) 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 TradeRule.ProtoReflect.Descriptor instead.
func (*TradeRule) Descriptor() ([]byte, []int) {
	return file_mtp2_proto_rawDescGZIP(), []int{0}
}

func (x *TradeRule) GetRuleID() uint32 {
	if x != nil && x.RuleID != nil {
		return *x.RuleID
	}
	return 0
}

func (x *TradeRule) GetParamValue() float64 {
	if x != nil && x.ParamValue != nil {
		return *x.ParamValue
	}
	return 0
}

//交易规则信息
type TradeRuleInfoStruct struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AccountID  *uint64      `protobuf:"varint,1,opt,name=AccountID" json:"AccountID,omitempty"`  // 资金账号
	GoodsID    *uint32      `protobuf:"varint,2,opt,name=GoodsID" json:"GoodsID,omitempty"`      // 商品id
	TradeRules []*TradeRule `protobuf:"bytes,3,rep,name=TradeRules" json:"TradeRules,omitempty"` // 交易规则
}

func (x *TradeRuleInfoStruct) Reset() {
	*x = TradeRuleInfoStruct{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mtp2_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TradeRuleInfoStruct) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TradeRuleInfoStruct) ProtoMessage() {}

func (x *TradeRuleInfoStruct) 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 TradeRuleInfoStruct.ProtoReflect.Descriptor instead.
func (*TradeRuleInfoStruct) Descriptor() ([]byte, []int) {
	return file_mtp2_proto_rawDescGZIP(), []int{1}
}

func (x *TradeRuleInfoStruct) GetAccountID() uint64 {
	if x != nil && x.AccountID != nil {
		return *x.AccountID
	}
	return 0
}

func (x *TradeRuleInfoStruct) GetGoodsID() uint32 {
	if x != nil && x.GoodsID != nil {
		return *x.GoodsID
	}
	return 0
}

func (x *TradeRuleInfoStruct) GetTradeRules() []*TradeRule {
	if x != nil {
		return x.TradeRules
	}
	return nil
}

// 日期类型定义
type Date struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DateStr *string `protobuf:"bytes,1,opt,name=DateStr" json:"DateStr,omitempty"` // 日期时间
}

func (x *Date) Reset() {
	*x = Date{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mtp2_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Date) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Date) ProtoMessage() {}

func (x *Date) 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 Date.ProtoReflect.Descriptor instead.
func (*Date) Descriptor() ([]byte, []int) {
	return file_mtp2_proto_rawDescGZIP(), []int{2}
}

func (x *Date) GetDateStr() string {
	if x != nil && x.DateStr != nil {
		return *x.DateStr
	}
	return ""
}

// ERMS2_ARBITRAGESTRATEGY 期现套利策略表
type Erms2ArbitrageStrategy struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	//mkey: 1
	ASApplyId          *uint64  `protobuf:"varint,1,opt,name=ASApplyId" json:"ASApplyId,omitempty"`                     // 策略申请ID(702+Unix秒时间戳(10位)+xxxxxx)
	ASNo               *string  `protobuf:"bytes,2,opt,name=ASNo" json:"ASNo,omitempty"`                                // 策略编号
	BizType            *uint32  `protobuf:"varint,3,opt,name=BizType" json:"BizType,omitempty"`                         // 业务类型 - 1:正向套利 -1:反向套利
	UserId             *uint32  `protobuf:"varint,4,opt,name=UserId" json:"UserId,omitempty"`                           // 所属机构
	DeliveryGoodsId    *uint32  `protobuf:"varint,5,opt,name=DeliveryGoodsId" json:"DeliveryGoodsId,omitempty"`         // 现货品种ID
	GoodsGroupId       *uint32  `protobuf:"varint,6,opt,name=GoodsGroupId" json:"GoodsGroupId,omitempty"`               // 期货品种ID
	SpotQuota          *float64 `protobuf:"fixed64,7,opt,name=SpotQuota" json:"SpotQuota,omitempty"`                    // 现货额度
	FutureQuote        *float64 `protobuf:"fixed64,8,opt,name=FutureQuote" json:"FutureQuote,omitempty"`                // 期货额度
	ApplyBasis         *float64 `protobuf:"fixed64,9,opt,name=ApplyBasis" json:"ApplyBasis,omitempty"`                  // 申请基差
	StrategyStatus     *uint32  `protobuf:"varint,10,opt,name=StrategyStatus" json:"StrategyStatus,omitempty"`          // 策略状态 - 0:未结束 1:已结束
	Remark             *string  `protobuf:"bytes,11,opt,name=Remark" json:"Remark,omitempty"`                           // 备注
	MarketId           *uint32  `protobuf:"varint,12,opt,name=MarketId" json:"MarketId,omitempty"`                      // 市场ID
	TradeDate          *string  `protobuf:"bytes,13,opt,name=TradeDate" json:"TradeDate,omitempty"`                     // 交易日(yyyyMMdd)
	CloseTradeDate     *string  `protobuf:"bytes,14,opt,name=CloseTradeDate" json:"CloseTradeDate,omitempty"`           // 完结交易日(yyyyMMdd)
	UsedQuota          *float64 `protobuf:"fixed64,15,opt,name=UsedQuota" json:"UsedQuota,omitempty"`                   // 已占用资金
	FutureQty          *float64 `protobuf:"fixed64,16,opt,name=FutureQty" json:"FutureQty,omitempty"`                   // 期货持仓数量
	FutureAvgPrice     *float64 `protobuf:"fixed64,17,opt,name=FutureAvgPrice" json:"FutureAvgPrice,omitempty"`         // 期货建仓均价
	FuturePL           *float64 `protobuf:"fixed64,18,opt,name=FuturePL" json:"FuturePL,omitempty"`                     // 期货总盈亏[结算更新]
	PricedSpotQty      *float64 `protobuf:"fixed64,19,opt,name=PricedSpotQty" json:"PricedSpotQty,omitempty"`           // 已定价现货数量
	PricedSpotQtyNoTax *float64 `protobuf:"fixed64,20,opt,name=PricedSpotQtyNoTax" json:"PricedSpotQtyNoTax,omitempty"` // 已定价现货不含税数量
	SpotavgPrice       *float64 `protobuf:"fixed64,21,opt,name=SpotavgPrice" json:"SpotavgPrice,omitempty"`             // 现货均价
	SpotPL             *float64 `protobuf:"fixed64,22,opt,name=SpotPL" json:"SpotPL,omitempty"`                         // 现货总盈亏[结算更新]
	NetExposure        *float64 `protobuf:"fixed64,23,opt,name=NetExposure" json:"NetExposure,omitempty"`               // 单笔业务头寸净敞口 = 期货持仓数量 + 已定价现货不含税数量
	NetExposureRate    *float64 `protobuf:"fixed64,24,opt,name=NetExposureRate" json:"NetExposureRate,omitempty"`       // 净敞口比例 - 0:未结束 =  (NetExposure/PriceSpotQtyNoTax) ； 已结束为0
	TotalPL            *float64 `protobuf:"fixed64,25,opt,name=TotalPL" json:"TotalPL,omitempty"`                       // 业务合计损益 = FuturePL + SpotPL [结算更新]
	OpenBasis          *float64 `protobuf:"fixed64,26,opt,name=OpenBasis" json:"OpenBasis,omitempty"`                   // 建仓基差
	CurBasis           *float64 `protobuf:"fixed64,27,opt,name=CurBasis" json:"CurBasis,omitempty"`                     // 当前基差[结算更新]
	BasisChangePL      *float64 `protobuf:"fixed64,28,opt,name=BasisChangePL" json:"BasisChangePL,omitempty"`           // 基差变动损益[结算更新]
	NetExposurePL      *float64 `protobuf:"fixed64,29,opt,name=NetExposurePL" json:"NetExposurePL,omitempty"`           // 净敞口损益 = TotalPL - BasisChangePL[结算更新]
	SpotUsedQuota      *float64 `protobuf:"fixed64,30,opt,name=SpotUsedQuota" json:"SpotUsedQuota,omitempty"`           // 现货占用资金
	FutureOpenQty      *float64 `protobuf:"fixed64,31,opt,name=FutureOpenQty" json:"FutureOpenQty,omitempty"`           // 期货开仓数量
	FutureOpenAmount   *float64 `protobuf:"fixed64,32,opt,name=FutureOpenAmount" json:"FutureOpenAmount,omitempty"`     // 期货开仓金额
	FutureCloseQty     *float64 `protobuf:"fixed64,33,opt,name=FutureCloseQty" json:"FutureCloseQty,omitempty"`         // 期货平仓数量
	FutureCloseAmount  *float64 `protobuf:"fixed64,34,opt,name=FutureCloseAmount" json:"FutureCloseAmount,omitempty"`   // 期货平仓金额
	SpotBuyAmount      *float64 `protobuf:"fixed64,35,opt,name=SpotBuyAmount" json:"SpotBuyAmount,omitempty"`           // 现货采购金额
	SpotBuyQty         *float64 `protobuf:"fixed64,36,opt,name=SpotBuyQty" json:"SpotBuyQty,omitempty"`                 // 现货采购数量
	SpotSellAmount     *float64 `protobuf:"fixed64,37,opt,name=SpotSellAmount" json:"SpotSellAmount,omitempty"`         // 现货销售金额
	SpotSellQty        *float64 `protobuf:"fixed64,38,opt,name=SpotSellQty" json:"SpotSellQty,omitempty"`               // 现货销售数量
	UpDatetime         *Date    `protobuf:"bytes,39,opt,name=UpDatetime" json:"UpDatetime,omitempty"`                   // 更新时间
	ASName             *string  `protobuf:"bytes,40,opt,name=ASName" json:"ASName,omitempty"`                           // 策略名称
}

func (x *Erms2ArbitrageStrategy) Reset() {
	*x = Erms2ArbitrageStrategy{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mtp2_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Erms2ArbitrageStrategy) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Erms2ArbitrageStrategy) ProtoMessage() {}

func (x *Erms2ArbitrageStrategy) 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 Erms2ArbitrageStrategy.ProtoReflect.Descriptor instead.
func (*Erms2ArbitrageStrategy) Descriptor() ([]byte, []int) {
	return file_mtp2_proto_rawDescGZIP(), []int{3}
}

func (x *Erms2ArbitrageStrategy) GetASApplyId() uint64 {
	if x != nil && x.ASApplyId != nil {
		return *x.ASApplyId
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetASNo() string {
	if x != nil && x.ASNo != nil {
		return *x.ASNo
	}
	return ""
}

func (x *Erms2ArbitrageStrategy) GetBizType() uint32 {
	if x != nil && x.BizType != nil {
		return *x.BizType
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetUserId() uint32 {
	if x != nil && x.UserId != nil {
		return *x.UserId
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetDeliveryGoodsId() uint32 {
	if x != nil && x.DeliveryGoodsId != nil {
		return *x.DeliveryGoodsId
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetGoodsGroupId() uint32 {
	if x != nil && x.GoodsGroupId != nil {
		return *x.GoodsGroupId
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetSpotQuota() float64 {
	if x != nil && x.SpotQuota != nil {
		return *x.SpotQuota
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetFutureQuote() float64 {
	if x != nil && x.FutureQuote != nil {
		return *x.FutureQuote
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetApplyBasis() float64 {
	if x != nil && x.ApplyBasis != nil {
		return *x.ApplyBasis
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetStrategyStatus() uint32 {
	if x != nil && x.StrategyStatus != nil {
		return *x.StrategyStatus
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetRemark() string {
	if x != nil && x.Remark != nil {
		return *x.Remark
	}
	return ""
}

func (x *Erms2ArbitrageStrategy) GetMarketId() uint32 {
	if x != nil && x.MarketId != nil {
		return *x.MarketId
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetTradeDate() string {
	if x != nil && x.TradeDate != nil {
		return *x.TradeDate
	}
	return ""
}

func (x *Erms2ArbitrageStrategy) GetCloseTradeDate() string {
	if x != nil && x.CloseTradeDate != nil {
		return *x.CloseTradeDate
	}
	return ""
}

func (x *Erms2ArbitrageStrategy) GetUsedQuota() float64 {
	if x != nil && x.UsedQuota != nil {
		return *x.UsedQuota
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetFutureQty() float64 {
	if x != nil && x.FutureQty != nil {
		return *x.FutureQty
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetFutureAvgPrice() float64 {
	if x != nil && x.FutureAvgPrice != nil {
		return *x.FutureAvgPrice
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetFuturePL() float64 {
	if x != nil && x.FuturePL != nil {
		return *x.FuturePL
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetPricedSpotQty() float64 {
	if x != nil && x.PricedSpotQty != nil {
		return *x.PricedSpotQty
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetPricedSpotQtyNoTax() float64 {
	if x != nil && x.PricedSpotQtyNoTax != nil {
		return *x.PricedSpotQtyNoTax
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetSpotavgPrice() float64 {
	if x != nil && x.SpotavgPrice != nil {
		return *x.SpotavgPrice
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetSpotPL() float64 {
	if x != nil && x.SpotPL != nil {
		return *x.SpotPL
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetNetExposure() float64 {
	if x != nil && x.NetExposure != nil {
		return *x.NetExposure
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetNetExposureRate() float64 {
	if x != nil && x.NetExposureRate != nil {
		return *x.NetExposureRate
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetTotalPL() float64 {
	if x != nil && x.TotalPL != nil {
		return *x.TotalPL
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetOpenBasis() float64 {
	if x != nil && x.OpenBasis != nil {
		return *x.OpenBasis
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetCurBasis() float64 {
	if x != nil && x.CurBasis != nil {
		return *x.CurBasis
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetBasisChangePL() float64 {
	if x != nil && x.BasisChangePL != nil {
		return *x.BasisChangePL
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetNetExposurePL() float64 {
	if x != nil && x.NetExposurePL != nil {
		return *x.NetExposurePL
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetSpotUsedQuota() float64 {
	if x != nil && x.SpotUsedQuota != nil {
		return *x.SpotUsedQuota
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetFutureOpenQty() float64 {
	if x != nil && x.FutureOpenQty != nil {
		return *x.FutureOpenQty
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetFutureOpenAmount() float64 {
	if x != nil && x.FutureOpenAmount != nil {
		return *x.FutureOpenAmount
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetFutureCloseQty() float64 {
	if x != nil && x.FutureCloseQty != nil {
		return *x.FutureCloseQty
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetFutureCloseAmount() float64 {
	if x != nil && x.FutureCloseAmount != nil {
		return *x.FutureCloseAmount
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetSpotBuyAmount() float64 {
	if x != nil && x.SpotBuyAmount != nil {
		return *x.SpotBuyAmount
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetSpotBuyQty() float64 {
	if x != nil && x.SpotBuyQty != nil {
		return *x.SpotBuyQty
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetSpotSellAmount() float64 {
	if x != nil && x.SpotSellAmount != nil {
		return *x.SpotSellAmount
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetSpotSellQty() float64 {
	if x != nil && x.SpotSellQty != nil {
		return *x.SpotSellQty
	}
	return 0
}

func (x *Erms2ArbitrageStrategy) GetUpDatetime() *Date {
	if x != nil {
		return x.UpDatetime
	}
	return nil
}

func (x *Erms2ArbitrageStrategy) GetASName() string {
	if x != nil && x.ASName != nil {
		return *x.ASName
	}
	return ""
}

// ERMCP_AREASPOT 企业现货表
type ErmcpAreaSpot struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	//mkey: 1 2
	WrStandardID     *uint32  `protobuf:"varint,1,opt,name=WrStandardID" json:"WrStandardID,omitempty"`          // 现货商品ID
	AreaUserID       *uint32  `protobuf:"varint,2,opt,name=AreaUserID" json:"AreaUserID,omitempty"`              // 所属机构
	OriBuyPlanQty    *float64 `protobuf:"fixed64,3,opt,name=OriBuyPlanQty" json:"OriBuyPlanQty,omitempty"`       // 期初采购计划数量
	OriBuyPricedQty  *float64 `protobuf:"fixed64,4,opt,name=OriBuyPricedQty" json:"OriBuyPricedQty,omitempty"`   // 期初采购合同已定价数量
	OriSellPlanQty   *float64 `protobuf:"fixed64,5,opt,name=OriSellPlanQty" json:"OriSellPlanQty,omitempty"`     // 期初销售计划数量
	OriSellPricedQty *float64 `protobuf:"fixed64,6,opt,name=OriSellPricedQty" json:"OriSellPricedQty,omitempty"` // 期初销售合同已定价数量
	BuyPlanQty       *float64 `protobuf:"fixed64,7,opt,name=BuyPlanQty" json:"BuyPlanQty,omitempty"`             // 采购计划数量
	BuyPricedQty     *float64 `protobuf:"fixed64,8,opt,name=BuyPricedQty" json:"BuyPricedQty,omitempty"`         // 采购合同已定价数量
	SellPlanQty      *float64 `protobuf:"fixed64,9,opt,name=SellPlanQty" json:"SellPlanQty,omitempty"`           // 销售计划数量
	SellPricedQty    *float64 `protobuf:"fixed64,10,opt,name=SellPricedQty" json:"SellPricedQty,omitempty"`      // 销售合同已定价数量
	TotalSpotQty     *float64 `protobuf:"fixed64,11,opt,name=TotalSpotQty" json:"TotalSpotQty,omitempty"`        // 现货头寸总量 =  (销售计划数量 - 销售已定价数量)  - (采购计划数量 - 采购已定价数量)
	UpdateTime       *Date    `protobuf:"bytes,12,opt,name=UpdateTime" json:"UpdateTime,omitempty"`              // 更新时间
}

func (x *ErmcpAreaSpot) Reset() {
	*x = ErmcpAreaSpot{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mtp2_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ErmcpAreaSpot) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ErmcpAreaSpot) ProtoMessage() {}

func (x *ErmcpAreaSpot) 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 ErmcpAreaSpot.ProtoReflect.Descriptor instead.
func (*ErmcpAreaSpot) Descriptor() ([]byte, []int) {
	return file_mtp2_proto_rawDescGZIP(), []int{4}
}

func (x *ErmcpAreaSpot) GetWrStandardID() uint32 {
	if x != nil && x.WrStandardID != nil {
		return *x.WrStandardID
	}
	return 0
}

func (x *ErmcpAreaSpot) GetAreaUserID() uint32 {
	if x != nil && x.AreaUserID != nil {
		return *x.AreaUserID
	}
	return 0
}

func (x *ErmcpAreaSpot) GetOriBuyPlanQty() float64 {
	if x != nil && x.OriBuyPlanQty != nil {
		return *x.OriBuyPlanQty
	}
	return 0
}

func (x *ErmcpAreaSpot) GetOriBuyPricedQty() float64 {
	if x != nil && x.OriBuyPricedQty != nil {
		return *x.OriBuyPricedQty
	}
	return 0
}

func (x *ErmcpAreaSpot) GetOriSellPlanQty() float64 {
	if x != nil && x.OriSellPlanQty != nil {
		return *x.OriSellPlanQty
	}
	return 0
}

func (x *ErmcpAreaSpot) GetOriSellPricedQty() float64 {
	if x != nil && x.OriSellPricedQty != nil {
		return *x.OriSellPricedQty
	}
	return 0
}

func (x *ErmcpAreaSpot) GetBuyPlanQty() float64 {
	if x != nil && x.BuyPlanQty != nil {
		return *x.BuyPlanQty
	}
	return 0
}

func (x *ErmcpAreaSpot) GetBuyPricedQty() float64 {
	if x != nil && x.BuyPricedQty != nil {
		return *x.BuyPricedQty
	}
	return 0
}

func (x *ErmcpAreaSpot) GetSellPlanQty() float64 {
	if x != nil && x.SellPlanQty != nil {
		return *x.SellPlanQty
	}
	return 0
}

func (x *ErmcpAreaSpot) GetSellPricedQty() float64 {
	if x != nil && x.SellPricedQty != nil {
		return *x.SellPricedQty
	}
	return 0
}

func (x *ErmcpAreaSpot) GetTotalSpotQty() float64 {
	if x != nil && x.TotalSpotQty != nil {
		return *x.TotalSpotQty
	}
	return 0
}

func (x *ErmcpAreaSpot) GetUpdateTime() *Date {
	if x != nil {
		return x.UpdateTime
	}
	return nil
}

// ERMCP_AREAEXPOSURE 企业敞口表
type ErmcpAreaExposure struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	//mkey: 1 2
	//nkey: 1
	MiddleGoodsID      *uint32  `protobuf:"varint,1,opt,name=MiddleGoodsID" json:"MiddleGoodsID,omitempty"`             // 套保品种
	AreaUserID         *uint32  `protobuf:"varint,2,opt,name=AreaUserID" json:"AreaUserID,omitempty"`                   // 所属机构
	OriBuyPlanQty      *float64 `protobuf:"fixed64,3,opt,name=OriBuyPlanQty" json:"OriBuyPlanQty,omitempty"`            // 期初采购计划数量
	OriBuyPricedQty    *float64 `protobuf:"fixed64,4,opt,name=OriBuyPricedQty" json:"OriBuyPricedQty,omitempty"`        // 期初采购合同已定价数量
	OriSellPlanQty     *float64 `protobuf:"fixed64,5,opt,name=OriSellPlanQty" json:"OriSellPlanQty,omitempty"`          // 期初销售计划数量
	OriSellPricedQty   *float64 `protobuf:"fixed64,6,opt,name=OriSellPricedQty" json:"OriSellPricedQty,omitempty"`      // 期初销售合同已定价数量
	OriBuyFutureQty    *uint64  `protobuf:"varint,7,opt,name=OriBuyFutureQty" json:"OriBuyFutureQty,omitempty"`         // 期初买入期货数量
	OriSellFutureQty   *uint64  `protobuf:"varint,8,opt,name=OriSellFutureQty" json:"OriSellFutureQty,omitempty"`       // 期初卖出期货数量
	BuyPlanQty         *float64 `protobuf:"fixed64,9,opt,name=BuyPlanQty" json:"BuyPlanQty,omitempty"`                  // 采购计划数量
	BuyPricedQty       *float64 `protobuf:"fixed64,10,opt,name=BuyPricedQty" json:"BuyPricedQty,omitempty"`             // 采购合同已定价数量
	SellPlanQty        *float64 `protobuf:"fixed64,11,opt,name=SellPlanQty" json:"SellPlanQty,omitempty"`               // 销售计划数量
	SellPricedQty      *float64 `protobuf:"fixed64,12,opt,name=SellPricedQty" json:"SellPricedQty,omitempty"`           // 销售合同已定价数量
	BuyFutureQty       *float64 `protobuf:"fixed64,13,opt,name=BuyFutureQty" json:"BuyFutureQty,omitempty"`             // 买入期货数量
	SellFutureQty      *float64 `protobuf:"fixed64,14,opt,name=SellFutureQty" json:"SellFutureQty,omitempty"`           // 卖出期货数量
	TotalSpotQty       *float64 `protobuf:"fixed64,15,opt,name=TotalSpotQty" json:"TotalSpotQty,omitempty"`             // 现货头寸总量
	TotalFutureQty     *float64 `protobuf:"fixed64,16,opt,name=TotalFutureQty" json:"TotalFutureQty,omitempty"`         // 期货头寸总量
	TotalExposure      *float64 `protobuf:"fixed64,17,opt,name=TotalExposure" json:"TotalExposure,omitempty"`           // 实时总敞口
	TotalHedgeRatio    *float64 `protobuf:"fixed64,18,opt,name=TotalHedgeRatio" json:"TotalHedgeRatio,omitempty"`       // 总套保比率
	TotalNeedHedgeQty  *float64 `protobuf:"fixed64,19,opt,name=TotalNeedHedgeQty" json:"TotalNeedHedgeQty,omitempty"`   // 应套保总量
	NeedHedgeExposoure *float64 `protobuf:"fixed64,20,opt,name=NeedHedgeExposoure" json:"NeedHedgeExposoure,omitempty"` // 应套保敞口
	NeedHedgeRatio     *float64 `protobuf:"fixed64,21,opt,name=NeedHedgeRatio" json:"NeedHedgeRatio,omitempty"`         // 应套保比率
	UpdateTime         *Date    `protobuf:"bytes,22,opt,name=UpdateTime" json:"UpdateTime,omitempty"`                   // 更新时间
}

func (x *ErmcpAreaExposure) Reset() {
	*x = ErmcpAreaExposure{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mtp2_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ErmcpAreaExposure) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ErmcpAreaExposure) ProtoMessage() {}

func (x *ErmcpAreaExposure) 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 ErmcpAreaExposure.ProtoReflect.Descriptor instead.
func (*ErmcpAreaExposure) Descriptor() ([]byte, []int) {
	return file_mtp2_proto_rawDescGZIP(), []int{5}
}

func (x *ErmcpAreaExposure) GetMiddleGoodsID() uint32 {
	if x != nil && x.MiddleGoodsID != nil {
		return *x.MiddleGoodsID
	}
	return 0
}

func (x *ErmcpAreaExposure) GetAreaUserID() uint32 {
	if x != nil && x.AreaUserID != nil {
		return *x.AreaUserID
	}
	return 0
}

func (x *ErmcpAreaExposure) GetOriBuyPlanQty() float64 {
	if x != nil && x.OriBuyPlanQty != nil {
		return *x.OriBuyPlanQty
	}
	return 0
}

func (x *ErmcpAreaExposure) GetOriBuyPricedQty() float64 {
	if x != nil && x.OriBuyPricedQty != nil {
		return *x.OriBuyPricedQty
	}
	return 0
}

func (x *ErmcpAreaExposure) GetOriSellPlanQty() float64 {
	if x != nil && x.OriSellPlanQty != nil {
		return *x.OriSellPlanQty
	}
	return 0
}

func (x *ErmcpAreaExposure) GetOriSellPricedQty() float64 {
	if x != nil && x.OriSellPricedQty != nil {
		return *x.OriSellPricedQty
	}
	return 0
}

func (x *ErmcpAreaExposure) GetOriBuyFutureQty() uint64 {
	if x != nil && x.OriBuyFutureQty != nil {
		return *x.OriBuyFutureQty
	}
	return 0
}

func (x *ErmcpAreaExposure) GetOriSellFutureQty() uint64 {
	if x != nil && x.OriSellFutureQty != nil {
		return *x.OriSellFutureQty
	}
	return 0
}

func (x *ErmcpAreaExposure) GetBuyPlanQty() float64 {
	if x != nil && x.BuyPlanQty != nil {
		return *x.BuyPlanQty
	}
	return 0
}

func (x *ErmcpAreaExposure) GetBuyPricedQty() float64 {
	if x != nil && x.BuyPricedQty != nil {
		return *x.BuyPricedQty
	}
	return 0
}

func (x *ErmcpAreaExposure) GetSellPlanQty() float64 {
	if x != nil && x.SellPlanQty != nil {
		return *x.SellPlanQty
	}
	return 0
}

func (x *ErmcpAreaExposure) GetSellPricedQty() float64 {
	if x != nil && x.SellPricedQty != nil {
		return *x.SellPricedQty
	}
	return 0
}

func (x *ErmcpAreaExposure) GetBuyFutureQty() float64 {
	if x != nil && x.BuyFutureQty != nil {
		return *x.BuyFutureQty
	}
	return 0
}

func (x *ErmcpAreaExposure) GetSellFutureQty() float64 {
	if x != nil && x.SellFutureQty != nil {
		return *x.SellFutureQty
	}
	return 0
}

func (x *ErmcpAreaExposure) GetTotalSpotQty() float64 {
	if x != nil && x.TotalSpotQty != nil {
		return *x.TotalSpotQty
	}
	return 0
}

func (x *ErmcpAreaExposure) GetTotalFutureQty() float64 {
	if x != nil && x.TotalFutureQty != nil {
		return *x.TotalFutureQty
	}
	return 0
}

func (x *ErmcpAreaExposure) GetTotalExposure() float64 {
	if x != nil && x.TotalExposure != nil {
		return *x.TotalExposure
	}
	return 0
}

func (x *ErmcpAreaExposure) GetTotalHedgeRatio() float64 {
	if x != nil && x.TotalHedgeRatio != nil {
		return *x.TotalHedgeRatio
	}
	return 0
}

func (x *ErmcpAreaExposure) GetTotalNeedHedgeQty() float64 {
	if x != nil && x.TotalNeedHedgeQty != nil {
		return *x.TotalNeedHedgeQty
	}
	return 0
}

func (x *ErmcpAreaExposure) GetNeedHedgeExposoure() float64 {
	if x != nil && x.NeedHedgeExposoure != nil {
		return *x.NeedHedgeExposoure
	}
	return 0
}

func (x *ErmcpAreaExposure) GetNeedHedgeRatio() float64 {
	if x != nil && x.NeedHedgeRatio != nil {
		return *x.NeedHedgeRatio
	}
	return 0
}

func (x *ErmcpAreaExposure) GetUpdateTime() *Date {
	if x != nil {
		return x.UpdateTime
	}
	return nil
}

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, 0x43, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x16, 0x0a,
	0x06, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x52,
	0x75, 0x6c, 0x65, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x56, 0x61,
	0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x50, 0x61, 0x72, 0x61, 0x6d,
	0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x7c, 0x0a, 0x13, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x75,
	0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x09,
	0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x6f,
	0x6f, 0x64, 0x73, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x47, 0x6f, 0x6f,
	0x64, 0x73, 0x49, 0x44, 0x12, 0x2d, 0x0a, 0x0a, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x75, 0x6c,
	0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x72,
	0x61, 0x64, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x0a, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x75,
	0x6c, 0x65, 0x73, 0x22, 0x20, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x44,
	0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x44, 0x61,
	0x74, 0x65, 0x53, 0x74, 0x72, 0x22, 0xea, 0x0a, 0x0a, 0x16, 0x45, 0x72, 0x6d, 0x73, 0x32, 0x41,
	0x72, 0x62, 0x69, 0x74, 0x72, 0x61, 0x67, 0x65, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79,
	0x12, 0x1c, 0x0a, 0x09, 0x41, 0x53, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x53, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x64, 0x12, 0x12,
	0x0a, 0x04, 0x41, 0x53, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x41, 0x53,
	0x4e, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x69, 0x7a, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0d, 0x52, 0x07, 0x42, 0x69, 0x7a, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06,
	0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73,
	0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79,
	0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x44,
	0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x64, 0x12, 0x22,
	0x0a, 0x0c, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70,
	0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61,
	0x12, 0x20, 0x0a, 0x0b, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x18,
	0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x75, 0x6f,
	0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x42, 0x61, 0x73, 0x69, 0x73,
	0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x42, 0x61, 0x73,
	0x69, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x53, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x53, 0x74, 0x72, 0x61,
	0x74, 0x65, 0x67, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65,
	0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x6d, 0x61,
	0x72, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x18, 0x0c,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1c,
	0x0a, 0x09, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x09, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e,
	0x43, 0x6c, 0x6f, 0x73, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0e,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65,
	0x44, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x64, 0x51, 0x75, 0x6f, 0x74,
	0x61, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x55, 0x73, 0x65, 0x64, 0x51, 0x75, 0x6f,
	0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x18,
	0x10, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79,
	0x12, 0x26, 0x0a, 0x0e, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x41, 0x76, 0x67, 0x50, 0x72, 0x69,
	0x63, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65,
	0x41, 0x76, 0x67, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x75, 0x74, 0x75,
	0x72, 0x65, 0x50, 0x4c, 0x18, 0x12, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x46, 0x75, 0x74, 0x75,
	0x72, 0x65, 0x50, 0x4c, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x53, 0x70,
	0x6f, 0x74, 0x51, 0x74, 0x79, 0x18, 0x13, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x50, 0x72, 0x69,
	0x63, 0x65, 0x64, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x74, 0x79, 0x12, 0x2e, 0x0a, 0x12, 0x50, 0x72,
	0x69, 0x63, 0x65, 0x64, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x74, 0x79, 0x4e, 0x6f, 0x54, 0x61, 0x78,
	0x18, 0x14, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x53, 0x70,
	0x6f, 0x74, 0x51, 0x74, 0x79, 0x4e, 0x6f, 0x54, 0x61, 0x78, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x70,
	0x6f, 0x74, 0x61, 0x76, 0x67, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x01,
	0x52, 0x0c, 0x53, 0x70, 0x6f, 0x74, 0x61, 0x76, 0x67, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16,
	0x0a, 0x06, 0x53, 0x70, 0x6f, 0x74, 0x50, 0x4c, 0x18, 0x16, 0x20, 0x01, 0x28, 0x01, 0x52, 0x06,
	0x53, 0x70, 0x6f, 0x74, 0x50, 0x4c, 0x12, 0x20, 0x0a, 0x0b, 0x4e, 0x65, 0x74, 0x45, 0x78, 0x70,
	0x6f, 0x73, 0x75, 0x72, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x4e, 0x65, 0x74,
	0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x4e, 0x65, 0x74, 0x45,
	0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x52, 0x61, 0x74, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28,
	0x01, 0x52, 0x0f, 0x4e, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x52, 0x61,
	0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x4c, 0x18, 0x19, 0x20,
	0x01, 0x28, 0x01, 0x52, 0x07, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x4c, 0x12, 0x1c, 0x0a, 0x09,
	0x4f, 0x70, 0x65, 0x6e, 0x42, 0x61, 0x73, 0x69, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x01, 0x52,
	0x09, 0x4f, 0x70, 0x65, 0x6e, 0x42, 0x61, 0x73, 0x69, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x75,
	0x72, 0x42, 0x61, 0x73, 0x69, 0x73, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x43, 0x75,
	0x72, 0x42, 0x61, 0x73, 0x69, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x61, 0x73, 0x69, 0x73, 0x43,
	0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x4c, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x42,
	0x61, 0x73, 0x69, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x4c, 0x12, 0x24, 0x0a, 0x0d,
	0x4e, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x50, 0x4c, 0x18, 0x1d, 0x20,
	0x01, 0x28, 0x01, 0x52, 0x0d, 0x4e, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65,
	0x50, 0x4c, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x70, 0x6f, 0x74, 0x55, 0x73, 0x65, 0x64, 0x51, 0x75,
	0x6f, 0x74, 0x61, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x53, 0x70, 0x6f, 0x74, 0x55,
	0x73, 0x65, 0x64, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x12, 0x24, 0x0a, 0x0d, 0x46, 0x75, 0x74, 0x75,
	0x72, 0x65, 0x4f, 0x70, 0x65, 0x6e, 0x51, 0x74, 0x79, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x01, 0x52,
	0x0d, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x70, 0x65, 0x6e, 0x51, 0x74, 0x79, 0x12, 0x2a,
	0x0a, 0x10, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x70, 0x65, 0x6e, 0x41, 0x6d, 0x6f, 0x75,
	0x6e, 0x74, 0x18, 0x20, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65,
	0x4f, 0x70, 0x65, 0x6e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x46, 0x75,
	0x74, 0x75, 0x72, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x51, 0x74, 0x79, 0x18, 0x21, 0x20, 0x01,
	0x28, 0x01, 0x52, 0x0e, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x51,
	0x74, 0x79, 0x12, 0x2c, 0x0a, 0x11, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6c, 0x6f, 0x73,
	0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x22, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x46,
	0x75, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74,
	0x12, 0x24, 0x0a, 0x0d, 0x53, 0x70, 0x6f, 0x74, 0x42, 0x75, 0x79, 0x41, 0x6d, 0x6f, 0x75, 0x6e,
	0x74, 0x18, 0x23, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x53, 0x70, 0x6f, 0x74, 0x42, 0x75, 0x79,
	0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x70, 0x6f, 0x74, 0x42, 0x75,
	0x79, 0x51, 0x74, 0x79, 0x18, 0x24, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x53, 0x70, 0x6f, 0x74,
	0x42, 0x75, 0x79, 0x51, 0x74, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x70, 0x6f, 0x74, 0x53, 0x65,
	0x6c, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x25, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e,
	0x53, 0x70, 0x6f, 0x74, 0x53, 0x65, 0x6c, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20,
	0x0a, 0x0b, 0x53, 0x70, 0x6f, 0x74, 0x53, 0x65, 0x6c, 0x6c, 0x51, 0x74, 0x79, 0x18, 0x26, 0x20,
	0x01, 0x28, 0x01, 0x52, 0x0b, 0x53, 0x70, 0x6f, 0x74, 0x53, 0x65, 0x6c, 0x6c, 0x51, 0x74, 0x79,
	0x12, 0x28, 0x0a, 0x0a, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x27,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x0a,
	0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x53,
	0x4e, 0x61, 0x6d, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x41, 0x53, 0x4e, 0x61,
	0x6d, 0x65, 0x22, 0xd1, 0x03, 0x0a, 0x0d, 0x45, 0x72, 0x6d, 0x63, 0x70, 0x41, 0x72, 0x65, 0x61,
	0x53, 0x70, 0x6f, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x57, 0x72, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61,
	0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x57, 0x72, 0x53, 0x74,
	0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x65, 0x61,
	0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x41, 0x72,
	0x65, 0x61, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x4f, 0x72, 0x69, 0x42,
	0x75, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52,
	0x0d, 0x4f, 0x72, 0x69, 0x42, 0x75, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x12, 0x28,
	0x0a, 0x0f, 0x4f, 0x72, 0x69, 0x42, 0x75, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74,
	0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x4f, 0x72, 0x69, 0x42, 0x75, 0x79, 0x50,
	0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x72, 0x69, 0x53,
	0x65, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01,
	0x52, 0x0e, 0x4f, 0x72, 0x69, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79,
	0x12, 0x2a, 0x0a, 0x10, 0x4f, 0x72, 0x69, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65,
	0x64, 0x51, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x4f, 0x72, 0x69, 0x53,
	0x65, 0x6c, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x12, 0x1e, 0x0a, 0x0a,
	0x42, 0x75, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01,
	0x52, 0x0a, 0x42, 0x75, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c,
	0x42, 0x75, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01,
	0x28, 0x01, 0x52, 0x0c, 0x42, 0x75, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79,
	0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x18,
	0x09, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x51,
	0x74, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64,
	0x51, 0x74, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x53, 0x65, 0x6c, 0x6c, 0x50,
	0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x6f, 0x74, 0x61,
	0x6c, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c,
	0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x74, 0x79, 0x12, 0x28, 0x0a, 0x0a,
	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xf5, 0x06, 0x0a, 0x11, 0x45, 0x72, 0x6d, 0x63, 0x70,
	0x41, 0x72, 0x65, 0x61, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x12, 0x24, 0x0a, 0x0d,
	0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0d, 0x52, 0x0d, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x47, 0x6f, 0x6f, 0x64, 0x73,
	0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x65, 0x61, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x41, 0x72, 0x65, 0x61, 0x55, 0x73, 0x65, 0x72,
	0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x4f, 0x72, 0x69, 0x42, 0x75, 0x79, 0x50, 0x6c, 0x61, 0x6e,
	0x51, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x4f, 0x72, 0x69, 0x42, 0x75,
	0x79, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x12, 0x28, 0x0a, 0x0f, 0x4f, 0x72, 0x69, 0x42,
	0x75, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x01, 0x52, 0x0f, 0x4f, 0x72, 0x69, 0x42, 0x75, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51,
	0x74, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x72, 0x69, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x6c, 0x61,
	0x6e, 0x51, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x4f, 0x72, 0x69, 0x53,
	0x65, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x10, 0x4f, 0x72,
	0x69, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x4f, 0x72, 0x69, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x72, 0x69,
	0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x12, 0x28, 0x0a, 0x0f, 0x4f, 0x72, 0x69, 0x42, 0x75, 0x79,
	0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x0f, 0x4f, 0x72, 0x69, 0x42, 0x75, 0x79, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79,
	0x12, 0x2a, 0x0a, 0x10, 0x4f, 0x72, 0x69, 0x53, 0x65, 0x6c, 0x6c, 0x46, 0x75, 0x74, 0x75, 0x72,
	0x65, 0x51, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x4f, 0x72, 0x69, 0x53,
	0x65, 0x6c, 0x6c, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x12, 0x1e, 0x0a, 0x0a,
	0x42, 0x75, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01,
	0x52, 0x0a, 0x42, 0x75, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c,
	0x42, 0x75, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x18, 0x0a, 0x20, 0x01,
	0x28, 0x01, 0x52, 0x0c, 0x42, 0x75, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79,
	0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x18,
	0x0b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x51,
	0x74, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64,
	0x51, 0x74, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x53, 0x65, 0x6c, 0x6c, 0x50,
	0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x75, 0x79, 0x46,
	0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c,
	0x42, 0x75, 0x79, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x12, 0x24, 0x0a, 0x0d,
	0x53, 0x65, 0x6c, 0x6c, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x18, 0x0e, 0x20,
	0x01, 0x28, 0x01, 0x52, 0x0d, 0x53, 0x65, 0x6c, 0x6c, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51,
	0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x6f, 0x74, 0x51,
	0x74, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53,
	0x70, 0x6f, 0x74, 0x51, 0x74, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x46,
	0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e,
	0x54, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x12, 0x24,
	0x0a, 0x0d, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x18,
	0x11, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f,
	0x73, 0x75, 0x72, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x48, 0x65, 0x64,
	0x67, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x12, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x54,
	0x6f, 0x74, 0x61, 0x6c, 0x48, 0x65, 0x64, 0x67, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x2c,
	0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x65, 0x65, 0x64, 0x48, 0x65, 0x64, 0x67, 0x65,
	0x51, 0x74, 0x79, 0x18, 0x13, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c,
	0x4e, 0x65, 0x65, 0x64, 0x48, 0x65, 0x64, 0x67, 0x65, 0x51, 0x74, 0x79, 0x12, 0x2e, 0x0a, 0x12,
	0x4e, 0x65, 0x65, 0x64, 0x48, 0x65, 0x64, 0x67, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x6f, 0x75,
	0x72, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x4e, 0x65, 0x65, 0x64, 0x48, 0x65,
	0x64, 0x67, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x6f, 0x75, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x0e,
	0x4e, 0x65, 0x65, 0x64, 0x48, 0x65, 0x64, 0x67, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x15,
	0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x4e, 0x65, 0x65, 0x64, 0x48, 0x65, 0x64, 0x67, 0x65, 0x52,
	0x61, 0x74, 0x69, 0x6f, 0x12, 0x28, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69,
	0x6d, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x61,
	0x74, 0x65, 0x52, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65,
}

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, 6)
var file_mtp2_proto_goTypes = []interface{}{
	(*TradeRule)(nil),              // 0: pb.TradeRule
	(*TradeRuleInfoStruct)(nil),    // 1: pb.TradeRuleInfoStruct
	(*Date)(nil),                   // 2: pb.Date
	(*Erms2ArbitrageStrategy)(nil), // 3: pb.Erms2ArbitrageStrategy
	(*ErmcpAreaSpot)(nil),          // 4: pb.ErmcpAreaSpot
	(*ErmcpAreaExposure)(nil),      // 5: pb.ErmcpAreaExposure
}
var file_mtp2_proto_depIdxs = []int32{
	0, // 0: pb.TradeRuleInfoStruct.TradeRules:type_name -> pb.TradeRule
	2, // 1: pb.Erms2ArbitrageStrategy.UpDatetime:type_name -> pb.Date
	2, // 2: pb.ErmcpAreaSpot.UpdateTime:type_name -> pb.Date
	2, // 3: pb.ErmcpAreaExposure.UpdateTime:type_name -> pb.Date
	4, // [4:4] is the sub-list for method output_type
	4, // [4:4] is the sub-list for method input_type
	4, // [4:4] is the sub-list for extension type_name
	4, // [4:4] is the sub-list for extension extendee
	0, // [0:4] is the sub-list for field type_name
}

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.(*TradeRule); 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.(*TradeRuleInfoStruct); 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.(*Date); 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.(*Erms2ArbitrageStrategy); 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.(*ErmcpAreaSpot); 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.(*ErmcpAreaExposure); 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:   6,
			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
}
