milvus/writer/pb/suvlim.pb.go
xige-16 e13fc08d09 Refactor write node using message client
Signed-off-by: xige-16 <xi.ge@zilliz.com>
2020-09-04 17:52:49 +08:00

2377 lines
82 KiB
Go

// Code generated by protoc-gen-go. DO NOT EDIT.
// source: suvlim.proto
/*
Package pb is a generated protocol buffer package.
It is generated from these files:
suvlim.proto
It has these top-level messages:
Status
KeyValuePair
CollectionName
CollectionNameList
FieldName
Mapping
MappingList
PartitionParam
PartitionList
VectorRowRecord
EntityIds
VectorRecord
VectorParam
FieldMeta
Schema
RowData
InsertParam
SearchParam
SearchInSegmentParam
Entities
QueryResult
StringReply
BoolReply
CollectionRowCount
Command
IndexParam
FlushParam
CompactParam
DeleteByIDParam
CollectionInfo
GetEntityIDsParam
EntityIdentity
VectorFieldParam
FieldType
FieldParam
VectorFieldRecord
TermQuery
CompareExpr
RangeQuery
VectorQuery
BooleanQuery
GeneralQuery
SearchParamPB
InsertOrDeleteMsg
SearchMsg
TimeSyncMsg
SegmentRecord
Key2SegMsg
*/
package pb
import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import 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.ProtoPackageIsVersion2 // please upgrade the proto package
type ErrorCode int32
const (
ErrorCode_SUCCESS ErrorCode = 0
ErrorCode_UNEXPECTED_ERROR ErrorCode = 1
ErrorCode_CONNECT_FAILED ErrorCode = 2
ErrorCode_PERMISSION_DENIED ErrorCode = 3
ErrorCode_COLLECTION_NOT_EXISTS ErrorCode = 4
ErrorCode_ILLEGAL_ARGUMENT ErrorCode = 5
ErrorCode_ILLEGAL_DIMENSION ErrorCode = 7
ErrorCode_ILLEGAL_INDEX_TYPE ErrorCode = 8
ErrorCode_ILLEGAL_COLLECTION_NAME ErrorCode = 9
ErrorCode_ILLEGAL_TOPK ErrorCode = 10
ErrorCode_ILLEGAL_ROWRECORD ErrorCode = 11
ErrorCode_ILLEGAL_VECTOR_ID ErrorCode = 12
ErrorCode_ILLEGAL_SEARCH_RESULT ErrorCode = 13
ErrorCode_FILE_NOT_FOUND ErrorCode = 14
ErrorCode_META_FAILED ErrorCode = 15
ErrorCode_CACHE_FAILED ErrorCode = 16
ErrorCode_CANNOT_CREATE_FOLDER ErrorCode = 17
ErrorCode_CANNOT_CREATE_FILE ErrorCode = 18
ErrorCode_CANNOT_DELETE_FOLDER ErrorCode = 19
ErrorCode_CANNOT_DELETE_FILE ErrorCode = 20
ErrorCode_BUILD_INDEX_ERROR ErrorCode = 21
ErrorCode_ILLEGAL_NLIST ErrorCode = 22
ErrorCode_ILLEGAL_METRIC_TYPE ErrorCode = 23
ErrorCode_OUT_OF_MEMORY ErrorCode = 24
)
var ErrorCode_name = map[int32]string{
0: "SUCCESS",
1: "UNEXPECTED_ERROR",
2: "CONNECT_FAILED",
3: "PERMISSION_DENIED",
4: "COLLECTION_NOT_EXISTS",
5: "ILLEGAL_ARGUMENT",
7: "ILLEGAL_DIMENSION",
8: "ILLEGAL_INDEX_TYPE",
9: "ILLEGAL_COLLECTION_NAME",
10: "ILLEGAL_TOPK",
11: "ILLEGAL_ROWRECORD",
12: "ILLEGAL_VECTOR_ID",
13: "ILLEGAL_SEARCH_RESULT",
14: "FILE_NOT_FOUND",
15: "META_FAILED",
16: "CACHE_FAILED",
17: "CANNOT_CREATE_FOLDER",
18: "CANNOT_CREATE_FILE",
19: "CANNOT_DELETE_FOLDER",
20: "CANNOT_DELETE_FILE",
21: "BUILD_INDEX_ERROR",
22: "ILLEGAL_NLIST",
23: "ILLEGAL_METRIC_TYPE",
24: "OUT_OF_MEMORY",
}
var ErrorCode_value = map[string]int32{
"SUCCESS": 0,
"UNEXPECTED_ERROR": 1,
"CONNECT_FAILED": 2,
"PERMISSION_DENIED": 3,
"COLLECTION_NOT_EXISTS": 4,
"ILLEGAL_ARGUMENT": 5,
"ILLEGAL_DIMENSION": 7,
"ILLEGAL_INDEX_TYPE": 8,
"ILLEGAL_COLLECTION_NAME": 9,
"ILLEGAL_TOPK": 10,
"ILLEGAL_ROWRECORD": 11,
"ILLEGAL_VECTOR_ID": 12,
"ILLEGAL_SEARCH_RESULT": 13,
"FILE_NOT_FOUND": 14,
"META_FAILED": 15,
"CACHE_FAILED": 16,
"CANNOT_CREATE_FOLDER": 17,
"CANNOT_CREATE_FILE": 18,
"CANNOT_DELETE_FOLDER": 19,
"CANNOT_DELETE_FILE": 20,
"BUILD_INDEX_ERROR": 21,
"ILLEGAL_NLIST": 22,
"ILLEGAL_METRIC_TYPE": 23,
"OUT_OF_MEMORY": 24,
}
func (x ErrorCode) String() string {
return proto.EnumName(ErrorCode_name, int32(x))
}
func (ErrorCode) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
// *
// @brief Field data type
type DataType int32
const (
DataType_NONE DataType = 0
DataType_BOOL DataType = 1
DataType_INT8 DataType = 2
DataType_INT16 DataType = 3
DataType_INT32 DataType = 4
DataType_INT64 DataType = 5
DataType_FLOAT DataType = 10
DataType_DOUBLE DataType = 11
DataType_STRING DataType = 20
DataType_VECTOR_BINARY DataType = 100
DataType_VECTOR_FLOAT DataType = 101
)
var DataType_name = map[int32]string{
0: "NONE",
1: "BOOL",
2: "INT8",
3: "INT16",
4: "INT32",
5: "INT64",
10: "FLOAT",
11: "DOUBLE",
20: "STRING",
100: "VECTOR_BINARY",
101: "VECTOR_FLOAT",
}
var DataType_value = map[string]int32{
"NONE": 0,
"BOOL": 1,
"INT8": 2,
"INT16": 3,
"INT32": 4,
"INT64": 5,
"FLOAT": 10,
"DOUBLE": 11,
"STRING": 20,
"VECTOR_BINARY": 100,
"VECTOR_FLOAT": 101,
}
func (x DataType) String() string {
return proto.EnumName(DataType_name, int32(x))
}
func (DataType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
type CompareOperator int32
const (
CompareOperator_LT CompareOperator = 0
CompareOperator_LTE CompareOperator = 1
CompareOperator_EQ CompareOperator = 2
CompareOperator_GT CompareOperator = 3
CompareOperator_GTE CompareOperator = 4
CompareOperator_NE CompareOperator = 5
)
var CompareOperator_name = map[int32]string{
0: "LT",
1: "LTE",
2: "EQ",
3: "GT",
4: "GTE",
5: "NE",
}
var CompareOperator_value = map[string]int32{
"LT": 0,
"LTE": 1,
"EQ": 2,
"GT": 3,
"GTE": 4,
"NE": 5,
}
func (x CompareOperator) String() string {
return proto.EnumName(CompareOperator_name, int32(x))
}
func (CompareOperator) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
type Occur int32
const (
Occur_INVALID Occur = 0
Occur_MUST Occur = 1
Occur_SHOULD Occur = 2
Occur_MUST_NOT Occur = 3
)
var Occur_name = map[int32]string{
0: "INVALID",
1: "MUST",
2: "SHOULD",
3: "MUST_NOT",
}
var Occur_value = map[string]int32{
"INVALID": 0,
"MUST": 1,
"SHOULD": 2,
"MUST_NOT": 3,
}
func (x Occur) String() string {
return proto.EnumName(Occur_name, int32(x))
}
func (Occur) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
// //////////////////pulsar//////////////////////////////////////
type OpType int32
const (
OpType_INSERT OpType = 0
OpType_DELETE OpType = 1
OpType_SEARCH OpType = 2
OpType_SEARCH_RESULT OpType = 3
OpType_KEY2SEG OpType = 4
OpType_TIMESYNC OpType = 5
)
var OpType_name = map[int32]string{
0: "INSERT",
1: "DELETE",
2: "SEARCH",
3: "SEARCH_RESULT",
4: "KEY2SEG",
5: "TIMESYNC",
}
var OpType_value = map[string]int32{
"INSERT": 0,
"DELETE": 1,
"SEARCH": 2,
"SEARCH_RESULT": 3,
"KEY2SEG": 4,
"TIMESYNC": 5,
}
func (x OpType) String() string {
return proto.EnumName(OpType_name, int32(x))
}
func (OpType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
type Status struct {
ErrorCode ErrorCode `protobuf:"varint,1,opt,name=error_code,json=errorCode,enum=suvlim.grpc.ErrorCode" json:"error_code,omitempty"`
Reason string `protobuf:"bytes,2,opt,name=reason" json:"reason,omitempty"`
}
func (m *Status) Reset() { *m = Status{} }
func (m *Status) String() string { return proto.CompactTextString(m) }
func (*Status) ProtoMessage() {}
func (*Status) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
func (m *Status) GetErrorCode() ErrorCode {
if m != nil {
return m.ErrorCode
}
return ErrorCode_SUCCESS
}
func (m *Status) GetReason() string {
if m != nil {
return m.Reason
}
return ""
}
// *
// @brief General usage
type KeyValuePair struct {
Key string `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"`
Value string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
}
func (m *KeyValuePair) Reset() { *m = KeyValuePair{} }
func (m *KeyValuePair) String() string { return proto.CompactTextString(m) }
func (*KeyValuePair) ProtoMessage() {}
func (*KeyValuePair) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
func (m *KeyValuePair) GetKey() string {
if m != nil {
return m.Key
}
return ""
}
func (m *KeyValuePair) GetValue() string {
if m != nil {
return m.Value
}
return ""
}
// *
// @brief Collection name
type CollectionName struct {
CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName" json:"collection_name,omitempty"`
}
func (m *CollectionName) Reset() { *m = CollectionName{} }
func (m *CollectionName) String() string { return proto.CompactTextString(m) }
func (*CollectionName) ProtoMessage() {}
func (*CollectionName) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
func (m *CollectionName) GetCollectionName() string {
if m != nil {
return m.CollectionName
}
return ""
}
// *
// @brief Collection name list
type CollectionNameList struct {
Status *Status `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"`
CollectionNames []string `protobuf:"bytes,2,rep,name=collection_names,json=collectionNames" json:"collection_names,omitempty"`
}
func (m *CollectionNameList) Reset() { *m = CollectionNameList{} }
func (m *CollectionNameList) String() string { return proto.CompactTextString(m) }
func (*CollectionNameList) ProtoMessage() {}
func (*CollectionNameList) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
func (m *CollectionNameList) GetStatus() *Status {
if m != nil {
return m.Status
}
return nil
}
func (m *CollectionNameList) GetCollectionNames() []string {
if m != nil {
return m.CollectionNames
}
return nil
}
// *
// @brief Field name
type FieldName struct {
CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName" json:"collection_name,omitempty"`
FieldName string `protobuf:"bytes,2,opt,name=field_name,json=fieldName" json:"field_name,omitempty"`
}
func (m *FieldName) Reset() { *m = FieldName{} }
func (m *FieldName) String() string { return proto.CompactTextString(m) }
func (*FieldName) ProtoMessage() {}
func (*FieldName) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
func (m *FieldName) GetCollectionName() string {
if m != nil {
return m.CollectionName
}
return ""
}
func (m *FieldName) GetFieldName() string {
if m != nil {
return m.FieldName
}
return ""
}
// *
// @brief Collection mapping
// @extra_params: key-value pair for extra parameters of the collection
// typically usage:
// extra_params["params"] = {segment_row_count: 1000000, auto_id: true}
// Note:
// the segment_row_count specify segment row count limit for merging
// the auto_id = true means entity id is auto-generated by milvus
type Mapping struct {
Status *Status `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"`
CollectionName string `protobuf:"bytes,2,opt,name=collection_name,json=collectionName" json:"collection_name,omitempty"`
Fields []*FieldParam `protobuf:"bytes,3,rep,name=fields" json:"fields,omitempty"`
ExtraParams []*KeyValuePair `protobuf:"bytes,4,rep,name=extra_params,json=extraParams" json:"extra_params,omitempty"`
}
func (m *Mapping) Reset() { *m = Mapping{} }
func (m *Mapping) String() string { return proto.CompactTextString(m) }
func (*Mapping) ProtoMessage() {}
func (*Mapping) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
func (m *Mapping) GetStatus() *Status {
if m != nil {
return m.Status
}
return nil
}
func (m *Mapping) GetCollectionName() string {
if m != nil {
return m.CollectionName
}
return ""
}
func (m *Mapping) GetFields() []*FieldParam {
if m != nil {
return m.Fields
}
return nil
}
func (m *Mapping) GetExtraParams() []*KeyValuePair {
if m != nil {
return m.ExtraParams
}
return nil
}
// *
// @brief Collection mapping list
type MappingList struct {
Status *Status `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"`
MappingList []*Mapping `protobuf:"bytes,2,rep,name=mapping_list,json=mappingList" json:"mapping_list,omitempty"`
}
func (m *MappingList) Reset() { *m = MappingList{} }
func (m *MappingList) String() string { return proto.CompactTextString(m) }
func (*MappingList) ProtoMessage() {}
func (*MappingList) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
func (m *MappingList) GetStatus() *Status {
if m != nil {
return m.Status
}
return nil
}
func (m *MappingList) GetMappingList() []*Mapping {
if m != nil {
return m.MappingList
}
return nil
}
// *
// @brief Parameters of partition
type PartitionParam struct {
CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName" json:"collection_name,omitempty"`
Tag string `protobuf:"bytes,2,opt,name=tag" json:"tag,omitempty"`
}
func (m *PartitionParam) Reset() { *m = PartitionParam{} }
func (m *PartitionParam) String() string { return proto.CompactTextString(m) }
func (*PartitionParam) ProtoMessage() {}
func (*PartitionParam) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
func (m *PartitionParam) GetCollectionName() string {
if m != nil {
return m.CollectionName
}
return ""
}
func (m *PartitionParam) GetTag() string {
if m != nil {
return m.Tag
}
return ""
}
// *
// @brief Partition list
type PartitionList struct {
Status *Status `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"`
PartitionTagArray []string `protobuf:"bytes,2,rep,name=partition_tag_array,json=partitionTagArray" json:"partition_tag_array,omitempty"`
}
func (m *PartitionList) Reset() { *m = PartitionList{} }
func (m *PartitionList) String() string { return proto.CompactTextString(m) }
func (*PartitionList) ProtoMessage() {}
func (*PartitionList) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
func (m *PartitionList) GetStatus() *Status {
if m != nil {
return m.Status
}
return nil
}
func (m *PartitionList) GetPartitionTagArray() []string {
if m != nil {
return m.PartitionTagArray
}
return nil
}
// *
// @brief Vector row record
type VectorRowRecord struct {
FloatData []float32 `protobuf:"fixed32,1,rep,packed,name=float_data,json=floatData" json:"float_data,omitempty"`
BinaryData []byte `protobuf:"bytes,2,opt,name=binary_data,json=binaryData,proto3" json:"binary_data,omitempty"`
}
func (m *VectorRowRecord) Reset() { *m = VectorRowRecord{} }
func (m *VectorRowRecord) String() string { return proto.CompactTextString(m) }
func (*VectorRowRecord) ProtoMessage() {}
func (*VectorRowRecord) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
func (m *VectorRowRecord) GetFloatData() []float32 {
if m != nil {
return m.FloatData
}
return nil
}
func (m *VectorRowRecord) GetBinaryData() []byte {
if m != nil {
return m.BinaryData
}
return nil
}
type EntityIds struct {
Status *Status `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"`
EntityIdArray []int64 `protobuf:"varint,2,rep,packed,name=entity_id_array,json=entityIdArray" json:"entity_id_array,omitempty"`
}
func (m *EntityIds) Reset() { *m = EntityIds{} }
func (m *EntityIds) String() string { return proto.CompactTextString(m) }
func (*EntityIds) ProtoMessage() {}
func (*EntityIds) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
func (m *EntityIds) GetStatus() *Status {
if m != nil {
return m.Status
}
return nil
}
func (m *EntityIds) GetEntityIdArray() []int64 {
if m != nil {
return m.EntityIdArray
}
return nil
}
type VectorRecord struct {
Records []*VectorRowRecord `protobuf:"bytes,1,rep,name=records" json:"records,omitempty"`
}
func (m *VectorRecord) Reset() { *m = VectorRecord{} }
func (m *VectorRecord) String() string { return proto.CompactTextString(m) }
func (*VectorRecord) ProtoMessage() {}
func (*VectorRecord) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
func (m *VectorRecord) GetRecords() []*VectorRowRecord {
if m != nil {
return m.Records
}
return nil
}
type VectorParam struct {
Json string `protobuf:"bytes,1,opt,name=json" json:"json,omitempty"`
RowRecord *VectorRecord `protobuf:"bytes,2,opt,name=row_record,json=rowRecord" json:"row_record,omitempty"`
}
func (m *VectorParam) Reset() { *m = VectorParam{} }
func (m *VectorParam) String() string { return proto.CompactTextString(m) }
func (*VectorParam) ProtoMessage() {}
func (*VectorParam) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }
func (m *VectorParam) GetJson() string {
if m != nil {
return m.Json
}
return ""
}
func (m *VectorParam) GetRowRecord() *VectorRecord {
if m != nil {
return m.RowRecord
}
return nil
}
// *
// @brief schema
type FieldMeta struct {
FieldName string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"`
Type DataType `protobuf:"varint,2,opt,name=type,enum=suvlim.grpc.DataType" json:"type,omitempty"`
Dim int64 `protobuf:"varint,3,opt,name=dim" json:"dim,omitempty"`
}
func (m *FieldMeta) Reset() { *m = FieldMeta{} }
func (m *FieldMeta) String() string { return proto.CompactTextString(m) }
func (*FieldMeta) ProtoMessage() {}
func (*FieldMeta) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} }
func (m *FieldMeta) GetFieldName() string {
if m != nil {
return m.FieldName
}
return ""
}
func (m *FieldMeta) GetType() DataType {
if m != nil {
return m.Type
}
return DataType_NONE
}
func (m *FieldMeta) GetDim() int64 {
if m != nil {
return m.Dim
}
return 0
}
type Schema struct {
FieldMetas []*FieldMeta `protobuf:"bytes,1,rep,name=field_metas,json=fieldMetas" json:"field_metas,omitempty"`
}
func (m *Schema) Reset() { *m = Schema{} }
func (m *Schema) String() string { return proto.CompactTextString(m) }
func (*Schema) ProtoMessage() {}
func (*Schema) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }
func (m *Schema) GetFieldMetas() []*FieldMeta {
if m != nil {
return m.FieldMetas
}
return nil
}
type RowData struct {
Blob []byte `protobuf:"bytes,1,opt,name=blob,proto3" json:"blob,omitempty"`
}
func (m *RowData) Reset() { *m = RowData{} }
func (m *RowData) String() string { return proto.CompactTextString(m) }
func (*RowData) ProtoMessage() {}
func (*RowData) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }
func (m *RowData) GetBlob() []byte {
if m != nil {
return m.Blob
}
return nil
}
// ////////////////////suvlim-proxy///////////////////////////////////
type InsertParam struct {
CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName" json:"collection_name,omitempty"`
Schema *Schema `protobuf:"bytes,2,opt,name=schema" json:"schema,omitempty"`
RowsData []*RowData `protobuf:"bytes,3,rep,name=rows_data,json=rowsData" json:"rows_data,omitempty"`
EntityIdArray []int64 `protobuf:"varint,4,rep,packed,name=entity_id_array,json=entityIdArray" json:"entity_id_array,omitempty"`
PartitionTag string `protobuf:"bytes,5,opt,name=partition_tag,json=partitionTag" json:"partition_tag,omitempty"`
ExtraParams []*KeyValuePair `protobuf:"bytes,6,rep,name=extra_params,json=extraParams" json:"extra_params,omitempty"`
}
func (m *InsertParam) Reset() { *m = InsertParam{} }
func (m *InsertParam) String() string { return proto.CompactTextString(m) }
func (*InsertParam) ProtoMessage() {}
func (*InsertParam) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }
func (m *InsertParam) GetCollectionName() string {
if m != nil {
return m.CollectionName
}
return ""
}
func (m *InsertParam) GetSchema() *Schema {
if m != nil {
return m.Schema
}
return nil
}
func (m *InsertParam) GetRowsData() []*RowData {
if m != nil {
return m.RowsData
}
return nil
}
func (m *InsertParam) GetEntityIdArray() []int64 {
if m != nil {
return m.EntityIdArray
}
return nil
}
func (m *InsertParam) GetPartitionTag() string {
if m != nil {
return m.PartitionTag
}
return ""
}
func (m *InsertParam) GetExtraParams() []*KeyValuePair {
if m != nil {
return m.ExtraParams
}
return nil
}
type SearchParam struct {
CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName" json:"collection_name,omitempty"`
VectorParam []*VectorParam `protobuf:"bytes,2,rep,name=vector_param,json=vectorParam" json:"vector_param,omitempty"`
Dsl string `protobuf:"bytes,3,opt,name=dsl" json:"dsl,omitempty"`
PartitionTag []string `protobuf:"bytes,4,rep,name=partition_tag,json=partitionTag" json:"partition_tag,omitempty"`
ExtraParams []*KeyValuePair `protobuf:"bytes,5,rep,name=extra_params,json=extraParams" json:"extra_params,omitempty"`
}
func (m *SearchParam) Reset() { *m = SearchParam{} }
func (m *SearchParam) String() string { return proto.CompactTextString(m) }
func (*SearchParam) ProtoMessage() {}
func (*SearchParam) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} }
func (m *SearchParam) GetCollectionName() string {
if m != nil {
return m.CollectionName
}
return ""
}
func (m *SearchParam) GetVectorParam() []*VectorParam {
if m != nil {
return m.VectorParam
}
return nil
}
func (m *SearchParam) GetDsl() string {
if m != nil {
return m.Dsl
}
return ""
}
func (m *SearchParam) GetPartitionTag() []string {
if m != nil {
return m.PartitionTag
}
return nil
}
func (m *SearchParam) GetExtraParams() []*KeyValuePair {
if m != nil {
return m.ExtraParams
}
return nil
}
type SearchInSegmentParam struct {
FileIdArray []string `protobuf:"bytes,1,rep,name=file_id_array,json=fileIdArray" json:"file_id_array,omitempty"`
SearchParam *SearchParam `protobuf:"bytes,2,opt,name=search_param,json=searchParam" json:"search_param,omitempty"`
}
func (m *SearchInSegmentParam) Reset() { *m = SearchInSegmentParam{} }
func (m *SearchInSegmentParam) String() string { return proto.CompactTextString(m) }
func (*SearchInSegmentParam) ProtoMessage() {}
func (*SearchInSegmentParam) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} }
func (m *SearchInSegmentParam) GetFileIdArray() []string {
if m != nil {
return m.FileIdArray
}
return nil
}
func (m *SearchInSegmentParam) GetSearchParam() *SearchParam {
if m != nil {
return m.SearchParam
}
return nil
}
type Entities struct {
Status *Status `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"`
Ids []int64 `protobuf:"varint,2,rep,packed,name=ids" json:"ids,omitempty"`
ValidRow []bool `protobuf:"varint,3,rep,packed,name=valid_row,json=validRow" json:"valid_row,omitempty"`
RowsData []*RowData `protobuf:"bytes,4,rep,name=rows_data,json=rowsData" json:"rows_data,omitempty"`
}
func (m *Entities) Reset() { *m = Entities{} }
func (m *Entities) String() string { return proto.CompactTextString(m) }
func (*Entities) ProtoMessage() {}
func (*Entities) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} }
func (m *Entities) GetStatus() *Status {
if m != nil {
return m.Status
}
return nil
}
func (m *Entities) GetIds() []int64 {
if m != nil {
return m.Ids
}
return nil
}
func (m *Entities) GetValidRow() []bool {
if m != nil {
return m.ValidRow
}
return nil
}
func (m *Entities) GetRowsData() []*RowData {
if m != nil {
return m.RowsData
}
return nil
}
// *
// @brief Query result
type QueryResult struct {
Status *Status `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"`
Entities *Entities `protobuf:"bytes,2,opt,name=entities" json:"entities,omitempty"`
RowNum int64 `protobuf:"varint,3,opt,name=row_num,json=rowNum" json:"row_num,omitempty"`
Scores []float32 `protobuf:"fixed32,4,rep,packed,name=scores" json:"scores,omitempty"`
Distances []float32 `protobuf:"fixed32,5,rep,packed,name=distances" json:"distances,omitempty"`
ExtraParams []*KeyValuePair `protobuf:"bytes,6,rep,name=extra_params,json=extraParams" json:"extra_params,omitempty"`
}
func (m *QueryResult) Reset() { *m = QueryResult{} }
func (m *QueryResult) String() string { return proto.CompactTextString(m) }
func (*QueryResult) ProtoMessage() {}
func (*QueryResult) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} }
func (m *QueryResult) GetStatus() *Status {
if m != nil {
return m.Status
}
return nil
}
func (m *QueryResult) GetEntities() *Entities {
if m != nil {
return m.Entities
}
return nil
}
func (m *QueryResult) GetRowNum() int64 {
if m != nil {
return m.RowNum
}
return 0
}
func (m *QueryResult) GetScores() []float32 {
if m != nil {
return m.Scores
}
return nil
}
func (m *QueryResult) GetDistances() []float32 {
if m != nil {
return m.Distances
}
return nil
}
func (m *QueryResult) GetExtraParams() []*KeyValuePair {
if m != nil {
return m.ExtraParams
}
return nil
}
// *
// @brief Server string Reply
type StringReply struct {
Status *Status `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"`
StringReply string `protobuf:"bytes,2,opt,name=string_reply,json=stringReply" json:"string_reply,omitempty"`
}
func (m *StringReply) Reset() { *m = StringReply{} }
func (m *StringReply) String() string { return proto.CompactTextString(m) }
func (*StringReply) ProtoMessage() {}
func (*StringReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} }
func (m *StringReply) GetStatus() *Status {
if m != nil {
return m.Status
}
return nil
}
func (m *StringReply) GetStringReply() string {
if m != nil {
return m.StringReply
}
return ""
}
// *
// @brief Server bool Reply
type BoolReply struct {
Status *Status `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"`
BoolReply bool `protobuf:"varint,2,opt,name=bool_reply,json=boolReply" json:"bool_reply,omitempty"`
}
func (m *BoolReply) Reset() { *m = BoolReply{} }
func (m *BoolReply) String() string { return proto.CompactTextString(m) }
func (*BoolReply) ProtoMessage() {}
func (*BoolReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} }
func (m *BoolReply) GetStatus() *Status {
if m != nil {
return m.Status
}
return nil
}
func (m *BoolReply) GetBoolReply() bool {
if m != nil {
return m.BoolReply
}
return false
}
// *
// @brief Return collection row count
type CollectionRowCount struct {
Status *Status `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"`
CollectionRowCount int64 `protobuf:"varint,2,opt,name=collection_row_count,json=collectionRowCount" json:"collection_row_count,omitempty"`
}
func (m *CollectionRowCount) Reset() { *m = CollectionRowCount{} }
func (m *CollectionRowCount) String() string { return proto.CompactTextString(m) }
func (*CollectionRowCount) ProtoMessage() {}
func (*CollectionRowCount) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} }
func (m *CollectionRowCount) GetStatus() *Status {
if m != nil {
return m.Status
}
return nil
}
func (m *CollectionRowCount) GetCollectionRowCount() int64 {
if m != nil {
return m.CollectionRowCount
}
return 0
}
// *
// @brief Server command parameters
type Command struct {
Cmd string `protobuf:"bytes,1,opt,name=cmd" json:"cmd,omitempty"`
}
func (m *Command) Reset() { *m = Command{} }
func (m *Command) String() string { return proto.CompactTextString(m) }
func (*Command) ProtoMessage() {}
func (*Command) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} }
func (m *Command) GetCmd() string {
if m != nil {
return m.Cmd
}
return ""
}
// *
// @brief Index params
// @collection_name: target collection
// @field_name: target field
// @index_name: a name for index provided by user, unique within this field
// @extra_params: index parameters in json format
// for vector field:
// extra_params["index_type"] = one of the values: FLAT, IVF_LAT, IVF_SQ8, NSGMIX, IVFSQ8H,
// PQ, HNSW, HNSW_SQ8NM, ANNOY
// extra_params["metric_type"] = one of the values: L2, IP, HAMMING, JACCARD, TANIMOTO
// SUBSTRUCTURE, SUPERSTRUCTURE
// extra_params["params"] = extra parameters for index, for example ivflat: {nlist: 2048}
// for structured field:
// extra_params["index_type"] = one of the values: SORTED
type IndexParam struct {
Status *Status `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"`
CollectionName string `protobuf:"bytes,2,opt,name=collection_name,json=collectionName" json:"collection_name,omitempty"`
FieldName string `protobuf:"bytes,3,opt,name=field_name,json=fieldName" json:"field_name,omitempty"`
IndexName string `protobuf:"bytes,4,opt,name=index_name,json=indexName" json:"index_name,omitempty"`
ExtraParams []*KeyValuePair `protobuf:"bytes,5,rep,name=extra_params,json=extraParams" json:"extra_params,omitempty"`
}
func (m *IndexParam) Reset() { *m = IndexParam{} }
func (m *IndexParam) String() string { return proto.CompactTextString(m) }
func (*IndexParam) ProtoMessage() {}
func (*IndexParam) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} }
func (m *IndexParam) GetStatus() *Status {
if m != nil {
return m.Status
}
return nil
}
func (m *IndexParam) GetCollectionName() string {
if m != nil {
return m.CollectionName
}
return ""
}
func (m *IndexParam) GetFieldName() string {
if m != nil {
return m.FieldName
}
return ""
}
func (m *IndexParam) GetIndexName() string {
if m != nil {
return m.IndexName
}
return ""
}
func (m *IndexParam) GetExtraParams() []*KeyValuePair {
if m != nil {
return m.ExtraParams
}
return nil
}
// *
// @brief Parameters for flush action
type FlushParam struct {
CollectionNameArray []string `protobuf:"bytes,1,rep,name=collection_name_array,json=collectionNameArray" json:"collection_name_array,omitempty"`
}
func (m *FlushParam) Reset() { *m = FlushParam{} }
func (m *FlushParam) String() string { return proto.CompactTextString(m) }
func (*FlushParam) ProtoMessage() {}
func (*FlushParam) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} }
func (m *FlushParam) GetCollectionNameArray() []string {
if m != nil {
return m.CollectionNameArray
}
return nil
}
// *
// @brief Parameters for flush action
type CompactParam struct {
CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName" json:"collection_name,omitempty"`
Threshold float64 `protobuf:"fixed64,2,opt,name=threshold" json:"threshold,omitempty"`
}
func (m *CompactParam) Reset() { *m = CompactParam{} }
func (m *CompactParam) String() string { return proto.CompactTextString(m) }
func (*CompactParam) ProtoMessage() {}
func (*CompactParam) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} }
func (m *CompactParam) GetCollectionName() string {
if m != nil {
return m.CollectionName
}
return ""
}
func (m *CompactParam) GetThreshold() float64 {
if m != nil {
return m.Threshold
}
return 0
}
// *
// @brief Parameters for deleting entities by id
type DeleteByIDParam struct {
CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName" json:"collection_name,omitempty"`
IdArray []int64 `protobuf:"varint,2,rep,packed,name=id_array,json=idArray" json:"id_array,omitempty"`
}
func (m *DeleteByIDParam) Reset() { *m = DeleteByIDParam{} }
func (m *DeleteByIDParam) String() string { return proto.CompactTextString(m) }
func (*DeleteByIDParam) ProtoMessage() {}
func (*DeleteByIDParam) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} }
func (m *DeleteByIDParam) GetCollectionName() string {
if m != nil {
return m.CollectionName
}
return ""
}
func (m *DeleteByIDParam) GetIdArray() []int64 {
if m != nil {
return m.IdArray
}
return nil
}
// *
// @brief Return collection stats
// @json_info: collection stats in json format, typically, the format is like:
// {
// row_count: xxx,
// data_size: xxx,
// partitions: [
// {
// tag: xxx,
// id: xxx,
// row_count: xxx,
// data_size: xxx,
// segments: [
// {
// id: xxx,
// row_count: xxx,
// data_size: xxx,
// files: [
// {
// field: xxx,
// name: xxx,
// index_type: xxx,
// path: xxx,
// data_size: xxx,
// }
// ]
// }
// ]
// }
// ]
// }
type CollectionInfo struct {
Status *Status `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"`
JsonInfo string `protobuf:"bytes,2,opt,name=json_info,json=jsonInfo" json:"json_info,omitempty"`
}
func (m *CollectionInfo) Reset() { *m = CollectionInfo{} }
func (m *CollectionInfo) String() string { return proto.CompactTextString(m) }
func (*CollectionInfo) ProtoMessage() {}
func (*CollectionInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} }
func (m *CollectionInfo) GetStatus() *Status {
if m != nil {
return m.Status
}
return nil
}
func (m *CollectionInfo) GetJsonInfo() string {
if m != nil {
return m.JsonInfo
}
return ""
}
// *
// @brief Parameters for returning entities id of a segment
type GetEntityIDsParam struct {
CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName" json:"collection_name,omitempty"`
SegmentId int64 `protobuf:"varint,2,opt,name=segment_id,json=segmentId" json:"segment_id,omitempty"`
}
func (m *GetEntityIDsParam) Reset() { *m = GetEntityIDsParam{} }
func (m *GetEntityIDsParam) String() string { return proto.CompactTextString(m) }
func (*GetEntityIDsParam) ProtoMessage() {}
func (*GetEntityIDsParam) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} }
func (m *GetEntityIDsParam) GetCollectionName() string {
if m != nil {
return m.CollectionName
}
return ""
}
func (m *GetEntityIDsParam) GetSegmentId() int64 {
if m != nil {
return m.SegmentId
}
return 0
}
// *
// @brief Entities identity
type EntityIdentity struct {
CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName" json:"collection_name,omitempty"`
IdArray []int64 `protobuf:"varint,2,rep,packed,name=id_array,json=idArray" json:"id_array,omitempty"`
FieldNames []string `protobuf:"bytes,3,rep,name=field_names,json=fieldNames" json:"field_names,omitempty"`
}
func (m *EntityIdentity) Reset() { *m = EntityIdentity{} }
func (m *EntityIdentity) String() string { return proto.CompactTextString(m) }
func (*EntityIdentity) ProtoMessage() {}
func (*EntityIdentity) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} }
func (m *EntityIdentity) GetCollectionName() string {
if m != nil {
return m.CollectionName
}
return ""
}
func (m *EntityIdentity) GetIdArray() []int64 {
if m != nil {
return m.IdArray
}
return nil
}
func (m *EntityIdentity) GetFieldNames() []string {
if m != nil {
return m.FieldNames
}
return nil
}
// *
// @brief Vector field parameters
type VectorFieldParam struct {
Dimension int64 `protobuf:"varint,1,opt,name=dimension" json:"dimension,omitempty"`
}
func (m *VectorFieldParam) Reset() { *m = VectorFieldParam{} }
func (m *VectorFieldParam) String() string { return proto.CompactTextString(m) }
func (*VectorFieldParam) ProtoMessage() {}
func (*VectorFieldParam) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{32} }
func (m *VectorFieldParam) GetDimension() int64 {
if m != nil {
return m.Dimension
}
return 0
}
// *
// @brief Field type
type FieldType struct {
// Types that are valid to be assigned to Value:
// *FieldType_DataType
// *FieldType_VectorParam
Value isFieldType_Value `protobuf_oneof:"value"`
}
func (m *FieldType) Reset() { *m = FieldType{} }
func (m *FieldType) String() string { return proto.CompactTextString(m) }
func (*FieldType) ProtoMessage() {}
func (*FieldType) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{33} }
type isFieldType_Value interface{ isFieldType_Value() }
type FieldType_DataType struct {
DataType DataType `protobuf:"varint,1,opt,name=data_type,json=dataType,enum=suvlim.grpc.DataType,oneof"`
}
type FieldType_VectorParam struct {
VectorParam *VectorFieldParam `protobuf:"bytes,2,opt,name=vector_param,json=vectorParam,oneof"`
}
func (*FieldType_DataType) isFieldType_Value() {}
func (*FieldType_VectorParam) isFieldType_Value() {}
func (m *FieldType) GetValue() isFieldType_Value {
if m != nil {
return m.Value
}
return nil
}
func (m *FieldType) GetDataType() DataType {
if x, ok := m.GetValue().(*FieldType_DataType); ok {
return x.DataType
}
return DataType_NONE
}
func (m *FieldType) GetVectorParam() *VectorFieldParam {
if x, ok := m.GetValue().(*FieldType_VectorParam); ok {
return x.VectorParam
}
return nil
}
// XXX_OneofFuncs is for the internal use of the proto package.
func (*FieldType) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
return _FieldType_OneofMarshaler, _FieldType_OneofUnmarshaler, _FieldType_OneofSizer, []interface{}{
(*FieldType_DataType)(nil),
(*FieldType_VectorParam)(nil),
}
}
func _FieldType_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
m := msg.(*FieldType)
// value
switch x := m.Value.(type) {
case *FieldType_DataType:
b.EncodeVarint(1<<3 | proto.WireVarint)
b.EncodeVarint(uint64(x.DataType))
case *FieldType_VectorParam:
b.EncodeVarint(2<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.VectorParam); err != nil {
return err
}
case nil:
default:
return fmt.Errorf("FieldType.Value has unexpected type %T", x)
}
return nil
}
func _FieldType_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
m := msg.(*FieldType)
switch tag {
case 1: // value.data_type
if wire != proto.WireVarint {
return true, proto.ErrInternalBadWireType
}
x, err := b.DecodeVarint()
m.Value = &FieldType_DataType{DataType(x)}
return true, err
case 2: // value.vector_param
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(VectorFieldParam)
err := b.DecodeMessage(msg)
m.Value = &FieldType_VectorParam{msg}
return true, err
default:
return false, nil
}
}
func _FieldType_OneofSizer(msg proto.Message) (n int) {
m := msg.(*FieldType)
// value
switch x := m.Value.(type) {
case *FieldType_DataType:
n += proto.SizeVarint(1<<3 | proto.WireVarint)
n += proto.SizeVarint(uint64(x.DataType))
case *FieldType_VectorParam:
s := proto.Size(x.VectorParam)
n += proto.SizeVarint(2<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case nil:
default:
panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
}
return n
}
// *
// @brief Field parameters
type FieldParam struct {
Id uint64 `protobuf:"varint,1,opt,name=id" json:"id,omitempty"`
Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
Type DataType `protobuf:"varint,3,opt,name=type,enum=suvlim.grpc.DataType" json:"type,omitempty"`
IndexParams []*KeyValuePair `protobuf:"bytes,4,rep,name=index_params,json=indexParams" json:"index_params,omitempty"`
ExtraParams []*KeyValuePair `protobuf:"bytes,5,rep,name=extra_params,json=extraParams" json:"extra_params,omitempty"`
}
func (m *FieldParam) Reset() { *m = FieldParam{} }
func (m *FieldParam) String() string { return proto.CompactTextString(m) }
func (*FieldParam) ProtoMessage() {}
func (*FieldParam) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{34} }
func (m *FieldParam) GetId() uint64 {
if m != nil {
return m.Id
}
return 0
}
func (m *FieldParam) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *FieldParam) GetType() DataType {
if m != nil {
return m.Type
}
return DataType_NONE
}
func (m *FieldParam) GetIndexParams() []*KeyValuePair {
if m != nil {
return m.IndexParams
}
return nil
}
func (m *FieldParam) GetExtraParams() []*KeyValuePair {
if m != nil {
return m.ExtraParams
}
return nil
}
// *
// @brief Vector field record
type VectorFieldRecord struct {
Value []*VectorRowRecord `protobuf:"bytes,1,rep,name=value" json:"value,omitempty"`
}
func (m *VectorFieldRecord) Reset() { *m = VectorFieldRecord{} }
func (m *VectorFieldRecord) String() string { return proto.CompactTextString(m) }
func (*VectorFieldRecord) ProtoMessage() {}
func (*VectorFieldRecord) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{35} }
func (m *VectorFieldRecord) GetValue() []*VectorRowRecord {
if m != nil {
return m.Value
}
return nil
}
type TermQuery struct {
FieldName string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"`
IntValue []int64 `protobuf:"varint,2,rep,packed,name=int_value,json=intValue" json:"int_value,omitempty"`
DoubleValue []float64 `protobuf:"fixed64,3,rep,packed,name=double_value,json=doubleValue" json:"double_value,omitempty"`
ValueNum int64 `protobuf:"varint,4,opt,name=value_num,json=valueNum" json:"value_num,omitempty"`
Boost float32 `protobuf:"fixed32,5,opt,name=boost" json:"boost,omitempty"`
ExtraParams []*KeyValuePair `protobuf:"bytes,6,rep,name=extra_params,json=extraParams" json:"extra_params,omitempty"`
}
func (m *TermQuery) Reset() { *m = TermQuery{} }
func (m *TermQuery) String() string { return proto.CompactTextString(m) }
func (*TermQuery) ProtoMessage() {}
func (*TermQuery) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{36} }
func (m *TermQuery) GetFieldName() string {
if m != nil {
return m.FieldName
}
return ""
}
func (m *TermQuery) GetIntValue() []int64 {
if m != nil {
return m.IntValue
}
return nil
}
func (m *TermQuery) GetDoubleValue() []float64 {
if m != nil {
return m.DoubleValue
}
return nil
}
func (m *TermQuery) GetValueNum() int64 {
if m != nil {
return m.ValueNum
}
return 0
}
func (m *TermQuery) GetBoost() float32 {
if m != nil {
return m.Boost
}
return 0
}
func (m *TermQuery) GetExtraParams() []*KeyValuePair {
if m != nil {
return m.ExtraParams
}
return nil
}
type CompareExpr struct {
Operator CompareOperator `protobuf:"varint,1,opt,name=operator,enum=suvlim.grpc.CompareOperator" json:"operator,omitempty"`
Operand string `protobuf:"bytes,2,opt,name=operand" json:"operand,omitempty"`
}
func (m *CompareExpr) Reset() { *m = CompareExpr{} }
func (m *CompareExpr) String() string { return proto.CompactTextString(m) }
func (*CompareExpr) ProtoMessage() {}
func (*CompareExpr) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{37} }
func (m *CompareExpr) GetOperator() CompareOperator {
if m != nil {
return m.Operator
}
return CompareOperator_LT
}
func (m *CompareExpr) GetOperand() string {
if m != nil {
return m.Operand
}
return ""
}
type RangeQuery struct {
FieldName string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"`
Operand []*CompareExpr `protobuf:"bytes,2,rep,name=operand" json:"operand,omitempty"`
Boost float32 `protobuf:"fixed32,3,opt,name=boost" json:"boost,omitempty"`
ExtraParams []*KeyValuePair `protobuf:"bytes,4,rep,name=extra_params,json=extraParams" json:"extra_params,omitempty"`
}
func (m *RangeQuery) Reset() { *m = RangeQuery{} }
func (m *RangeQuery) String() string { return proto.CompactTextString(m) }
func (*RangeQuery) ProtoMessage() {}
func (*RangeQuery) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{38} }
func (m *RangeQuery) GetFieldName() string {
if m != nil {
return m.FieldName
}
return ""
}
func (m *RangeQuery) GetOperand() []*CompareExpr {
if m != nil {
return m.Operand
}
return nil
}
func (m *RangeQuery) GetBoost() float32 {
if m != nil {
return m.Boost
}
return 0
}
func (m *RangeQuery) GetExtraParams() []*KeyValuePair {
if m != nil {
return m.ExtraParams
}
return nil
}
type VectorQuery struct {
FieldName string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"`
QueryBoost float32 `protobuf:"fixed32,2,opt,name=query_boost,json=queryBoost" json:"query_boost,omitempty"`
Records []*VectorRowRecord `protobuf:"bytes,3,rep,name=records" json:"records,omitempty"`
Topk int64 `protobuf:"varint,4,opt,name=topk" json:"topk,omitempty"`
ExtraParams []*KeyValuePair `protobuf:"bytes,5,rep,name=extra_params,json=extraParams" json:"extra_params,omitempty"`
}
func (m *VectorQuery) Reset() { *m = VectorQuery{} }
func (m *VectorQuery) String() string { return proto.CompactTextString(m) }
func (*VectorQuery) ProtoMessage() {}
func (*VectorQuery) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{39} }
func (m *VectorQuery) GetFieldName() string {
if m != nil {
return m.FieldName
}
return ""
}
func (m *VectorQuery) GetQueryBoost() float32 {
if m != nil {
return m.QueryBoost
}
return 0
}
func (m *VectorQuery) GetRecords() []*VectorRowRecord {
if m != nil {
return m.Records
}
return nil
}
func (m *VectorQuery) GetTopk() int64 {
if m != nil {
return m.Topk
}
return 0
}
func (m *VectorQuery) GetExtraParams() []*KeyValuePair {
if m != nil {
return m.ExtraParams
}
return nil
}
type BooleanQuery struct {
Occur Occur `protobuf:"varint,1,opt,name=occur,enum=suvlim.grpc.Occur" json:"occur,omitempty"`
GeneralQuery []*GeneralQuery `protobuf:"bytes,2,rep,name=general_query,json=generalQuery" json:"general_query,omitempty"`
}
func (m *BooleanQuery) Reset() { *m = BooleanQuery{} }
func (m *BooleanQuery) String() string { return proto.CompactTextString(m) }
func (*BooleanQuery) ProtoMessage() {}
func (*BooleanQuery) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{40} }
func (m *BooleanQuery) GetOccur() Occur {
if m != nil {
return m.Occur
}
return Occur_INVALID
}
func (m *BooleanQuery) GetGeneralQuery() []*GeneralQuery {
if m != nil {
return m.GeneralQuery
}
return nil
}
type GeneralQuery struct {
// Types that are valid to be assigned to Query:
// *GeneralQuery_BooleanQuery
// *GeneralQuery_TermQuery
// *GeneralQuery_RangeQuery
// *GeneralQuery_VectorQuery
Query isGeneralQuery_Query `protobuf_oneof:"query"`
}
func (m *GeneralQuery) Reset() { *m = GeneralQuery{} }
func (m *GeneralQuery) String() string { return proto.CompactTextString(m) }
func (*GeneralQuery) ProtoMessage() {}
func (*GeneralQuery) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{41} }
type isGeneralQuery_Query interface{ isGeneralQuery_Query() }
type GeneralQuery_BooleanQuery struct {
BooleanQuery *BooleanQuery `protobuf:"bytes,1,opt,name=boolean_query,json=booleanQuery,oneof"`
}
type GeneralQuery_TermQuery struct {
TermQuery *TermQuery `protobuf:"bytes,2,opt,name=term_query,json=termQuery,oneof"`
}
type GeneralQuery_RangeQuery struct {
RangeQuery *RangeQuery `protobuf:"bytes,3,opt,name=range_query,json=rangeQuery,oneof"`
}
type GeneralQuery_VectorQuery struct {
VectorQuery *VectorQuery `protobuf:"bytes,4,opt,name=vector_query,json=vectorQuery,oneof"`
}
func (*GeneralQuery_BooleanQuery) isGeneralQuery_Query() {}
func (*GeneralQuery_TermQuery) isGeneralQuery_Query() {}
func (*GeneralQuery_RangeQuery) isGeneralQuery_Query() {}
func (*GeneralQuery_VectorQuery) isGeneralQuery_Query() {}
func (m *GeneralQuery) GetQuery() isGeneralQuery_Query {
if m != nil {
return m.Query
}
return nil
}
func (m *GeneralQuery) GetBooleanQuery() *BooleanQuery {
if x, ok := m.GetQuery().(*GeneralQuery_BooleanQuery); ok {
return x.BooleanQuery
}
return nil
}
func (m *GeneralQuery) GetTermQuery() *TermQuery {
if x, ok := m.GetQuery().(*GeneralQuery_TermQuery); ok {
return x.TermQuery
}
return nil
}
func (m *GeneralQuery) GetRangeQuery() *RangeQuery {
if x, ok := m.GetQuery().(*GeneralQuery_RangeQuery); ok {
return x.RangeQuery
}
return nil
}
func (m *GeneralQuery) GetVectorQuery() *VectorQuery {
if x, ok := m.GetQuery().(*GeneralQuery_VectorQuery); ok {
return x.VectorQuery
}
return nil
}
// XXX_OneofFuncs is for the internal use of the proto package.
func (*GeneralQuery) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
return _GeneralQuery_OneofMarshaler, _GeneralQuery_OneofUnmarshaler, _GeneralQuery_OneofSizer, []interface{}{
(*GeneralQuery_BooleanQuery)(nil),
(*GeneralQuery_TermQuery)(nil),
(*GeneralQuery_RangeQuery)(nil),
(*GeneralQuery_VectorQuery)(nil),
}
}
func _GeneralQuery_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
m := msg.(*GeneralQuery)
// query
switch x := m.Query.(type) {
case *GeneralQuery_BooleanQuery:
b.EncodeVarint(1<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.BooleanQuery); err != nil {
return err
}
case *GeneralQuery_TermQuery:
b.EncodeVarint(2<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.TermQuery); err != nil {
return err
}
case *GeneralQuery_RangeQuery:
b.EncodeVarint(3<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.RangeQuery); err != nil {
return err
}
case *GeneralQuery_VectorQuery:
b.EncodeVarint(4<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.VectorQuery); err != nil {
return err
}
case nil:
default:
return fmt.Errorf("GeneralQuery.Query has unexpected type %T", x)
}
return nil
}
func _GeneralQuery_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
m := msg.(*GeneralQuery)
switch tag {
case 1: // query.boolean_query
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(BooleanQuery)
err := b.DecodeMessage(msg)
m.Query = &GeneralQuery_BooleanQuery{msg}
return true, err
case 2: // query.term_query
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(TermQuery)
err := b.DecodeMessage(msg)
m.Query = &GeneralQuery_TermQuery{msg}
return true, err
case 3: // query.range_query
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(RangeQuery)
err := b.DecodeMessage(msg)
m.Query = &GeneralQuery_RangeQuery{msg}
return true, err
case 4: // query.vector_query
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(VectorQuery)
err := b.DecodeMessage(msg)
m.Query = &GeneralQuery_VectorQuery{msg}
return true, err
default:
return false, nil
}
}
func _GeneralQuery_OneofSizer(msg proto.Message) (n int) {
m := msg.(*GeneralQuery)
// query
switch x := m.Query.(type) {
case *GeneralQuery_BooleanQuery:
s := proto.Size(x.BooleanQuery)
n += proto.SizeVarint(1<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case *GeneralQuery_TermQuery:
s := proto.Size(x.TermQuery)
n += proto.SizeVarint(2<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case *GeneralQuery_RangeQuery:
s := proto.Size(x.RangeQuery)
n += proto.SizeVarint(3<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case *GeneralQuery_VectorQuery:
s := proto.Size(x.VectorQuery)
n += proto.SizeVarint(4<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case nil:
default:
panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
}
return n
}
type SearchParamPB struct {
CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName" json:"collection_name,omitempty"`
PartitionTagArray []string `protobuf:"bytes,2,rep,name=partition_tag_array,json=partitionTagArray" json:"partition_tag_array,omitempty"`
GeneralQuery *GeneralQuery `protobuf:"bytes,3,opt,name=general_query,json=generalQuery" json:"general_query,omitempty"`
ExtraParams []*KeyValuePair `protobuf:"bytes,4,rep,name=extra_params,json=extraParams" json:"extra_params,omitempty"`
}
func (m *SearchParamPB) Reset() { *m = SearchParamPB{} }
func (m *SearchParamPB) String() string { return proto.CompactTextString(m) }
func (*SearchParamPB) ProtoMessage() {}
func (*SearchParamPB) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{42} }
func (m *SearchParamPB) GetCollectionName() string {
if m != nil {
return m.CollectionName
}
return ""
}
func (m *SearchParamPB) GetPartitionTagArray() []string {
if m != nil {
return m.PartitionTagArray
}
return nil
}
func (m *SearchParamPB) GetGeneralQuery() *GeneralQuery {
if m != nil {
return m.GeneralQuery
}
return nil
}
func (m *SearchParamPB) GetExtraParams() []*KeyValuePair {
if m != nil {
return m.ExtraParams
}
return nil
}
type InsertOrDeleteMsg struct {
CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName" json:"collection_name,omitempty"`
RowsData *RowData `protobuf:"bytes,2,opt,name=rows_data,json=rowsData" json:"rows_data,omitempty"`
Uid int64 `protobuf:"varint,3,opt,name=uid" json:"uid,omitempty"`
PartitionTag string `protobuf:"bytes,4,opt,name=partition_tag,json=partitionTag" json:"partition_tag,omitempty"`
Timestamp int64 `protobuf:"varint,5,opt,name=timestamp" json:"timestamp,omitempty"`
SegmentId int64 `protobuf:"varint,6,opt,name=segment_id,json=segmentId" json:"segment_id,omitempty"`
ChannelId int64 `protobuf:"varint,7,opt,name=channel_id,json=channelId" json:"channel_id,omitempty"`
Op OpType `protobuf:"varint,8,opt,name=op,enum=suvlim.grpc.OpType" json:"op,omitempty"`
ClientId int64 `protobuf:"varint,9,opt,name=client_id,json=clientId" json:"client_id,omitempty"`
ExtraParams []*KeyValuePair `protobuf:"bytes,10,rep,name=extra_params,json=extraParams" json:"extra_params,omitempty"`
}
func (m *InsertOrDeleteMsg) Reset() { *m = InsertOrDeleteMsg{} }
func (m *InsertOrDeleteMsg) String() string { return proto.CompactTextString(m) }
func (*InsertOrDeleteMsg) ProtoMessage() {}
func (*InsertOrDeleteMsg) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{43} }
func (m *InsertOrDeleteMsg) GetCollectionName() string {
if m != nil {
return m.CollectionName
}
return ""
}
func (m *InsertOrDeleteMsg) GetRowsData() *RowData {
if m != nil {
return m.RowsData
}
return nil
}
func (m *InsertOrDeleteMsg) GetUid() int64 {
if m != nil {
return m.Uid
}
return 0
}
func (m *InsertOrDeleteMsg) GetPartitionTag() string {
if m != nil {
return m.PartitionTag
}
return ""
}
func (m *InsertOrDeleteMsg) GetTimestamp() int64 {
if m != nil {
return m.Timestamp
}
return 0
}
func (m *InsertOrDeleteMsg) GetSegmentId() int64 {
if m != nil {
return m.SegmentId
}
return 0
}
func (m *InsertOrDeleteMsg) GetChannelId() int64 {
if m != nil {
return m.ChannelId
}
return 0
}
func (m *InsertOrDeleteMsg) GetOp() OpType {
if m != nil {
return m.Op
}
return OpType_INSERT
}
func (m *InsertOrDeleteMsg) GetClientId() int64 {
if m != nil {
return m.ClientId
}
return 0
}
func (m *InsertOrDeleteMsg) GetExtraParams() []*KeyValuePair {
if m != nil {
return m.ExtraParams
}
return nil
}
type SearchMsg struct {
CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName" json:"collection_name,omitempty"`
Records *VectorRowRecord `protobuf:"bytes,2,opt,name=records" json:"records,omitempty"`
PartitionTag string `protobuf:"bytes,3,opt,name=partition_tag,json=partitionTag" json:"partition_tag,omitempty"`
Uid int64 `protobuf:"varint,4,opt,name=uid" json:"uid,omitempty"`
Timestamp int64 `protobuf:"varint,5,opt,name=timestamp" json:"timestamp,omitempty"`
ClientId int64 `protobuf:"varint,6,opt,name=client_id,json=clientId" json:"client_id,omitempty"`
ExtraParams []*KeyValuePair `protobuf:"bytes,7,rep,name=extra_params,json=extraParams" json:"extra_params,omitempty"`
}
func (m *SearchMsg) Reset() { *m = SearchMsg{} }
func (m *SearchMsg) String() string { return proto.CompactTextString(m) }
func (*SearchMsg) ProtoMessage() {}
func (*SearchMsg) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{44} }
func (m *SearchMsg) GetCollectionName() string {
if m != nil {
return m.CollectionName
}
return ""
}
func (m *SearchMsg) GetRecords() *VectorRowRecord {
if m != nil {
return m.Records
}
return nil
}
func (m *SearchMsg) GetPartitionTag() string {
if m != nil {
return m.PartitionTag
}
return ""
}
func (m *SearchMsg) GetUid() int64 {
if m != nil {
return m.Uid
}
return 0
}
func (m *SearchMsg) GetTimestamp() int64 {
if m != nil {
return m.Timestamp
}
return 0
}
func (m *SearchMsg) GetClientId() int64 {
if m != nil {
return m.ClientId
}
return 0
}
func (m *SearchMsg) GetExtraParams() []*KeyValuePair {
if m != nil {
return m.ExtraParams
}
return nil
}
type TimeSyncMsg struct {
ClientId int64 `protobuf:"varint,1,opt,name=ClientId,json=clientId" json:"ClientId,omitempty"`
Timestamp int64 `protobuf:"varint,2,opt,name=Timestamp,json=timestamp" json:"Timestamp,omitempty"`
MsgType OpType `protobuf:"varint,3,opt,name=MsgType,json=msgType,enum=suvlim.grpc.OpType" json:"MsgType,omitempty"`
}
func (m *TimeSyncMsg) Reset() { *m = TimeSyncMsg{} }
func (m *TimeSyncMsg) String() string { return proto.CompactTextString(m) }
func (*TimeSyncMsg) ProtoMessage() {}
func (*TimeSyncMsg) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{45} }
func (m *TimeSyncMsg) GetClientId() int64 {
if m != nil {
return m.ClientId
}
return 0
}
func (m *TimeSyncMsg) GetTimestamp() int64 {
if m != nil {
return m.Timestamp
}
return 0
}
func (m *TimeSyncMsg) GetMsgType() OpType {
if m != nil {
return m.MsgType
}
return OpType_INSERT
}
type SegmentRecord struct {
Uid int64 `protobuf:"varint,1,opt,name=uid" json:"uid,omitempty"`
SegmentId []int64 `protobuf:"varint,2,rep,packed,name=segment_id,json=segmentId" json:"segment_id,omitempty"`
}
func (m *SegmentRecord) Reset() { *m = SegmentRecord{} }
func (m *SegmentRecord) String() string { return proto.CompactTextString(m) }
func (*SegmentRecord) ProtoMessage() {}
func (*SegmentRecord) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{46} }
func (m *SegmentRecord) GetUid() int64 {
if m != nil {
return m.Uid
}
return 0
}
func (m *SegmentRecord) GetSegmentId() []int64 {
if m != nil {
return m.SegmentId
}
return nil
}
type Key2SegMsg struct {
ClientId int64 `protobuf:"varint,1,opt,name=client_id,json=clientId" json:"client_id,omitempty"`
Records *SegmentRecord `protobuf:"bytes,2,opt,name=records" json:"records,omitempty"`
MsgType OpType `protobuf:"varint,3,opt,name=msg_type,json=msgType,enum=suvlim.grpc.OpType" json:"msg_type,omitempty"`
}
func (m *Key2SegMsg) Reset() { *m = Key2SegMsg{} }
func (m *Key2SegMsg) String() string { return proto.CompactTextString(m) }
func (*Key2SegMsg) ProtoMessage() {}
func (*Key2SegMsg) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{47} }
func (m *Key2SegMsg) GetClientId() int64 {
if m != nil {
return m.ClientId
}
return 0
}
func (m *Key2SegMsg) GetRecords() *SegmentRecord {
if m != nil {
return m.Records
}
return nil
}
func (m *Key2SegMsg) GetMsgType() OpType {
if m != nil {
return m.MsgType
}
return OpType_INSERT
}
func init() {
proto.RegisterType((*Status)(nil), "suvlim.grpc.Status")
proto.RegisterType((*KeyValuePair)(nil), "suvlim.grpc.KeyValuePair")
proto.RegisterType((*CollectionName)(nil), "suvlim.grpc.CollectionName")
proto.RegisterType((*CollectionNameList)(nil), "suvlim.grpc.CollectionNameList")
proto.RegisterType((*FieldName)(nil), "suvlim.grpc.FieldName")
proto.RegisterType((*Mapping)(nil), "suvlim.grpc.Mapping")
proto.RegisterType((*MappingList)(nil), "suvlim.grpc.MappingList")
proto.RegisterType((*PartitionParam)(nil), "suvlim.grpc.PartitionParam")
proto.RegisterType((*PartitionList)(nil), "suvlim.grpc.PartitionList")
proto.RegisterType((*VectorRowRecord)(nil), "suvlim.grpc.VectorRowRecord")
proto.RegisterType((*EntityIds)(nil), "suvlim.grpc.EntityIds")
proto.RegisterType((*VectorRecord)(nil), "suvlim.grpc.VectorRecord")
proto.RegisterType((*VectorParam)(nil), "suvlim.grpc.VectorParam")
proto.RegisterType((*FieldMeta)(nil), "suvlim.grpc.FieldMeta")
proto.RegisterType((*Schema)(nil), "suvlim.grpc.Schema")
proto.RegisterType((*RowData)(nil), "suvlim.grpc.RowData")
proto.RegisterType((*InsertParam)(nil), "suvlim.grpc.InsertParam")
proto.RegisterType((*SearchParam)(nil), "suvlim.grpc.SearchParam")
proto.RegisterType((*SearchInSegmentParam)(nil), "suvlim.grpc.SearchInSegmentParam")
proto.RegisterType((*Entities)(nil), "suvlim.grpc.Entities")
proto.RegisterType((*QueryResult)(nil), "suvlim.grpc.QueryResult")
proto.RegisterType((*StringReply)(nil), "suvlim.grpc.StringReply")
proto.RegisterType((*BoolReply)(nil), "suvlim.grpc.BoolReply")
proto.RegisterType((*CollectionRowCount)(nil), "suvlim.grpc.CollectionRowCount")
proto.RegisterType((*Command)(nil), "suvlim.grpc.Command")
proto.RegisterType((*IndexParam)(nil), "suvlim.grpc.IndexParam")
proto.RegisterType((*FlushParam)(nil), "suvlim.grpc.FlushParam")
proto.RegisterType((*CompactParam)(nil), "suvlim.grpc.CompactParam")
proto.RegisterType((*DeleteByIDParam)(nil), "suvlim.grpc.DeleteByIDParam")
proto.RegisterType((*CollectionInfo)(nil), "suvlim.grpc.CollectionInfo")
proto.RegisterType((*GetEntityIDsParam)(nil), "suvlim.grpc.GetEntityIDsParam")
proto.RegisterType((*EntityIdentity)(nil), "suvlim.grpc.EntityIdentity")
proto.RegisterType((*VectorFieldParam)(nil), "suvlim.grpc.VectorFieldParam")
proto.RegisterType((*FieldType)(nil), "suvlim.grpc.FieldType")
proto.RegisterType((*FieldParam)(nil), "suvlim.grpc.FieldParam")
proto.RegisterType((*VectorFieldRecord)(nil), "suvlim.grpc.VectorFieldRecord")
proto.RegisterType((*TermQuery)(nil), "suvlim.grpc.TermQuery")
proto.RegisterType((*CompareExpr)(nil), "suvlim.grpc.CompareExpr")
proto.RegisterType((*RangeQuery)(nil), "suvlim.grpc.RangeQuery")
proto.RegisterType((*VectorQuery)(nil), "suvlim.grpc.VectorQuery")
proto.RegisterType((*BooleanQuery)(nil), "suvlim.grpc.BooleanQuery")
proto.RegisterType((*GeneralQuery)(nil), "suvlim.grpc.GeneralQuery")
proto.RegisterType((*SearchParamPB)(nil), "suvlim.grpc.SearchParamPB")
proto.RegisterType((*InsertOrDeleteMsg)(nil), "suvlim.grpc.InsertOrDeleteMsg")
proto.RegisterType((*SearchMsg)(nil), "suvlim.grpc.SearchMsg")
proto.RegisterType((*TimeSyncMsg)(nil), "suvlim.grpc.TimeSyncMsg")
proto.RegisterType((*SegmentRecord)(nil), "suvlim.grpc.SegmentRecord")
proto.RegisterType((*Key2SegMsg)(nil), "suvlim.grpc.Key2SegMsg")
proto.RegisterEnum("suvlim.grpc.ErrorCode", ErrorCode_name, ErrorCode_value)
proto.RegisterEnum("suvlim.grpc.DataType", DataType_name, DataType_value)
proto.RegisterEnum("suvlim.grpc.CompareOperator", CompareOperator_name, CompareOperator_value)
proto.RegisterEnum("suvlim.grpc.Occur", Occur_name, Occur_value)
proto.RegisterEnum("suvlim.grpc.OpType", OpType_name, OpType_value)
}
func init() { proto.RegisterFile("suvlim.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{
// 2881 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x5a, 0xcd, 0x73, 0xdb, 0xc6,
0x15, 0x27, 0x08, 0x8a, 0x24, 0x1e, 0x28, 0x09, 0x5a, 0xcb, 0x36, 0x2d, 0xdb, 0x8d, 0x83, 0xce,
0xb4, 0x8e, 0x3b, 0x75, 0x13, 0x25, 0xb5, 0xdd, 0x3a, 0x49, 0xc3, 0x0f, 0x48, 0x42, 0xcd, 0x0f,
0x79, 0x09, 0x39, 0x71, 0x32, 0x1d, 0x14, 0x22, 0xd7, 0x34, 0x1a, 0x92, 0x60, 0x01, 0x50, 0xb2,
0xae, 0xbd, 0xb7, 0x9d, 0x1e, 0x3b, 0xd3, 0x4b, 0xfb, 0x2f, 0xf4, 0xff, 0xe8, 0x35, 0x87, 0xcc,
0xf4, 0xd8, 0xe9, 0xdf, 0xd0, 0x53, 0x67, 0x3f, 0x40, 0x02, 0x20, 0x29, 0x93, 0x51, 0x7b, 0xd2,
0xf2, 0xed, 0xbe, 0xb7, 0xbf, 0xf7, 0xb1, 0x6f, 0xdf, 0x5b, 0x08, 0x4a, 0xc1, 0xe4, 0x6c, 0xe0,
0x0e, 0x1f, 0x8e, 0x7d, 0x2f, 0xf4, 0x90, 0x2a, 0x7e, 0xf5, 0xfd, 0x71, 0x57, 0xff, 0x1c, 0xf2,
0x9d, 0xd0, 0x09, 0x27, 0x01, 0xfa, 0x29, 0x00, 0xf1, 0x7d, 0xcf, 0xb7, 0xbb, 0x5e, 0x8f, 0x94,
0xa5, 0x7b, 0xd2, 0xfd, 0xad, 0xfd, 0x1b, 0x0f, 0x63, 0x6b, 0x1f, 0x1a, 0x74, 0xba, 0xe6, 0xf5,
0x08, 0x56, 0x48, 0x34, 0x44, 0x37, 0x20, 0xef, 0x13, 0x27, 0xf0, 0x46, 0xe5, 0xec, 0x3d, 0xe9,
0xbe, 0x82, 0xc5, 0x2f, 0xfd, 0x11, 0x94, 0x9e, 0x91, 0x8b, 0x17, 0xce, 0x60, 0x42, 0x8e, 0x1d,
0xd7, 0x47, 0x1a, 0xc8, 0x5f, 0x93, 0x0b, 0x26, 0x57, 0xc1, 0x74, 0x88, 0x76, 0x61, 0xe3, 0x8c,
0x4e, 0x0b, 0x46, 0xfe, 0x43, 0xff, 0x19, 0x6c, 0xd5, 0xbc, 0xc1, 0x80, 0x74, 0x43, 0xd7, 0x1b,
0xb5, 0x9c, 0x21, 0x41, 0x3f, 0x84, 0xed, 0xee, 0x94, 0x62, 0x8f, 0x9c, 0x21, 0x11, 0x52, 0xb6,
0xba, 0x89, 0x85, 0xfa, 0x00, 0x50, 0x92, 0xb5, 0xe1, 0x06, 0x21, 0xfa, 0x11, 0xe4, 0x03, 0xa6,
0x21, 0xe3, 0x52, 0xf7, 0xaf, 0x25, 0x74, 0xe2, 0xca, 0x63, 0xb1, 0x04, 0xbd, 0x07, 0x5a, 0x6a,
0xaf, 0xa0, 0x9c, 0xbd, 0x27, 0xdf, 0x57, 0xf0, 0x76, 0x72, 0xb3, 0x40, 0xef, 0x80, 0x72, 0xe0,
0x92, 0x41, 0x6f, 0x2d, 0x8c, 0xe8, 0x2e, 0xc0, 0x2b, 0xca, 0xc5, 0xd7, 0x70, 0xcd, 0x95, 0x57,
0x91, 0x1c, 0xfd, 0x1f, 0x12, 0x14, 0x9a, 0xce, 0x78, 0xec, 0x8e, 0xfa, 0xeb, 0x01, 0x5f, 0x00,
0x20, 0xbb, 0x10, 0xc0, 0x4f, 0x20, 0xcf, 0xb6, 0x0b, 0xca, 0xf2, 0x3d, 0xf9, 0xbe, 0xba, 0x7f,
0x33, 0x21, 0x95, 0x69, 0x74, 0xec, 0xf8, 0xce, 0x10, 0x8b, 0x65, 0xe8, 0x63, 0x28, 0x91, 0x37,
0xa1, 0xef, 0xd8, 0x63, 0x4a, 0x0e, 0xca, 0x39, 0xc6, 0x76, 0x2b, 0xc1, 0x16, 0xf7, 0x34, 0x56,
0xd9, 0x72, 0x26, 0x24, 0xd0, 0x03, 0x50, 0x85, 0x3e, 0xeb, 0x3b, 0xe3, 0x31, 0x94, 0x86, 0x9c,
0xd7, 0x1e, 0xb8, 0x41, 0xc8, 0x1c, 0xa1, 0xee, 0xef, 0x26, 0x58, 0x84, 0x70, 0xac, 0x0e, 0x67,
0xbb, 0xe8, 0xcf, 0x60, 0xeb, 0xd8, 0xf1, 0x43, 0x97, 0x2a, 0xcd, 0x70, 0xac, 0xee, 0x1f, 0x0d,
0xe4, 0xd0, 0xe9, 0x0b, 0xdb, 0xd1, 0xa1, 0x3e, 0x80, 0xcd, 0xa9, 0xb0, 0xf5, 0x75, 0x78, 0x08,
0xd7, 0xc6, 0x11, 0xb7, 0x1d, 0x3a, 0x7d, 0xdb, 0xf1, 0x7d, 0xe7, 0x42, 0xc4, 0xd4, 0xce, 0x74,
0xca, 0x72, 0xfa, 0x15, 0x3a, 0xa1, 0x3f, 0x87, 0xed, 0x17, 0xa4, 0x1b, 0x7a, 0x3e, 0xf6, 0xce,
0x31, 0xe9, 0x7a, 0x7e, 0x8f, 0x85, 0xcc, 0xc0, 0x73, 0x42, 0xbb, 0xe7, 0x84, 0x4e, 0x59, 0xba,
0x27, 0xdf, 0xcf, 0x62, 0x85, 0x51, 0xea, 0x4e, 0xe8, 0xa0, 0x77, 0x40, 0x3d, 0x75, 0x47, 0x8e,
0x7f, 0xc1, 0xe7, 0x29, 0xf2, 0x12, 0x06, 0x4e, 0xa2, 0x0b, 0xf4, 0x5f, 0x83, 0x62, 0x8c, 0x42,
0x37, 0xbc, 0x30, 0x7b, 0xc1, 0x7a, 0xe0, 0x7f, 0x00, 0xdb, 0x84, 0x71, 0xda, 0x6e, 0x2f, 0x06,
0x5c, 0xc6, 0x9b, 0x44, 0x08, 0xe4, 0xa0, 0x0f, 0xa0, 0x24, 0x40, 0x73, 0xc4, 0x8f, 0xa0, 0xe0,
0xb3, 0x51, 0xc0, 0xe0, 0xaa, 0xfb, 0x77, 0x12, 0xbb, 0xa4, 0x14, 0xc4, 0xd1, 0x62, 0xfd, 0x2b,
0x50, 0xf9, 0x1c, 0x77, 0x1a, 0x82, 0xdc, 0x6f, 0x68, 0x62, 0xe1, 0x9e, 0x62, 0x63, 0xf4, 0x04,
0xc0, 0xf7, 0xce, 0x6d, 0xce, 0xc1, 0x94, 0x4d, 0xc7, 0x62, 0x1c, 0x09, 0x56, 0xfc, 0x68, 0x17,
0xbd, 0x2f, 0xce, 0x6b, 0x93, 0x84, 0x4e, 0xea, 0x18, 0x4a, 0xa9, 0x63, 0x88, 0xde, 0x83, 0x5c,
0x78, 0x31, 0xe6, 0x47, 0x68, 0x6b, 0xff, 0x7a, 0x42, 0x3e, 0xb5, 0xa9, 0x75, 0x31, 0x26, 0x98,
0x2d, 0xa1, 0x01, 0xd3, 0x73, 0x87, 0x65, 0xf9, 0x9e, 0x74, 0x5f, 0xc6, 0x74, 0xa8, 0x57, 0x20,
0xdf, 0xe9, 0xbe, 0x26, 0x43, 0x07, 0x3d, 0x06, 0x95, 0xef, 0x32, 0x24, 0xa1, 0x13, 0xd9, 0xe2,
0xc6, 0xfc, 0x81, 0xa3, 0x90, 0x30, 0x07, 0x44, 0x87, 0x81, 0x7e, 0x17, 0x0a, 0xd8, 0x3b, 0x67,
0xee, 0x45, 0x90, 0x3b, 0x1d, 0x78, 0xa7, 0x0c, 0x63, 0x09, 0xb3, 0xb1, 0xfe, 0xd7, 0x2c, 0xa8,
0xe6, 0x28, 0x20, 0x7e, 0xb8, 0x66, 0x74, 0x53, 0xef, 0x33, 0x68, 0xc2, 0x72, 0x29, 0xef, 0xb3,
0x29, 0x2c, 0x96, 0xa0, 0x0f, 0x80, 0x5a, 0x2f, 0xe0, 0x61, 0x25, 0x2f, 0x38, 0x7b, 0x02, 0x22,
0x2e, 0xd2, 0x65, 0x0c, 0xec, 0x82, 0x80, 0xc9, 0x2d, 0x08, 0x18, 0xf4, 0x7d, 0xd8, 0x4c, 0x9c,
0x8a, 0xf2, 0x06, 0x83, 0x5b, 0x8a, 0x9f, 0x87, 0xb9, 0xc4, 0x93, 0x5f, 0x2b, 0xf1, 0xfc, 0x5b,
0x02, 0xb5, 0x43, 0x1c, 0xbf, 0xfb, 0x7a, 0x4d, 0x1b, 0x3d, 0x85, 0xd2, 0x19, 0x0b, 0x21, 0xbe,
0xaf, 0xc8, 0x3a, 0xe5, 0x05, 0x31, 0xc6, 0xf3, 0xa4, 0x7a, 0x16, 0x0b, 0x59, 0x1a, 0x0d, 0xc1,
0x80, 0x45, 0x83, 0x82, 0xe9, 0x70, 0x5e, 0xd5, 0x1c, 0x3b, 0xfa, 0x97, 0xab, 0xba, 0xb1, 0x96,
0xaa, 0xe7, 0xb0, 0xcb, 0x35, 0x35, 0x47, 0x1d, 0xd2, 0x1f, 0x92, 0x91, 0x08, 0x0b, 0x1d, 0x36,
0x5f, 0xb9, 0x03, 0x32, 0xf3, 0x85, 0xc4, 0xb6, 0x56, 0x29, 0x31, 0xf2, 0xc4, 0x53, 0x28, 0x05,
0x8c, 0x77, 0xaa, 0xad, 0x34, 0xa7, 0x6d, 0xcc, 0x8c, 0x58, 0x0d, 0x66, 0x3f, 0xf4, 0x3f, 0x4b,
0x50, 0x64, 0xa9, 0xc5, 0x25, 0x6b, 0x66, 0x16, 0x0d, 0x64, 0xb7, 0x17, 0x88, 0x6c, 0x42, 0x87,
0xe8, 0x36, 0x28, 0x67, 0xce, 0xc0, 0xed, 0xd9, 0xbe, 0x77, 0xce, 0xa2, 0xad, 0x88, 0x8b, 0x8c,
0x80, 0xbd, 0xf3, 0x64, 0x28, 0xe6, 0x56, 0x09, 0x45, 0xfd, 0x3f, 0x12, 0xa8, 0xcf, 0x27, 0xc4,
0xbf, 0xc0, 0x24, 0x98, 0x0c, 0xd6, 0xcc, 0xda, 0x1f, 0x40, 0x91, 0x08, 0xbd, 0x84, 0x45, 0x92,
0x39, 0x20, 0x52, 0x1a, 0x4f, 0x97, 0xa1, 0x9b, 0x50, 0xa0, 0x89, 0x69, 0x34, 0x89, 0x72, 0x41,
0xde, 0xf7, 0xce, 0x5b, 0x93, 0x21, 0x2d, 0x90, 0x82, 0xae, 0xe7, 0x13, 0x7e, 0x73, 0x66, 0xb1,
0xf8, 0x85, 0xee, 0x80, 0xd2, 0x73, 0x83, 0xd0, 0x19, 0x75, 0x09, 0x77, 0x78, 0x16, 0xcf, 0x08,
0x57, 0x0c, 0xfe, 0x5f, 0x81, 0xda, 0x09, 0x7d, 0x7a, 0x2f, 0x92, 0xf1, 0xe0, 0x62, 0x3d, 0xdd,
0xdf, 0x85, 0x52, 0xc0, 0x78, 0x6d, 0x9f, 0x32, 0x8b, 0xab, 0x50, 0x0d, 0x66, 0xf2, 0xf4, 0xcf,
0x41, 0xa9, 0x7a, 0xde, 0xe0, 0x3b, 0x08, 0xbf, 0x0b, 0x70, 0xea, 0x79, 0x83, 0x98, 0xe8, 0x22,
0x56, 0x4e, 0x23, 0x59, 0x7a, 0x10, 0xaf, 0xe0, 0xb0, 0x77, 0x5e, 0xf3, 0x26, 0xa3, 0x35, 0x5d,
0xf7, 0x3e, 0xec, 0xc6, 0xce, 0x39, 0x75, 0x49, 0x97, 0x0a, 0x61, 0x7b, 0xc9, 0x18, 0x75, 0xe7,
0xc4, 0xeb, 0xb7, 0xa1, 0x50, 0xf3, 0x86, 0x43, 0x67, 0xd4, 0xa3, 0x61, 0xd9, 0x1d, 0xf6, 0xa2,
0x22, 0xb5, 0x3b, 0xec, 0xe9, 0xff, 0x94, 0x00, 0xcc, 0x51, 0x8f, 0xbc, 0xe1, 0x47, 0xea, 0xff,
0x53, 0x93, 0x25, 0x6f, 0x23, 0x39, 0x7d, 0x1b, 0xdd, 0x05, 0x70, 0x29, 0x04, 0x3e, 0x9d, 0xe3,
0xd3, 0x8c, 0xc2, 0xa6, 0xaf, 0x96, 0x3c, 0x3e, 0x03, 0x38, 0x18, 0x4c, 0x02, 0x91, 0x25, 0xf7,
0xe1, 0x7a, 0x0a, 0x72, 0x22, 0x75, 0x5c, 0x4b, 0x02, 0xe7, 0xb7, 0xff, 0x09, 0x94, 0x6a, 0xde,
0x70, 0xec, 0x74, 0xd7, 0xbd, 0x8d, 0xee, 0x80, 0x12, 0xbe, 0xf6, 0x49, 0xf0, 0xda, 0x1b, 0xf0,
0xab, 0x5c, 0xc2, 0x33, 0x82, 0x7e, 0x02, 0xdb, 0x75, 0x32, 0x20, 0x21, 0xa9, 0x5e, 0x98, 0xf5,
0x35, 0x25, 0xdf, 0x82, 0x62, 0xaa, 0x62, 0x29, 0xb8, 0xa2, 0x56, 0xf9, 0x32, 0xde, 0x5f, 0x98,
0xa3, 0x57, 0xde, 0x7a, 0x3e, 0xbd, 0x0d, 0x0a, 0xad, 0x43, 0x6c, 0x77, 0xf4, 0xca, 0x13, 0xde,
0x2c, 0x52, 0x02, 0x95, 0xa4, 0x7f, 0x05, 0x3b, 0x87, 0x24, 0x14, 0xc5, 0x56, 0x3d, 0x58, 0x13,
0xf4, 0x5d, 0x80, 0x80, 0xa7, 0x6f, 0xdb, 0xed, 0x89, 0x78, 0x55, 0x04, 0xc5, 0xec, 0xe9, 0x13,
0xd8, 0x8a, 0xca, 0x38, 0x7e, 0x99, 0xfe, 0x2f, 0xcc, 0x41, 0xab, 0xc7, 0x59, 0xe8, 0xf1, 0x9e,
0x40, 0x11, 0xa5, 0x08, 0x6f, 0x73, 0xde, 0x07, 0x8d, 0xdf, 0x76, 0xb3, 0xd6, 0x80, 0xa7, 0xae,
0x21, 0x19, 0x05, 0xae, 0xa8, 0xce, 0x64, 0x3c, 0x23, 0xe8, 0x7f, 0x90, 0x44, 0xa5, 0x45, 0xab,
0x24, 0xf4, 0x11, 0x28, 0x34, 0x6b, 0xdb, 0xac, 0x9e, 0x92, 0x2e, 0xa9, 0xa7, 0x8e, 0x32, 0xb8,
0xd8, 0x13, 0x63, 0x54, 0x9d, 0xbb, 0x84, 0xa9, 0x67, 0xee, 0x2e, 0xb8, 0x84, 0x67, 0xb0, 0x8e,
0x32, 0x89, 0xbb, 0xb8, 0x5a, 0x10, 0xfd, 0xa5, 0xfe, 0x8d, 0x04, 0x10, 0x43, 0xbf, 0x05, 0x59,
0x97, 0x9f, 0xf1, 0x1c, 0xce, 0xba, 0x3d, 0x5a, 0x61, 0xc5, 0xce, 0x26, 0x1b, 0x4f, 0x0b, 0x40,
0xf9, 0xed, 0x05, 0xe0, 0xc7, 0x50, 0xe2, 0xa7, 0x73, 0xe5, 0xfe, 0xc8, 0x9d, 0xe6, 0x93, 0xe0,
0x8a, 0x87, 0xf7, 0x10, 0x76, 0x62, 0x56, 0x10, 0xd5, 0xf7, 0x7e, 0xd4, 0x57, 0xaf, 0x52, 0x7b,
0x0b, 0x13, 0x7d, 0x2b, 0x81, 0x62, 0x11, 0x7f, 0xc8, 0x6e, 0xcc, 0xb7, 0x55, 0xc7, 0xb7, 0x41,
0x71, 0x47, 0xa1, 0x1d, 0x35, 0xef, 0x34, 0x9e, 0x8a, 0xee, 0x28, 0x64, 0x18, 0xe9, 0xf5, 0xd1,
0xf3, 0x26, 0xa7, 0x03, 0x22, 0xe6, 0x69, 0x44, 0x49, 0x58, 0xe5, 0x34, 0xbe, 0x84, 0x5f, 0xf5,
0x13, 0xc2, 0x2e, 0xcb, 0x1c, 0x0b, 0x9f, 0x22, 0x23, 0xd0, 0xeb, 0x72, 0x17, 0x36, 0x4e, 0x3d,
0x2f, 0x08, 0x59, 0x49, 0x98, 0xc5, 0xfc, 0xc7, 0x15, 0xaf, 0x43, 0x07, 0x54, 0x96, 0xa1, 0x7c,
0x62, 0xbc, 0x19, 0xfb, 0xe8, 0x09, 0x14, 0xbd, 0x31, 0xf1, 0x9d, 0xd0, 0xf3, 0x45, 0x44, 0x26,
0x6d, 0x24, 0xd6, 0xb6, 0xc5, 0x1a, 0x3c, 0x5d, 0x8d, 0xca, 0x50, 0x60, 0xe3, 0x51, 0x4f, 0x44,
0x4b, 0xf4, 0x53, 0xff, 0xbb, 0x04, 0x80, 0x9d, 0x51, 0x9f, 0xac, 0x64, 0xc1, 0xfd, 0xb8, 0x9c,
0xf9, 0xf2, 0x32, 0x06, 0x76, 0xba, 0xc3, 0xcc, 0x30, 0xf2, 0x65, 0x86, 0x59, 0xaf, 0x3b, 0xff,
0x46, 0x8a, 0x3a, 0xae, 0x95, 0x60, 0xbf, 0x03, 0xea, 0x6f, 0xe9, 0x3a, 0x9b, 0x03, 0xc9, 0x32,
0x20, 0xc0, 0x48, 0x55, 0x86, 0x26, 0xd6, 0xf8, 0xc9, 0x6b, 0x34, 0x7e, 0xf4, 0x08, 0x86, 0xde,
0xf8, 0x6b, 0x11, 0x0c, 0x6c, 0x7c, 0xc5, 0x93, 0xf1, 0x06, 0x4a, 0xb4, 0x44, 0x21, 0xce, 0x88,
0x6b, 0x76, 0x1f, 0x36, 0xbc, 0x6e, 0x77, 0x12, 0x39, 0x1c, 0x25, 0xc4, 0xb4, 0xe9, 0x0c, 0xe6,
0x0b, 0xd0, 0xa7, 0xb0, 0xd9, 0x27, 0x23, 0xe2, 0x3b, 0x03, 0x9b, 0x69, 0x26, 0x3c, 0x94, 0xdc,
0xf8, 0x90, 0xaf, 0xe0, 0x05, 0x66, 0xa9, 0x1f, 0xfb, 0xa5, 0xff, 0x3e, 0x0b, 0xa5, 0xf8, 0x34,
0xfa, 0x0c, 0x36, 0x4f, 0x39, 0x14, 0x21, 0x50, 0x5a, 0xd0, 0xb5, 0xc6, 0xc1, 0x1e, 0x65, 0x70,
0xe9, 0x34, 0x0e, 0xfe, 0x31, 0x40, 0x48, 0xfc, 0xe1, 0x14, 0x8f, 0x34, 0xd7, 0x46, 0x4e, 0xcf,
0xee, 0x51, 0x06, 0x2b, 0xe1, 0xf4, 0x20, 0xff, 0x1c, 0x54, 0x9f, 0x06, 0xa5, 0xe0, 0x94, 0x19,
0x67, 0xf2, 0xc5, 0x67, 0x16, 0xb4, 0x47, 0x19, 0x0c, 0xfe, 0x2c, 0x84, 0x3f, 0x99, 0xa6, 0x60,
0xce, 0x9c, 0x5b, 0xd0, 0x19, 0xc4, 0x62, 0x67, 0x96, 0x7d, 0xd9, 0x4f, 0x9a, 0x7d, 0x19, 0x9f,
0xfe, 0x2f, 0x09, 0x36, 0x63, 0x1d, 0xc4, 0x71, 0x75, 0xf5, 0x7b, 0x6b, 0xcd, 0xc7, 0x93, 0x79,
0xd7, 0xc9, 0x0b, 0x2c, 0xbd, 0xdc, 0x75, 0x57, 0x3c, 0x4c, 0xbf, 0x93, 0x61, 0x87, 0x77, 0xe5,
0x6d, 0x9f, 0x57, 0x2e, 0xcd, 0xa0, 0xbf, 0xba, 0xb2, 0x89, 0x1e, 0x87, 0xfb, 0xf8, 0x6d, 0xed,
0xb6, 0x06, 0xf2, 0xc4, 0xed, 0x45, 0x6f, 0x0f, 0x13, 0xb7, 0xb7, 0xa8, 0xdb, 0x9c, 0x6f, 0xac,
0x69, 0xdd, 0xe5, 0x0e, 0x49, 0x10, 0x3a, 0xc3, 0x31, 0x4b, 0xb3, 0x32, 0x9e, 0x11, 0x52, 0x65,
0x48, 0x3e, 0x55, 0x86, 0xd0, 0xe9, 0xee, 0x6b, 0x67, 0x34, 0x22, 0x03, 0x3a, 0x5d, 0xe0, 0xd3,
0x82, 0x62, 0x52, 0x00, 0x59, 0x6f, 0x5c, 0x2e, 0xb2, 0x43, 0x96, 0x2c, 0xa4, 0xda, 0x63, 0x76,
0x69, 0x66, 0xbd, 0x31, 0xbd, 0x00, 0xba, 0x03, 0x57, 0xec, 0xa0, 0xf0, 0x0b, 0x80, 0x13, 0xcc,
0xde, 0x9c, 0x13, 0x60, 0x2d, 0x27, 0xfc, 0x25, 0x0b, 0x0a, 0x8f, 0xb6, 0xb5, 0x8c, 0x1f, 0x4b,
0x5c, 0xdc, 0xf4, 0x2b, 0x26, 0xae, 0x39, 0x7b, 0xcb, 0x0b, 0xec, 0x2d, 0xdc, 0x94, 0x9b, 0xb9,
0xe9, 0x72, 0x0f, 0x24, 0xcc, 0x93, 0x7f, 0x8b, 0x79, 0x0a, 0x6b, 0x99, 0xe7, 0x0c, 0x54, 0xcb,
0x1d, 0x92, 0xce, 0xc5, 0xa8, 0x4b, 0xed, 0xb3, 0x07, 0xc5, 0x9a, 0x10, 0x2c, 0xea, 0xb8, 0xd9,
0x46, 0x77, 0x40, 0xb1, 0xa6, 0x18, 0xb3, 0x69, 0x8c, 0x3f, 0x86, 0x42, 0x33, 0xe8, 0x5b, 0xb3,
0x1a, 0x69, 0xa1, 0xb3, 0x0b, 0x43, 0xbe, 0x46, 0xff, 0x8c, 0xe6, 0x00, 0x16, 0x42, 0xa2, 0x48,
0x11, 0x36, 0x91, 0x66, 0x36, 0x49, 0x97, 0xbf, 0x72, 0xb2, 0xfc, 0xfd, 0xa3, 0x04, 0xf0, 0x8c,
0x5c, 0xec, 0x77, 0x48, 0x9f, 0x22, 0x4f, 0xd8, 0x28, 0x0d, 0xfd, 0xa3, 0xb4, 0x37, 0xf7, 0x52,
0xef, 0x19, 0x31, 0x24, 0x33, 0x5f, 0x3e, 0x84, 0xe2, 0x30, 0xe8, 0xdb, 0xe1, 0x8a, 0x3a, 0x3d,
0xf8, 0x5b, 0x0e, 0x94, 0xe9, 0x27, 0x11, 0xa4, 0x42, 0xa1, 0x73, 0x52, 0xab, 0x19, 0x9d, 0x8e,
0x96, 0x41, 0xbb, 0xa0, 0x9d, 0xb4, 0x8c, 0x2f, 0x8e, 0x8d, 0x9a, 0x65, 0xd4, 0x6d, 0x03, 0xe3,
0x36, 0xd6, 0x24, 0x84, 0x60, 0xab, 0xd6, 0x6e, 0xb5, 0x8c, 0x9a, 0x65, 0x1f, 0x54, 0xcc, 0x86,
0x51, 0xd7, 0xb2, 0xe8, 0x3a, 0xec, 0x1c, 0x1b, 0xb8, 0x69, 0x76, 0x3a, 0x66, 0xbb, 0x65, 0xd7,
0x8d, 0x96, 0x69, 0xd4, 0x35, 0x19, 0xdd, 0x82, 0xeb, 0xb5, 0x76, 0xa3, 0x61, 0xd4, 0x2c, 0x4a,
0x6e, 0xb5, 0x2d, 0xdb, 0xf8, 0xc2, 0xec, 0x58, 0x1d, 0x2d, 0x47, 0x65, 0x9b, 0x8d, 0x86, 0x71,
0x58, 0x69, 0xd8, 0x15, 0x7c, 0x78, 0xd2, 0x34, 0x5a, 0x96, 0xb6, 0x41, 0xe5, 0x44, 0xd4, 0xba,
0xd9, 0x34, 0x5a, 0x54, 0x9c, 0x56, 0x40, 0x37, 0x00, 0x45, 0x64, 0xb3, 0x55, 0x37, 0xbe, 0xb0,
0xad, 0x97, 0xc7, 0x86, 0x56, 0x44, 0xb7, 0xe1, 0x66, 0x44, 0x8f, 0xef, 0x53, 0x69, 0x1a, 0x9a,
0x82, 0x34, 0x28, 0x45, 0x93, 0x56, 0xfb, 0xf8, 0x99, 0x06, 0x71, 0xe9, 0xb8, 0xfd, 0x39, 0x36,
0x6a, 0x6d, 0x5c, 0xd7, 0xd4, 0x38, 0xf9, 0x85, 0x51, 0xb3, 0xda, 0xd8, 0x36, 0xeb, 0x5a, 0x89,
0x82, 0x8f, 0xc8, 0x1d, 0xa3, 0x82, 0x6b, 0x47, 0x36, 0x36, 0x3a, 0x27, 0x0d, 0x4b, 0xdb, 0xa4,
0x26, 0x38, 0x30, 0x1b, 0x06, 0xd3, 0xe8, 0xa0, 0x7d, 0xd2, 0xaa, 0x6b, 0x5b, 0x68, 0x1b, 0xd4,
0xa6, 0x61, 0x55, 0x22, 0x9b, 0x6c, 0xd3, 0xfd, 0x6b, 0x95, 0xda, 0x91, 0x11, 0x51, 0x34, 0x54,
0x86, 0xdd, 0x5a, 0xa5, 0x45, 0x99, 0x6a, 0xd8, 0xa8, 0x58, 0x86, 0x7d, 0xd0, 0x6e, 0xd4, 0x0d,
0xac, 0xed, 0x50, 0x05, 0x53, 0x33, 0x66, 0xc3, 0xd0, 0x50, 0x8c, 0xa3, 0x6e, 0x34, 0x8c, 0x19,
0xc7, 0xb5, 0x18, 0x47, 0x34, 0x43, 0x39, 0x76, 0xa9, 0x32, 0xd5, 0x13, 0xb3, 0x51, 0x17, 0x86,
0xe2, 0x4e, 0xbb, 0x8e, 0x76, 0x60, 0x33, 0x52, 0xa6, 0xd5, 0x30, 0x3b, 0x96, 0x76, 0x03, 0xdd,
0x84, 0x6b, 0x11, 0xa9, 0x69, 0x58, 0xd8, 0xac, 0x71, 0xab, 0xde, 0xa4, 0x6b, 0xdb, 0x27, 0x96,
0xdd, 0x3e, 0xb0, 0x9b, 0x46, 0xb3, 0x8d, 0x5f, 0x6a, 0xe5, 0x07, 0x7f, 0x92, 0xa0, 0x18, 0x35,
0x0c, 0xa8, 0x08, 0xb9, 0x56, 0xbb, 0x65, 0x68, 0x19, 0x3a, 0xaa, 0xb6, 0xdb, 0x0d, 0x4d, 0xa2,
0x23, 0xb3, 0x65, 0x3d, 0xd1, 0xb2, 0x48, 0x81, 0x0d, 0xb3, 0x65, 0x7d, 0xf0, 0x48, 0x93, 0xc5,
0xf0, 0xc3, 0x7d, 0x2d, 0x27, 0x86, 0x8f, 0x3e, 0xd2, 0x36, 0xe8, 0xf0, 0xa0, 0xd1, 0xae, 0x58,
0x1a, 0x20, 0x80, 0x7c, 0xbd, 0x7d, 0x52, 0x6d, 0x18, 0x9a, 0x4a, 0xc7, 0x1d, 0x0b, 0x9b, 0xad,
0x43, 0x6d, 0x97, 0x22, 0x10, 0x9e, 0xa8, 0x9a, 0xad, 0x0a, 0x7e, 0xa9, 0xd1, 0x93, 0x56, 0x12,
0x24, 0xce, 0x4c, 0x1e, 0xd4, 0x60, 0x3b, 0x55, 0xe2, 0xa2, 0x3c, 0x64, 0x1b, 0x96, 0x96, 0x41,
0x05, 0x90, 0x1b, 0x96, 0xa1, 0x49, 0x94, 0x60, 0x3c, 0xd7, 0xb2, 0xf4, 0xef, 0xa1, 0xa5, 0xc9,
0x74, 0xe2, 0xd0, 0x32, 0xb4, 0x1c, 0x25, 0xb4, 0x0c, 0x6d, 0xe3, 0xc1, 0x13, 0xd8, 0x60, 0x65,
0x13, 0x0d, 0x7c, 0xb3, 0xf5, 0xa2, 0xd2, 0x30, 0xeb, 0x5c, 0xaf, 0xe6, 0x49, 0xc7, 0xd2, 0x24,
0x86, 0xea, 0xa8, 0x7d, 0xd2, 0xa0, 0x41, 0x5e, 0x82, 0x22, 0xa5, 0x52, 0xaf, 0x6b, 0xf2, 0x83,
0x2f, 0x21, 0xcf, 0x8f, 0x12, 0x5d, 0x63, 0xb6, 0x3a, 0x06, 0xa6, 0x3b, 0x53, 0x8d, 0x98, 0x3f,
0x04, 0x2f, 0x0b, 0x1c, 0x2d, 0x4b, 0x35, 0x4a, 0x06, 0x91, 0x4c, 0x77, 0x7c, 0x66, 0xbc, 0xdc,
0xef, 0x18, 0x87, 0x5a, 0x8e, 0xca, 0xb6, 0xcc, 0xa6, 0xd1, 0x79, 0xd9, 0xaa, 0x69, 0x1b, 0xfb,
0xdf, 0x6e, 0xc2, 0x66, 0xd3, 0x1d, 0x9c, 0x4d, 0x82, 0x0e, 0xf1, 0xcf, 0xdc, 0x2e, 0x41, 0xbf,
0x00, 0xad, 0xe6, 0x13, 0x27, 0x24, 0xb3, 0xae, 0x1f, 0x2d, 0xfc, 0x84, 0xb4, 0xb7, 0xa8, 0xef,
0xd7, 0x33, 0xe8, 0x00, 0x36, 0x8f, 0x9c, 0x20, 0xc6, 0x7d, 0x3b, 0x55, 0xab, 0xc7, 0x2f, 0x92,
0xbd, 0x1b, 0x73, 0x55, 0x1d, 0x7f, 0xd9, 0xca, 0x20, 0x13, 0x50, 0x9d, 0x04, 0x5d, 0xdf, 0x3d,
0x25, 0xab, 0x0a, 0x5b, 0x88, 0x53, 0xcf, 0xa0, 0xe7, 0xd4, 0x81, 0x93, 0x51, 0xb8, 0xaa, 0x9c,
0x77, 0x96, 0x4c, 0x4e, 0x9f, 0xc0, 0x32, 0xe8, 0x97, 0xb0, 0xdd, 0x79, 0x4d, 0x7f, 0x46, 0x73,
0x41, 0xca, 0x4a, 0xe2, 0x89, 0x6c, 0xa9, 0xac, 0xe8, 0x7b, 0xab, 0x9e, 0x41, 0xc7, 0x80, 0x92,
0xb2, 0xd8, 0x33, 0xcb, 0xa5, 0x08, 0x97, 0x4d, 0xb2, 0x67, 0x95, 0x0c, 0xaa, 0xc3, 0x56, 0xdd,
0xf7, 0xc6, 0xab, 0xea, 0xbb, 0xc4, 0x93, 0x9f, 0x80, 0xca, 0x43, 0x81, 0x3d, 0xe8, 0xa1, 0x64,
0x1d, 0x3c, 0x7b, 0xe4, 0x5b, 0xc6, 0x5e, 0x83, 0xcd, 0xc8, 0x81, 0x6f, 0x11, 0xb0, 0x6c, 0x42,
0xcf, 0xa0, 0xa7, 0xa0, 0x50, 0x4d, 0xbe, 0x1b, 0x02, 0x03, 0xb6, 0xb9, 0x02, 0xd3, 0x0f, 0x92,
0x29, 0x3b, 0x24, 0xbf, 0x7a, 0x2e, 0x17, 0x53, 0x3a, 0x72, 0x82, 0x15, 0x65, 0x2c, 0x0f, 0xe8,
0x67, 0xb0, 0x45, 0xdd, 0x3c, 0x5d, 0x1f, 0x5c, 0xee, 0x94, 0xbd, 0xc5, 0xbb, 0x88, 0x98, 0xa1,
0xc6, 0xf5, 0xbd, 0xf1, 0xd5, 0x14, 0xfb, 0x18, 0xf2, 0xbc, 0x00, 0x47, 0xe5, 0x94, 0x65, 0xa7,
0xdf, 0xca, 0x52, 0xfa, 0x4c, 0x3f, 0x8c, 0x32, 0xb3, 0x6c, 0x4e, 0x5f, 0xef, 0xaa, 0x17, 0x66,
0x3d, 0x05, 0x21, 0xf9, 0xf8, 0xb6, 0xb7, 0xf8, 0x83, 0x80, 0x9e, 0x41, 0x47, 0xb4, 0xfd, 0x9b,
0x3d, 0x02, 0xa2, 0xef, 0xa5, 0xba, 0x8f, 0xd4, 0xfb, 0xe0, 0x25, 0x80, 0x3e, 0x85, 0x3c, 0x2f,
0x65, 0xd1, 0xd2, 0xef, 0x31, 0x7b, 0xc9, 0x99, 0xd8, 0x07, 0x0f, 0x76, 0x0e, 0xb7, 0x53, 0xdf,
0x85, 0xd0, 0xbb, 0x0b, 0x04, 0x25, 0xbf, 0x1a, 0x5d, 0x2a, 0xf1, 0x31, 0xc8, 0xb5, 0x61, 0x6f,
0x49, 0x66, 0x48, 0x81, 0x8c, 0x7d, 0x2f, 0xc8, 0xa0, 0x0a, 0xc0, 0xec, 0x31, 0x17, 0x25, 0x8b,
0xeb, 0xd4, 0x2b, 0xef, 0x32, 0xe7, 0x1e, 0xc2, 0xce, 0xb1, 0x4f, 0x06, 0x9e, 0xd3, 0xbb, 0x62,
0x1a, 0x78, 0x0c, 0x1b, 0xec, 0xc5, 0x3b, 0x75, 0xfc, 0x66, 0xaf, 0xe0, 0xcb, 0x18, 0x9f, 0xb2,
0x0f, 0x05, 0x63, 0xa7, 0x1b, 0xa2, 0x5b, 0xf3, 0xef, 0x35, 0xe2, 0xf9, 0x7b, 0x19, 0x73, 0x15,
0x8a, 0xc2, 0x6f, 0x55, 0xb4, 0xb7, 0xcc, 0x9d, 0xc7, 0xd5, 0xcb, 0xcc, 0x7f, 0x9a, 0x67, 0xff,
0xc0, 0xf3, 0xe1, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x32, 0x13, 0xfb, 0xba, 0xd0, 0x23, 0x00,
0x00,
}