// Code generated by protoc-gen-go. DO NOT EDIT.
// source: plan.proto

package planpb

import (
	fmt "fmt"
	proto "github.com/golang/protobuf/proto"
	schemapb "github.com/milvus-io/milvus/internal/proto/schemapb"
	math "math"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

type OpType int32

const (
	OpType_Invalid      OpType = 0
	OpType_GreaterThan  OpType = 1
	OpType_GreaterEqual OpType = 2
	OpType_LessThan     OpType = 3
	OpType_LessEqual    OpType = 4
	OpType_Equal        OpType = 5
	OpType_NotEqual     OpType = 6
)

var OpType_name = map[int32]string{
	0: "Invalid",
	1: "GreaterThan",
	2: "GreaterEqual",
	3: "LessThan",
	4: "LessEqual",
	5: "Equal",
	6: "NotEqual",
}

var OpType_value = map[string]int32{
	"Invalid":      0,
	"GreaterThan":  1,
	"GreaterEqual": 2,
	"LessThan":     3,
	"LessEqual":    4,
	"Equal":        5,
	"NotEqual":     6,
}

func (x OpType) String() string {
	return proto.EnumName(OpType_name, int32(x))
}

func (OpType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{0}
}

type UnaryExpr_UnaryOp int32

const (
	UnaryExpr_Invalid UnaryExpr_UnaryOp = 0
	UnaryExpr_Not     UnaryExpr_UnaryOp = 1
)

var UnaryExpr_UnaryOp_name = map[int32]string{
	0: "Invalid",
	1: "Not",
}

var UnaryExpr_UnaryOp_value = map[string]int32{
	"Invalid": 0,
	"Not":     1,
}

func (x UnaryExpr_UnaryOp) String() string {
	return proto.EnumName(UnaryExpr_UnaryOp_name, int32(x))
}

func (UnaryExpr_UnaryOp) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{7, 0}
}

type BinaryExpr_BinaryOp int32

const (
	BinaryExpr_Invalid    BinaryExpr_BinaryOp = 0
	BinaryExpr_LogicalAnd BinaryExpr_BinaryOp = 1
	BinaryExpr_LogicalOr  BinaryExpr_BinaryOp = 2
)

var BinaryExpr_BinaryOp_name = map[int32]string{
	0: "Invalid",
	1: "LogicalAnd",
	2: "LogicalOr",
}

var BinaryExpr_BinaryOp_value = map[string]int32{
	"Invalid":    0,
	"LogicalAnd": 1,
	"LogicalOr":  2,
}

func (x BinaryExpr_BinaryOp) String() string {
	return proto.EnumName(BinaryExpr_BinaryOp_name, int32(x))
}

func (BinaryExpr_BinaryOp) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{8, 0}
}

type GenericValue struct {
	// Types that are valid to be assigned to Val:
	//	*GenericValue_BoolVal
	//	*GenericValue_Int64Val
	//	*GenericValue_FloatVal
	Val                  isGenericValue_Val `protobuf_oneof:"val"`
	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
	XXX_unrecognized     []byte             `json:"-"`
	XXX_sizecache        int32              `json:"-"`
}

func (m *GenericValue) Reset()         { *m = GenericValue{} }
func (m *GenericValue) String() string { return proto.CompactTextString(m) }
func (*GenericValue) ProtoMessage()    {}
func (*GenericValue) Descriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{0}
}

func (m *GenericValue) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GenericValue.Unmarshal(m, b)
}
func (m *GenericValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GenericValue.Marshal(b, m, deterministic)
}
func (m *GenericValue) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GenericValue.Merge(m, src)
}
func (m *GenericValue) XXX_Size() int {
	return xxx_messageInfo_GenericValue.Size(m)
}
func (m *GenericValue) XXX_DiscardUnknown() {
	xxx_messageInfo_GenericValue.DiscardUnknown(m)
}

var xxx_messageInfo_GenericValue proto.InternalMessageInfo

type isGenericValue_Val interface {
	isGenericValue_Val()
}

type GenericValue_BoolVal struct {
	BoolVal bool `protobuf:"varint,1,opt,name=bool_val,json=boolVal,proto3,oneof"`
}

type GenericValue_Int64Val struct {
	Int64Val int64 `protobuf:"varint,2,opt,name=int64_val,json=int64Val,proto3,oneof"`
}

type GenericValue_FloatVal struct {
	FloatVal float64 `protobuf:"fixed64,3,opt,name=float_val,json=floatVal,proto3,oneof"`
}

func (*GenericValue_BoolVal) isGenericValue_Val() {}

func (*GenericValue_Int64Val) isGenericValue_Val() {}

func (*GenericValue_FloatVal) isGenericValue_Val() {}

func (m *GenericValue) GetVal() isGenericValue_Val {
	if m != nil {
		return m.Val
	}
	return nil
}

func (m *GenericValue) GetBoolVal() bool {
	if x, ok := m.GetVal().(*GenericValue_BoolVal); ok {
		return x.BoolVal
	}
	return false
}

func (m *GenericValue) GetInt64Val() int64 {
	if x, ok := m.GetVal().(*GenericValue_Int64Val); ok {
		return x.Int64Val
	}
	return 0
}

func (m *GenericValue) GetFloatVal() float64 {
	if x, ok := m.GetVal().(*GenericValue_FloatVal); ok {
		return x.FloatVal
	}
	return 0
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*GenericValue) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*GenericValue_BoolVal)(nil),
		(*GenericValue_Int64Val)(nil),
		(*GenericValue_FloatVal)(nil),
	}
}

type QueryInfo struct {
	Topk                 int64    `protobuf:"varint,1,opt,name=topk,proto3" json:"topk,omitempty"`
	MetricType           string   `protobuf:"bytes,3,opt,name=metric_type,json=metricType,proto3" json:"metric_type,omitempty"`
	SearchParams         string   `protobuf:"bytes,4,opt,name=search_params,json=searchParams,proto3" json:"search_params,omitempty"`
	RoundDecimal         int64    `protobuf:"varint,5,opt,name=round_decimal,json=roundDecimal,proto3" json:"round_decimal,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *QueryInfo) Reset()         { *m = QueryInfo{} }
func (m *QueryInfo) String() string { return proto.CompactTextString(m) }
func (*QueryInfo) ProtoMessage()    {}
func (*QueryInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{1}
}

func (m *QueryInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QueryInfo.Unmarshal(m, b)
}
func (m *QueryInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QueryInfo.Marshal(b, m, deterministic)
}
func (m *QueryInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QueryInfo.Merge(m, src)
}
func (m *QueryInfo) XXX_Size() int {
	return xxx_messageInfo_QueryInfo.Size(m)
}
func (m *QueryInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_QueryInfo.DiscardUnknown(m)
}

var xxx_messageInfo_QueryInfo proto.InternalMessageInfo

func (m *QueryInfo) GetTopk() int64 {
	if m != nil {
		return m.Topk
	}
	return 0
}

func (m *QueryInfo) GetMetricType() string {
	if m != nil {
		return m.MetricType
	}
	return ""
}

func (m *QueryInfo) GetSearchParams() string {
	if m != nil {
		return m.SearchParams
	}
	return ""
}

func (m *QueryInfo) GetRoundDecimal() int64 {
	if m != nil {
		return m.RoundDecimal
	}
	return 0
}

type ColumnInfo struct {
	FieldId              int64             `protobuf:"varint,1,opt,name=field_id,json=fieldId,proto3" json:"field_id,omitempty"`
	DataType             schemapb.DataType `protobuf:"varint,2,opt,name=data_type,json=dataType,proto3,enum=milvus.proto.schema.DataType" json:"data_type,omitempty"`
	IsPrimaryKey         bool              `protobuf:"varint,3,opt,name=is_primary_key,json=isPrimaryKey,proto3" json:"is_primary_key,omitempty"`
	IsAutoID             bool              `protobuf:"varint,4,opt,name=is_autoID,json=isAutoID,proto3" json:"is_autoID,omitempty"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *ColumnInfo) Reset()         { *m = ColumnInfo{} }
func (m *ColumnInfo) String() string { return proto.CompactTextString(m) }
func (*ColumnInfo) ProtoMessage()    {}
func (*ColumnInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{2}
}

func (m *ColumnInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ColumnInfo.Unmarshal(m, b)
}
func (m *ColumnInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ColumnInfo.Marshal(b, m, deterministic)
}
func (m *ColumnInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ColumnInfo.Merge(m, src)
}
func (m *ColumnInfo) XXX_Size() int {
	return xxx_messageInfo_ColumnInfo.Size(m)
}
func (m *ColumnInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_ColumnInfo.DiscardUnknown(m)
}

var xxx_messageInfo_ColumnInfo proto.InternalMessageInfo

func (m *ColumnInfo) GetFieldId() int64 {
	if m != nil {
		return m.FieldId
	}
	return 0
}

func (m *ColumnInfo) GetDataType() schemapb.DataType {
	if m != nil {
		return m.DataType
	}
	return schemapb.DataType_None
}

func (m *ColumnInfo) GetIsPrimaryKey() bool {
	if m != nil {
		return m.IsPrimaryKey
	}
	return false
}

func (m *ColumnInfo) GetIsAutoID() bool {
	if m != nil {
		return m.IsAutoID
	}
	return false
}

type UnaryRangeExpr struct {
	ColumnInfo           *ColumnInfo   `protobuf:"bytes,1,opt,name=column_info,json=columnInfo,proto3" json:"column_info,omitempty"`
	Op                   OpType        `protobuf:"varint,2,opt,name=op,proto3,enum=milvus.proto.plan.OpType" json:"op,omitempty"`
	Value                *GenericValue `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *UnaryRangeExpr) Reset()         { *m = UnaryRangeExpr{} }
func (m *UnaryRangeExpr) String() string { return proto.CompactTextString(m) }
func (*UnaryRangeExpr) ProtoMessage()    {}
func (*UnaryRangeExpr) Descriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{3}
}

func (m *UnaryRangeExpr) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UnaryRangeExpr.Unmarshal(m, b)
}
func (m *UnaryRangeExpr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UnaryRangeExpr.Marshal(b, m, deterministic)
}
func (m *UnaryRangeExpr) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UnaryRangeExpr.Merge(m, src)
}
func (m *UnaryRangeExpr) XXX_Size() int {
	return xxx_messageInfo_UnaryRangeExpr.Size(m)
}
func (m *UnaryRangeExpr) XXX_DiscardUnknown() {
	xxx_messageInfo_UnaryRangeExpr.DiscardUnknown(m)
}

var xxx_messageInfo_UnaryRangeExpr proto.InternalMessageInfo

func (m *UnaryRangeExpr) GetColumnInfo() *ColumnInfo {
	if m != nil {
		return m.ColumnInfo
	}
	return nil
}

func (m *UnaryRangeExpr) GetOp() OpType {
	if m != nil {
		return m.Op
	}
	return OpType_Invalid
}

func (m *UnaryRangeExpr) GetValue() *GenericValue {
	if m != nil {
		return m.Value
	}
	return nil
}

type BinaryRangeExpr struct {
	ColumnInfo           *ColumnInfo   `protobuf:"bytes,1,opt,name=column_info,json=columnInfo,proto3" json:"column_info,omitempty"`
	LowerInclusive       bool          `protobuf:"varint,2,opt,name=lower_inclusive,json=lowerInclusive,proto3" json:"lower_inclusive,omitempty"`
	UpperInclusive       bool          `protobuf:"varint,3,opt,name=upper_inclusive,json=upperInclusive,proto3" json:"upper_inclusive,omitempty"`
	LowerValue           *GenericValue `protobuf:"bytes,4,opt,name=lower_value,json=lowerValue,proto3" json:"lower_value,omitempty"`
	UpperValue           *GenericValue `protobuf:"bytes,5,opt,name=upper_value,json=upperValue,proto3" json:"upper_value,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *BinaryRangeExpr) Reset()         { *m = BinaryRangeExpr{} }
func (m *BinaryRangeExpr) String() string { return proto.CompactTextString(m) }
func (*BinaryRangeExpr) ProtoMessage()    {}
func (*BinaryRangeExpr) Descriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{4}
}

func (m *BinaryRangeExpr) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_BinaryRangeExpr.Unmarshal(m, b)
}
func (m *BinaryRangeExpr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_BinaryRangeExpr.Marshal(b, m, deterministic)
}
func (m *BinaryRangeExpr) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BinaryRangeExpr.Merge(m, src)
}
func (m *BinaryRangeExpr) XXX_Size() int {
	return xxx_messageInfo_BinaryRangeExpr.Size(m)
}
func (m *BinaryRangeExpr) XXX_DiscardUnknown() {
	xxx_messageInfo_BinaryRangeExpr.DiscardUnknown(m)
}

var xxx_messageInfo_BinaryRangeExpr proto.InternalMessageInfo

func (m *BinaryRangeExpr) GetColumnInfo() *ColumnInfo {
	if m != nil {
		return m.ColumnInfo
	}
	return nil
}

func (m *BinaryRangeExpr) GetLowerInclusive() bool {
	if m != nil {
		return m.LowerInclusive
	}
	return false
}

func (m *BinaryRangeExpr) GetUpperInclusive() bool {
	if m != nil {
		return m.UpperInclusive
	}
	return false
}

func (m *BinaryRangeExpr) GetLowerValue() *GenericValue {
	if m != nil {
		return m.LowerValue
	}
	return nil
}

func (m *BinaryRangeExpr) GetUpperValue() *GenericValue {
	if m != nil {
		return m.UpperValue
	}
	return nil
}

type CompareExpr struct {
	LeftColumnInfo       *ColumnInfo `protobuf:"bytes,1,opt,name=left_column_info,json=leftColumnInfo,proto3" json:"left_column_info,omitempty"`
	RightColumnInfo      *ColumnInfo `protobuf:"bytes,2,opt,name=right_column_info,json=rightColumnInfo,proto3" json:"right_column_info,omitempty"`
	Op                   OpType      `protobuf:"varint,3,opt,name=op,proto3,enum=milvus.proto.plan.OpType" json:"op,omitempty"`
	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
	XXX_unrecognized     []byte      `json:"-"`
	XXX_sizecache        int32       `json:"-"`
}

func (m *CompareExpr) Reset()         { *m = CompareExpr{} }
func (m *CompareExpr) String() string { return proto.CompactTextString(m) }
func (*CompareExpr) ProtoMessage()    {}
func (*CompareExpr) Descriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{5}
}

func (m *CompareExpr) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CompareExpr.Unmarshal(m, b)
}
func (m *CompareExpr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CompareExpr.Marshal(b, m, deterministic)
}
func (m *CompareExpr) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CompareExpr.Merge(m, src)
}
func (m *CompareExpr) XXX_Size() int {
	return xxx_messageInfo_CompareExpr.Size(m)
}
func (m *CompareExpr) XXX_DiscardUnknown() {
	xxx_messageInfo_CompareExpr.DiscardUnknown(m)
}

var xxx_messageInfo_CompareExpr proto.InternalMessageInfo

func (m *CompareExpr) GetLeftColumnInfo() *ColumnInfo {
	if m != nil {
		return m.LeftColumnInfo
	}
	return nil
}

func (m *CompareExpr) GetRightColumnInfo() *ColumnInfo {
	if m != nil {
		return m.RightColumnInfo
	}
	return nil
}

func (m *CompareExpr) GetOp() OpType {
	if m != nil {
		return m.Op
	}
	return OpType_Invalid
}

type TermExpr struct {
	ColumnInfo           *ColumnInfo     `protobuf:"bytes,1,opt,name=column_info,json=columnInfo,proto3" json:"column_info,omitempty"`
	Values               []*GenericValue `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *TermExpr) Reset()         { *m = TermExpr{} }
func (m *TermExpr) String() string { return proto.CompactTextString(m) }
func (*TermExpr) ProtoMessage()    {}
func (*TermExpr) Descriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{6}
}

func (m *TermExpr) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TermExpr.Unmarshal(m, b)
}
func (m *TermExpr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TermExpr.Marshal(b, m, deterministic)
}
func (m *TermExpr) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TermExpr.Merge(m, src)
}
func (m *TermExpr) XXX_Size() int {
	return xxx_messageInfo_TermExpr.Size(m)
}
func (m *TermExpr) XXX_DiscardUnknown() {
	xxx_messageInfo_TermExpr.DiscardUnknown(m)
}

var xxx_messageInfo_TermExpr proto.InternalMessageInfo

func (m *TermExpr) GetColumnInfo() *ColumnInfo {
	if m != nil {
		return m.ColumnInfo
	}
	return nil
}

func (m *TermExpr) GetValues() []*GenericValue {
	if m != nil {
		return m.Values
	}
	return nil
}

type UnaryExpr struct {
	Op                   UnaryExpr_UnaryOp `protobuf:"varint,1,opt,name=op,proto3,enum=milvus.proto.plan.UnaryExpr_UnaryOp" json:"op,omitempty"`
	Child                *Expr             `protobuf:"bytes,2,opt,name=child,proto3" json:"child,omitempty"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *UnaryExpr) Reset()         { *m = UnaryExpr{} }
func (m *UnaryExpr) String() string { return proto.CompactTextString(m) }
func (*UnaryExpr) ProtoMessage()    {}
func (*UnaryExpr) Descriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{7}
}

func (m *UnaryExpr) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UnaryExpr.Unmarshal(m, b)
}
func (m *UnaryExpr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UnaryExpr.Marshal(b, m, deterministic)
}
func (m *UnaryExpr) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UnaryExpr.Merge(m, src)
}
func (m *UnaryExpr) XXX_Size() int {
	return xxx_messageInfo_UnaryExpr.Size(m)
}
func (m *UnaryExpr) XXX_DiscardUnknown() {
	xxx_messageInfo_UnaryExpr.DiscardUnknown(m)
}

var xxx_messageInfo_UnaryExpr proto.InternalMessageInfo

func (m *UnaryExpr) GetOp() UnaryExpr_UnaryOp {
	if m != nil {
		return m.Op
	}
	return UnaryExpr_Invalid
}

func (m *UnaryExpr) GetChild() *Expr {
	if m != nil {
		return m.Child
	}
	return nil
}

type BinaryExpr struct {
	Op                   BinaryExpr_BinaryOp `protobuf:"varint,1,opt,name=op,proto3,enum=milvus.proto.plan.BinaryExpr_BinaryOp" json:"op,omitempty"`
	Left                 *Expr               `protobuf:"bytes,2,opt,name=left,proto3" json:"left,omitempty"`
	Right                *Expr               `protobuf:"bytes,3,opt,name=right,proto3" json:"right,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

func (m *BinaryExpr) Reset()         { *m = BinaryExpr{} }
func (m *BinaryExpr) String() string { return proto.CompactTextString(m) }
func (*BinaryExpr) ProtoMessage()    {}
func (*BinaryExpr) Descriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{8}
}

func (m *BinaryExpr) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_BinaryExpr.Unmarshal(m, b)
}
func (m *BinaryExpr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_BinaryExpr.Marshal(b, m, deterministic)
}
func (m *BinaryExpr) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BinaryExpr.Merge(m, src)
}
func (m *BinaryExpr) XXX_Size() int {
	return xxx_messageInfo_BinaryExpr.Size(m)
}
func (m *BinaryExpr) XXX_DiscardUnknown() {
	xxx_messageInfo_BinaryExpr.DiscardUnknown(m)
}

var xxx_messageInfo_BinaryExpr proto.InternalMessageInfo

func (m *BinaryExpr) GetOp() BinaryExpr_BinaryOp {
	if m != nil {
		return m.Op
	}
	return BinaryExpr_Invalid
}

func (m *BinaryExpr) GetLeft() *Expr {
	if m != nil {
		return m.Left
	}
	return nil
}

func (m *BinaryExpr) GetRight() *Expr {
	if m != nil {
		return m.Right
	}
	return nil
}

type Expr struct {
	// Types that are valid to be assigned to Expr:
	//	*Expr_TermExpr
	//	*Expr_UnaryExpr
	//	*Expr_BinaryExpr
	//	*Expr_CompareExpr
	//	*Expr_UnaryRangeExpr
	//	*Expr_BinaryRangeExpr
	Expr                 isExpr_Expr `protobuf_oneof:"expr"`
	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
	XXX_unrecognized     []byte      `json:"-"`
	XXX_sizecache        int32       `json:"-"`
}

func (m *Expr) Reset()         { *m = Expr{} }
func (m *Expr) String() string { return proto.CompactTextString(m) }
func (*Expr) ProtoMessage()    {}
func (*Expr) Descriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{9}
}

func (m *Expr) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Expr.Unmarshal(m, b)
}
func (m *Expr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Expr.Marshal(b, m, deterministic)
}
func (m *Expr) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Expr.Merge(m, src)
}
func (m *Expr) XXX_Size() int {
	return xxx_messageInfo_Expr.Size(m)
}
func (m *Expr) XXX_DiscardUnknown() {
	xxx_messageInfo_Expr.DiscardUnknown(m)
}

var xxx_messageInfo_Expr proto.InternalMessageInfo

type isExpr_Expr interface {
	isExpr_Expr()
}

type Expr_TermExpr struct {
	TermExpr *TermExpr `protobuf:"bytes,1,opt,name=term_expr,json=termExpr,proto3,oneof"`
}

type Expr_UnaryExpr struct {
	UnaryExpr *UnaryExpr `protobuf:"bytes,2,opt,name=unary_expr,json=unaryExpr,proto3,oneof"`
}

type Expr_BinaryExpr struct {
	BinaryExpr *BinaryExpr `protobuf:"bytes,3,opt,name=binary_expr,json=binaryExpr,proto3,oneof"`
}

type Expr_CompareExpr struct {
	CompareExpr *CompareExpr `protobuf:"bytes,4,opt,name=compare_expr,json=compareExpr,proto3,oneof"`
}

type Expr_UnaryRangeExpr struct {
	UnaryRangeExpr *UnaryRangeExpr `protobuf:"bytes,5,opt,name=unary_range_expr,json=unaryRangeExpr,proto3,oneof"`
}

type Expr_BinaryRangeExpr struct {
	BinaryRangeExpr *BinaryRangeExpr `protobuf:"bytes,6,opt,name=binary_range_expr,json=binaryRangeExpr,proto3,oneof"`
}

func (*Expr_TermExpr) isExpr_Expr() {}

func (*Expr_UnaryExpr) isExpr_Expr() {}

func (*Expr_BinaryExpr) isExpr_Expr() {}

func (*Expr_CompareExpr) isExpr_Expr() {}

func (*Expr_UnaryRangeExpr) isExpr_Expr() {}

func (*Expr_BinaryRangeExpr) isExpr_Expr() {}

func (m *Expr) GetExpr() isExpr_Expr {
	if m != nil {
		return m.Expr
	}
	return nil
}

func (m *Expr) GetTermExpr() *TermExpr {
	if x, ok := m.GetExpr().(*Expr_TermExpr); ok {
		return x.TermExpr
	}
	return nil
}

func (m *Expr) GetUnaryExpr() *UnaryExpr {
	if x, ok := m.GetExpr().(*Expr_UnaryExpr); ok {
		return x.UnaryExpr
	}
	return nil
}

func (m *Expr) GetBinaryExpr() *BinaryExpr {
	if x, ok := m.GetExpr().(*Expr_BinaryExpr); ok {
		return x.BinaryExpr
	}
	return nil
}

func (m *Expr) GetCompareExpr() *CompareExpr {
	if x, ok := m.GetExpr().(*Expr_CompareExpr); ok {
		return x.CompareExpr
	}
	return nil
}

func (m *Expr) GetUnaryRangeExpr() *UnaryRangeExpr {
	if x, ok := m.GetExpr().(*Expr_UnaryRangeExpr); ok {
		return x.UnaryRangeExpr
	}
	return nil
}

func (m *Expr) GetBinaryRangeExpr() *BinaryRangeExpr {
	if x, ok := m.GetExpr().(*Expr_BinaryRangeExpr); ok {
		return x.BinaryRangeExpr
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*Expr) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*Expr_TermExpr)(nil),
		(*Expr_UnaryExpr)(nil),
		(*Expr_BinaryExpr)(nil),
		(*Expr_CompareExpr)(nil),
		(*Expr_UnaryRangeExpr)(nil),
		(*Expr_BinaryRangeExpr)(nil),
	}
}

type VectorANNS struct {
	IsBinary             bool       `protobuf:"varint,1,opt,name=is_binary,json=isBinary,proto3" json:"is_binary,omitempty"`
	FieldId              int64      `protobuf:"varint,2,opt,name=field_id,json=fieldId,proto3" json:"field_id,omitempty"`
	Predicates           *Expr      `protobuf:"bytes,3,opt,name=predicates,proto3" json:"predicates,omitempty"`
	QueryInfo            *QueryInfo `protobuf:"bytes,4,opt,name=query_info,json=queryInfo,proto3" json:"query_info,omitempty"`
	PlaceholderTag       string     `protobuf:"bytes,5,opt,name=placeholder_tag,json=placeholderTag,proto3" json:"placeholder_tag,omitempty"`
	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
	XXX_unrecognized     []byte     `json:"-"`
	XXX_sizecache        int32      `json:"-"`
}

func (m *VectorANNS) Reset()         { *m = VectorANNS{} }
func (m *VectorANNS) String() string { return proto.CompactTextString(m) }
func (*VectorANNS) ProtoMessage()    {}
func (*VectorANNS) Descriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{10}
}

func (m *VectorANNS) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_VectorANNS.Unmarshal(m, b)
}
func (m *VectorANNS) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_VectorANNS.Marshal(b, m, deterministic)
}
func (m *VectorANNS) XXX_Merge(src proto.Message) {
	xxx_messageInfo_VectorANNS.Merge(m, src)
}
func (m *VectorANNS) XXX_Size() int {
	return xxx_messageInfo_VectorANNS.Size(m)
}
func (m *VectorANNS) XXX_DiscardUnknown() {
	xxx_messageInfo_VectorANNS.DiscardUnknown(m)
}

var xxx_messageInfo_VectorANNS proto.InternalMessageInfo

func (m *VectorANNS) GetIsBinary() bool {
	if m != nil {
		return m.IsBinary
	}
	return false
}

func (m *VectorANNS) GetFieldId() int64 {
	if m != nil {
		return m.FieldId
	}
	return 0
}

func (m *VectorANNS) GetPredicates() *Expr {
	if m != nil {
		return m.Predicates
	}
	return nil
}

func (m *VectorANNS) GetQueryInfo() *QueryInfo {
	if m != nil {
		return m.QueryInfo
	}
	return nil
}

func (m *VectorANNS) GetPlaceholderTag() string {
	if m != nil {
		return m.PlaceholderTag
	}
	return ""
}

type PlanNode struct {
	// Types that are valid to be assigned to Node:
	//	*PlanNode_VectorAnns
	//	*PlanNode_Predicates
	Node                 isPlanNode_Node `protobuf_oneof:"node"`
	OutputFieldIds       []int64         `protobuf:"varint,3,rep,packed,name=output_field_ids,json=outputFieldIds,proto3" json:"output_field_ids,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *PlanNode) Reset()         { *m = PlanNode{} }
func (m *PlanNode) String() string { return proto.CompactTextString(m) }
func (*PlanNode) ProtoMessage()    {}
func (*PlanNode) Descriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{11}
}

func (m *PlanNode) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PlanNode.Unmarshal(m, b)
}
func (m *PlanNode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PlanNode.Marshal(b, m, deterministic)
}
func (m *PlanNode) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PlanNode.Merge(m, src)
}
func (m *PlanNode) XXX_Size() int {
	return xxx_messageInfo_PlanNode.Size(m)
}
func (m *PlanNode) XXX_DiscardUnknown() {
	xxx_messageInfo_PlanNode.DiscardUnknown(m)
}

var xxx_messageInfo_PlanNode proto.InternalMessageInfo

type isPlanNode_Node interface {
	isPlanNode_Node()
}

type PlanNode_VectorAnns struct {
	VectorAnns *VectorANNS `protobuf:"bytes,1,opt,name=vector_anns,json=vectorAnns,proto3,oneof"`
}

type PlanNode_Predicates struct {
	Predicates *Expr `protobuf:"bytes,2,opt,name=predicates,proto3,oneof"`
}

func (*PlanNode_VectorAnns) isPlanNode_Node() {}

func (*PlanNode_Predicates) isPlanNode_Node() {}

func (m *PlanNode) GetNode() isPlanNode_Node {
	if m != nil {
		return m.Node
	}
	return nil
}

func (m *PlanNode) GetVectorAnns() *VectorANNS {
	if x, ok := m.GetNode().(*PlanNode_VectorAnns); ok {
		return x.VectorAnns
	}
	return nil
}

func (m *PlanNode) GetPredicates() *Expr {
	if x, ok := m.GetNode().(*PlanNode_Predicates); ok {
		return x.Predicates
	}
	return nil
}

func (m *PlanNode) GetOutputFieldIds() []int64 {
	if m != nil {
		return m.OutputFieldIds
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*PlanNode) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*PlanNode_VectorAnns)(nil),
		(*PlanNode_Predicates)(nil),
	}
}

func init() {
	proto.RegisterEnum("milvus.proto.plan.OpType", OpType_name, OpType_value)
	proto.RegisterEnum("milvus.proto.plan.UnaryExpr_UnaryOp", UnaryExpr_UnaryOp_name, UnaryExpr_UnaryOp_value)
	proto.RegisterEnum("milvus.proto.plan.BinaryExpr_BinaryOp", BinaryExpr_BinaryOp_name, BinaryExpr_BinaryOp_value)
	proto.RegisterType((*GenericValue)(nil), "milvus.proto.plan.GenericValue")
	proto.RegisterType((*QueryInfo)(nil), "milvus.proto.plan.QueryInfo")
	proto.RegisterType((*ColumnInfo)(nil), "milvus.proto.plan.ColumnInfo")
	proto.RegisterType((*UnaryRangeExpr)(nil), "milvus.proto.plan.UnaryRangeExpr")
	proto.RegisterType((*BinaryRangeExpr)(nil), "milvus.proto.plan.BinaryRangeExpr")
	proto.RegisterType((*CompareExpr)(nil), "milvus.proto.plan.CompareExpr")
	proto.RegisterType((*TermExpr)(nil), "milvus.proto.plan.TermExpr")
	proto.RegisterType((*UnaryExpr)(nil), "milvus.proto.plan.UnaryExpr")
	proto.RegisterType((*BinaryExpr)(nil), "milvus.proto.plan.BinaryExpr")
	proto.RegisterType((*Expr)(nil), "milvus.proto.plan.Expr")
	proto.RegisterType((*VectorANNS)(nil), "milvus.proto.plan.VectorANNS")
	proto.RegisterType((*PlanNode)(nil), "milvus.proto.plan.PlanNode")
}

func init() { proto.RegisterFile("plan.proto", fileDescriptor_2d655ab2f7683c23) }

var fileDescriptor_2d655ab2f7683c23 = []byte{
	// 1091 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0xcd, 0x72, 0x1b, 0xc5,
	0x13, 0xd7, 0x6a, 0x25, 0x79, 0xb7, 0xa5, 0x48, 0xca, 0x5e, 0xfe, 0xce, 0x3f, 0x04, 0x9b, 0x25,
	0x45, 0x0c, 0x54, 0xec, 0x22, 0x09, 0x4e, 0x11, 0x0a, 0xca, 0x5f, 0xc1, 0x52, 0x11, 0x6c, 0xb3,
	0x18, 0x1f, 0xb8, 0x6c, 0x8d, 0x76, 0xc7, 0xd2, 0x54, 0x66, 0x77, 0xd6, 0xb3, 0xb3, 0x22, 0x3a,
	0x73, 0xe3, 0xc6, 0x4b, 0xc0, 0x19, 0x6e, 0xbc, 0x03, 0x0f, 0xc0, 0x9d, 0x17, 0xa1, 0xa6, 0x67,
	0xad, 0x8f, 0x94, 0xec, 0x98, 0xaa, 0xdc, 0x66, 0x7e, 0xd3, 0xdd, 0xd3, 0xbf, 0xfe, 0x9a, 0x01,
	0xc8, 0x38, 0x49, 0x37, 0x33, 0x29, 0x94, 0xf0, 0x6e, 0x27, 0x8c, 0x8f, 0x8b, 0xdc, 0xec, 0x36,
	0xf5, 0xc1, 0xff, 0x5b, 0x79, 0x34, 0xa2, 0x09, 0x31, 0x90, 0x9f, 0x41, 0xeb, 0x90, 0xa6, 0x54,
	0xb2, 0xe8, 0x8c, 0xf0, 0x82, 0x7a, 0x77, 0xc1, 0x19, 0x08, 0xc1, 0xc3, 0x31, 0xe1, 0xab, 0xd6,
	0xba, 0xb5, 0xe1, 0xf4, 0x2a, 0xc1, 0x8a, 0x46, 0xce, 0x08, 0xf7, 0xee, 0x81, 0xcb, 0x52, 0xb5,
	0xfd, 0x04, 0x4f, 0xab, 0xeb, 0xd6, 0x86, 0xdd, 0xab, 0x04, 0x0e, 0x42, 0xe5, 0xf1, 0x39, 0x17,
	0x44, 0xe1, 0xb1, 0xbd, 0x6e, 0x6d, 0x58, 0xfa, 0x18, 0xa1, 0x33, 0xc2, 0xf7, 0xea, 0x60, 0x8f,
	0x09, 0xf7, 0x7f, 0xb6, 0xc0, 0xfd, 0xb6, 0xa0, 0x72, 0xd2, 0x4f, 0xcf, 0x85, 0xe7, 0x41, 0x4d,
	0x89, 0xec, 0x25, 0xde, 0x65, 0x07, 0xb8, 0xf6, 0xd6, 0xa0, 0x99, 0x50, 0x25, 0x59, 0x14, 0xaa,
	0x49, 0x46, 0xd1, 0x92, 0x1b, 0x80, 0x81, 0x4e, 0x27, 0x19, 0xf5, 0xde, 0x87, 0x5b, 0x39, 0x25,
	0x32, 0x1a, 0x85, 0x19, 0x91, 0x24, 0xc9, 0x57, 0x6b, 0x28, 0xd2, 0x32, 0xe0, 0x09, 0x62, 0x5a,
	0x48, 0x8a, 0x22, 0x8d, 0xc3, 0x98, 0x46, 0x2c, 0x21, 0x7c, 0xb5, 0x8e, 0x57, 0xb4, 0x10, 0x3c,
	0x30, 0x98, 0xff, 0xab, 0x05, 0xb0, 0x2f, 0x78, 0x91, 0xa4, 0xe8, 0xcd, 0x1d, 0x70, 0xce, 0x19,
	0xe5, 0x71, 0xc8, 0xe2, 0xd2, 0xa3, 0x15, 0xdc, 0xf7, 0x63, 0xef, 0x19, 0xb8, 0x31, 0x51, 0xc4,
	0xb8, 0xa4, 0xb9, 0xb7, 0x1f, 0xdd, 0xdb, 0x5c, 0x88, 0x6e, 0x19, 0xd7, 0x03, 0xa2, 0x88, 0xf6,
	0x32, 0x70, 0xe2, 0x72, 0xe5, 0xdd, 0x87, 0x36, 0xcb, 0xc3, 0x4c, 0xb2, 0x84, 0xc8, 0x49, 0xf8,
	0x92, 0x4e, 0x90, 0x93, 0x13, 0xb4, 0x58, 0x7e, 0x62, 0xc0, 0xaf, 0xe9, 0xc4, 0xbb, 0x0b, 0x2e,
	0xcb, 0x43, 0x52, 0x28, 0xd1, 0x3f, 0x40, 0x46, 0x4e, 0xe0, 0xb0, 0x7c, 0x17, 0xf7, 0xfe, 0x1f,
	0x16, 0xb4, 0xbf, 0x4f, 0x89, 0x9c, 0x04, 0x24, 0x1d, 0xd2, 0xe7, 0xaf, 0x32, 0xe9, 0x7d, 0x09,
	0xcd, 0x08, 0x5d, 0x0f, 0x59, 0x7a, 0x2e, 0xd0, 0xdf, 0xe6, 0xeb, 0x3e, 0x61, 0x29, 0xcc, 0x08,
	0x06, 0x10, 0xcd, 0xc8, 0x7e, 0x08, 0x55, 0x91, 0x95, 0x54, 0xee, 0x2c, 0x51, 0x3b, 0xce, 0x90,
	0x46, 0x55, 0x64, 0xde, 0xa7, 0x50, 0x1f, 0xeb, 0xf2, 0x40, 0xbf, 0x9b, 0x8f, 0xd6, 0x96, 0x48,
	0xcf, 0x57, 0x51, 0x60, 0xa4, 0xfd, 0xdf, 0xaa, 0xd0, 0xd9, 0x63, 0x6f, 0xd7, 0xeb, 0x07, 0xd0,
	0xe1, 0xe2, 0x47, 0x2a, 0x43, 0x96, 0x46, 0xbc, 0xc8, 0xd9, 0xd8, 0x64, 0xc3, 0x09, 0xda, 0x08,
	0xf7, 0x2f, 0x51, 0x2d, 0x58, 0x64, 0xd9, 0x82, 0xa0, 0x89, 0x7a, 0x1b, 0xe1, 0x99, 0xe0, 0x0e,
	0x34, 0x8d, 0x45, 0x43, 0xb1, 0x76, 0x33, 0x8a, 0x80, 0x3a, 0xa6, 0x69, 0x76, 0xa0, 0x69, 0xae,
	0x32, 0x16, 0xea, 0x37, 0xb4, 0x80, 0x3a, 0xb8, 0xf6, 0xff, 0xb2, 0xa0, 0xb9, 0x2f, 0x92, 0x8c,
	0x48, 0x13, 0xa5, 0x43, 0xe8, 0x72, 0x7a, 0xae, 0xc2, 0xff, 0x1c, 0xaa, 0xb6, 0x56, 0x9b, 0xab,
	0xe8, 0x3e, 0xdc, 0x96, 0x6c, 0x38, 0x5a, 0xb4, 0x54, 0xbd, 0x89, 0xa5, 0x0e, 0xea, 0xed, 0xbf,
	0x5e, 0x2f, 0xf6, 0x0d, 0xea, 0xc5, 0xff, 0xc9, 0x02, 0xe7, 0x94, 0xca, 0xe4, 0xad, 0x64, 0xfc,
	0x29, 0x34, 0x30, 0xae, 0xf9, 0x6a, 0x75, 0xdd, 0xbe, 0x49, 0x60, 0x4b, 0x71, 0xff, 0x17, 0x0b,
	0x5c, 0xec, 0x19, 0x74, 0xe3, 0x09, 0xba, 0x6f, 0xa1, 0xfb, 0xf7, 0x97, 0x98, 0x98, 0x4a, 0x9a,
	0xd5, 0x71, 0x86, 0x95, 0xff, 0x10, 0xea, 0xd1, 0x88, 0xf1, 0xb8, 0x8c, 0xd9, 0xff, 0x96, 0x28,
	0x6a, 0x9d, 0xc0, 0x48, 0xf9, 0x6b, 0xb0, 0x52, 0x6a, 0x7b, 0x4d, 0x58, 0xe9, 0xa7, 0x63, 0xc2,
	0x59, 0xdc, 0xad, 0x78, 0x2b, 0x60, 0x1f, 0x09, 0xd5, 0xb5, 0xfc, 0xbf, 0x2d, 0x00, 0xd3, 0x12,
	0xe8, 0xd4, 0xf6, 0x9c, 0x53, 0x1f, 0x2c, 0xb1, 0x3d, 0x13, 0x2d, 0x97, 0xa5, 0x5b, 0x1f, 0x43,
	0x4d, 0x27, 0xfa, 0x4d, 0x5e, 0xa1, 0x90, 0xe6, 0x80, 0xb9, 0x2c, 0xbb, 0xf7, 0x6a, 0x0e, 0x28,
	0xe5, 0x6f, 0x83, 0x73, 0x79, 0xd7, 0x22, 0x89, 0x36, 0xc0, 0x0b, 0x31, 0x64, 0x11, 0xe1, 0xbb,
	0x69, 0xdc, 0xb5, 0xbc, 0x5b, 0xe0, 0x96, 0xfb, 0x63, 0xd9, 0xad, 0xfa, 0xbf, 0xdb, 0x50, 0x43,
	0x52, 0xcf, 0xc0, 0x55, 0x54, 0x26, 0x21, 0x7d, 0x95, 0xc9, 0x32, 0xdd, 0x77, 0x97, 0xdc, 0x79,
	0x59, 0x20, 0xfa, 0x91, 0x50, 0x97, 0xc5, 0xf2, 0x05, 0x40, 0xa1, 0xef, 0x36, 0xca, 0x86, 0xde,
	0x3b, 0xd7, 0x65, 0xab, 0x57, 0x09, 0xdc, 0x62, 0x1a, 0xcf, 0x1d, 0x68, 0x0e, 0xd8, 0x4c, 0xdf,
	0xbe, 0xb2, 0xd6, 0x66, 0x81, 0xed, 0x55, 0x02, 0x18, 0xcc, 0x32, 0xb2, 0x0f, 0xad, 0xc8, 0x34,
	0xa2, 0x31, 0x61, 0xc6, 0xc1, 0xbb, 0x4b, 0xcb, 0x75, 0xda, 0xaf, 0xbd, 0x4a, 0xd0, 0x8c, 0xe6,
	0xda, 0xf7, 0x1b, 0xe8, 0x1a, 0x16, 0x52, 0xcf, 0x3d, 0x63, 0xc8, 0x4c, 0x85, 0xf7, 0xae, 0xe2,
	0x32, 0x9d, 0x90, 0xbd, 0x4a, 0xd0, 0x2e, 0x16, 0x67, 0xe6, 0x09, 0xdc, 0x2e, 0x59, 0xcd, 0xd9,
	0x6b, 0xa0, 0x3d, 0xff, 0x4a, 0x6e, 0xf3, 0x06, 0x3b, 0x83, 0x45, 0x68, 0xaf, 0x01, 0x35, 0x6d,
	0xc4, 0xff, 0xc7, 0x02, 0x38, 0xa3, 0x91, 0x12, 0x72, 0xf7, 0xe8, 0xe8, 0xbb, 0xf2, 0x09, 0x32,
	0xc2, 0xe6, 0xf9, 0xd7, 0x4f, 0x90, 0xb1, 0xb7, 0xf0, 0x38, 0x56, 0x17, 0x1f, 0xc7, 0xa7, 0x00,
	0x99, 0xa4, 0x31, 0x8b, 0x88, 0xa2, 0xf9, 0x9b, 0xca, 0x6c, 0x4e, 0xd4, 0xfb, 0x1c, 0xe0, 0x42,
	0xff, 0x05, 0xcc, 0x68, 0xa8, 0x5d, 0x99, 0xee, 0xe9, 0x87, 0x21, 0x70, 0x2f, 0xa6, 0x7f, 0x87,
	0x07, 0xd0, 0xc9, 0x38, 0x89, 0xe8, 0x48, 0xf0, 0x98, 0xca, 0x50, 0x91, 0x21, 0x06, 0xd9, 0x0d,
	0xda, 0x73, 0xf0, 0x29, 0x19, 0xfa, 0x7f, 0x5a, 0xe0, 0x9c, 0x70, 0x92, 0x1e, 0x89, 0x18, 0x87,
	0xf5, 0x18, 0x19, 0x87, 0x24, 0x4d, 0xf3, 0x6b, 0xc6, 0xd1, 0x2c, 0x2e, 0xba, 0x44, 0x8c, 0xce,
	0x6e, 0x9a, 0xe6, 0xde, 0x67, 0x0b, 0x6c, 0xaf, 0x6f, 0x41, 0xad, 0x3a, 0xc7, 0x77, 0x03, 0xba,
	0xa2, 0x50, 0x59, 0xa1, 0xc2, 0xcb, 0x50, 0xea, 0x70, 0xd9, 0x1b, 0x76, 0xd0, 0x36, 0xf8, 0x57,
	0x26, 0xa2, 0xb9, 0xce, 0x50, 0x2a, 0x62, 0xfa, 0x51, 0x0a, 0x0d, 0x33, 0x58, 0x17, 0x7b, 0xb1,
	0x03, 0xcd, 0x43, 0x49, 0x89, 0xa2, 0xf2, 0x74, 0x44, 0xd2, 0xae, 0xe5, 0x75, 0xa1, 0x55, 0x02,
	0xcf, 0x2f, 0x0a, 0xc2, 0xbb, 0x55, 0xaf, 0x05, 0xce, 0x0b, 0x9a, 0xe7, 0x78, 0x6e, 0x63, 0xb3,
	0xd2, 0x3c, 0x37, 0x87, 0x35, 0xcf, 0x85, 0xba, 0x59, 0xd6, 0xb5, 0xdc, 0x91, 0x50, 0x66, 0xd7,
	0xd8, 0x7b, 0xfc, 0xc3, 0x27, 0x43, 0xa6, 0x46, 0xc5, 0x60, 0x33, 0x12, 0xc9, 0x96, 0x21, 0xf5,
	0x90, 0x89, 0x72, 0xb5, 0xc5, 0x52, 0x45, 0x65, 0x4a, 0xf8, 0x16, 0xf2, 0xdc, 0xd2, 0x3c, 0xb3,
	0xc1, 0xa0, 0x81, 0xbb, 0xc7, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x21, 0x9d, 0x5f, 0x11, 0x7b,
	0x0a, 0x00, 0x00,
}
