diff --git a/sample/SearchIndexOperation.go b/sample/SearchIndexOperation.go index a89ccb2..c3455e2 100644 --- a/sample/SearchIndexOperation.go +++ b/sample/SearchIndexOperation.go @@ -423,6 +423,7 @@ func MatchAllQuery(client *tablestore.TableStoreClient, tableName string, indexN searchQuery.SetLimit(0) searchQuery.SetGetTotalCount(true) // 设置GetTotalCount为true后才会返回总条数 searchRequest.SetSearchQuery(searchQuery) + searchRequest.SetTimeoutMs(30000) //可以显示设置请求超时时间 searchResponse, err := client.Search(searchRequest) if err != nil { fmt.Printf("%#v", err) diff --git a/tablestore/api.go b/tablestore/api.go index 5436229..0321c20 100644 --- a/tablestore/api.go +++ b/tablestore/api.go @@ -1033,7 +1033,9 @@ func (tableStoreClient *TableStoreClient) DescribeTable(request *DescribeTableRe EnableStream: *resp.StreamDetails.EnableStream, StreamId: (*StreamId)(resp.StreamDetails.StreamId), ExpirationTime: *resp.StreamDetails.ExpirationTime, - LastEnableTime: *resp.StreamDetails.LastEnableTime} + LastEnableTime: *resp.StreamDetails.LastEnableTime, + ColumnsToGet: resp.GetStreamDetails().GetColumnsToGet(), + } } else { response.StreamDetails = &StreamDetails{ EnableStream: false} @@ -1077,7 +1079,9 @@ func (tableStoreClient *TableStoreClient) UpdateTable(request *UpdateTableReques if request.StreamSpec.EnableStream == true { req.StreamSpec = &otsprotocol.StreamSpecification{ EnableStream: &request.StreamSpec.EnableStream, - ExpirationTime: &request.StreamSpec.ExpirationTime} + ExpirationTime: &request.StreamSpec.ExpirationTime, + ColumnsToGet: request.StreamSpec.ColumnsToGet, + } } else { req.StreamSpec = &otsprotocol.StreamSpecification{EnableStream: &request.StreamSpec.EnableStream} } @@ -1103,7 +1107,9 @@ func (tableStoreClient *TableStoreClient) UpdateTable(request *UpdateTableReques EnableStream: *resp.StreamDetails.EnableStream, StreamId: (*StreamId)(resp.StreamDetails.StreamId), ExpirationTime: *resp.StreamDetails.ExpirationTime, - LastEnableTime: *resp.StreamDetails.LastEnableTime} + LastEnableTime: *resp.StreamDetails.LastEnableTime, + ColumnsToGet: resp.GetStreamDetails().GetColumnsToGet(), + } } else { response.StreamDetails = &StreamDetails{ EnableStream: false} @@ -1829,6 +1835,44 @@ func (client TableStoreClient) GetStreamRecord(req *GetStreamRecordRequest) (*Ge break } } + + if pbRecord.GetOriginRecord() != nil { + originPlainRows, err := readRowsWithHeader(bytes.NewReader(pbRecord.GetOriginRecord())) + if err != nil { + return nil, err + } + Assert(len(originPlainRows) == 1, + "There must be exactly one row in a StreamRecord.") + originPlainRow := originPlainRows[0] + + record.OriginColumns = make([]*RecordColumn, len(originPlainRow.cells)) + for i, plainCell := range originPlainRow.cells { + cell := RecordColumn{} + record.OriginColumns[i] = &cell + + name := string(plainCell.cellName) + cell.Name = &name + if plainCell.cellValue != nil { + cell.Type = RCT_Put + } else { + if plainCell.cellTimestamp > 0 { + cell.Type = RCT_DeleteOneVersion + } else { + cell.Type = RCT_DeleteAllVersions + } + } + switch cell.Type { + case RCT_Put: + cell.Value = plainCell.cellValue.Value + fallthrough + case RCT_DeleteOneVersion: + cell.Timestamp = &plainCell.cellTimestamp + case RCT_DeleteAllVersions: + break + } + } + } + } resp.Records = records return &resp, nil diff --git a/tablestore/api_test.go b/tablestore/api_test.go index debdbfe..b49b181 100644 --- a/tablestore/api_test.go +++ b/tablestore/api_test.go @@ -327,12 +327,18 @@ func (s *TableStoreSuite) TestUpdateAndDescribeTable(c *C) { updateTableReq.TableOption = new(TableOption) updateTableReq.TableOption.TimeToAlive = -1 updateTableReq.TableOption.MaxVersion = 5 + updateTableReq.StreamSpec = new(StreamSpecification) + updateTableReq.StreamSpec.EnableStream = true + updateTableReq.StreamSpec.ExpirationTime = 168 + updateTableReq.StreamSpec.ColumnsToGet = []string{"col1", "col2"} updateTableResp, error := client.UpdateTable(updateTableReq) c.Assert(error, Equals, nil) c.Assert(updateTableResp, NotNil) c.Assert(updateTableResp.TableOption.TimeToAlive, Equals, updateTableReq.TableOption.TimeToAlive) c.Assert(updateTableResp.TableOption.MaxVersion, Equals, updateTableReq.TableOption.MaxVersion) + c.Assert(updateTableResp.StreamDetails.EnableStream, Equals, updateTableReq.StreamSpec.EnableStream) + c.Assert(updateTableResp.StreamDetails.ExpirationTime, Equals, updateTableReq.StreamSpec.ExpirationTime) describeTableReq := new(DescribeTableRequest) describeTableReq.TableName = defaultTableName @@ -342,6 +348,12 @@ func (s *TableStoreSuite) TestUpdateAndDescribeTable(c *C) { c.Assert(describ, NotNil) c.Assert(describ.TableOption.TimeToAlive, Equals, updateTableReq.TableOption.TimeToAlive) c.Assert(describ.TableOption.MaxVersion, Equals, updateTableReq.TableOption.MaxVersion) + c.Assert(describ.StreamDetails.EnableStream, Equals, updateTableReq.StreamSpec.EnableStream) + c.Assert(describ.StreamDetails.ExpirationTime, Equals, updateTableReq.StreamSpec.ExpirationTime) + c.Assert(len(describ.StreamDetails.ColumnsToGet), Equals, len(updateTableReq.StreamSpec.ColumnsToGet)) + for i, s := range describ.StreamDetails.ColumnsToGet { + c.Assert(s, Equals, updateTableReq.StreamSpec.ColumnsToGet[i]) + } fmt.Println("TestUpdateAndDescribeTable finished") } diff --git a/tablestore/model.go b/tablestore/model.go index adda34c..f98e585 100644 --- a/tablestore/model.go +++ b/tablestore/model.go @@ -682,6 +682,7 @@ type ListStreamResponse struct { type StreamSpecification struct { EnableStream bool ExpirationTime int32 // must be positive. in hours + ColumnsToGet []string } type StreamDetails struct { @@ -689,6 +690,7 @@ type StreamDetails struct { StreamId *StreamId // nil when stream is disabled. ExpirationTime int32 // in hours LastEnableTime int64 // the last time stream is enabled, in usec + ColumnsToGet []string } type DescribeStreamRequest struct { @@ -773,19 +775,21 @@ type StreamShard struct { } type StreamRecord struct { - Type ActionType - Info *RecordSequenceInfo // required - PrimaryKey *PrimaryKey // required - Columns []*RecordColumn + Type ActionType + Info *RecordSequenceInfo // required + PrimaryKey *PrimaryKey // required + Columns []*RecordColumn + OriginColumns []*RecordColumn } func (this *StreamRecord) String() string { return fmt.Sprintf( - "{\"Type\":%s, \"PrimaryKey\":%s, \"Info\":%s, \"Columns\":%s}", + "{\"Type\":%s, \"PrimaryKey\":%s, \"Info\":%s, \"Columns\":%s, \"OriginColumns\":%s}", this.Type, *this.PrimaryKey, this.Info, - this.Columns) + this.Columns, + this.OriginColumns) } type ActionType int diff --git a/tablestore/otsprotocol/search.pb.go b/tablestore/otsprotocol/search.pb.go index 1dc87a1..4c88204 100644 --- a/tablestore/otsprotocol/search.pb.go +++ b/tablestore/otsprotocol/search.pb.go @@ -3,11 +3,9 @@ package otsprotocol -import ( - fmt "fmt" - proto "github.com/golang/protobuf/proto" - math "math" -) +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 @@ -18,8 +16,9 @@ var _ = math.Inf // 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 +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package +// query type QueryType int32 const ( @@ -59,7 +58,6 @@ var QueryType_name = map[int32]string{ 15: "TERMS_QUERY", 16: "EXISTS_QUERY", } - var QueryType_value = map[string]int32{ "MATCH_QUERY": 1, "MATCH_PHRASE_QUERY": 2, @@ -84,11 +82,9 @@ func (x QueryType) Enum() *QueryType { *p = x return p } - func (x QueryType) String() string { return proto.EnumName(QueryType_name, int32(x)) } - func (x *QueryType) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(QueryType_value, data, "QueryType") if err != nil { @@ -97,9 +93,8 @@ func (x *QueryType) UnmarshalJSON(data []byte) error { *x = QueryType(value) return nil } - func (QueryType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{0} + return fileDescriptor_search_c58deff66fa19a4e, []int{0} } type QueryOperator int32 @@ -113,7 +108,6 @@ var QueryOperator_name = map[int32]string{ 1: "OR", 2: "AND", } - var QueryOperator_value = map[string]int32{ "OR": 1, "AND": 2, @@ -124,11 +118,9 @@ func (x QueryOperator) Enum() *QueryOperator { *p = x return p } - func (x QueryOperator) String() string { return proto.EnumName(QueryOperator_name, int32(x)) } - func (x *QueryOperator) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(QueryOperator_value, data, "QueryOperator") if err != nil { @@ -137,9 +129,8 @@ func (x *QueryOperator) UnmarshalJSON(data []byte) error { *x = QueryOperator(value) return nil } - func (QueryOperator) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{1} + return fileDescriptor_search_c58deff66fa19a4e, []int{1} } type ScoreMode int32 @@ -159,7 +150,6 @@ var ScoreMode_name = map[int32]string{ 4: "SCORE_MODE_TOTAL", 5: "SCORE_MODE_MIN", } - var ScoreMode_value = map[string]int32{ "SCORE_MODE_NONE": 1, "SCORE_MODE_AVG": 2, @@ -173,11 +163,9 @@ func (x ScoreMode) Enum() *ScoreMode { *p = x return p } - func (x ScoreMode) String() string { return proto.EnumName(ScoreMode_name, int32(x)) } - func (x *ScoreMode) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(ScoreMode_value, data, "ScoreMode") if err != nil { @@ -186,9 +174,8 @@ func (x *ScoreMode) UnmarshalJSON(data []byte) error { *x = ScoreMode(value) return nil } - func (ScoreMode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{2} + return fileDescriptor_search_c58deff66fa19a4e, []int{2} } type SortOrder int32 @@ -202,7 +189,6 @@ var SortOrder_name = map[int32]string{ 0: "SORT_ORDER_ASC", 1: "SORT_ORDER_DESC", } - var SortOrder_value = map[string]int32{ "SORT_ORDER_ASC": 0, "SORT_ORDER_DESC": 1, @@ -213,11 +199,9 @@ func (x SortOrder) Enum() *SortOrder { *p = x return p } - func (x SortOrder) String() string { return proto.EnumName(SortOrder_name, int32(x)) } - func (x *SortOrder) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(SortOrder_value, data, "SortOrder") if err != nil { @@ -226,9 +210,8 @@ func (x *SortOrder) UnmarshalJSON(data []byte) error { *x = SortOrder(value) return nil } - func (SortOrder) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{3} + return fileDescriptor_search_c58deff66fa19a4e, []int{3} } type SortMode int32 @@ -244,7 +227,6 @@ var SortMode_name = map[int32]string{ 1: "SORT_MODE_MAX", 2: "SORT_MODE_AVG", } - var SortMode_value = map[string]int32{ "SORT_MODE_MIN": 0, "SORT_MODE_MAX": 1, @@ -256,11 +238,9 @@ func (x SortMode) Enum() *SortMode { *p = x return p } - func (x SortMode) String() string { return proto.EnumName(SortMode_name, int32(x)) } - func (x *SortMode) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(SortMode_value, data, "SortMode") if err != nil { @@ -269,9 +249,8 @@ func (x *SortMode) UnmarshalJSON(data []byte) error { *x = SortMode(value) return nil } - func (SortMode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{4} + return fileDescriptor_search_c58deff66fa19a4e, []int{4} } type GeoDistanceType int32 @@ -285,7 +264,6 @@ var GeoDistanceType_name = map[int32]string{ 0: "GEO_DISTANCE_ARC", 1: "GEO_DISTANCE_PLANE", } - var GeoDistanceType_value = map[string]int32{ "GEO_DISTANCE_ARC": 0, "GEO_DISTANCE_PLANE": 1, @@ -296,11 +274,9 @@ func (x GeoDistanceType) Enum() *GeoDistanceType { *p = x return p } - func (x GeoDistanceType) String() string { return proto.EnumName(GeoDistanceType_name, int32(x)) } - func (x *GeoDistanceType) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(GeoDistanceType_value, data, "GeoDistanceType") if err != nil { @@ -309,9 +285,8 @@ func (x *GeoDistanceType) UnmarshalJSON(data []byte) error { *x = GeoDistanceType(value) return nil } - func (GeoDistanceType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{5} + return fileDescriptor_search_c58deff66fa19a4e, []int{5} } type ColumnReturnType int32 @@ -329,7 +304,6 @@ var ColumnReturnType_name = map[int32]string{ 3: "RETURN_NONE", 4: "RETURN_ALL_FROM_INDEX", } - var ColumnReturnType_value = map[string]int32{ "RETURN_ALL": 1, "RETURN_SPECIFIED": 2, @@ -342,11 +316,9 @@ func (x ColumnReturnType) Enum() *ColumnReturnType { *p = x return p } - func (x ColumnReturnType) String() string { return proto.EnumName(ColumnReturnType_name, int32(x)) } - func (x *ColumnReturnType) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(ColumnReturnType_value, data, "ColumnReturnType") if err != nil { @@ -355,9 +327,8 @@ func (x *ColumnReturnType) UnmarshalJSON(data []byte) error { *x = ColumnReturnType(value) return nil } - func (ColumnReturnType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{6} + return fileDescriptor_search_c58deff66fa19a4e, []int{6} } type IndexOptions int32 @@ -375,7 +346,6 @@ var IndexOptions_name = map[int32]string{ 3: "POSITIONS", 4: "OFFSETS", } - var IndexOptions_value = map[string]int32{ "DOCS": 1, "FREQS": 2, @@ -388,11 +358,9 @@ func (x IndexOptions) Enum() *IndexOptions { *p = x return p } - func (x IndexOptions) String() string { return proto.EnumName(IndexOptions_name, int32(x)) } - func (x *IndexOptions) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(IndexOptions_value, data, "IndexOptions") if err != nil { @@ -401,9 +369,8 @@ func (x *IndexOptions) UnmarshalJSON(data []byte) error { *x = IndexOptions(value) return nil } - func (IndexOptions) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{7} + return fileDescriptor_search_c58deff66fa19a4e, []int{7} } type FieldType int32 @@ -429,7 +396,6 @@ var FieldType_name = map[int32]string{ 7: "GEO_POINT", 8: "DATE", } - var FieldType_value = map[string]int32{ "LONG": 1, "DOUBLE": 2, @@ -446,11 +412,9 @@ func (x FieldType) Enum() *FieldType { *p = x return p } - func (x FieldType) String() string { return proto.EnumName(FieldType_name, int32(x)) } - func (x *FieldType) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(FieldType_value, data, "FieldType") if err != nil { @@ -459,9 +423,8 @@ func (x *FieldType) UnmarshalJSON(data []byte) error { *x = FieldType(value) return nil } - func (FieldType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{8} + return fileDescriptor_search_c58deff66fa19a4e, []int{8} } type SyncPhase int32 @@ -475,7 +438,6 @@ var SyncPhase_name = map[int32]string{ 1: "FULL", 2: "INCR", } - var SyncPhase_value = map[string]int32{ "FULL": 1, "INCR": 2, @@ -486,11 +448,9 @@ func (x SyncPhase) Enum() *SyncPhase { *p = x return p } - func (x SyncPhase) String() string { return proto.EnumName(SyncPhase_name, int32(x)) } - func (x *SyncPhase) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(SyncPhase_value, data, "SyncPhase") if err != nil { @@ -499,11 +459,11 @@ func (x *SyncPhase) UnmarshalJSON(data []byte) error { *x = SyncPhase(value) return nil } - func (SyncPhase) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{9} + return fileDescriptor_search_c58deff66fa19a4e, []int{9} } +// aggregation & group by type AggregationType int32 const ( @@ -527,7 +487,6 @@ var AggregationType_name = map[int32]string{ 7: "AGG_TOP_ROWS", 8: "AGG_PERCENTILES", } - var AggregationType_value = map[string]int32{ "AGG_AVG": 1, "AGG_DISTINCT_COUNT": 6, @@ -544,11 +503,9 @@ func (x AggregationType) Enum() *AggregationType { *p = x return p } - func (x AggregationType) String() string { return proto.EnumName(AggregationType_name, int32(x)) } - func (x *AggregationType) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(AggregationType_value, data, "AggregationType") if err != nil { @@ -557,9 +514,8 @@ func (x *AggregationType) UnmarshalJSON(data []byte) error { *x = AggregationType(value) return nil } - func (AggregationType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{10} + return fileDescriptor_search_c58deff66fa19a4e, []int{10} } type GroupByType int32 @@ -579,7 +535,6 @@ var GroupByType_name = map[int32]string{ 4: "GROUP_BY_GEO_DISTANCE", 5: "GROUP_BY_HISTOGRAM", } - var GroupByType_value = map[string]int32{ "GROUP_BY_FIELD": 1, "GROUP_BY_RANGE": 2, @@ -593,11 +548,9 @@ func (x GroupByType) Enum() *GroupByType { *p = x return p } - func (x GroupByType) String() string { return proto.EnumName(GroupByType_name, int32(x)) } - func (x *GroupByType) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(GroupByType_value, data, "GroupByType") if err != nil { @@ -606,15 +559,14 @@ func (x *GroupByType) UnmarshalJSON(data []byte) error { *x = GroupByType(value) return nil } - func (GroupByType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{11} + return fileDescriptor_search_c58deff66fa19a4e, []int{11} } type MatchQuery struct { - FieldName *string `protobuf:"bytes,1,opt,name=field_name" json:"field_name,omitempty"` + FieldName *string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` Text *string `protobuf:"bytes,2,opt,name=text" json:"text,omitempty"` - MinimumShouldMatch *int32 `protobuf:"varint,3,opt,name=minimum_should_match" json:"minimum_should_match,omitempty"` + MinimumShouldMatch *int32 `protobuf:"varint,3,opt,name=minimum_should_match,json=minimumShouldMatch" json:"minimum_should_match,omitempty"` Operator *QueryOperator `protobuf:"varint,4,opt,name=operator,enum=otsprotocol.QueryOperator" json:"operator,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -625,17 +577,16 @@ func (m *MatchQuery) Reset() { *m = MatchQuery{} } func (m *MatchQuery) String() string { return proto.CompactTextString(m) } func (*MatchQuery) ProtoMessage() {} func (*MatchQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{0} + return fileDescriptor_search_c58deff66fa19a4e, []int{0} } - func (m *MatchQuery) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MatchQuery.Unmarshal(m, b) } func (m *MatchQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_MatchQuery.Marshal(b, m, deterministic) } -func (m *MatchQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_MatchQuery.Merge(m, src) +func (dst *MatchQuery) XXX_Merge(src proto.Message) { + xxx_messageInfo_MatchQuery.Merge(dst, src) } func (m *MatchQuery) XXX_Size() int { return xxx_messageInfo_MatchQuery.Size(m) @@ -675,7 +626,7 @@ func (m *MatchQuery) GetOperator() QueryOperator { } type MatchPhraseQuery struct { - FieldName *string `protobuf:"bytes,1,opt,name=field_name" json:"field_name,omitempty"` + FieldName *string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` Text *string `protobuf:"bytes,2,opt,name=text" json:"text,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -686,17 +637,16 @@ func (m *MatchPhraseQuery) Reset() { *m = MatchPhraseQuery{} } func (m *MatchPhraseQuery) String() string { return proto.CompactTextString(m) } func (*MatchPhraseQuery) ProtoMessage() {} func (*MatchPhraseQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{1} + return fileDescriptor_search_c58deff66fa19a4e, []int{1} } - func (m *MatchPhraseQuery) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MatchPhraseQuery.Unmarshal(m, b) } func (m *MatchPhraseQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_MatchPhraseQuery.Marshal(b, m, deterministic) } -func (m *MatchPhraseQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_MatchPhraseQuery.Merge(m, src) +func (dst *MatchPhraseQuery) XXX_Merge(src proto.Message) { + xxx_messageInfo_MatchPhraseQuery.Merge(dst, src) } func (m *MatchPhraseQuery) XXX_Size() int { return xxx_messageInfo_MatchPhraseQuery.Size(m) @@ -731,17 +681,16 @@ func (m *MatchAllQuery) Reset() { *m = MatchAllQuery{} } func (m *MatchAllQuery) String() string { return proto.CompactTextString(m) } func (*MatchAllQuery) ProtoMessage() {} func (*MatchAllQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{2} + return fileDescriptor_search_c58deff66fa19a4e, []int{2} } - func (m *MatchAllQuery) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MatchAllQuery.Unmarshal(m, b) } func (m *MatchAllQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_MatchAllQuery.Marshal(b, m, deterministic) } -func (m *MatchAllQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_MatchAllQuery.Merge(m, src) +func (dst *MatchAllQuery) XXX_Merge(src proto.Message) { + xxx_messageInfo_MatchAllQuery.Merge(dst, src) } func (m *MatchAllQuery) XXX_Size() int { return xxx_messageInfo_MatchAllQuery.Size(m) @@ -753,7 +702,7 @@ func (m *MatchAllQuery) XXX_DiscardUnknown() { var xxx_messageInfo_MatchAllQuery proto.InternalMessageInfo type TermQuery struct { - FieldName *string `protobuf:"bytes,1,opt,name=field_name" json:"field_name,omitempty"` + FieldName *string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` Term []byte `protobuf:"bytes,2,opt,name=term" json:"term,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -764,17 +713,16 @@ func (m *TermQuery) Reset() { *m = TermQuery{} } func (m *TermQuery) String() string { return proto.CompactTextString(m) } func (*TermQuery) ProtoMessage() {} func (*TermQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{3} + return fileDescriptor_search_c58deff66fa19a4e, []int{3} } - func (m *TermQuery) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TermQuery.Unmarshal(m, b) } func (m *TermQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_TermQuery.Marshal(b, m, deterministic) } -func (m *TermQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_TermQuery.Merge(m, src) +func (dst *TermQuery) XXX_Merge(src proto.Message) { + xxx_messageInfo_TermQuery.Merge(dst, src) } func (m *TermQuery) XXX_Size() int { return xxx_messageInfo_TermQuery.Size(m) @@ -800,7 +748,7 @@ func (m *TermQuery) GetTerm() []byte { } type TermsQuery struct { - FieldName *string `protobuf:"bytes,1,opt,name=field_name" json:"field_name,omitempty"` + FieldName *string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` Terms [][]byte `protobuf:"bytes,2,rep,name=terms" json:"terms,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -811,17 +759,16 @@ func (m *TermsQuery) Reset() { *m = TermsQuery{} } func (m *TermsQuery) String() string { return proto.CompactTextString(m) } func (*TermsQuery) ProtoMessage() {} func (*TermsQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{4} + return fileDescriptor_search_c58deff66fa19a4e, []int{4} } - func (m *TermsQuery) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TermsQuery.Unmarshal(m, b) } func (m *TermsQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_TermsQuery.Marshal(b, m, deterministic) } -func (m *TermsQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_TermsQuery.Merge(m, src) +func (dst *TermsQuery) XXX_Merge(src proto.Message) { + xxx_messageInfo_TermsQuery.Merge(dst, src) } func (m *TermsQuery) XXX_Size() int { return xxx_messageInfo_TermsQuery.Size(m) @@ -847,11 +794,11 @@ func (m *TermsQuery) GetTerms() [][]byte { } type RangeQuery struct { - FieldName *string `protobuf:"bytes,1,opt,name=field_name" json:"field_name,omitempty"` - RangeFrom []byte `protobuf:"bytes,2,opt,name=range_from" json:"range_from,omitempty"` - RangeTo []byte `protobuf:"bytes,3,opt,name=range_to" json:"range_to,omitempty"` - IncludeLower *bool `protobuf:"varint,4,opt,name=include_lower" json:"include_lower,omitempty"` - IncludeUpper *bool `protobuf:"varint,5,opt,name=include_upper" json:"include_upper,omitempty"` + FieldName *string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` + RangeFrom []byte `protobuf:"bytes,2,opt,name=range_from,json=rangeFrom" json:"range_from,omitempty"` + RangeTo []byte `protobuf:"bytes,3,opt,name=range_to,json=rangeTo" json:"range_to,omitempty"` + IncludeLower *bool `protobuf:"varint,4,opt,name=include_lower,json=includeLower" json:"include_lower,omitempty"` + IncludeUpper *bool `protobuf:"varint,5,opt,name=include_upper,json=includeUpper" json:"include_upper,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -861,17 +808,16 @@ func (m *RangeQuery) Reset() { *m = RangeQuery{} } func (m *RangeQuery) String() string { return proto.CompactTextString(m) } func (*RangeQuery) ProtoMessage() {} func (*RangeQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{5} + return fileDescriptor_search_c58deff66fa19a4e, []int{5} } - func (m *RangeQuery) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RangeQuery.Unmarshal(m, b) } func (m *RangeQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_RangeQuery.Marshal(b, m, deterministic) } -func (m *RangeQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_RangeQuery.Merge(m, src) +func (dst *RangeQuery) XXX_Merge(src proto.Message) { + xxx_messageInfo_RangeQuery.Merge(dst, src) } func (m *RangeQuery) XXX_Size() int { return xxx_messageInfo_RangeQuery.Size(m) @@ -918,7 +864,7 @@ func (m *RangeQuery) GetIncludeUpper() bool { } type PrefixQuery struct { - FieldName *string `protobuf:"bytes,1,opt,name=field_name" json:"field_name,omitempty"` + FieldName *string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` Prefix *string `protobuf:"bytes,2,opt,name=prefix" json:"prefix,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -929,17 +875,16 @@ func (m *PrefixQuery) Reset() { *m = PrefixQuery{} } func (m *PrefixQuery) String() string { return proto.CompactTextString(m) } func (*PrefixQuery) ProtoMessage() {} func (*PrefixQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{6} + return fileDescriptor_search_c58deff66fa19a4e, []int{6} } - func (m *PrefixQuery) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PrefixQuery.Unmarshal(m, b) } func (m *PrefixQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_PrefixQuery.Marshal(b, m, deterministic) } -func (m *PrefixQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_PrefixQuery.Merge(m, src) +func (dst *PrefixQuery) XXX_Merge(src proto.Message) { + xxx_messageInfo_PrefixQuery.Merge(dst, src) } func (m *PrefixQuery) XXX_Size() int { return xxx_messageInfo_PrefixQuery.Size(m) @@ -965,7 +910,7 @@ func (m *PrefixQuery) GetPrefix() string { } type WildcardQuery struct { - FieldName *string `protobuf:"bytes,1,opt,name=field_name" json:"field_name,omitempty"` + FieldName *string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` Value *string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -976,17 +921,16 @@ func (m *WildcardQuery) Reset() { *m = WildcardQuery{} } func (m *WildcardQuery) String() string { return proto.CompactTextString(m) } func (*WildcardQuery) ProtoMessage() {} func (*WildcardQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{7} + return fileDescriptor_search_c58deff66fa19a4e, []int{7} } - func (m *WildcardQuery) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WildcardQuery.Unmarshal(m, b) } func (m *WildcardQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_WildcardQuery.Marshal(b, m, deterministic) } -func (m *WildcardQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_WildcardQuery.Merge(m, src) +func (dst *WildcardQuery) XXX_Merge(src proto.Message) { + xxx_messageInfo_WildcardQuery.Merge(dst, src) } func (m *WildcardQuery) XXX_Size() int { return xxx_messageInfo_WildcardQuery.Size(m) @@ -1012,11 +956,11 @@ func (m *WildcardQuery) GetValue() string { } type BoolQuery struct { - MustQueries []*Query `protobuf:"bytes,1,rep,name=must_queries" json:"must_queries,omitempty"` - MustNotQueries []*Query `protobuf:"bytes,2,rep,name=must_not_queries" json:"must_not_queries,omitempty"` - FilterQueries []*Query `protobuf:"bytes,3,rep,name=filter_queries" json:"filter_queries,omitempty"` - ShouldQueries []*Query `protobuf:"bytes,4,rep,name=should_queries" json:"should_queries,omitempty"` - MinimumShouldMatch *int32 `protobuf:"varint,5,opt,name=minimum_should_match" json:"minimum_should_match,omitempty"` + MustQueries []*Query `protobuf:"bytes,1,rep,name=must_queries,json=mustQueries" json:"must_queries,omitempty"` + MustNotQueries []*Query `protobuf:"bytes,2,rep,name=must_not_queries,json=mustNotQueries" json:"must_not_queries,omitempty"` + FilterQueries []*Query `protobuf:"bytes,3,rep,name=filter_queries,json=filterQueries" json:"filter_queries,omitempty"` + ShouldQueries []*Query `protobuf:"bytes,4,rep,name=should_queries,json=shouldQueries" json:"should_queries,omitempty"` + MinimumShouldMatch *int32 `protobuf:"varint,5,opt,name=minimum_should_match,json=minimumShouldMatch" json:"minimum_should_match,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1026,17 +970,16 @@ func (m *BoolQuery) Reset() { *m = BoolQuery{} } func (m *BoolQuery) String() string { return proto.CompactTextString(m) } func (*BoolQuery) ProtoMessage() {} func (*BoolQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{8} + return fileDescriptor_search_c58deff66fa19a4e, []int{8} } - func (m *BoolQuery) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BoolQuery.Unmarshal(m, b) } func (m *BoolQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_BoolQuery.Marshal(b, m, deterministic) } -func (m *BoolQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_BoolQuery.Merge(m, src) +func (dst *BoolQuery) XXX_Merge(src proto.Message) { + xxx_messageInfo_BoolQuery.Merge(dst, src) } func (m *BoolQuery) XXX_Size() int { return xxx_messageInfo_BoolQuery.Size(m) @@ -1093,17 +1036,16 @@ func (m *ConstScoreQuery) Reset() { *m = ConstScoreQuery{} } func (m *ConstScoreQuery) String() string { return proto.CompactTextString(m) } func (*ConstScoreQuery) ProtoMessage() {} func (*ConstScoreQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{9} + return fileDescriptor_search_c58deff66fa19a4e, []int{9} } - func (m *ConstScoreQuery) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConstScoreQuery.Unmarshal(m, b) } func (m *ConstScoreQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ConstScoreQuery.Marshal(b, m, deterministic) } -func (m *ConstScoreQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_ConstScoreQuery.Merge(m, src) +func (dst *ConstScoreQuery) XXX_Merge(src proto.Message) { + xxx_messageInfo_ConstScoreQuery.Merge(dst, src) } func (m *ConstScoreQuery) XXX_Size() int { return xxx_messageInfo_ConstScoreQuery.Size(m) @@ -1122,7 +1064,7 @@ func (m *ConstScoreQuery) GetFilter() *Query { } type FieldValueFactor struct { - FieldName *string `protobuf:"bytes,1,opt,name=field_name" json:"field_name,omitempty"` + FieldName *string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1132,17 +1074,16 @@ func (m *FieldValueFactor) Reset() { *m = FieldValueFactor{} } func (m *FieldValueFactor) String() string { return proto.CompactTextString(m) } func (*FieldValueFactor) ProtoMessage() {} func (*FieldValueFactor) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{10} + return fileDescriptor_search_c58deff66fa19a4e, []int{10} } - func (m *FieldValueFactor) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FieldValueFactor.Unmarshal(m, b) } func (m *FieldValueFactor) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_FieldValueFactor.Marshal(b, m, deterministic) } -func (m *FieldValueFactor) XXX_Merge(src proto.Message) { - xxx_messageInfo_FieldValueFactor.Merge(m, src) +func (dst *FieldValueFactor) XXX_Merge(src proto.Message) { + xxx_messageInfo_FieldValueFactor.Merge(dst, src) } func (m *FieldValueFactor) XXX_Size() int { return xxx_messageInfo_FieldValueFactor.Size(m) @@ -1162,7 +1103,7 @@ func (m *FieldValueFactor) GetFieldName() string { type FunctionScoreQuery struct { Query *Query `protobuf:"bytes,1,opt,name=query" json:"query,omitempty"` - FieldValueFactor *FieldValueFactor `protobuf:"bytes,2,opt,name=field_value_factor" json:"field_value_factor,omitempty"` + FieldValueFactor *FieldValueFactor `protobuf:"bytes,2,opt,name=field_value_factor,json=fieldValueFactor" json:"field_value_factor,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1172,17 +1113,16 @@ func (m *FunctionScoreQuery) Reset() { *m = FunctionScoreQuery{} } func (m *FunctionScoreQuery) String() string { return proto.CompactTextString(m) } func (*FunctionScoreQuery) ProtoMessage() {} func (*FunctionScoreQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{11} + return fileDescriptor_search_c58deff66fa19a4e, []int{11} } - func (m *FunctionScoreQuery) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FunctionScoreQuery.Unmarshal(m, b) } func (m *FunctionScoreQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_FunctionScoreQuery.Marshal(b, m, deterministic) } -func (m *FunctionScoreQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_FunctionScoreQuery.Merge(m, src) +func (dst *FunctionScoreQuery) XXX_Merge(src proto.Message) { + xxx_messageInfo_FunctionScoreQuery.Merge(dst, src) } func (m *FunctionScoreQuery) XXX_Size() int { return xxx_messageInfo_FunctionScoreQuery.Size(m) @@ -1210,7 +1150,7 @@ func (m *FunctionScoreQuery) GetFieldValueFactor() *FieldValueFactor { type NestedQuery struct { Path *string `protobuf:"bytes,1,opt,name=path" json:"path,omitempty"` Query *Query `protobuf:"bytes,2,opt,name=query" json:"query,omitempty"` - ScoreMode *ScoreMode `protobuf:"varint,3,opt,name=score_mode,enum=otsprotocol.ScoreMode" json:"score_mode,omitempty"` + ScoreMode *ScoreMode `protobuf:"varint,3,opt,name=score_mode,json=scoreMode,enum=otsprotocol.ScoreMode" json:"score_mode,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1220,17 +1160,16 @@ func (m *NestedQuery) Reset() { *m = NestedQuery{} } func (m *NestedQuery) String() string { return proto.CompactTextString(m) } func (*NestedQuery) ProtoMessage() {} func (*NestedQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{12} + return fileDescriptor_search_c58deff66fa19a4e, []int{12} } - func (m *NestedQuery) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_NestedQuery.Unmarshal(m, b) } func (m *NestedQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_NestedQuery.Marshal(b, m, deterministic) } -func (m *NestedQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_NestedQuery.Merge(m, src) +func (dst *NestedQuery) XXX_Merge(src proto.Message) { + xxx_messageInfo_NestedQuery.Merge(dst, src) } func (m *NestedQuery) XXX_Size() int { return xxx_messageInfo_NestedQuery.Size(m) @@ -1263,9 +1202,9 @@ func (m *NestedQuery) GetScoreMode() ScoreMode { } type GeoBoundingBoxQuery struct { - FieldName *string `protobuf:"bytes,1,opt,name=field_name" json:"field_name,omitempty"` - TopLeft *string `protobuf:"bytes,2,opt,name=top_left" json:"top_left,omitempty"` - BottomRight *string `protobuf:"bytes,3,opt,name=bottom_right" json:"bottom_right,omitempty"` + FieldName *string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` + TopLeft *string `protobuf:"bytes,2,opt,name=top_left,json=topLeft" json:"top_left,omitempty"` + BottomRight *string `protobuf:"bytes,3,opt,name=bottom_right,json=bottomRight" json:"bottom_right,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1275,17 +1214,16 @@ func (m *GeoBoundingBoxQuery) Reset() { *m = GeoBoundingBoxQuery{} } func (m *GeoBoundingBoxQuery) String() string { return proto.CompactTextString(m) } func (*GeoBoundingBoxQuery) ProtoMessage() {} func (*GeoBoundingBoxQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{13} + return fileDescriptor_search_c58deff66fa19a4e, []int{13} } - func (m *GeoBoundingBoxQuery) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GeoBoundingBoxQuery.Unmarshal(m, b) } func (m *GeoBoundingBoxQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_GeoBoundingBoxQuery.Marshal(b, m, deterministic) } -func (m *GeoBoundingBoxQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_GeoBoundingBoxQuery.Merge(m, src) +func (dst *GeoBoundingBoxQuery) XXX_Merge(src proto.Message) { + xxx_messageInfo_GeoBoundingBoxQuery.Merge(dst, src) } func (m *GeoBoundingBoxQuery) XXX_Size() int { return xxx_messageInfo_GeoBoundingBoxQuery.Size(m) @@ -1318,8 +1256,8 @@ func (m *GeoBoundingBoxQuery) GetBottomRight() string { } type GeoDistanceQuery struct { - FieldName *string `protobuf:"bytes,1,opt,name=field_name" json:"field_name,omitempty"` - CenterPoint *string `protobuf:"bytes,2,opt,name=center_point" json:"center_point,omitempty"` + FieldName *string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` + CenterPoint *string `protobuf:"bytes,2,opt,name=center_point,json=centerPoint" json:"center_point,omitempty"` Distance *float64 `protobuf:"fixed64,3,opt,name=distance" json:"distance,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -1330,17 +1268,16 @@ func (m *GeoDistanceQuery) Reset() { *m = GeoDistanceQuery{} } func (m *GeoDistanceQuery) String() string { return proto.CompactTextString(m) } func (*GeoDistanceQuery) ProtoMessage() {} func (*GeoDistanceQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{14} + return fileDescriptor_search_c58deff66fa19a4e, []int{14} } - func (m *GeoDistanceQuery) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GeoDistanceQuery.Unmarshal(m, b) } func (m *GeoDistanceQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_GeoDistanceQuery.Marshal(b, m, deterministic) } -func (m *GeoDistanceQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_GeoDistanceQuery.Merge(m, src) +func (dst *GeoDistanceQuery) XXX_Merge(src proto.Message) { + xxx_messageInfo_GeoDistanceQuery.Merge(dst, src) } func (m *GeoDistanceQuery) XXX_Size() int { return xxx_messageInfo_GeoDistanceQuery.Size(m) @@ -1373,7 +1310,7 @@ func (m *GeoDistanceQuery) GetDistance() float64 { } type GeoPolygonQuery struct { - FieldName *string `protobuf:"bytes,1,opt,name=field_name" json:"field_name,omitempty"` + FieldName *string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` Points []string `protobuf:"bytes,2,rep,name=points" json:"points,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -1384,17 +1321,16 @@ func (m *GeoPolygonQuery) Reset() { *m = GeoPolygonQuery{} } func (m *GeoPolygonQuery) String() string { return proto.CompactTextString(m) } func (*GeoPolygonQuery) ProtoMessage() {} func (*GeoPolygonQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{15} + return fileDescriptor_search_c58deff66fa19a4e, []int{15} } - func (m *GeoPolygonQuery) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GeoPolygonQuery.Unmarshal(m, b) } func (m *GeoPolygonQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_GeoPolygonQuery.Marshal(b, m, deterministic) } -func (m *GeoPolygonQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_GeoPolygonQuery.Merge(m, src) +func (dst *GeoPolygonQuery) XXX_Merge(src proto.Message) { + xxx_messageInfo_GeoPolygonQuery.Merge(dst, src) } func (m *GeoPolygonQuery) XXX_Size() int { return xxx_messageInfo_GeoPolygonQuery.Size(m) @@ -1420,7 +1356,7 @@ func (m *GeoPolygonQuery) GetPoints() []string { } type ExistsQuery struct { - FieldName *string `protobuf:"bytes,1,opt,name=field_name" json:"field_name,omitempty"` + FieldName *string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1430,17 +1366,16 @@ func (m *ExistsQuery) Reset() { *m = ExistsQuery{} } func (m *ExistsQuery) String() string { return proto.CompactTextString(m) } func (*ExistsQuery) ProtoMessage() {} func (*ExistsQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{16} + return fileDescriptor_search_c58deff66fa19a4e, []int{16} } - func (m *ExistsQuery) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ExistsQuery.Unmarshal(m, b) } func (m *ExistsQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ExistsQuery.Marshal(b, m, deterministic) } -func (m *ExistsQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_ExistsQuery.Merge(m, src) +func (dst *ExistsQuery) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExistsQuery.Merge(dst, src) } func (m *ExistsQuery) XXX_Size() int { return xxx_messageInfo_ExistsQuery.Size(m) @@ -1470,17 +1405,16 @@ func (m *Query) Reset() { *m = Query{} } func (m *Query) String() string { return proto.CompactTextString(m) } func (*Query) ProtoMessage() {} func (*Query) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{17} + return fileDescriptor_search_c58deff66fa19a4e, []int{17} } - func (m *Query) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Query.Unmarshal(m, b) } func (m *Query) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Query.Marshal(b, m, deterministic) } -func (m *Query) XXX_Merge(src proto.Message) { - xxx_messageInfo_Query.Merge(m, src) +func (dst *Query) XXX_Merge(src proto.Message) { + xxx_messageInfo_Query.Merge(dst, src) } func (m *Query) XXX_Size() int { return xxx_messageInfo_Query.Size(m) @@ -1506,7 +1440,7 @@ func (m *Query) GetQuery() []byte { } type Collapse struct { - FieldName *string `protobuf:"bytes,1,opt,name=field_name" json:"field_name,omitempty"` + FieldName *string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1516,17 +1450,16 @@ func (m *Collapse) Reset() { *m = Collapse{} } func (m *Collapse) String() string { return proto.CompactTextString(m) } func (*Collapse) ProtoMessage() {} func (*Collapse) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{18} + return fileDescriptor_search_c58deff66fa19a4e, []int{18} } - func (m *Collapse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Collapse.Unmarshal(m, b) } func (m *Collapse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Collapse.Marshal(b, m, deterministic) } -func (m *Collapse) XXX_Merge(src proto.Message) { - xxx_messageInfo_Collapse.Merge(m, src) +func (dst *Collapse) XXX_Merge(src proto.Message) { + xxx_messageInfo_Collapse.Merge(dst, src) } func (m *Collapse) XXX_Size() int { return xxx_messageInfo_Collapse.Size(m) @@ -1556,17 +1489,16 @@ func (m *NestedFilter) Reset() { *m = NestedFilter{} } func (m *NestedFilter) String() string { return proto.CompactTextString(m) } func (*NestedFilter) ProtoMessage() {} func (*NestedFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{19} + return fileDescriptor_search_c58deff66fa19a4e, []int{19} } - func (m *NestedFilter) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_NestedFilter.Unmarshal(m, b) } func (m *NestedFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_NestedFilter.Marshal(b, m, deterministic) } -func (m *NestedFilter) XXX_Merge(src proto.Message) { - xxx_messageInfo_NestedFilter.Merge(m, src) +func (dst *NestedFilter) XXX_Merge(src proto.Message) { + xxx_messageInfo_NestedFilter.Merge(dst, src) } func (m *NestedFilter) XXX_Size() int { return xxx_messageInfo_NestedFilter.Size(m) @@ -1602,17 +1534,16 @@ func (m *ScoreSort) Reset() { *m = ScoreSort{} } func (m *ScoreSort) String() string { return proto.CompactTextString(m) } func (*ScoreSort) ProtoMessage() {} func (*ScoreSort) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{20} + return fileDescriptor_search_c58deff66fa19a4e, []int{20} } - func (m *ScoreSort) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ScoreSort.Unmarshal(m, b) } func (m *ScoreSort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ScoreSort.Marshal(b, m, deterministic) } -func (m *ScoreSort) XXX_Merge(src proto.Message) { - xxx_messageInfo_ScoreSort.Merge(m, src) +func (dst *ScoreSort) XXX_Merge(src proto.Message) { + xxx_messageInfo_ScoreSort.Merge(dst, src) } func (m *ScoreSort) XXX_Size() int { return xxx_messageInfo_ScoreSort.Size(m) @@ -1631,10 +1562,10 @@ func (m *ScoreSort) GetOrder() SortOrder { } type FieldSort struct { - FieldName *string `protobuf:"bytes,1,opt,name=field_name" json:"field_name,omitempty"` + FieldName *string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` Order *SortOrder `protobuf:"varint,2,opt,name=order,enum=otsprotocol.SortOrder" json:"order,omitempty"` Mode *SortMode `protobuf:"varint,3,opt,name=mode,enum=otsprotocol.SortMode" json:"mode,omitempty"` - NestedFilter *NestedFilter `protobuf:"bytes,4,opt,name=nested_filter" json:"nested_filter,omitempty"` + NestedFilter *NestedFilter `protobuf:"bytes,4,opt,name=nested_filter,json=nestedFilter" json:"nested_filter,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1644,17 +1575,16 @@ func (m *FieldSort) Reset() { *m = FieldSort{} } func (m *FieldSort) String() string { return proto.CompactTextString(m) } func (*FieldSort) ProtoMessage() {} func (*FieldSort) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{21} + return fileDescriptor_search_c58deff66fa19a4e, []int{21} } - func (m *FieldSort) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FieldSort.Unmarshal(m, b) } func (m *FieldSort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_FieldSort.Marshal(b, m, deterministic) } -func (m *FieldSort) XXX_Merge(src proto.Message) { - xxx_messageInfo_FieldSort.Merge(m, src) +func (dst *FieldSort) XXX_Merge(src proto.Message) { + xxx_messageInfo_FieldSort.Merge(dst, src) } func (m *FieldSort) XXX_Size() int { return xxx_messageInfo_FieldSort.Size(m) @@ -1694,12 +1624,12 @@ func (m *FieldSort) GetNestedFilter() *NestedFilter { } type GeoDistanceSort struct { - FieldName *string `protobuf:"bytes,1,opt,name=field_name" json:"field_name,omitempty"` + FieldName *string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` Points []string `protobuf:"bytes,2,rep,name=points" json:"points,omitempty"` Order *SortOrder `protobuf:"varint,3,opt,name=order,enum=otsprotocol.SortOrder" json:"order,omitempty"` Mode *SortMode `protobuf:"varint,4,opt,name=mode,enum=otsprotocol.SortMode" json:"mode,omitempty"` - DistanceType *GeoDistanceType `protobuf:"varint,5,opt,name=distance_type,enum=otsprotocol.GeoDistanceType" json:"distance_type,omitempty"` - NestedFilter *NestedFilter `protobuf:"bytes,6,opt,name=nested_filter" json:"nested_filter,omitempty"` + DistanceType *GeoDistanceType `protobuf:"varint,5,opt,name=distance_type,json=distanceType,enum=otsprotocol.GeoDistanceType" json:"distance_type,omitempty"` + NestedFilter *NestedFilter `protobuf:"bytes,6,opt,name=nested_filter,json=nestedFilter" json:"nested_filter,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1709,17 +1639,16 @@ func (m *GeoDistanceSort) Reset() { *m = GeoDistanceSort{} } func (m *GeoDistanceSort) String() string { return proto.CompactTextString(m) } func (*GeoDistanceSort) ProtoMessage() {} func (*GeoDistanceSort) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{22} + return fileDescriptor_search_c58deff66fa19a4e, []int{22} } - func (m *GeoDistanceSort) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GeoDistanceSort.Unmarshal(m, b) } func (m *GeoDistanceSort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_GeoDistanceSort.Marshal(b, m, deterministic) } -func (m *GeoDistanceSort) XXX_Merge(src proto.Message) { - xxx_messageInfo_GeoDistanceSort.Merge(m, src) +func (dst *GeoDistanceSort) XXX_Merge(src proto.Message) { + xxx_messageInfo_GeoDistanceSort.Merge(dst, src) } func (m *GeoDistanceSort) XXX_Size() int { return xxx_messageInfo_GeoDistanceSort.Size(m) @@ -1783,17 +1712,16 @@ func (m *PrimaryKeySort) Reset() { *m = PrimaryKeySort{} } func (m *PrimaryKeySort) String() string { return proto.CompactTextString(m) } func (*PrimaryKeySort) ProtoMessage() {} func (*PrimaryKeySort) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{23} + return fileDescriptor_search_c58deff66fa19a4e, []int{23} } - func (m *PrimaryKeySort) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PrimaryKeySort.Unmarshal(m, b) } func (m *PrimaryKeySort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_PrimaryKeySort.Marshal(b, m, deterministic) } -func (m *PrimaryKeySort) XXX_Merge(src proto.Message) { - xxx_messageInfo_PrimaryKeySort.Merge(m, src) +func (dst *PrimaryKeySort) XXX_Merge(src proto.Message) { + xxx_messageInfo_PrimaryKeySort.Merge(dst, src) } func (m *PrimaryKeySort) XXX_Size() int { return xxx_messageInfo_PrimaryKeySort.Size(m) @@ -1812,10 +1740,10 @@ func (m *PrimaryKeySort) GetOrder() SortOrder { } type Sorter struct { - FieldSort *FieldSort `protobuf:"bytes,1,opt,name=field_sort" json:"field_sort,omitempty"` - GeoDistanceSort *GeoDistanceSort `protobuf:"bytes,2,opt,name=geo_distance_sort" json:"geo_distance_sort,omitempty"` - ScoreSort *ScoreSort `protobuf:"bytes,3,opt,name=score_sort" json:"score_sort,omitempty"` - PkSort *PrimaryKeySort `protobuf:"bytes,4,opt,name=pk_sort" json:"pk_sort,omitempty"` + FieldSort *FieldSort `protobuf:"bytes,1,opt,name=field_sort,json=fieldSort" json:"field_sort,omitempty"` + GeoDistanceSort *GeoDistanceSort `protobuf:"bytes,2,opt,name=geo_distance_sort,json=geoDistanceSort" json:"geo_distance_sort,omitempty"` + ScoreSort *ScoreSort `protobuf:"bytes,3,opt,name=score_sort,json=scoreSort" json:"score_sort,omitempty"` + PkSort *PrimaryKeySort `protobuf:"bytes,4,opt,name=pk_sort,json=pkSort" json:"pk_sort,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1825,17 +1753,16 @@ func (m *Sorter) Reset() { *m = Sorter{} } func (m *Sorter) String() string { return proto.CompactTextString(m) } func (*Sorter) ProtoMessage() {} func (*Sorter) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{24} + return fileDescriptor_search_c58deff66fa19a4e, []int{24} } - func (m *Sorter) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Sorter.Unmarshal(m, b) } func (m *Sorter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Sorter.Marshal(b, m, deterministic) } -func (m *Sorter) XXX_Merge(src proto.Message) { - xxx_messageInfo_Sorter.Merge(m, src) +func (dst *Sorter) XXX_Merge(src proto.Message) { + xxx_messageInfo_Sorter.Merge(dst, src) } func (m *Sorter) XXX_Size() int { return xxx_messageInfo_Sorter.Size(m) @@ -1885,17 +1812,16 @@ func (m *Sort) Reset() { *m = Sort{} } func (m *Sort) String() string { return proto.CompactTextString(m) } func (*Sort) ProtoMessage() {} func (*Sort) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{25} + return fileDescriptor_search_c58deff66fa19a4e, []int{25} } - func (m *Sort) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Sort.Unmarshal(m, b) } func (m *Sort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Sort.Marshal(b, m, deterministic) } -func (m *Sort) XXX_Merge(src proto.Message) { - xxx_messageInfo_Sort.Merge(m, src) +func (dst *Sort) XXX_Merge(src proto.Message) { + xxx_messageInfo_Sort.Merge(dst, src) } func (m *Sort) XXX_Size() int { return xxx_messageInfo_Sort.Size(m) @@ -1922,7 +1848,7 @@ type SearchQuery struct { GetTotalCount *bool `protobuf:"varint,8,opt,name=getTotalCount" json:"getTotalCount,omitempty"` Token []byte `protobuf:"bytes,9,opt,name=token" json:"token,omitempty"` Aggs *Aggregations `protobuf:"bytes,10,opt,name=aggs" json:"aggs,omitempty"` - GroupBys *GroupBys `protobuf:"bytes,11,opt,name=group_bys" json:"group_bys,omitempty"` + GroupBys *GroupBys `protobuf:"bytes,11,opt,name=group_bys,json=groupBys" json:"group_bys,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1932,17 +1858,16 @@ func (m *SearchQuery) Reset() { *m = SearchQuery{} } func (m *SearchQuery) String() string { return proto.CompactTextString(m) } func (*SearchQuery) ProtoMessage() {} func (*SearchQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{26} + return fileDescriptor_search_c58deff66fa19a4e, []int{26} } - func (m *SearchQuery) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SearchQuery.Unmarshal(m, b) } func (m *SearchQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_SearchQuery.Marshal(b, m, deterministic) } -func (m *SearchQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_SearchQuery.Merge(m, src) +func (dst *SearchQuery) XXX_Merge(src proto.Message) { + xxx_messageInfo_SearchQuery.Merge(dst, src) } func (m *SearchQuery) XXX_Size() int { return xxx_messageInfo_SearchQuery.Size(m) @@ -2017,8 +1942,8 @@ func (m *SearchQuery) GetGroupBys() *GroupBys { } type ColumnsToGet struct { - ReturnType *ColumnReturnType `protobuf:"varint,1,opt,name=return_type,enum=otsprotocol.ColumnReturnType" json:"return_type,omitempty"` - ColumnNames []string `protobuf:"bytes,2,rep,name=column_names" json:"column_names,omitempty"` + ReturnType *ColumnReturnType `protobuf:"varint,1,opt,name=return_type,json=returnType,enum=otsprotocol.ColumnReturnType" json:"return_type,omitempty"` + ColumnNames []string `protobuf:"bytes,2,rep,name=column_names,json=columnNames" json:"column_names,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2028,17 +1953,16 @@ func (m *ColumnsToGet) Reset() { *m = ColumnsToGet{} } func (m *ColumnsToGet) String() string { return proto.CompactTextString(m) } func (*ColumnsToGet) ProtoMessage() {} func (*ColumnsToGet) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{27} + return fileDescriptor_search_c58deff66fa19a4e, []int{27} } - func (m *ColumnsToGet) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ColumnsToGet.Unmarshal(m, b) } func (m *ColumnsToGet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ColumnsToGet.Marshal(b, m, deterministic) } -func (m *ColumnsToGet) XXX_Merge(src proto.Message) { - xxx_messageInfo_ColumnsToGet.Merge(m, src) +func (dst *ColumnsToGet) XXX_Merge(src proto.Message) { + xxx_messageInfo_ColumnsToGet.Merge(dst, src) } func (m *ColumnsToGet) XXX_Size() int { return xxx_messageInfo_ColumnsToGet.Size(m) @@ -2064,11 +1988,12 @@ func (m *ColumnsToGet) GetColumnNames() []string { } type SearchRequest struct { - TableName *string `protobuf:"bytes,1,opt,name=table_name" json:"table_name,omitempty"` - IndexName *string `protobuf:"bytes,2,opt,name=index_name" json:"index_name,omitempty"` - ColumnsToGet *ColumnsToGet `protobuf:"bytes,3,opt,name=columns_to_get" json:"columns_to_get,omitempty"` - SearchQuery []byte `protobuf:"bytes,4,opt,name=search_query" json:"search_query,omitempty"` - RoutingValues [][]byte `protobuf:"bytes,5,rep,name=routing_values" json:"routing_values,omitempty"` + TableName *string `protobuf:"bytes,1,opt,name=table_name,json=tableName" json:"table_name,omitempty"` + IndexName *string `protobuf:"bytes,2,opt,name=index_name,json=indexName" json:"index_name,omitempty"` + ColumnsToGet *ColumnsToGet `protobuf:"bytes,3,opt,name=columns_to_get,json=columnsToGet" json:"columns_to_get,omitempty"` + SearchQuery []byte `protobuf:"bytes,4,opt,name=search_query,json=searchQuery" json:"search_query,omitempty"` + RoutingValues [][]byte `protobuf:"bytes,5,rep,name=routing_values,json=routingValues" json:"routing_values,omitempty"` + TimeoutMs *int32 `protobuf:"varint,6,opt,name=timeoutMs" json:"timeoutMs,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2078,17 +2003,16 @@ func (m *SearchRequest) Reset() { *m = SearchRequest{} } func (m *SearchRequest) String() string { return proto.CompactTextString(m) } func (*SearchRequest) ProtoMessage() {} func (*SearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{28} + return fileDescriptor_search_c58deff66fa19a4e, []int{28} } - func (m *SearchRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SearchRequest.Unmarshal(m, b) } func (m *SearchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_SearchRequest.Marshal(b, m, deterministic) } -func (m *SearchRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_SearchRequest.Merge(m, src) +func (dst *SearchRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_SearchRequest.Merge(dst, src) } func (m *SearchRequest) XXX_Size() int { return xxx_messageInfo_SearchRequest.Size(m) @@ -2134,15 +2058,22 @@ func (m *SearchRequest) GetRoutingValues() [][]byte { return nil } +func (m *SearchRequest) GetTimeoutMs() int32 { + if m != nil && m.TimeoutMs != nil { + return *m.TimeoutMs + } + return 0 +} + type SearchResponse struct { - TotalHits *int64 `protobuf:"varint,1,opt,name=total_hits" json:"total_hits,omitempty"` + TotalHits *int64 `protobuf:"varint,1,opt,name=total_hits,json=totalHits" json:"total_hits,omitempty"` Rows [][]byte `protobuf:"bytes,2,rep,name=rows" json:"rows,omitempty"` - IsAllSucceeded *bool `protobuf:"varint,3,opt,name=is_all_succeeded" json:"is_all_succeeded,omitempty"` - NextToken []byte `protobuf:"bytes,6,opt,name=next_token" json:"next_token,omitempty"` + IsAllSucceeded *bool `protobuf:"varint,3,opt,name=is_all_succeeded,json=isAllSucceeded" json:"is_all_succeeded,omitempty"` + NextToken []byte `protobuf:"bytes,6,opt,name=next_token,json=nextToken" json:"next_token,omitempty"` Aggs []byte `protobuf:"bytes,7,opt,name=aggs" json:"aggs,omitempty"` - GroupBys []byte `protobuf:"bytes,8,opt,name=group_bys" json:"group_bys,omitempty"` + GroupBys []byte `protobuf:"bytes,8,opt,name=group_bys,json=groupBys" json:"group_bys,omitempty"` Consumed *ConsumedCapacity `protobuf:"bytes,9,opt,name=consumed" json:"consumed,omitempty"` - ReservedConsumed *ConsumedCapacity `protobuf:"bytes,10,opt,name=reserved_consumed" json:"reserved_consumed,omitempty"` + ReservedConsumed *ConsumedCapacity `protobuf:"bytes,10,opt,name=reserved_consumed,json=reservedConsumed" json:"reserved_consumed,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2152,17 +2083,16 @@ func (m *SearchResponse) Reset() { *m = SearchResponse{} } func (m *SearchResponse) String() string { return proto.CompactTextString(m) } func (*SearchResponse) ProtoMessage() {} func (*SearchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{29} + return fileDescriptor_search_c58deff66fa19a4e, []int{29} } - func (m *SearchResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SearchResponse.Unmarshal(m, b) } func (m *SearchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_SearchResponse.Marshal(b, m, deterministic) } -func (m *SearchResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_SearchResponse.Merge(m, src) +func (dst *SearchResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_SearchResponse.Merge(dst, src) } func (m *SearchResponse) XXX_Size() int { return xxx_messageInfo_SearchResponse.Size(m) @@ -2230,8 +2160,8 @@ func (m *SearchResponse) GetReservedConsumed() *ConsumedCapacity { } type SingleWordAnalyzerParameter struct { - CaseSensitive *bool `protobuf:"varint,1,opt,name=case_sensitive" json:"case_sensitive,omitempty"` - DelimitWord *bool `protobuf:"varint,2,opt,name=delimit_word" json:"delimit_word,omitempty"` + CaseSensitive *bool `protobuf:"varint,1,opt,name=case_sensitive,json=caseSensitive" json:"case_sensitive,omitempty"` + DelimitWord *bool `protobuf:"varint,2,opt,name=delimit_word,json=delimitWord" json:"delimit_word,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2241,17 +2171,16 @@ func (m *SingleWordAnalyzerParameter) Reset() { *m = SingleWordAnalyzerP func (m *SingleWordAnalyzerParameter) String() string { return proto.CompactTextString(m) } func (*SingleWordAnalyzerParameter) ProtoMessage() {} func (*SingleWordAnalyzerParameter) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{30} + return fileDescriptor_search_c58deff66fa19a4e, []int{30} } - func (m *SingleWordAnalyzerParameter) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SingleWordAnalyzerParameter.Unmarshal(m, b) } func (m *SingleWordAnalyzerParameter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_SingleWordAnalyzerParameter.Marshal(b, m, deterministic) } -func (m *SingleWordAnalyzerParameter) XXX_Merge(src proto.Message) { - xxx_messageInfo_SingleWordAnalyzerParameter.Merge(m, src) +func (dst *SingleWordAnalyzerParameter) XXX_Merge(src proto.Message) { + xxx_messageInfo_SingleWordAnalyzerParameter.Merge(dst, src) } func (m *SingleWordAnalyzerParameter) XXX_Size() int { return xxx_messageInfo_SingleWordAnalyzerParameter.Size(m) @@ -2287,17 +2216,16 @@ func (m *SplitAnalyzerParameter) Reset() { *m = SplitAnalyzerParameter{} func (m *SplitAnalyzerParameter) String() string { return proto.CompactTextString(m) } func (*SplitAnalyzerParameter) ProtoMessage() {} func (*SplitAnalyzerParameter) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{31} + return fileDescriptor_search_c58deff66fa19a4e, []int{31} } - func (m *SplitAnalyzerParameter) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SplitAnalyzerParameter.Unmarshal(m, b) } func (m *SplitAnalyzerParameter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_SplitAnalyzerParameter.Marshal(b, m, deterministic) } -func (m *SplitAnalyzerParameter) XXX_Merge(src proto.Message) { - xxx_messageInfo_SplitAnalyzerParameter.Merge(m, src) +func (dst *SplitAnalyzerParameter) XXX_Merge(src proto.Message) { + xxx_messageInfo_SplitAnalyzerParameter.Merge(dst, src) } func (m *SplitAnalyzerParameter) XXX_Size() int { return xxx_messageInfo_SplitAnalyzerParameter.Size(m) @@ -2316,8 +2244,8 @@ func (m *SplitAnalyzerParameter) GetDelimiter() string { } type FuzzyAnalyzerParameter struct { - MinChars *int32 `protobuf:"varint,1,opt,name=min_chars" json:"min_chars,omitempty"` - MaxChars *int32 `protobuf:"varint,2,opt,name=max_chars" json:"max_chars,omitempty"` + MinChars *int32 `protobuf:"varint,1,opt,name=min_chars,json=minChars" json:"min_chars,omitempty"` + MaxChars *int32 `protobuf:"varint,2,opt,name=max_chars,json=maxChars" json:"max_chars,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2327,17 +2255,16 @@ func (m *FuzzyAnalyzerParameter) Reset() { *m = FuzzyAnalyzerParameter{} func (m *FuzzyAnalyzerParameter) String() string { return proto.CompactTextString(m) } func (*FuzzyAnalyzerParameter) ProtoMessage() {} func (*FuzzyAnalyzerParameter) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{32} + return fileDescriptor_search_c58deff66fa19a4e, []int{32} } - func (m *FuzzyAnalyzerParameter) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FuzzyAnalyzerParameter.Unmarshal(m, b) } func (m *FuzzyAnalyzerParameter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_FuzzyAnalyzerParameter.Marshal(b, m, deterministic) } -func (m *FuzzyAnalyzerParameter) XXX_Merge(src proto.Message) { - xxx_messageInfo_FuzzyAnalyzerParameter.Merge(m, src) +func (dst *FuzzyAnalyzerParameter) XXX_Merge(src proto.Message) { + xxx_messageInfo_FuzzyAnalyzerParameter.Merge(dst, src) } func (m *FuzzyAnalyzerParameter) XXX_Size() int { return xxx_messageInfo_FuzzyAnalyzerParameter.Size(m) @@ -2363,19 +2290,19 @@ func (m *FuzzyAnalyzerParameter) GetMaxChars() int32 { } type FieldSchema struct { - FieldName *string `protobuf:"bytes,1,opt,name=field_name" json:"field_name,omitempty"` - FieldType *FieldType `protobuf:"varint,2,opt,name=field_type,enum=otsprotocol.FieldType" json:"field_type,omitempty"` - IndexOptions *IndexOptions `protobuf:"varint,3,opt,name=index_options,enum=otsprotocol.IndexOptions" json:"index_options,omitempty"` + FieldName *string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` + FieldType *FieldType `protobuf:"varint,2,opt,name=field_type,json=fieldType,enum=otsprotocol.FieldType" json:"field_type,omitempty"` + IndexOptions *IndexOptions `protobuf:"varint,3,opt,name=index_options,json=indexOptions,enum=otsprotocol.IndexOptions" json:"index_options,omitempty"` Analyzer *string `protobuf:"bytes,4,opt,name=analyzer" json:"analyzer,omitempty"` Index *bool `protobuf:"varint,5,opt,name=index" json:"index,omitempty"` - SortAndAgg *bool `protobuf:"varint,6,opt,name=sort_and_agg" json:"sort_and_agg,omitempty"` + SortAndAgg *bool `protobuf:"varint,6,opt,name=sort_and_agg,json=sortAndAgg" json:"sort_and_agg,omitempty"` Store *bool `protobuf:"varint,7,opt,name=store" json:"store,omitempty"` - FieldSchemas []*FieldSchema `protobuf:"bytes,8,rep,name=field_schemas" json:"field_schemas,omitempty"` - IsArray *bool `protobuf:"varint,9,opt,name=is_array" json:"is_array,omitempty"` - AnalyzerParameter []byte `protobuf:"bytes,10,opt,name=analyzer_parameter" json:"analyzer_parameter,omitempty"` - IsVirtualField *bool `protobuf:"varint,11,opt,name=is_virtual_field" json:"is_virtual_field,omitempty"` - SourceFieldNames []string `protobuf:"bytes,12,rep,name=source_field_names" json:"source_field_names,omitempty"` - DateFormats []string `protobuf:"bytes,13,rep,name=date_formats" json:"date_formats,omitempty"` + FieldSchemas []*FieldSchema `protobuf:"bytes,8,rep,name=field_schemas,json=fieldSchemas" json:"field_schemas,omitempty"` + IsArray *bool `protobuf:"varint,9,opt,name=is_array,json=isArray" json:"is_array,omitempty"` + AnalyzerParameter []byte `protobuf:"bytes,10,opt,name=analyzer_parameter,json=analyzerParameter" json:"analyzer_parameter,omitempty"` + IsVirtualField *bool `protobuf:"varint,11,opt,name=is_virtual_field,json=isVirtualField" json:"is_virtual_field,omitempty"` + SourceFieldNames []string `protobuf:"bytes,12,rep,name=source_field_names,json=sourceFieldNames" json:"source_field_names,omitempty"` + DateFormats []string `protobuf:"bytes,13,rep,name=date_formats,json=dateFormats" json:"date_formats,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2385,17 +2312,16 @@ func (m *FieldSchema) Reset() { *m = FieldSchema{} } func (m *FieldSchema) String() string { return proto.CompactTextString(m) } func (*FieldSchema) ProtoMessage() {} func (*FieldSchema) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{33} + return fileDescriptor_search_c58deff66fa19a4e, []int{33} } - func (m *FieldSchema) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FieldSchema.Unmarshal(m, b) } func (m *FieldSchema) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_FieldSchema.Marshal(b, m, deterministic) } -func (m *FieldSchema) XXX_Merge(src proto.Message) { - xxx_messageInfo_FieldSchema.Merge(m, src) +func (dst *FieldSchema) XXX_Merge(src proto.Message) { + xxx_messageInfo_FieldSchema.Merge(dst, src) } func (m *FieldSchema) XXX_Size() int { return xxx_messageInfo_FieldSchema.Size(m) @@ -2498,9 +2424,9 @@ func (m *FieldSchema) GetDateFormats() []string { } type IndexSchema struct { - FieldSchemas []*FieldSchema `protobuf:"bytes,1,rep,name=field_schemas" json:"field_schemas,omitempty"` - IndexSetting *IndexSetting `protobuf:"bytes,2,opt,name=index_setting" json:"index_setting,omitempty"` - IndexSort *Sort `protobuf:"bytes,3,opt,name=index_sort" json:"index_sort,omitempty"` + FieldSchemas []*FieldSchema `protobuf:"bytes,1,rep,name=field_schemas,json=fieldSchemas" json:"field_schemas,omitempty"` + IndexSetting *IndexSetting `protobuf:"bytes,2,opt,name=index_setting,json=indexSetting" json:"index_setting,omitempty"` + IndexSort *Sort `protobuf:"bytes,3,opt,name=index_sort,json=indexSort" json:"index_sort,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2510,17 +2436,16 @@ func (m *IndexSchema) Reset() { *m = IndexSchema{} } func (m *IndexSchema) String() string { return proto.CompactTextString(m) } func (*IndexSchema) ProtoMessage() {} func (*IndexSchema) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{34} + return fileDescriptor_search_c58deff66fa19a4e, []int{34} } - func (m *IndexSchema) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IndexSchema.Unmarshal(m, b) } func (m *IndexSchema) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_IndexSchema.Marshal(b, m, deterministic) } -func (m *IndexSchema) XXX_Merge(src proto.Message) { - xxx_messageInfo_IndexSchema.Merge(m, src) +func (dst *IndexSchema) XXX_Merge(src proto.Message) { + xxx_messageInfo_IndexSchema.Merge(dst, src) } func (m *IndexSchema) XXX_Size() int { return xxx_messageInfo_IndexSchema.Size(m) @@ -2553,9 +2478,9 @@ func (m *IndexSchema) GetIndexSort() *Sort { } type IndexSetting struct { - NumberOfShards *int32 `protobuf:"varint,1,opt,name=number_of_shards" json:"number_of_shards,omitempty"` - RoutingFields []string `protobuf:"bytes,2,rep,name=routing_fields" json:"routing_fields,omitempty"` - RoutingPartitionSize *int32 `protobuf:"varint,3,opt,name=routing_partition_size" json:"routing_partition_size,omitempty"` + NumberOfShards *int32 `protobuf:"varint,1,opt,name=number_of_shards,json=numberOfShards" json:"number_of_shards,omitempty"` + RoutingFields []string `protobuf:"bytes,2,rep,name=routing_fields,json=routingFields" json:"routing_fields,omitempty"` + RoutingPartitionSize *int32 `protobuf:"varint,3,opt,name=routing_partition_size,json=routingPartitionSize" json:"routing_partition_size,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2565,17 +2490,16 @@ func (m *IndexSetting) Reset() { *m = IndexSetting{} } func (m *IndexSetting) String() string { return proto.CompactTextString(m) } func (*IndexSetting) ProtoMessage() {} func (*IndexSetting) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{35} + return fileDescriptor_search_c58deff66fa19a4e, []int{35} } - func (m *IndexSetting) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IndexSetting.Unmarshal(m, b) } func (m *IndexSetting) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_IndexSetting.Marshal(b, m, deterministic) } -func (m *IndexSetting) XXX_Merge(src proto.Message) { - xxx_messageInfo_IndexSetting.Merge(m, src) +func (dst *IndexSetting) XXX_Merge(src proto.Message) { + xxx_messageInfo_IndexSetting.Merge(dst, src) } func (m *IndexSetting) XXX_Size() int { return xxx_messageInfo_IndexSetting.Size(m) @@ -2608,11 +2532,11 @@ func (m *IndexSetting) GetRoutingPartitionSize() int32 { } type CreateSearchIndexRequest struct { - TableName *string `protobuf:"bytes,1,req,name=table_name" json:"table_name,omitempty"` - IndexName *string `protobuf:"bytes,2,req,name=index_name" json:"index_name,omitempty"` + TableName *string `protobuf:"bytes,1,req,name=table_name,json=tableName" json:"table_name,omitempty"` + IndexName *string `protobuf:"bytes,2,req,name=index_name,json=indexName" json:"index_name,omitempty"` Schema *IndexSchema `protobuf:"bytes,3,opt,name=schema" json:"schema,omitempty"` - SourceIndexName *string `protobuf:"bytes,4,opt,name=source_index_name" json:"source_index_name,omitempty"` - TimeToLive *int32 `protobuf:"varint,5,opt,name=time_to_live" json:"time_to_live,omitempty"` + SourceIndexName *string `protobuf:"bytes,4,opt,name=source_index_name,json=sourceIndexName" json:"source_index_name,omitempty"` + TimeToLive *int32 `protobuf:"varint,5,opt,name=time_to_live,json=timeToLive" json:"time_to_live,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2622,17 +2546,16 @@ func (m *CreateSearchIndexRequest) Reset() { *m = CreateSearchIndexReque func (m *CreateSearchIndexRequest) String() string { return proto.CompactTextString(m) } func (*CreateSearchIndexRequest) ProtoMessage() {} func (*CreateSearchIndexRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{36} + return fileDescriptor_search_c58deff66fa19a4e, []int{36} } - func (m *CreateSearchIndexRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateSearchIndexRequest.Unmarshal(m, b) } func (m *CreateSearchIndexRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_CreateSearchIndexRequest.Marshal(b, m, deterministic) } -func (m *CreateSearchIndexRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_CreateSearchIndexRequest.Merge(m, src) +func (dst *CreateSearchIndexRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateSearchIndexRequest.Merge(dst, src) } func (m *CreateSearchIndexRequest) XXX_Size() int { return xxx_messageInfo_CreateSearchIndexRequest.Size(m) @@ -2688,17 +2611,16 @@ func (m *CreateSearchIndexResponse) Reset() { *m = CreateSearchIndexResp func (m *CreateSearchIndexResponse) String() string { return proto.CompactTextString(m) } func (*CreateSearchIndexResponse) ProtoMessage() {} func (*CreateSearchIndexResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{37} + return fileDescriptor_search_c58deff66fa19a4e, []int{37} } - func (m *CreateSearchIndexResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateSearchIndexResponse.Unmarshal(m, b) } func (m *CreateSearchIndexResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_CreateSearchIndexResponse.Marshal(b, m, deterministic) } -func (m *CreateSearchIndexResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_CreateSearchIndexResponse.Merge(m, src) +func (dst *CreateSearchIndexResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateSearchIndexResponse.Merge(dst, src) } func (m *CreateSearchIndexResponse) XXX_Size() int { return xxx_messageInfo_CreateSearchIndexResponse.Size(m) @@ -2709,8 +2631,9 @@ func (m *CreateSearchIndexResponse) XXX_DiscardUnknown() { var xxx_messageInfo_CreateSearchIndexResponse proto.InternalMessageInfo +// Update Search Index type QueryFlowWeight struct { - IndexName *string `protobuf:"bytes,1,opt,name=index_name" json:"index_name,omitempty"` + IndexName *string `protobuf:"bytes,1,opt,name=index_name,json=indexName" json:"index_name,omitempty"` Weight *int32 `protobuf:"varint,2,opt,name=weight" json:"weight,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -2721,17 +2644,16 @@ func (m *QueryFlowWeight) Reset() { *m = QueryFlowWeight{} } func (m *QueryFlowWeight) String() string { return proto.CompactTextString(m) } func (*QueryFlowWeight) ProtoMessage() {} func (*QueryFlowWeight) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{38} + return fileDescriptor_search_c58deff66fa19a4e, []int{38} } - func (m *QueryFlowWeight) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QueryFlowWeight.Unmarshal(m, b) } func (m *QueryFlowWeight) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_QueryFlowWeight.Marshal(b, m, deterministic) } -func (m *QueryFlowWeight) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryFlowWeight.Merge(m, src) +func (dst *QueryFlowWeight) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryFlowWeight.Merge(dst, src) } func (m *QueryFlowWeight) XXX_Size() int { return xxx_messageInfo_QueryFlowWeight.Size(m) @@ -2757,11 +2679,11 @@ func (m *QueryFlowWeight) GetWeight() int32 { } type UpdateSearchIndexRequest struct { - TableName *string `protobuf:"bytes,1,opt,name=table_name" json:"table_name,omitempty"` - IndexName *string `protobuf:"bytes,2,opt,name=index_name" json:"index_name,omitempty"` - SwitchIndexName *string `protobuf:"bytes,3,opt,name=switch_index_name" json:"switch_index_name,omitempty"` - QueryFlowWeight []*QueryFlowWeight `protobuf:"bytes,4,rep,name=query_flow_weight" json:"query_flow_weight,omitempty"` - TimeToLive *int32 `protobuf:"varint,5,opt,name=time_to_live" json:"time_to_live,omitempty"` + TableName *string `protobuf:"bytes,1,opt,name=table_name,json=tableName" json:"table_name,omitempty"` + IndexName *string `protobuf:"bytes,2,opt,name=index_name,json=indexName" json:"index_name,omitempty"` + SwitchIndexName *string `protobuf:"bytes,3,opt,name=switch_index_name,json=switchIndexName" json:"switch_index_name,omitempty"` + QueryFlowWeight []*QueryFlowWeight `protobuf:"bytes,4,rep,name=query_flow_weight,json=queryFlowWeight" json:"query_flow_weight,omitempty"` + TimeToLive *int32 `protobuf:"varint,5,opt,name=time_to_live,json=timeToLive" json:"time_to_live,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2771,17 +2693,16 @@ func (m *UpdateSearchIndexRequest) Reset() { *m = UpdateSearchIndexReque func (m *UpdateSearchIndexRequest) String() string { return proto.CompactTextString(m) } func (*UpdateSearchIndexRequest) ProtoMessage() {} func (*UpdateSearchIndexRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{39} + return fileDescriptor_search_c58deff66fa19a4e, []int{39} } - func (m *UpdateSearchIndexRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateSearchIndexRequest.Unmarshal(m, b) } func (m *UpdateSearchIndexRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_UpdateSearchIndexRequest.Marshal(b, m, deterministic) } -func (m *UpdateSearchIndexRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_UpdateSearchIndexRequest.Merge(m, src) +func (dst *UpdateSearchIndexRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_UpdateSearchIndexRequest.Merge(dst, src) } func (m *UpdateSearchIndexRequest) XXX_Size() int { return xxx_messageInfo_UpdateSearchIndexRequest.Size(m) @@ -2837,17 +2758,16 @@ func (m *UpdateSearchIndexResponse) Reset() { *m = UpdateSearchIndexResp func (m *UpdateSearchIndexResponse) String() string { return proto.CompactTextString(m) } func (*UpdateSearchIndexResponse) ProtoMessage() {} func (*UpdateSearchIndexResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{40} + return fileDescriptor_search_c58deff66fa19a4e, []int{40} } - func (m *UpdateSearchIndexResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateSearchIndexResponse.Unmarshal(m, b) } func (m *UpdateSearchIndexResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_UpdateSearchIndexResponse.Marshal(b, m, deterministic) } -func (m *UpdateSearchIndexResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_UpdateSearchIndexResponse.Merge(m, src) +func (dst *UpdateSearchIndexResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_UpdateSearchIndexResponse.Merge(dst, src) } func (m *UpdateSearchIndexResponse) XXX_Size() int { return xxx_messageInfo_UpdateSearchIndexResponse.Size(m) @@ -2859,8 +2779,8 @@ func (m *UpdateSearchIndexResponse) XXX_DiscardUnknown() { var xxx_messageInfo_UpdateSearchIndexResponse proto.InternalMessageInfo type IndexInfo struct { - TableName *string `protobuf:"bytes,1,opt,name=table_name" json:"table_name,omitempty"` - IndexName *string `protobuf:"bytes,2,opt,name=index_name" json:"index_name,omitempty"` + TableName *string `protobuf:"bytes,1,opt,name=table_name,json=tableName" json:"table_name,omitempty"` + IndexName *string `protobuf:"bytes,2,opt,name=index_name,json=indexName" json:"index_name,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2870,17 +2790,16 @@ func (m *IndexInfo) Reset() { *m = IndexInfo{} } func (m *IndexInfo) String() string { return proto.CompactTextString(m) } func (*IndexInfo) ProtoMessage() {} func (*IndexInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{41} + return fileDescriptor_search_c58deff66fa19a4e, []int{41} } - func (m *IndexInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IndexInfo.Unmarshal(m, b) } func (m *IndexInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_IndexInfo.Marshal(b, m, deterministic) } -func (m *IndexInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_IndexInfo.Merge(m, src) +func (dst *IndexInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_IndexInfo.Merge(dst, src) } func (m *IndexInfo) XXX_Size() int { return xxx_messageInfo_IndexInfo.Size(m) @@ -2906,7 +2825,7 @@ func (m *IndexInfo) GetIndexName() string { } type ListSearchIndexRequest struct { - TableName *string `protobuf:"bytes,1,opt,name=table_name" json:"table_name,omitempty"` + TableName *string `protobuf:"bytes,1,opt,name=table_name,json=tableName" json:"table_name,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2916,17 +2835,16 @@ func (m *ListSearchIndexRequest) Reset() { *m = ListSearchIndexRequest{} func (m *ListSearchIndexRequest) String() string { return proto.CompactTextString(m) } func (*ListSearchIndexRequest) ProtoMessage() {} func (*ListSearchIndexRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{42} + return fileDescriptor_search_c58deff66fa19a4e, []int{42} } - func (m *ListSearchIndexRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListSearchIndexRequest.Unmarshal(m, b) } func (m *ListSearchIndexRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ListSearchIndexRequest.Marshal(b, m, deterministic) } -func (m *ListSearchIndexRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ListSearchIndexRequest.Merge(m, src) +func (dst *ListSearchIndexRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListSearchIndexRequest.Merge(dst, src) } func (m *ListSearchIndexRequest) XXX_Size() int { return xxx_messageInfo_ListSearchIndexRequest.Size(m) @@ -2955,17 +2873,16 @@ func (m *ListSearchIndexResponse) Reset() { *m = ListSearchIndexResponse func (m *ListSearchIndexResponse) String() string { return proto.CompactTextString(m) } func (*ListSearchIndexResponse) ProtoMessage() {} func (*ListSearchIndexResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{43} + return fileDescriptor_search_c58deff66fa19a4e, []int{43} } - func (m *ListSearchIndexResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListSearchIndexResponse.Unmarshal(m, b) } func (m *ListSearchIndexResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ListSearchIndexResponse.Marshal(b, m, deterministic) } -func (m *ListSearchIndexResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_ListSearchIndexResponse.Merge(m, src) +func (dst *ListSearchIndexResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListSearchIndexResponse.Merge(dst, src) } func (m *ListSearchIndexResponse) XXX_Size() int { return xxx_messageInfo_ListSearchIndexResponse.Size(m) @@ -2984,8 +2901,8 @@ func (m *ListSearchIndexResponse) GetIndices() []*IndexInfo { } type DeleteSearchIndexRequest struct { - TableName *string `protobuf:"bytes,1,opt,name=table_name" json:"table_name,omitempty"` - IndexName *string `protobuf:"bytes,2,opt,name=index_name" json:"index_name,omitempty"` + TableName *string `protobuf:"bytes,1,opt,name=table_name,json=tableName" json:"table_name,omitempty"` + IndexName *string `protobuf:"bytes,2,opt,name=index_name,json=indexName" json:"index_name,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2995,17 +2912,16 @@ func (m *DeleteSearchIndexRequest) Reset() { *m = DeleteSearchIndexReque func (m *DeleteSearchIndexRequest) String() string { return proto.CompactTextString(m) } func (*DeleteSearchIndexRequest) ProtoMessage() {} func (*DeleteSearchIndexRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{44} + return fileDescriptor_search_c58deff66fa19a4e, []int{44} } - func (m *DeleteSearchIndexRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteSearchIndexRequest.Unmarshal(m, b) } func (m *DeleteSearchIndexRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_DeleteSearchIndexRequest.Marshal(b, m, deterministic) } -func (m *DeleteSearchIndexRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeleteSearchIndexRequest.Merge(m, src) +func (dst *DeleteSearchIndexRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteSearchIndexRequest.Merge(dst, src) } func (m *DeleteSearchIndexRequest) XXX_Size() int { return xxx_messageInfo_DeleteSearchIndexRequest.Size(m) @@ -3040,17 +2956,16 @@ func (m *DeleteSearchIndexResponse) Reset() { *m = DeleteSearchIndexResp func (m *DeleteSearchIndexResponse) String() string { return proto.CompactTextString(m) } func (*DeleteSearchIndexResponse) ProtoMessage() {} func (*DeleteSearchIndexResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{45} + return fileDescriptor_search_c58deff66fa19a4e, []int{45} } - func (m *DeleteSearchIndexResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteSearchIndexResponse.Unmarshal(m, b) } func (m *DeleteSearchIndexResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_DeleteSearchIndexResponse.Marshal(b, m, deterministic) } -func (m *DeleteSearchIndexResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeleteSearchIndexResponse.Merge(m, src) +func (dst *DeleteSearchIndexResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteSearchIndexResponse.Merge(dst, src) } func (m *DeleteSearchIndexResponse) XXX_Size() int { return xxx_messageInfo_DeleteSearchIndexResponse.Size(m) @@ -3062,8 +2977,8 @@ func (m *DeleteSearchIndexResponse) XXX_DiscardUnknown() { var xxx_messageInfo_DeleteSearchIndexResponse proto.InternalMessageInfo type SyncStat struct { - SyncPhase *SyncPhase `protobuf:"varint,1,opt,name=sync_phase,enum=otsprotocol.SyncPhase" json:"sync_phase,omitempty"` - CurrentSyncTimestamp *int64 `protobuf:"varint,2,opt,name=current_sync_timestamp" json:"current_sync_timestamp,omitempty"` + SyncPhase *SyncPhase `protobuf:"varint,1,opt,name=sync_phase,json=syncPhase,enum=otsprotocol.SyncPhase" json:"sync_phase,omitempty"` + CurrentSyncTimestamp *int64 `protobuf:"varint,2,opt,name=current_sync_timestamp,json=currentSyncTimestamp" json:"current_sync_timestamp,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -3073,17 +2988,16 @@ func (m *SyncStat) Reset() { *m = SyncStat{} } func (m *SyncStat) String() string { return proto.CompactTextString(m) } func (*SyncStat) ProtoMessage() {} func (*SyncStat) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{46} + return fileDescriptor_search_c58deff66fa19a4e, []int{46} } - func (m *SyncStat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SyncStat.Unmarshal(m, b) } func (m *SyncStat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_SyncStat.Marshal(b, m, deterministic) } -func (m *SyncStat) XXX_Merge(src proto.Message) { - xxx_messageInfo_SyncStat.Merge(m, src) +func (dst *SyncStat) XXX_Merge(src proto.Message) { + xxx_messageInfo_SyncStat.Merge(dst, src) } func (m *SyncStat) XXX_Size() int { return xxx_messageInfo_SyncStat.Size(m) @@ -3109,9 +3023,9 @@ func (m *SyncStat) GetCurrentSyncTimestamp() int64 { } type MeteringInfo struct { - StorageSize *int64 `protobuf:"varint,1,opt,name=storage_size" json:"storage_size,omitempty"` - RowCount *int64 `protobuf:"varint,2,opt,name=row_count" json:"row_count,omitempty"` - ReservedReadCu *int64 `protobuf:"varint,3,opt,name=reserved_read_cu" json:"reserved_read_cu,omitempty"` + StorageSize *int64 `protobuf:"varint,1,opt,name=storage_size,json=storageSize" json:"storage_size,omitempty"` + RowCount *int64 `protobuf:"varint,2,opt,name=row_count,json=rowCount" json:"row_count,omitempty"` + ReservedReadCu *int64 `protobuf:"varint,3,opt,name=reserved_read_cu,json=reservedReadCu" json:"reserved_read_cu,omitempty"` Timestamp *int64 `protobuf:"varint,4,opt,name=timestamp" json:"timestamp,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -3122,17 +3036,16 @@ func (m *MeteringInfo) Reset() { *m = MeteringInfo{} } func (m *MeteringInfo) String() string { return proto.CompactTextString(m) } func (*MeteringInfo) ProtoMessage() {} func (*MeteringInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{47} + return fileDescriptor_search_c58deff66fa19a4e, []int{47} } - func (m *MeteringInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MeteringInfo.Unmarshal(m, b) } func (m *MeteringInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_MeteringInfo.Marshal(b, m, deterministic) } -func (m *MeteringInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_MeteringInfo.Merge(m, src) +func (dst *MeteringInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_MeteringInfo.Merge(dst, src) } func (m *MeteringInfo) XXX_Size() int { return xxx_messageInfo_MeteringInfo.Size(m) @@ -3172,8 +3085,8 @@ func (m *MeteringInfo) GetTimestamp() int64 { } type DescribeSearchIndexRequest struct { - TableName *string `protobuf:"bytes,1,opt,name=table_name" json:"table_name,omitempty"` - IndexName *string `protobuf:"bytes,2,opt,name=index_name" json:"index_name,omitempty"` + TableName *string `protobuf:"bytes,1,opt,name=table_name,json=tableName" json:"table_name,omitempty"` + IndexName *string `protobuf:"bytes,2,opt,name=index_name,json=indexName" json:"index_name,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -3183,17 +3096,16 @@ func (m *DescribeSearchIndexRequest) Reset() { *m = DescribeSearchIndexR func (m *DescribeSearchIndexRequest) String() string { return proto.CompactTextString(m) } func (*DescribeSearchIndexRequest) ProtoMessage() {} func (*DescribeSearchIndexRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{48} + return fileDescriptor_search_c58deff66fa19a4e, []int{48} } - func (m *DescribeSearchIndexRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DescribeSearchIndexRequest.Unmarshal(m, b) } func (m *DescribeSearchIndexRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_DescribeSearchIndexRequest.Marshal(b, m, deterministic) } -func (m *DescribeSearchIndexRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_DescribeSearchIndexRequest.Merge(m, src) +func (dst *DescribeSearchIndexRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_DescribeSearchIndexRequest.Merge(dst, src) } func (m *DescribeSearchIndexRequest) XXX_Size() int { return xxx_messageInfo_DescribeSearchIndexRequest.Size(m) @@ -3220,12 +3132,12 @@ func (m *DescribeSearchIndexRequest) GetIndexName() string { type DescribeSearchIndexResponse struct { Schema *IndexSchema `protobuf:"bytes,1,opt,name=schema" json:"schema,omitempty"` - SyncStat *SyncStat `protobuf:"bytes,2,opt,name=sync_stat" json:"sync_stat,omitempty"` - MeteringInfo *MeteringInfo `protobuf:"bytes,3,opt,name=metering_info" json:"metering_info,omitempty"` - BrotherIndexName *string `protobuf:"bytes,4,opt,name=brother_index_name" json:"brother_index_name,omitempty"` - QueryFlowWeight []*QueryFlowWeight `protobuf:"bytes,5,rep,name=query_flow_weight" json:"query_flow_weight,omitempty"` - CreateTime *int64 `protobuf:"varint,6,opt,name=create_time" json:"create_time,omitempty"` - TimeToLive *int32 `protobuf:"varint,7,opt,name=time_to_live" json:"time_to_live,omitempty"` + SyncStat *SyncStat `protobuf:"bytes,2,opt,name=sync_stat,json=syncStat" json:"sync_stat,omitempty"` + MeteringInfo *MeteringInfo `protobuf:"bytes,3,opt,name=metering_info,json=meteringInfo" json:"metering_info,omitempty"` + BrotherIndexName *string `protobuf:"bytes,4,opt,name=brother_index_name,json=brotherIndexName" json:"brother_index_name,omitempty"` + QueryFlowWeight []*QueryFlowWeight `protobuf:"bytes,5,rep,name=query_flow_weight,json=queryFlowWeight" json:"query_flow_weight,omitempty"` + CreateTime *int64 `protobuf:"varint,6,opt,name=create_time,json=createTime" json:"create_time,omitempty"` + TimeToLive *int32 `protobuf:"varint,7,opt,name=time_to_live,json=timeToLive" json:"time_to_live,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -3235,17 +3147,16 @@ func (m *DescribeSearchIndexResponse) Reset() { *m = DescribeSearchIndex func (m *DescribeSearchIndexResponse) String() string { return proto.CompactTextString(m) } func (*DescribeSearchIndexResponse) ProtoMessage() {} func (*DescribeSearchIndexResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{49} + return fileDescriptor_search_c58deff66fa19a4e, []int{49} } - func (m *DescribeSearchIndexResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DescribeSearchIndexResponse.Unmarshal(m, b) } func (m *DescribeSearchIndexResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_DescribeSearchIndexResponse.Marshal(b, m, deterministic) } -func (m *DescribeSearchIndexResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_DescribeSearchIndexResponse.Merge(m, src) +func (dst *DescribeSearchIndexResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_DescribeSearchIndexResponse.Merge(dst, src) } func (m *DescribeSearchIndexResponse) XXX_Size() int { return xxx_messageInfo_DescribeSearchIndexResponse.Size(m) @@ -3305,6 +3216,7 @@ func (m *DescribeSearchIndexResponse) GetTimeToLive() int32 { return 0 } +// agg & group by type Aggregation struct { Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` Type *AggregationType `protobuf:"varint,2,opt,name=type,enum=otsprotocol.AggregationType" json:"type,omitempty"` @@ -3318,17 +3230,16 @@ func (m *Aggregation) Reset() { *m = Aggregation{} } func (m *Aggregation) String() string { return proto.CompactTextString(m) } func (*Aggregation) ProtoMessage() {} func (*Aggregation) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{50} + return fileDescriptor_search_c58deff66fa19a4e, []int{50} } - func (m *Aggregation) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Aggregation.Unmarshal(m, b) } func (m *Aggregation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Aggregation.Marshal(b, m, deterministic) } -func (m *Aggregation) XXX_Merge(src proto.Message) { - xxx_messageInfo_Aggregation.Merge(m, src) +func (dst *Aggregation) XXX_Merge(src proto.Message) { + xxx_messageInfo_Aggregation.Merge(dst, src) } func (m *Aggregation) XXX_Size() int { return xxx_messageInfo_Aggregation.Size(m) @@ -3371,17 +3282,16 @@ func (m *Aggregations) Reset() { *m = Aggregations{} } func (m *Aggregations) String() string { return proto.CompactTextString(m) } func (*Aggregations) ProtoMessage() {} func (*Aggregations) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{51} + return fileDescriptor_search_c58deff66fa19a4e, []int{51} } - func (m *Aggregations) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Aggregations.Unmarshal(m, b) } func (m *Aggregations) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Aggregations.Marshal(b, m, deterministic) } -func (m *Aggregations) XXX_Merge(src proto.Message) { - xxx_messageInfo_Aggregations.Merge(m, src) +func (dst *Aggregations) XXX_Merge(src proto.Message) { + xxx_messageInfo_Aggregations.Merge(dst, src) } func (m *Aggregations) XXX_Size() int { return xxx_messageInfo_Aggregations.Size(m) @@ -3412,17 +3322,16 @@ func (m *GroupBy) Reset() { *m = GroupBy{} } func (m *GroupBy) String() string { return proto.CompactTextString(m) } func (*GroupBy) ProtoMessage() {} func (*GroupBy) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{52} + return fileDescriptor_search_c58deff66fa19a4e, []int{52} } - func (m *GroupBy) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupBy.Unmarshal(m, b) } func (m *GroupBy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_GroupBy.Marshal(b, m, deterministic) } -func (m *GroupBy) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupBy.Merge(m, src) +func (dst *GroupBy) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupBy.Merge(dst, src) } func (m *GroupBy) XXX_Size() int { return xxx_messageInfo_GroupBy.Size(m) @@ -3455,7 +3364,7 @@ func (m *GroupBy) GetBody() []byte { } type GroupBys struct { - GroupBys []*GroupBy `protobuf:"bytes,1,rep,name=group_bys" json:"group_bys,omitempty"` + GroupBys []*GroupBy `protobuf:"bytes,1,rep,name=group_bys,json=groupBys" json:"group_bys,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -3465,17 +3374,16 @@ func (m *GroupBys) Reset() { *m = GroupBys{} } func (m *GroupBys) String() string { return proto.CompactTextString(m) } func (*GroupBys) ProtoMessage() {} func (*GroupBys) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{53} + return fileDescriptor_search_c58deff66fa19a4e, []int{53} } - func (m *GroupBys) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupBys.Unmarshal(m, b) } func (m *GroupBys) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_GroupBys.Marshal(b, m, deterministic) } -func (m *GroupBys) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupBys.Merge(m, src) +func (dst *GroupBys) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupBys.Merge(dst, src) } func (m *GroupBys) XXX_Size() int { return xxx_messageInfo_GroupBys.Size(m) @@ -3493,8 +3401,9 @@ func (m *GroupBys) GetGroupBys() []*GroupBy { return nil } +// single agg type AvgAggregation struct { - FieldName *string `protobuf:"bytes,1,opt,name=field_name" json:"field_name,omitempty"` + FieldName *string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` Missing []byte `protobuf:"bytes,2,opt,name=missing" json:"missing,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -3505,17 +3414,16 @@ func (m *AvgAggregation) Reset() { *m = AvgAggregation{} } func (m *AvgAggregation) String() string { return proto.CompactTextString(m) } func (*AvgAggregation) ProtoMessage() {} func (*AvgAggregation) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{54} + return fileDescriptor_search_c58deff66fa19a4e, []int{54} } - func (m *AvgAggregation) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AvgAggregation.Unmarshal(m, b) } func (m *AvgAggregation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_AvgAggregation.Marshal(b, m, deterministic) } -func (m *AvgAggregation) XXX_Merge(src proto.Message) { - xxx_messageInfo_AvgAggregation.Merge(m, src) +func (dst *AvgAggregation) XXX_Merge(src proto.Message) { + xxx_messageInfo_AvgAggregation.Merge(dst, src) } func (m *AvgAggregation) XXX_Size() int { return xxx_messageInfo_AvgAggregation.Size(m) @@ -3541,7 +3449,7 @@ func (m *AvgAggregation) GetMissing() []byte { } type MaxAggregation struct { - FieldName *string `protobuf:"bytes,1,opt,name=field_name" json:"field_name,omitempty"` + FieldName *string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` Missing []byte `protobuf:"bytes,2,opt,name=missing" json:"missing,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -3552,17 +3460,16 @@ func (m *MaxAggregation) Reset() { *m = MaxAggregation{} } func (m *MaxAggregation) String() string { return proto.CompactTextString(m) } func (*MaxAggregation) ProtoMessage() {} func (*MaxAggregation) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{55} + return fileDescriptor_search_c58deff66fa19a4e, []int{55} } - func (m *MaxAggregation) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MaxAggregation.Unmarshal(m, b) } func (m *MaxAggregation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_MaxAggregation.Marshal(b, m, deterministic) } -func (m *MaxAggregation) XXX_Merge(src proto.Message) { - xxx_messageInfo_MaxAggregation.Merge(m, src) +func (dst *MaxAggregation) XXX_Merge(src proto.Message) { + xxx_messageInfo_MaxAggregation.Merge(dst, src) } func (m *MaxAggregation) XXX_Size() int { return xxx_messageInfo_MaxAggregation.Size(m) @@ -3588,7 +3495,7 @@ func (m *MaxAggregation) GetMissing() []byte { } type MinAggregation struct { - FieldName *string `protobuf:"bytes,1,opt,name=field_name" json:"field_name,omitempty"` + FieldName *string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` Missing []byte `protobuf:"bytes,2,opt,name=missing" json:"missing,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -3599,17 +3506,16 @@ func (m *MinAggregation) Reset() { *m = MinAggregation{} } func (m *MinAggregation) String() string { return proto.CompactTextString(m) } func (*MinAggregation) ProtoMessage() {} func (*MinAggregation) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{56} + return fileDescriptor_search_c58deff66fa19a4e, []int{56} } - func (m *MinAggregation) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MinAggregation.Unmarshal(m, b) } func (m *MinAggregation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_MinAggregation.Marshal(b, m, deterministic) } -func (m *MinAggregation) XXX_Merge(src proto.Message) { - xxx_messageInfo_MinAggregation.Merge(m, src) +func (dst *MinAggregation) XXX_Merge(src proto.Message) { + xxx_messageInfo_MinAggregation.Merge(dst, src) } func (m *MinAggregation) XXX_Size() int { return xxx_messageInfo_MinAggregation.Size(m) @@ -3635,7 +3541,7 @@ func (m *MinAggregation) GetMissing() []byte { } type SumAggregation struct { - FieldName *string `protobuf:"bytes,1,opt,name=field_name" json:"field_name,omitempty"` + FieldName *string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` Missing []byte `protobuf:"bytes,2,opt,name=missing" json:"missing,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -3646,17 +3552,16 @@ func (m *SumAggregation) Reset() { *m = SumAggregation{} } func (m *SumAggregation) String() string { return proto.CompactTextString(m) } func (*SumAggregation) ProtoMessage() {} func (*SumAggregation) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{57} + return fileDescriptor_search_c58deff66fa19a4e, []int{57} } - func (m *SumAggregation) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SumAggregation.Unmarshal(m, b) } func (m *SumAggregation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_SumAggregation.Marshal(b, m, deterministic) } -func (m *SumAggregation) XXX_Merge(src proto.Message) { - xxx_messageInfo_SumAggregation.Merge(m, src) +func (dst *SumAggregation) XXX_Merge(src proto.Message) { + xxx_messageInfo_SumAggregation.Merge(dst, src) } func (m *SumAggregation) XXX_Size() int { return xxx_messageInfo_SumAggregation.Size(m) @@ -3682,7 +3587,7 @@ func (m *SumAggregation) GetMissing() []byte { } type CountAggregation struct { - FieldName *string `protobuf:"bytes,1,opt,name=field_name" json:"field_name,omitempty"` + FieldName *string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -3692,17 +3597,16 @@ func (m *CountAggregation) Reset() { *m = CountAggregation{} } func (m *CountAggregation) String() string { return proto.CompactTextString(m) } func (*CountAggregation) ProtoMessage() {} func (*CountAggregation) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{58} + return fileDescriptor_search_c58deff66fa19a4e, []int{58} } - func (m *CountAggregation) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CountAggregation.Unmarshal(m, b) } func (m *CountAggregation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_CountAggregation.Marshal(b, m, deterministic) } -func (m *CountAggregation) XXX_Merge(src proto.Message) { - xxx_messageInfo_CountAggregation.Merge(m, src) +func (dst *CountAggregation) XXX_Merge(src proto.Message) { + xxx_messageInfo_CountAggregation.Merge(dst, src) } func (m *CountAggregation) XXX_Size() int { return xxx_messageInfo_CountAggregation.Size(m) @@ -3721,7 +3625,7 @@ func (m *CountAggregation) GetFieldName() string { } type DistinctCountAggregation struct { - FieldName *string `protobuf:"bytes,1,opt,name=field_name" json:"field_name,omitempty"` + FieldName *string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` Missing []byte `protobuf:"bytes,2,opt,name=missing" json:"missing,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -3732,17 +3636,16 @@ func (m *DistinctCountAggregation) Reset() { *m = DistinctCountAggregati func (m *DistinctCountAggregation) String() string { return proto.CompactTextString(m) } func (*DistinctCountAggregation) ProtoMessage() {} func (*DistinctCountAggregation) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{59} + return fileDescriptor_search_c58deff66fa19a4e, []int{59} } - func (m *DistinctCountAggregation) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DistinctCountAggregation.Unmarshal(m, b) } func (m *DistinctCountAggregation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_DistinctCountAggregation.Marshal(b, m, deterministic) } -func (m *DistinctCountAggregation) XXX_Merge(src proto.Message) { - xxx_messageInfo_DistinctCountAggregation.Merge(m, src) +func (dst *DistinctCountAggregation) XXX_Merge(src proto.Message) { + xxx_messageInfo_DistinctCountAggregation.Merge(dst, src) } func (m *DistinctCountAggregation) XXX_Size() int { return xxx_messageInfo_DistinctCountAggregation.Size(m) @@ -3779,17 +3682,16 @@ func (m *TopRowsAggregation) Reset() { *m = TopRowsAggregation{} } func (m *TopRowsAggregation) String() string { return proto.CompactTextString(m) } func (*TopRowsAggregation) ProtoMessage() {} func (*TopRowsAggregation) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{60} + return fileDescriptor_search_c58deff66fa19a4e, []int{60} } - func (m *TopRowsAggregation) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TopRowsAggregation.Unmarshal(m, b) } func (m *TopRowsAggregation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_TopRowsAggregation.Marshal(b, m, deterministic) } -func (m *TopRowsAggregation) XXX_Merge(src proto.Message) { - xxx_messageInfo_TopRowsAggregation.Merge(m, src) +func (dst *TopRowsAggregation) XXX_Merge(src proto.Message) { + xxx_messageInfo_TopRowsAggregation.Merge(dst, src) } func (m *TopRowsAggregation) XXX_Size() int { return xxx_messageInfo_TopRowsAggregation.Size(m) @@ -3815,7 +3717,7 @@ func (m *TopRowsAggregation) GetSort() *Sort { } type PercentilesAggregation struct { - FieldName *string `protobuf:"bytes,1,opt,name=field_name" json:"field_name,omitempty"` + FieldName *string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` Percentiles []float64 `protobuf:"fixed64,2,rep,name=percentiles" json:"percentiles,omitempty"` Missing []byte `protobuf:"bytes,3,opt,name=missing" json:"missing,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -3827,17 +3729,16 @@ func (m *PercentilesAggregation) Reset() { *m = PercentilesAggregation{} func (m *PercentilesAggregation) String() string { return proto.CompactTextString(m) } func (*PercentilesAggregation) ProtoMessage() {} func (*PercentilesAggregation) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{61} + return fileDescriptor_search_c58deff66fa19a4e, []int{61} } - func (m *PercentilesAggregation) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PercentilesAggregation.Unmarshal(m, b) } func (m *PercentilesAggregation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_PercentilesAggregation.Marshal(b, m, deterministic) } -func (m *PercentilesAggregation) XXX_Merge(src proto.Message) { - xxx_messageInfo_PercentilesAggregation.Merge(m, src) +func (dst *PercentilesAggregation) XXX_Merge(src proto.Message) { + xxx_messageInfo_PercentilesAggregation.Merge(dst, src) } func (m *PercentilesAggregation) XXX_Size() int { return xxx_messageInfo_PercentilesAggregation.Size(m) @@ -3881,17 +3782,16 @@ func (m *FieldRange) Reset() { *m = FieldRange{} } func (m *FieldRange) String() string { return proto.CompactTextString(m) } func (*FieldRange) ProtoMessage() {} func (*FieldRange) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{62} + return fileDescriptor_search_c58deff66fa19a4e, []int{62} } - func (m *FieldRange) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FieldRange.Unmarshal(m, b) } func (m *FieldRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_FieldRange.Marshal(b, m, deterministic) } -func (m *FieldRange) XXX_Merge(src proto.Message) { - xxx_messageInfo_FieldRange.Merge(m, src) +func (dst *FieldRange) XXX_Merge(src proto.Message) { + xxx_messageInfo_FieldRange.Merge(dst, src) } func (m *FieldRange) XXX_Size() int { return xxx_messageInfo_FieldRange.Size(m) @@ -3917,14 +3817,14 @@ func (m *FieldRange) GetMax() []byte { } type GroupByHistogram struct { - FieldName *string `protobuf:"bytes,1,opt,name=field_name" json:"field_name,omitempty"` + FieldName *string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` Interval []byte `protobuf:"bytes,2,opt,name=interval" json:"interval,omitempty"` Missing []byte `protobuf:"bytes,3,opt,name=missing" json:"missing,omitempty"` - MinDocCount *int64 `protobuf:"varint,4,opt,name=min_doc_count" json:"min_doc_count,omitempty"` + MinDocCount *int64 `protobuf:"varint,4,opt,name=min_doc_count,json=minDocCount" json:"min_doc_count,omitempty"` Sort *GroupBySort `protobuf:"bytes,5,opt,name=sort" json:"sort,omitempty"` - FieldRange *FieldRange `protobuf:"bytes,6,opt,name=field_range" json:"field_range,omitempty"` - SubAggs *Aggregations `protobuf:"bytes,7,opt,name=sub_aggs" json:"sub_aggs,omitempty"` - SubGroupBys *GroupBys `protobuf:"bytes,8,opt,name=sub_group_bys" json:"sub_group_bys,omitempty"` + FieldRange *FieldRange `protobuf:"bytes,6,opt,name=field_range,json=fieldRange" json:"field_range,omitempty"` + SubAggs *Aggregations `protobuf:"bytes,7,opt,name=sub_aggs,json=subAggs" json:"sub_aggs,omitempty"` + SubGroupBys *GroupBys `protobuf:"bytes,8,opt,name=sub_group_bys,json=subGroupBys" json:"sub_group_bys,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -3934,17 +3834,16 @@ func (m *GroupByHistogram) Reset() { *m = GroupByHistogram{} } func (m *GroupByHistogram) String() string { return proto.CompactTextString(m) } func (*GroupByHistogram) ProtoMessage() {} func (*GroupByHistogram) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{63} + return fileDescriptor_search_c58deff66fa19a4e, []int{63} } - func (m *GroupByHistogram) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupByHistogram.Unmarshal(m, b) } func (m *GroupByHistogram) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_GroupByHistogram.Marshal(b, m, deterministic) } -func (m *GroupByHistogram) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupByHistogram.Merge(m, src) +func (dst *GroupByHistogram) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupByHistogram.Merge(dst, src) } func (m *GroupByHistogram) XXX_Size() int { return xxx_messageInfo_GroupByHistogram.Size(m) @@ -4011,6 +3910,7 @@ func (m *GroupByHistogram) GetSubGroupBys() *GroupBys { return nil } +// group agg type GroupKeySort struct { Order *SortOrder `protobuf:"varint,1,opt,name=order,enum=otsprotocol.SortOrder" json:"order,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -4022,17 +3922,16 @@ func (m *GroupKeySort) Reset() { *m = GroupKeySort{} } func (m *GroupKeySort) String() string { return proto.CompactTextString(m) } func (*GroupKeySort) ProtoMessage() {} func (*GroupKeySort) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{64} + return fileDescriptor_search_c58deff66fa19a4e, []int{64} } - func (m *GroupKeySort) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupKeySort.Unmarshal(m, b) } func (m *GroupKeySort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_GroupKeySort.Marshal(b, m, deterministic) } -func (m *GroupKeySort) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupKeySort.Merge(m, src) +func (dst *GroupKeySort) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupKeySort.Merge(dst, src) } func (m *GroupKeySort) XXX_Size() int { return xxx_messageInfo_GroupKeySort.Size(m) @@ -4061,17 +3960,16 @@ func (m *RowCountSort) Reset() { *m = RowCountSort{} } func (m *RowCountSort) String() string { return proto.CompactTextString(m) } func (*RowCountSort) ProtoMessage() {} func (*RowCountSort) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{65} + return fileDescriptor_search_c58deff66fa19a4e, []int{65} } - func (m *RowCountSort) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RowCountSort.Unmarshal(m, b) } func (m *RowCountSort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_RowCountSort.Marshal(b, m, deterministic) } -func (m *RowCountSort) XXX_Merge(src proto.Message) { - xxx_messageInfo_RowCountSort.Merge(m, src) +func (dst *RowCountSort) XXX_Merge(src proto.Message) { + xxx_messageInfo_RowCountSort.Merge(dst, src) } func (m *RowCountSort) XXX_Size() int { return xxx_messageInfo_RowCountSort.Size(m) @@ -4090,7 +3988,7 @@ func (m *RowCountSort) GetOrder() SortOrder { } type SubAggSort struct { - SubAggName *string `protobuf:"bytes,1,opt,name=sub_agg_name" json:"sub_agg_name,omitempty"` + SubAggName *string `protobuf:"bytes,1,opt,name=sub_agg_name,json=subAggName" json:"sub_agg_name,omitempty"` Order *SortOrder `protobuf:"varint,2,opt,name=order,enum=otsprotocol.SortOrder" json:"order,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -4101,17 +3999,16 @@ func (m *SubAggSort) Reset() { *m = SubAggSort{} } func (m *SubAggSort) String() string { return proto.CompactTextString(m) } func (*SubAggSort) ProtoMessage() {} func (*SubAggSort) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{66} + return fileDescriptor_search_c58deff66fa19a4e, []int{66} } - func (m *SubAggSort) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SubAggSort.Unmarshal(m, b) } func (m *SubAggSort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_SubAggSort.Marshal(b, m, deterministic) } -func (m *SubAggSort) XXX_Merge(src proto.Message) { - xxx_messageInfo_SubAggSort.Merge(m, src) +func (dst *SubAggSort) XXX_Merge(src proto.Message) { + xxx_messageInfo_SubAggSort.Merge(dst, src) } func (m *SubAggSort) XXX_Size() int { return xxx_messageInfo_SubAggSort.Size(m) @@ -4137,9 +4034,9 @@ func (m *SubAggSort) GetOrder() SortOrder { } type GroupBySorter struct { - GroupKeySort *GroupKeySort `protobuf:"bytes,1,opt,name=group_key_sort" json:"group_key_sort,omitempty"` - RowCountSort *RowCountSort `protobuf:"bytes,2,opt,name=row_count_sort" json:"row_count_sort,omitempty"` - SubAggSort *SubAggSort `protobuf:"bytes,3,opt,name=sub_agg_sort" json:"sub_agg_sort,omitempty"` + GroupKeySort *GroupKeySort `protobuf:"bytes,1,opt,name=group_key_sort,json=groupKeySort" json:"group_key_sort,omitempty"` + RowCountSort *RowCountSort `protobuf:"bytes,2,opt,name=row_count_sort,json=rowCountSort" json:"row_count_sort,omitempty"` + SubAggSort *SubAggSort `protobuf:"bytes,3,opt,name=sub_agg_sort,json=subAggSort" json:"sub_agg_sort,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -4149,17 +4046,16 @@ func (m *GroupBySorter) Reset() { *m = GroupBySorter{} } func (m *GroupBySorter) String() string { return proto.CompactTextString(m) } func (*GroupBySorter) ProtoMessage() {} func (*GroupBySorter) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{67} + return fileDescriptor_search_c58deff66fa19a4e, []int{67} } - func (m *GroupBySorter) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupBySorter.Unmarshal(m, b) } func (m *GroupBySorter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_GroupBySorter.Marshal(b, m, deterministic) } -func (m *GroupBySorter) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupBySorter.Merge(m, src) +func (dst *GroupBySorter) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupBySorter.Merge(dst, src) } func (m *GroupBySorter) XXX_Size() int { return xxx_messageInfo_GroupBySorter.Size(m) @@ -4202,17 +4098,16 @@ func (m *GroupBySort) Reset() { *m = GroupBySort{} } func (m *GroupBySort) String() string { return proto.CompactTextString(m) } func (*GroupBySort) ProtoMessage() {} func (*GroupBySort) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{68} + return fileDescriptor_search_c58deff66fa19a4e, []int{68} } - func (m *GroupBySort) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupBySort.Unmarshal(m, b) } func (m *GroupBySort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_GroupBySort.Marshal(b, m, deterministic) } -func (m *GroupBySort) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupBySort.Merge(m, src) +func (dst *GroupBySort) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupBySort.Merge(dst, src) } func (m *GroupBySort) XXX_Size() int { return xxx_messageInfo_GroupBySort.Size(m) @@ -4231,11 +4126,11 @@ func (m *GroupBySort) GetSorters() []*GroupBySorter { } type GroupByField struct { - FieldName *string `protobuf:"bytes,1,opt,name=field_name" json:"field_name,omitempty"` + FieldName *string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` Size *int32 `protobuf:"varint,2,opt,name=size" json:"size,omitempty"` Sort *GroupBySort `protobuf:"bytes,3,opt,name=sort" json:"sort,omitempty"` - SubAggs *Aggregations `protobuf:"bytes,4,opt,name=sub_aggs" json:"sub_aggs,omitempty"` - SubGroupBys *GroupBys `protobuf:"bytes,5,opt,name=sub_group_bys" json:"sub_group_bys,omitempty"` + SubAggs *Aggregations `protobuf:"bytes,4,opt,name=sub_aggs,json=subAggs" json:"sub_aggs,omitempty"` + SubGroupBys *GroupBys `protobuf:"bytes,5,opt,name=sub_group_bys,json=subGroupBys" json:"sub_group_bys,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -4245,17 +4140,16 @@ func (m *GroupByField) Reset() { *m = GroupByField{} } func (m *GroupByField) String() string { return proto.CompactTextString(m) } func (*GroupByField) ProtoMessage() {} func (*GroupByField) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{69} + return fileDescriptor_search_c58deff66fa19a4e, []int{69} } - func (m *GroupByField) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupByField.Unmarshal(m, b) } func (m *GroupByField) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_GroupByField.Marshal(b, m, deterministic) } -func (m *GroupByField) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupByField.Merge(m, src) +func (dst *GroupByField) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupByField.Merge(dst, src) } func (m *GroupByField) XXX_Size() int { return xxx_messageInfo_GroupByField.Size(m) @@ -4313,17 +4207,16 @@ func (m *Range) Reset() { *m = Range{} } func (m *Range) String() string { return proto.CompactTextString(m) } func (*Range) ProtoMessage() {} func (*Range) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{70} + return fileDescriptor_search_c58deff66fa19a4e, []int{70} } - func (m *Range) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Range.Unmarshal(m, b) } func (m *Range) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Range.Marshal(b, m, deterministic) } -func (m *Range) XXX_Merge(src proto.Message) { - xxx_messageInfo_Range.Merge(m, src) +func (dst *Range) XXX_Merge(src proto.Message) { + xxx_messageInfo_Range.Merge(dst, src) } func (m *Range) XXX_Size() int { return xxx_messageInfo_Range.Size(m) @@ -4349,10 +4242,10 @@ func (m *Range) GetTo() float64 { } type GroupByRange struct { - FieldName *string `protobuf:"bytes,1,opt,name=field_name" json:"field_name,omitempty"` + FieldName *string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` Ranges []*Range `protobuf:"bytes,2,rep,name=ranges" json:"ranges,omitempty"` - SubAggs *Aggregations `protobuf:"bytes,3,opt,name=sub_aggs" json:"sub_aggs,omitempty"` - SubGroupBys *GroupBys `protobuf:"bytes,4,opt,name=sub_group_bys" json:"sub_group_bys,omitempty"` + SubAggs *Aggregations `protobuf:"bytes,3,opt,name=sub_aggs,json=subAggs" json:"sub_aggs,omitempty"` + SubGroupBys *GroupBys `protobuf:"bytes,4,opt,name=sub_group_bys,json=subGroupBys" json:"sub_group_bys,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -4362,17 +4255,16 @@ func (m *GroupByRange) Reset() { *m = GroupByRange{} } func (m *GroupByRange) String() string { return proto.CompactTextString(m) } func (*GroupByRange) ProtoMessage() {} func (*GroupByRange) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{71} + return fileDescriptor_search_c58deff66fa19a4e, []int{71} } - func (m *GroupByRange) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupByRange.Unmarshal(m, b) } func (m *GroupByRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_GroupByRange.Marshal(b, m, deterministic) } -func (m *GroupByRange) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupByRange.Merge(m, src) +func (dst *GroupByRange) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupByRange.Merge(dst, src) } func (m *GroupByRange) XXX_Size() int { return xxx_messageInfo_GroupByRange.Size(m) @@ -4413,8 +4305,8 @@ func (m *GroupByRange) GetSubGroupBys() *GroupBys { type GroupByFilter struct { Filters []*Query `protobuf:"bytes,1,rep,name=filters" json:"filters,omitempty"` - SubAggs *Aggregations `protobuf:"bytes,2,opt,name=sub_aggs" json:"sub_aggs,omitempty"` - SubGroupBys *GroupBys `protobuf:"bytes,3,opt,name=sub_group_bys" json:"sub_group_bys,omitempty"` + SubAggs *Aggregations `protobuf:"bytes,2,opt,name=sub_aggs,json=subAggs" json:"sub_aggs,omitempty"` + SubGroupBys *GroupBys `protobuf:"bytes,3,opt,name=sub_group_bys,json=subGroupBys" json:"sub_group_bys,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -4424,17 +4316,16 @@ func (m *GroupByFilter) Reset() { *m = GroupByFilter{} } func (m *GroupByFilter) String() string { return proto.CompactTextString(m) } func (*GroupByFilter) ProtoMessage() {} func (*GroupByFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{72} + return fileDescriptor_search_c58deff66fa19a4e, []int{72} } - func (m *GroupByFilter) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupByFilter.Unmarshal(m, b) } func (m *GroupByFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_GroupByFilter.Marshal(b, m, deterministic) } -func (m *GroupByFilter) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupByFilter.Merge(m, src) +func (dst *GroupByFilter) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupByFilter.Merge(dst, src) } func (m *GroupByFilter) XXX_Size() int { return xxx_messageInfo_GroupByFilter.Size(m) @@ -4478,17 +4369,16 @@ func (m *GeoPoint) Reset() { *m = GeoPoint{} } func (m *GeoPoint) String() string { return proto.CompactTextString(m) } func (*GeoPoint) ProtoMessage() {} func (*GeoPoint) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{73} + return fileDescriptor_search_c58deff66fa19a4e, []int{73} } - func (m *GeoPoint) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GeoPoint.Unmarshal(m, b) } func (m *GeoPoint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_GeoPoint.Marshal(b, m, deterministic) } -func (m *GeoPoint) XXX_Merge(src proto.Message) { - xxx_messageInfo_GeoPoint.Merge(m, src) +func (dst *GeoPoint) XXX_Merge(src proto.Message) { + xxx_messageInfo_GeoPoint.Merge(dst, src) } func (m *GeoPoint) XXX_Size() int { return xxx_messageInfo_GeoPoint.Size(m) @@ -4514,11 +4404,11 @@ func (m *GeoPoint) GetLon() float64 { } type GroupByGeoDistance struct { - FieldName *string `protobuf:"bytes,1,opt,name=field_name" json:"field_name,omitempty"` + FieldName *string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` Origin *GeoPoint `protobuf:"bytes,2,opt,name=origin" json:"origin,omitempty"` Ranges []*Range `protobuf:"bytes,3,rep,name=ranges" json:"ranges,omitempty"` - SubAggs *Aggregations `protobuf:"bytes,4,opt,name=sub_aggs" json:"sub_aggs,omitempty"` - SubGroupBys *GroupBys `protobuf:"bytes,5,opt,name=sub_group_bys" json:"sub_group_bys,omitempty"` + SubAggs *Aggregations `protobuf:"bytes,4,opt,name=sub_aggs,json=subAggs" json:"sub_aggs,omitempty"` + SubGroupBys *GroupBys `protobuf:"bytes,5,opt,name=sub_group_bys,json=subGroupBys" json:"sub_group_bys,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -4528,17 +4418,16 @@ func (m *GroupByGeoDistance) Reset() { *m = GroupByGeoDistance{} } func (m *GroupByGeoDistance) String() string { return proto.CompactTextString(m) } func (*GroupByGeoDistance) ProtoMessage() {} func (*GroupByGeoDistance) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{74} + return fileDescriptor_search_c58deff66fa19a4e, []int{74} } - func (m *GroupByGeoDistance) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupByGeoDistance.Unmarshal(m, b) } func (m *GroupByGeoDistance) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_GroupByGeoDistance.Marshal(b, m, deterministic) } -func (m *GroupByGeoDistance) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupByGeoDistance.Merge(m, src) +func (dst *GroupByGeoDistance) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupByGeoDistance.Merge(dst, src) } func (m *GroupByGeoDistance) XXX_Size() int { return xxx_messageInfo_GroupByGeoDistance.Size(m) @@ -4584,6 +4473,7 @@ func (m *GroupByGeoDistance) GetSubGroupBys() *GroupBys { return nil } +// single agg result type AvgAggregationResult struct { Value *float64 `protobuf:"fixed64,1,opt,name=value" json:"value,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -4595,17 +4485,16 @@ func (m *AvgAggregationResult) Reset() { *m = AvgAggregationResult{} } func (m *AvgAggregationResult) String() string { return proto.CompactTextString(m) } func (*AvgAggregationResult) ProtoMessage() {} func (*AvgAggregationResult) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{75} + return fileDescriptor_search_c58deff66fa19a4e, []int{75} } - func (m *AvgAggregationResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AvgAggregationResult.Unmarshal(m, b) } func (m *AvgAggregationResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_AvgAggregationResult.Marshal(b, m, deterministic) } -func (m *AvgAggregationResult) XXX_Merge(src proto.Message) { - xxx_messageInfo_AvgAggregationResult.Merge(m, src) +func (dst *AvgAggregationResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_AvgAggregationResult.Merge(dst, src) } func (m *AvgAggregationResult) XXX_Size() int { return xxx_messageInfo_AvgAggregationResult.Size(m) @@ -4634,17 +4523,16 @@ func (m *DistinctCountAggregationResult) Reset() { *m = DistinctCountAgg func (m *DistinctCountAggregationResult) String() string { return proto.CompactTextString(m) } func (*DistinctCountAggregationResult) ProtoMessage() {} func (*DistinctCountAggregationResult) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{76} + return fileDescriptor_search_c58deff66fa19a4e, []int{76} } - func (m *DistinctCountAggregationResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DistinctCountAggregationResult.Unmarshal(m, b) } func (m *DistinctCountAggregationResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_DistinctCountAggregationResult.Marshal(b, m, deterministic) } -func (m *DistinctCountAggregationResult) XXX_Merge(src proto.Message) { - xxx_messageInfo_DistinctCountAggregationResult.Merge(m, src) +func (dst *DistinctCountAggregationResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_DistinctCountAggregationResult.Merge(dst, src) } func (m *DistinctCountAggregationResult) XXX_Size() int { return xxx_messageInfo_DistinctCountAggregationResult.Size(m) @@ -4673,17 +4561,16 @@ func (m *MaxAggregationResult) Reset() { *m = MaxAggregationResult{} } func (m *MaxAggregationResult) String() string { return proto.CompactTextString(m) } func (*MaxAggregationResult) ProtoMessage() {} func (*MaxAggregationResult) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{77} + return fileDescriptor_search_c58deff66fa19a4e, []int{77} } - func (m *MaxAggregationResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MaxAggregationResult.Unmarshal(m, b) } func (m *MaxAggregationResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_MaxAggregationResult.Marshal(b, m, deterministic) } -func (m *MaxAggregationResult) XXX_Merge(src proto.Message) { - xxx_messageInfo_MaxAggregationResult.Merge(m, src) +func (dst *MaxAggregationResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_MaxAggregationResult.Merge(dst, src) } func (m *MaxAggregationResult) XXX_Size() int { return xxx_messageInfo_MaxAggregationResult.Size(m) @@ -4712,17 +4599,16 @@ func (m *MinAggregationResult) Reset() { *m = MinAggregationResult{} } func (m *MinAggregationResult) String() string { return proto.CompactTextString(m) } func (*MinAggregationResult) ProtoMessage() {} func (*MinAggregationResult) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{78} + return fileDescriptor_search_c58deff66fa19a4e, []int{78} } - func (m *MinAggregationResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MinAggregationResult.Unmarshal(m, b) } func (m *MinAggregationResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_MinAggregationResult.Marshal(b, m, deterministic) } -func (m *MinAggregationResult) XXX_Merge(src proto.Message) { - xxx_messageInfo_MinAggregationResult.Merge(m, src) +func (dst *MinAggregationResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_MinAggregationResult.Merge(dst, src) } func (m *MinAggregationResult) XXX_Size() int { return xxx_messageInfo_MinAggregationResult.Size(m) @@ -4751,17 +4637,16 @@ func (m *SumAggregationResult) Reset() { *m = SumAggregationResult{} } func (m *SumAggregationResult) String() string { return proto.CompactTextString(m) } func (*SumAggregationResult) ProtoMessage() {} func (*SumAggregationResult) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{79} + return fileDescriptor_search_c58deff66fa19a4e, []int{79} } - func (m *SumAggregationResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SumAggregationResult.Unmarshal(m, b) } func (m *SumAggregationResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_SumAggregationResult.Marshal(b, m, deterministic) } -func (m *SumAggregationResult) XXX_Merge(src proto.Message) { - xxx_messageInfo_SumAggregationResult.Merge(m, src) +func (dst *SumAggregationResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_SumAggregationResult.Merge(dst, src) } func (m *SumAggregationResult) XXX_Size() int { return xxx_messageInfo_SumAggregationResult.Size(m) @@ -4790,17 +4675,16 @@ func (m *CountAggregationResult) Reset() { *m = CountAggregationResult{} func (m *CountAggregationResult) String() string { return proto.CompactTextString(m) } func (*CountAggregationResult) ProtoMessage() {} func (*CountAggregationResult) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{80} + return fileDescriptor_search_c58deff66fa19a4e, []int{80} } - func (m *CountAggregationResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CountAggregationResult.Unmarshal(m, b) } func (m *CountAggregationResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_CountAggregationResult.Marshal(b, m, deterministic) } -func (m *CountAggregationResult) XXX_Merge(src proto.Message) { - xxx_messageInfo_CountAggregationResult.Merge(m, src) +func (dst *CountAggregationResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_CountAggregationResult.Merge(dst, src) } func (m *CountAggregationResult) XXX_Size() int { return xxx_messageInfo_CountAggregationResult.Size(m) @@ -4829,17 +4713,16 @@ func (m *TopRowsAggregationResult) Reset() { *m = TopRowsAggregationResu func (m *TopRowsAggregationResult) String() string { return proto.CompactTextString(m) } func (*TopRowsAggregationResult) ProtoMessage() {} func (*TopRowsAggregationResult) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{81} + return fileDescriptor_search_c58deff66fa19a4e, []int{81} } - func (m *TopRowsAggregationResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TopRowsAggregationResult.Unmarshal(m, b) } func (m *TopRowsAggregationResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_TopRowsAggregationResult.Marshal(b, m, deterministic) } -func (m *TopRowsAggregationResult) XXX_Merge(src proto.Message) { - xxx_messageInfo_TopRowsAggregationResult.Merge(m, src) +func (dst *TopRowsAggregationResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_TopRowsAggregationResult.Merge(dst, src) } func (m *TopRowsAggregationResult) XXX_Size() int { return xxx_messageInfo_TopRowsAggregationResult.Size(m) @@ -4869,17 +4752,16 @@ func (m *PercentilesAggregationItem) Reset() { *m = PercentilesAggregati func (m *PercentilesAggregationItem) String() string { return proto.CompactTextString(m) } func (*PercentilesAggregationItem) ProtoMessage() {} func (*PercentilesAggregationItem) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{82} + return fileDescriptor_search_c58deff66fa19a4e, []int{82} } - func (m *PercentilesAggregationItem) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PercentilesAggregationItem.Unmarshal(m, b) } func (m *PercentilesAggregationItem) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_PercentilesAggregationItem.Marshal(b, m, deterministic) } -func (m *PercentilesAggregationItem) XXX_Merge(src proto.Message) { - xxx_messageInfo_PercentilesAggregationItem.Merge(m, src) +func (dst *PercentilesAggregationItem) XXX_Merge(src proto.Message) { + xxx_messageInfo_PercentilesAggregationItem.Merge(dst, src) } func (m *PercentilesAggregationItem) XXX_Size() int { return xxx_messageInfo_PercentilesAggregationItem.Size(m) @@ -4905,7 +4787,7 @@ func (m *PercentilesAggregationItem) GetValue() []byte { } type PercentilesAggregationResult struct { - PercentilesAggregationItems []*PercentilesAggregationItem `protobuf:"bytes,1,rep,name=percentiles_aggregation_items" json:"percentiles_aggregation_items,omitempty"` + PercentilesAggregationItems []*PercentilesAggregationItem `protobuf:"bytes,1,rep,name=percentiles_aggregation_items,json=percentilesAggregationItems" json:"percentiles_aggregation_items,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -4915,17 +4797,16 @@ func (m *PercentilesAggregationResult) Reset() { *m = PercentilesAggrega func (m *PercentilesAggregationResult) String() string { return proto.CompactTextString(m) } func (*PercentilesAggregationResult) ProtoMessage() {} func (*PercentilesAggregationResult) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{83} + return fileDescriptor_search_c58deff66fa19a4e, []int{83} } - func (m *PercentilesAggregationResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PercentilesAggregationResult.Unmarshal(m, b) } func (m *PercentilesAggregationResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_PercentilesAggregationResult.Marshal(b, m, deterministic) } -func (m *PercentilesAggregationResult) XXX_Merge(src proto.Message) { - xxx_messageInfo_PercentilesAggregationResult.Merge(m, src) +func (dst *PercentilesAggregationResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_PercentilesAggregationResult.Merge(dst, src) } func (m *PercentilesAggregationResult) XXX_Size() int { return xxx_messageInfo_PercentilesAggregationResult.Size(m) @@ -4946,7 +4827,7 @@ func (m *PercentilesAggregationResult) GetPercentilesAggregationItems() []*Perce type AggregationResult struct { Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` Type *AggregationType `protobuf:"varint,2,opt,name=type,enum=otsprotocol.AggregationType" json:"type,omitempty"` - AggResult []byte `protobuf:"bytes,3,opt,name=agg_result" json:"agg_result,omitempty"` + AggResult []byte `protobuf:"bytes,3,opt,name=agg_result,json=aggResult" json:"agg_result,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -4956,17 +4837,16 @@ func (m *AggregationResult) Reset() { *m = AggregationResult{} } func (m *AggregationResult) String() string { return proto.CompactTextString(m) } func (*AggregationResult) ProtoMessage() {} func (*AggregationResult) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{84} + return fileDescriptor_search_c58deff66fa19a4e, []int{84} } - func (m *AggregationResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AggregationResult.Unmarshal(m, b) } func (m *AggregationResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_AggregationResult.Marshal(b, m, deterministic) } -func (m *AggregationResult) XXX_Merge(src proto.Message) { - xxx_messageInfo_AggregationResult.Merge(m, src) +func (dst *AggregationResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_AggregationResult.Merge(dst, src) } func (m *AggregationResult) XXX_Size() int { return xxx_messageInfo_AggregationResult.Size(m) @@ -4999,7 +4879,7 @@ func (m *AggregationResult) GetAggResult() []byte { } type AggregationsResult struct { - AggResults []*AggregationResult `protobuf:"bytes,1,rep,name=agg_results" json:"agg_results,omitempty"` + AggResults []*AggregationResult `protobuf:"bytes,1,rep,name=agg_results,json=aggResults" json:"agg_results,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -5009,17 +4889,16 @@ func (m *AggregationsResult) Reset() { *m = AggregationsResult{} } func (m *AggregationsResult) String() string { return proto.CompactTextString(m) } func (*AggregationsResult) ProtoMessage() {} func (*AggregationsResult) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{85} + return fileDescriptor_search_c58deff66fa19a4e, []int{85} } - func (m *AggregationsResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AggregationsResult.Unmarshal(m, b) } func (m *AggregationsResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_AggregationsResult.Marshal(b, m, deterministic) } -func (m *AggregationsResult) XXX_Merge(src proto.Message) { - xxx_messageInfo_AggregationsResult.Merge(m, src) +func (dst *AggregationsResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_AggregationsResult.Merge(dst, src) } func (m *AggregationsResult) XXX_Size() int { return xxx_messageInfo_AggregationsResult.Size(m) @@ -5037,11 +4916,12 @@ func (m *AggregationsResult) GetAggResults() []*AggregationResult { return nil } +// group by result type GroupByFieldResultItem struct { Key *string `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"` - RowCount *int64 `protobuf:"varint,2,opt,name=row_count" json:"row_count,omitempty"` - SubAggsResult *AggregationsResult `protobuf:"bytes,3,opt,name=sub_aggs_result" json:"sub_aggs_result,omitempty"` - SubGroupBysResult *GroupBysResult `protobuf:"bytes,4,opt,name=sub_group_bys_result" json:"sub_group_bys_result,omitempty"` + RowCount *int64 `protobuf:"varint,2,opt,name=row_count,json=rowCount" json:"row_count,omitempty"` + SubAggsResult *AggregationsResult `protobuf:"bytes,3,opt,name=sub_aggs_result,json=subAggsResult" json:"sub_aggs_result,omitempty"` + SubGroupBysResult *GroupBysResult `protobuf:"bytes,4,opt,name=sub_group_bys_result,json=subGroupBysResult" json:"sub_group_bys_result,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -5051,17 +4931,16 @@ func (m *GroupByFieldResultItem) Reset() { *m = GroupByFieldResultItem{} func (m *GroupByFieldResultItem) String() string { return proto.CompactTextString(m) } func (*GroupByFieldResultItem) ProtoMessage() {} func (*GroupByFieldResultItem) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{86} + return fileDescriptor_search_c58deff66fa19a4e, []int{86} } - func (m *GroupByFieldResultItem) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupByFieldResultItem.Unmarshal(m, b) } func (m *GroupByFieldResultItem) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_GroupByFieldResultItem.Marshal(b, m, deterministic) } -func (m *GroupByFieldResultItem) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupByFieldResultItem.Merge(m, src) +func (dst *GroupByFieldResultItem) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupByFieldResultItem.Merge(dst, src) } func (m *GroupByFieldResultItem) XXX_Size() int { return xxx_messageInfo_GroupByFieldResultItem.Size(m) @@ -5101,7 +4980,7 @@ func (m *GroupByFieldResultItem) GetSubGroupBysResult() *GroupBysResult { } type GroupByFieldResult struct { - GroupByFieldResultItems []*GroupByFieldResultItem `protobuf:"bytes,1,rep,name=group_by_field_result_items" json:"group_by_field_result_items,omitempty"` + GroupByFieldResultItems []*GroupByFieldResultItem `protobuf:"bytes,1,rep,name=group_by_field_result_items,json=groupByFieldResultItems" json:"group_by_field_result_items,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -5111,17 +4990,16 @@ func (m *GroupByFieldResult) Reset() { *m = GroupByFieldResult{} } func (m *GroupByFieldResult) String() string { return proto.CompactTextString(m) } func (*GroupByFieldResult) ProtoMessage() {} func (*GroupByFieldResult) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{87} + return fileDescriptor_search_c58deff66fa19a4e, []int{87} } - func (m *GroupByFieldResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupByFieldResult.Unmarshal(m, b) } func (m *GroupByFieldResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_GroupByFieldResult.Marshal(b, m, deterministic) } -func (m *GroupByFieldResult) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupByFieldResult.Merge(m, src) +func (dst *GroupByFieldResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupByFieldResult.Merge(dst, src) } func (m *GroupByFieldResult) XXX_Size() int { return xxx_messageInfo_GroupByFieldResult.Size(m) @@ -5142,9 +5020,9 @@ func (m *GroupByFieldResult) GetGroupByFieldResultItems() []*GroupByFieldResultI type GroupByRangeResultItem struct { From *float64 `protobuf:"fixed64,1,opt,name=from" json:"from,omitempty"` To *float64 `protobuf:"fixed64,2,opt,name=to" json:"to,omitempty"` - RowCount *int64 `protobuf:"varint,3,opt,name=row_count" json:"row_count,omitempty"` - SubAggsResult *AggregationsResult `protobuf:"bytes,4,opt,name=sub_aggs_result" json:"sub_aggs_result,omitempty"` - SubGroupBysResult *GroupBysResult `protobuf:"bytes,5,opt,name=sub_group_bys_result" json:"sub_group_bys_result,omitempty"` + RowCount *int64 `protobuf:"varint,3,opt,name=row_count,json=rowCount" json:"row_count,omitempty"` + SubAggsResult *AggregationsResult `protobuf:"bytes,4,opt,name=sub_aggs_result,json=subAggsResult" json:"sub_aggs_result,omitempty"` + SubGroupBysResult *GroupBysResult `protobuf:"bytes,5,opt,name=sub_group_bys_result,json=subGroupBysResult" json:"sub_group_bys_result,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -5154,17 +5032,16 @@ func (m *GroupByRangeResultItem) Reset() { *m = GroupByRangeResultItem{} func (m *GroupByRangeResultItem) String() string { return proto.CompactTextString(m) } func (*GroupByRangeResultItem) ProtoMessage() {} func (*GroupByRangeResultItem) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{88} + return fileDescriptor_search_c58deff66fa19a4e, []int{88} } - func (m *GroupByRangeResultItem) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupByRangeResultItem.Unmarshal(m, b) } func (m *GroupByRangeResultItem) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_GroupByRangeResultItem.Marshal(b, m, deterministic) } -func (m *GroupByRangeResultItem) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupByRangeResultItem.Merge(m, src) +func (dst *GroupByRangeResultItem) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupByRangeResultItem.Merge(dst, src) } func (m *GroupByRangeResultItem) XXX_Size() int { return xxx_messageInfo_GroupByRangeResultItem.Size(m) @@ -5211,7 +5088,7 @@ func (m *GroupByRangeResultItem) GetSubGroupBysResult() *GroupBysResult { } type GroupByRangeResult struct { - GroupByRangeResultItems []*GroupByRangeResultItem `protobuf:"bytes,1,rep,name=group_by_range_result_items" json:"group_by_range_result_items,omitempty"` + GroupByRangeResultItems []*GroupByRangeResultItem `protobuf:"bytes,1,rep,name=group_by_range_result_items,json=groupByRangeResultItems" json:"group_by_range_result_items,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -5221,17 +5098,16 @@ func (m *GroupByRangeResult) Reset() { *m = GroupByRangeResult{} } func (m *GroupByRangeResult) String() string { return proto.CompactTextString(m) } func (*GroupByRangeResult) ProtoMessage() {} func (*GroupByRangeResult) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{89} + return fileDescriptor_search_c58deff66fa19a4e, []int{89} } - func (m *GroupByRangeResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupByRangeResult.Unmarshal(m, b) } func (m *GroupByRangeResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_GroupByRangeResult.Marshal(b, m, deterministic) } -func (m *GroupByRangeResult) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupByRangeResult.Merge(m, src) +func (dst *GroupByRangeResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupByRangeResult.Merge(dst, src) } func (m *GroupByRangeResult) XXX_Size() int { return xxx_messageInfo_GroupByRangeResult.Size(m) @@ -5252,9 +5128,9 @@ func (m *GroupByRangeResult) GetGroupByRangeResultItems() []*GroupByRangeResultI type GroupByGeoDistanceResultItem struct { From *float64 `protobuf:"fixed64,1,opt,name=from" json:"from,omitempty"` To *float64 `protobuf:"fixed64,2,opt,name=to" json:"to,omitempty"` - RowCount *int64 `protobuf:"varint,3,opt,name=row_count" json:"row_count,omitempty"` - SubAggsResult *AggregationsResult `protobuf:"bytes,4,opt,name=sub_aggs_result" json:"sub_aggs_result,omitempty"` - SubGroupBysResult *GroupBysResult `protobuf:"bytes,5,opt,name=sub_group_bys_result" json:"sub_group_bys_result,omitempty"` + RowCount *int64 `protobuf:"varint,3,opt,name=row_count,json=rowCount" json:"row_count,omitempty"` + SubAggsResult *AggregationsResult `protobuf:"bytes,4,opt,name=sub_aggs_result,json=subAggsResult" json:"sub_aggs_result,omitempty"` + SubGroupBysResult *GroupBysResult `protobuf:"bytes,5,opt,name=sub_group_bys_result,json=subGroupBysResult" json:"sub_group_bys_result,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -5264,17 +5140,16 @@ func (m *GroupByGeoDistanceResultItem) Reset() { *m = GroupByGeoDistance func (m *GroupByGeoDistanceResultItem) String() string { return proto.CompactTextString(m) } func (*GroupByGeoDistanceResultItem) ProtoMessage() {} func (*GroupByGeoDistanceResultItem) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{90} + return fileDescriptor_search_c58deff66fa19a4e, []int{90} } - func (m *GroupByGeoDistanceResultItem) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupByGeoDistanceResultItem.Unmarshal(m, b) } func (m *GroupByGeoDistanceResultItem) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_GroupByGeoDistanceResultItem.Marshal(b, m, deterministic) } -func (m *GroupByGeoDistanceResultItem) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupByGeoDistanceResultItem.Merge(m, src) +func (dst *GroupByGeoDistanceResultItem) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupByGeoDistanceResultItem.Merge(dst, src) } func (m *GroupByGeoDistanceResultItem) XXX_Size() int { return xxx_messageInfo_GroupByGeoDistanceResultItem.Size(m) @@ -5321,7 +5196,7 @@ func (m *GroupByGeoDistanceResultItem) GetSubGroupBysResult() *GroupBysResult { } type GroupByGeoDistanceResult struct { - GroupByGeoDistanceResultItems []*GroupByGeoDistanceResultItem `protobuf:"bytes,1,rep,name=group_by_geo_distance_result_items" json:"group_by_geo_distance_result_items,omitempty"` + GroupByGeoDistanceResultItems []*GroupByGeoDistanceResultItem `protobuf:"bytes,1,rep,name=group_by_geo_distance_result_items,json=groupByGeoDistanceResultItems" json:"group_by_geo_distance_result_items,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -5331,17 +5206,16 @@ func (m *GroupByGeoDistanceResult) Reset() { *m = GroupByGeoDistanceResu func (m *GroupByGeoDistanceResult) String() string { return proto.CompactTextString(m) } func (*GroupByGeoDistanceResult) ProtoMessage() {} func (*GroupByGeoDistanceResult) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{91} + return fileDescriptor_search_c58deff66fa19a4e, []int{91} } - func (m *GroupByGeoDistanceResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupByGeoDistanceResult.Unmarshal(m, b) } func (m *GroupByGeoDistanceResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_GroupByGeoDistanceResult.Marshal(b, m, deterministic) } -func (m *GroupByGeoDistanceResult) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupByGeoDistanceResult.Merge(m, src) +func (dst *GroupByGeoDistanceResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupByGeoDistanceResult.Merge(dst, src) } func (m *GroupByGeoDistanceResult) XXX_Size() int { return xxx_messageInfo_GroupByGeoDistanceResult.Size(m) @@ -5360,9 +5234,9 @@ func (m *GroupByGeoDistanceResult) GetGroupByGeoDistanceResultItems() []*GroupBy } type GroupByFilterResultItem struct { - RowCount *int64 `protobuf:"varint,1,opt,name=row_count" json:"row_count,omitempty"` - SubAggsResult *AggregationsResult `protobuf:"bytes,2,opt,name=sub_aggs_result" json:"sub_aggs_result,omitempty"` - SubGroupBysResult *GroupBysResult `protobuf:"bytes,3,opt,name=sub_group_bys_result" json:"sub_group_bys_result,omitempty"` + RowCount *int64 `protobuf:"varint,1,opt,name=row_count,json=rowCount" json:"row_count,omitempty"` + SubAggsResult *AggregationsResult `protobuf:"bytes,2,opt,name=sub_aggs_result,json=subAggsResult" json:"sub_aggs_result,omitempty"` + SubGroupBysResult *GroupBysResult `protobuf:"bytes,3,opt,name=sub_group_bys_result,json=subGroupBysResult" json:"sub_group_bys_result,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -5372,17 +5246,16 @@ func (m *GroupByFilterResultItem) Reset() { *m = GroupByFilterResultItem func (m *GroupByFilterResultItem) String() string { return proto.CompactTextString(m) } func (*GroupByFilterResultItem) ProtoMessage() {} func (*GroupByFilterResultItem) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{92} + return fileDescriptor_search_c58deff66fa19a4e, []int{92} } - func (m *GroupByFilterResultItem) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupByFilterResultItem.Unmarshal(m, b) } func (m *GroupByFilterResultItem) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_GroupByFilterResultItem.Marshal(b, m, deterministic) } -func (m *GroupByFilterResultItem) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupByFilterResultItem.Merge(m, src) +func (dst *GroupByFilterResultItem) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupByFilterResultItem.Merge(dst, src) } func (m *GroupByFilterResultItem) XXX_Size() int { return xxx_messageInfo_GroupByFilterResultItem.Size(m) @@ -5415,7 +5288,7 @@ func (m *GroupByFilterResultItem) GetSubGroupBysResult() *GroupBysResult { } type GroupByFilterResult struct { - GroupByFilterResultItems []*GroupByFilterResultItem `protobuf:"bytes,1,rep,name=group_by_filter_result_items" json:"group_by_filter_result_items,omitempty"` + GroupByFilterResultItems []*GroupByFilterResultItem `protobuf:"bytes,1,rep,name=group_by_filter_result_items,json=groupByFilterResultItems" json:"group_by_filter_result_items,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -5425,17 +5298,16 @@ func (m *GroupByFilterResult) Reset() { *m = GroupByFilterResult{} } func (m *GroupByFilterResult) String() string { return proto.CompactTextString(m) } func (*GroupByFilterResult) ProtoMessage() {} func (*GroupByFilterResult) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{93} + return fileDescriptor_search_c58deff66fa19a4e, []int{93} } - func (m *GroupByFilterResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupByFilterResult.Unmarshal(m, b) } func (m *GroupByFilterResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_GroupByFilterResult.Marshal(b, m, deterministic) } -func (m *GroupByFilterResult) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupByFilterResult.Merge(m, src) +func (dst *GroupByFilterResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupByFilterResult.Merge(dst, src) } func (m *GroupByFilterResult) XXX_Size() int { return xxx_messageInfo_GroupByFilterResult.Size(m) @@ -5456,7 +5328,7 @@ func (m *GroupByFilterResult) GetGroupByFilterResultItems() []*GroupByFilterResu type GroupByResult struct { Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` Type *GroupByType `protobuf:"varint,2,opt,name=type,enum=otsprotocol.GroupByType" json:"type,omitempty"` - GroupByResult []byte `protobuf:"bytes,3,opt,name=group_by_result" json:"group_by_result,omitempty"` + GroupByResult []byte `protobuf:"bytes,3,opt,name=group_by_result,json=groupByResult" json:"group_by_result,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -5466,17 +5338,16 @@ func (m *GroupByResult) Reset() { *m = GroupByResult{} } func (m *GroupByResult) String() string { return proto.CompactTextString(m) } func (*GroupByResult) ProtoMessage() {} func (*GroupByResult) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{94} + return fileDescriptor_search_c58deff66fa19a4e, []int{94} } - func (m *GroupByResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupByResult.Unmarshal(m, b) } func (m *GroupByResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_GroupByResult.Marshal(b, m, deterministic) } -func (m *GroupByResult) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupByResult.Merge(m, src) +func (dst *GroupByResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupByResult.Merge(dst, src) } func (m *GroupByResult) XXX_Size() int { return xxx_messageInfo_GroupByResult.Size(m) @@ -5509,7 +5380,7 @@ func (m *GroupByResult) GetGroupByResult() []byte { } type GroupBysResult struct { - GroupByResults []*GroupByResult `protobuf:"bytes,1,rep,name=group_by_results" json:"group_by_results,omitempty"` + GroupByResults []*GroupByResult `protobuf:"bytes,1,rep,name=group_by_results,json=groupByResults" json:"group_by_results,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -5519,17 +5390,16 @@ func (m *GroupBysResult) Reset() { *m = GroupBysResult{} } func (m *GroupBysResult) String() string { return proto.CompactTextString(m) } func (*GroupBysResult) ProtoMessage() {} func (*GroupBysResult) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{95} + return fileDescriptor_search_c58deff66fa19a4e, []int{95} } - func (m *GroupBysResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupBysResult.Unmarshal(m, b) } func (m *GroupBysResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_GroupBysResult.Marshal(b, m, deterministic) } -func (m *GroupBysResult) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupBysResult.Merge(m, src) +func (dst *GroupBysResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupBysResult.Merge(dst, src) } func (m *GroupBysResult) XXX_Size() int { return xxx_messageInfo_GroupBysResult.Size(m) @@ -5550,8 +5420,8 @@ func (m *GroupBysResult) GetGroupByResults() []*GroupByResult { type GroupByHistogramItem struct { Key []byte `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"` Value *int64 `protobuf:"varint,2,opt,name=value" json:"value,omitempty"` - SubAggsResult *AggregationsResult `protobuf:"bytes,3,opt,name=sub_aggs_result" json:"sub_aggs_result,omitempty"` - SubGroupBysResult *GroupBysResult `protobuf:"bytes,4,opt,name=sub_group_bys_result" json:"sub_group_bys_result,omitempty"` + SubAggsResult *AggregationsResult `protobuf:"bytes,3,opt,name=sub_aggs_result,json=subAggsResult" json:"sub_aggs_result,omitempty"` + SubGroupBysResult *GroupBysResult `protobuf:"bytes,4,opt,name=sub_group_bys_result,json=subGroupBysResult" json:"sub_group_bys_result,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -5561,17 +5431,16 @@ func (m *GroupByHistogramItem) Reset() { *m = GroupByHistogramItem{} } func (m *GroupByHistogramItem) String() string { return proto.CompactTextString(m) } func (*GroupByHistogramItem) ProtoMessage() {} func (*GroupByHistogramItem) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{96} + return fileDescriptor_search_c58deff66fa19a4e, []int{96} } - func (m *GroupByHistogramItem) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupByHistogramItem.Unmarshal(m, b) } func (m *GroupByHistogramItem) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_GroupByHistogramItem.Marshal(b, m, deterministic) } -func (m *GroupByHistogramItem) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupByHistogramItem.Merge(m, src) +func (dst *GroupByHistogramItem) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupByHistogramItem.Merge(dst, src) } func (m *GroupByHistogramItem) XXX_Size() int { return xxx_messageInfo_GroupByHistogramItem.Size(m) @@ -5611,7 +5480,7 @@ func (m *GroupByHistogramItem) GetSubGroupBysResult() *GroupBysResult { } type GroupByHistogramResult struct { - GroupByHistograItems []*GroupByHistogramItem `protobuf:"bytes,1,rep,name=group_by_histogra_items" json:"group_by_histogra_items,omitempty"` + GroupByHistograItems []*GroupByHistogramItem `protobuf:"bytes,1,rep,name=group_by_histogra_items,json=groupByHistograItems" json:"group_by_histogra_items,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -5621,17 +5490,16 @@ func (m *GroupByHistogramResult) Reset() { *m = GroupByHistogramResult{} func (m *GroupByHistogramResult) String() string { return proto.CompactTextString(m) } func (*GroupByHistogramResult) ProtoMessage() {} func (*GroupByHistogramResult) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{97} + return fileDescriptor_search_c58deff66fa19a4e, []int{97} } - func (m *GroupByHistogramResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupByHistogramResult.Unmarshal(m, b) } func (m *GroupByHistogramResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_GroupByHistogramResult.Marshal(b, m, deterministic) } -func (m *GroupByHistogramResult) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupByHistogramResult.Merge(m, src) +func (dst *GroupByHistogramResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupByHistogramResult.Merge(dst, src) } func (m *GroupByHistogramResult) XXX_Size() int { return xxx_messageInfo_GroupByHistogramResult.Size(m) @@ -5649,13 +5517,14 @@ func (m *GroupByHistogramResult) GetGroupByHistograItems() []*GroupByHistogramIt return nil } +// ParallelScan API, same to Search API type ScanQuery struct { Query *Query `protobuf:"bytes,1,opt,name=query" json:"query,omitempty"` Limit *int32 `protobuf:"varint,2,opt,name=limit" json:"limit,omitempty"` - AliveTime *int32 `protobuf:"varint,3,opt,name=alive_time" json:"alive_time,omitempty"` + AliveTime *int32 `protobuf:"varint,3,opt,name=alive_time,json=aliveTime" json:"alive_time,omitempty"` Token []byte `protobuf:"bytes,4,opt,name=token" json:"token,omitempty"` - CurrentParallelId *int32 `protobuf:"varint,5,opt,name=current_parallel_id" json:"current_parallel_id,omitempty"` - MaxParallel *int32 `protobuf:"varint,6,opt,name=max_parallel" json:"max_parallel,omitempty"` + CurrentParallelId *int32 `protobuf:"varint,5,opt,name=current_parallel_id,json=currentParallelId" json:"current_parallel_id,omitempty"` + MaxParallel *int32 `protobuf:"varint,6,opt,name=max_parallel,json=maxParallel" json:"max_parallel,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -5665,17 +5534,16 @@ func (m *ScanQuery) Reset() { *m = ScanQuery{} } func (m *ScanQuery) String() string { return proto.CompactTextString(m) } func (*ScanQuery) ProtoMessage() {} func (*ScanQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{98} + return fileDescriptor_search_c58deff66fa19a4e, []int{98} } - func (m *ScanQuery) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ScanQuery.Unmarshal(m, b) } func (m *ScanQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ScanQuery.Marshal(b, m, deterministic) } -func (m *ScanQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_ScanQuery.Merge(m, src) +func (dst *ScanQuery) XXX_Merge(src proto.Message) { + xxx_messageInfo_ScanQuery.Merge(dst, src) } func (m *ScanQuery) XXX_Size() int { return xxx_messageInfo_ScanQuery.Size(m) @@ -5729,11 +5597,12 @@ func (m *ScanQuery) GetMaxParallel() int32 { } type ParallelScanRequest struct { - TableName *string `protobuf:"bytes,1,opt,name=table_name" json:"table_name,omitempty"` - IndexName *string `protobuf:"bytes,2,opt,name=index_name" json:"index_name,omitempty"` - ColumnsToGet *ColumnsToGet `protobuf:"bytes,3,opt,name=columns_to_get" json:"columns_to_get,omitempty"` - SessionId []byte `protobuf:"bytes,4,opt,name=session_id" json:"session_id,omitempty"` - ScanQuery []byte `protobuf:"bytes,5,opt,name=scan_query" json:"scan_query,omitempty"` + TableName *string `protobuf:"bytes,1,opt,name=table_name,json=tableName" json:"table_name,omitempty"` + IndexName *string `protobuf:"bytes,2,opt,name=index_name,json=indexName" json:"index_name,omitempty"` + ColumnsToGet *ColumnsToGet `protobuf:"bytes,3,opt,name=columns_to_get,json=columnsToGet" json:"columns_to_get,omitempty"` + SessionId []byte `protobuf:"bytes,4,opt,name=session_id,json=sessionId" json:"session_id,omitempty"` + ScanQuery []byte `protobuf:"bytes,5,opt,name=scan_query,json=scanQuery" json:"scan_query,omitempty"` + TimeoutMs *int32 `protobuf:"varint,6,opt,name=timeoutMs" json:"timeoutMs,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -5743,17 +5612,16 @@ func (m *ParallelScanRequest) Reset() { *m = ParallelScanRequest{} } func (m *ParallelScanRequest) String() string { return proto.CompactTextString(m) } func (*ParallelScanRequest) ProtoMessage() {} func (*ParallelScanRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{99} + return fileDescriptor_search_c58deff66fa19a4e, []int{99} } - func (m *ParallelScanRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ParallelScanRequest.Unmarshal(m, b) } func (m *ParallelScanRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ParallelScanRequest.Marshal(b, m, deterministic) } -func (m *ParallelScanRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ParallelScanRequest.Merge(m, src) +func (dst *ParallelScanRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ParallelScanRequest.Merge(dst, src) } func (m *ParallelScanRequest) XXX_Size() int { return xxx_messageInfo_ParallelScanRequest.Size(m) @@ -5799,9 +5667,16 @@ func (m *ParallelScanRequest) GetScanQuery() []byte { return nil } +func (m *ParallelScanRequest) GetTimeoutMs() int32 { + if m != nil && m.TimeoutMs != nil { + return *m.TimeoutMs + } + return 0 +} + type ParallelScanResponse struct { Rows [][]byte `protobuf:"bytes,1,rep,name=rows" json:"rows,omitempty"` - NextToken []byte `protobuf:"bytes,2,opt,name=next_token" json:"next_token,omitempty"` + NextToken []byte `protobuf:"bytes,2,opt,name=next_token,json=nextToken" json:"next_token,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -5811,17 +5686,16 @@ func (m *ParallelScanResponse) Reset() { *m = ParallelScanResponse{} } func (m *ParallelScanResponse) String() string { return proto.CompactTextString(m) } func (*ParallelScanResponse) ProtoMessage() {} func (*ParallelScanResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_453745cff914010e, []int{100} + return fileDescriptor_search_c58deff66fa19a4e, []int{100} } - func (m *ParallelScanResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ParallelScanResponse.Unmarshal(m, b) } func (m *ParallelScanResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ParallelScanResponse.Marshal(b, m, deterministic) } -func (m *ParallelScanResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_ParallelScanResponse.Merge(m, src) +func (dst *ParallelScanResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ParallelScanResponse.Merge(dst, src) } func (m *ParallelScanResponse) XXX_Size() int { return xxx_messageInfo_ParallelScanResponse.Size(m) @@ -5847,18 +5721,6 @@ func (m *ParallelScanResponse) GetNextToken() []byte { } func init() { - proto.RegisterEnum("otsprotocol.QueryType", QueryType_name, QueryType_value) - proto.RegisterEnum("otsprotocol.QueryOperator", QueryOperator_name, QueryOperator_value) - proto.RegisterEnum("otsprotocol.ScoreMode", ScoreMode_name, ScoreMode_value) - proto.RegisterEnum("otsprotocol.SortOrder", SortOrder_name, SortOrder_value) - proto.RegisterEnum("otsprotocol.SortMode", SortMode_name, SortMode_value) - proto.RegisterEnum("otsprotocol.GeoDistanceType", GeoDistanceType_name, GeoDistanceType_value) - proto.RegisterEnum("otsprotocol.ColumnReturnType", ColumnReturnType_name, ColumnReturnType_value) - proto.RegisterEnum("otsprotocol.IndexOptions", IndexOptions_name, IndexOptions_value) - proto.RegisterEnum("otsprotocol.FieldType", FieldType_name, FieldType_value) - proto.RegisterEnum("otsprotocol.SyncPhase", SyncPhase_name, SyncPhase_value) - proto.RegisterEnum("otsprotocol.AggregationType", AggregationType_name, AggregationType_value) - proto.RegisterEnum("otsprotocol.GroupByType", GroupByType_name, GroupByType_value) proto.RegisterType((*MatchQuery)(nil), "otsprotocol.MatchQuery") proto.RegisterType((*MatchPhraseQuery)(nil), "otsprotocol.MatchPhraseQuery") proto.RegisterType((*MatchAllQuery)(nil), "otsprotocol.MatchAllQuery") @@ -5960,238 +5822,291 @@ func init() { proto.RegisterType((*ScanQuery)(nil), "otsprotocol.ScanQuery") proto.RegisterType((*ParallelScanRequest)(nil), "otsprotocol.ParallelScanRequest") proto.RegisterType((*ParallelScanResponse)(nil), "otsprotocol.ParallelScanResponse") + proto.RegisterEnum("otsprotocol.QueryType", QueryType_name, QueryType_value) + proto.RegisterEnum("otsprotocol.QueryOperator", QueryOperator_name, QueryOperator_value) + proto.RegisterEnum("otsprotocol.ScoreMode", ScoreMode_name, ScoreMode_value) + proto.RegisterEnum("otsprotocol.SortOrder", SortOrder_name, SortOrder_value) + proto.RegisterEnum("otsprotocol.SortMode", SortMode_name, SortMode_value) + proto.RegisterEnum("otsprotocol.GeoDistanceType", GeoDistanceType_name, GeoDistanceType_value) + proto.RegisterEnum("otsprotocol.ColumnReturnType", ColumnReturnType_name, ColumnReturnType_value) + proto.RegisterEnum("otsprotocol.IndexOptions", IndexOptions_name, IndexOptions_value) + proto.RegisterEnum("otsprotocol.FieldType", FieldType_name, FieldType_value) + proto.RegisterEnum("otsprotocol.SyncPhase", SyncPhase_name, SyncPhase_value) + proto.RegisterEnum("otsprotocol.AggregationType", AggregationType_name, AggregationType_value) + proto.RegisterEnum("otsprotocol.GroupByType", GroupByType_name, GroupByType_value) } -func init() { - proto.RegisterFile("search.proto", fileDescriptor_453745cff914010e) -} - -var fileDescriptor_453745cff914010e = []byte{ - // 3608 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x5a, 0x4b, 0x73, 0xe3, 0xc6, - 0x76, 0xbe, 0xe0, 0x43, 0x22, 0x0f, 0x1f, 0x82, 0x20, 0x8d, 0x86, 0xf3, 0xb0, 0x3d, 0x86, 0x1f, - 0xa3, 0xc8, 0x73, 0xed, 0xeb, 0xb1, 0x9d, 0xeb, 0x9b, 0x4a, 0xc5, 0xa1, 0xf8, 0xd0, 0x30, 0x96, - 0x48, 0x9a, 0xa4, 0x3c, 0xe3, 0xaa, 0xd4, 0x45, 0x20, 0xb0, 0x45, 0xe1, 0x1a, 0x44, 0xd3, 0x8d, - 0xe6, 0x48, 0x9c, 0xaa, 0xfc, 0x86, 0x54, 0x72, 0x17, 0xf1, 0x26, 0x8b, 0x54, 0x52, 0x95, 0x4d, - 0xb2, 0xca, 0x2e, 0xab, 0xec, 0xb2, 0x4b, 0x55, 0x96, 0xf9, 0x07, 0x59, 0x64, 0x91, 0x9f, 0x90, - 0xea, 0xd3, 0x0d, 0x12, 0x20, 0x41, 0x8d, 0xe4, 0x49, 0x25, 0x95, 0x1d, 0x71, 0x70, 0x4e, 0xf7, - 0x39, 0xdf, 0x79, 0x76, 0x83, 0x50, 0x0c, 0x88, 0xcd, 0x9c, 0x8b, 0x8f, 0x27, 0x8c, 0x72, 0x6a, - 0x14, 0x28, 0x0f, 0xf0, 0x97, 0x43, 0xbd, 0xfb, 0xdb, 0xdc, 0x3e, 0xf3, 0x88, 0x15, 0x70, 0xca, - 0x88, 0x7c, 0x6f, 0xbe, 0x02, 0x38, 0xb1, 0xb9, 0x73, 0xf1, 0xcd, 0x94, 0xb0, 0x99, 0x61, 0x00, - 0x9c, 0xbb, 0xc4, 0x1b, 0x5a, 0xbe, 0x3d, 0x26, 0x15, 0xed, 0x91, 0xb6, 0x9f, 0x37, 0x8a, 0x90, - 0xe1, 0xe4, 0x8a, 0x57, 0x52, 0xf8, 0xf4, 0x10, 0x76, 0xc7, 0xae, 0xef, 0x8e, 0xa7, 0x63, 0x2b, - 0xb8, 0xa0, 0x53, 0x6f, 0x68, 0x8d, 0x85, 0x78, 0x25, 0xfd, 0x48, 0xdb, 0xcf, 0x1a, 0x4f, 0x20, - 0x47, 0x27, 0x84, 0xd9, 0x9c, 0xb2, 0x4a, 0xe6, 0x91, 0xb6, 0x5f, 0x7e, 0x7a, 0xff, 0xe3, 0x88, - 0x02, 0x1f, 0xe3, 0x2e, 0x1d, 0xc5, 0x61, 0x7e, 0x0e, 0x3a, 0xee, 0xdd, 0xbd, 0x60, 0x76, 0x40, - 0x6e, 0xa8, 0x81, 0xb9, 0x05, 0x25, 0x94, 0xaa, 0x7a, 0x1e, 0x8a, 0x98, 0x3f, 0x87, 0xfc, 0x80, - 0xb0, 0xf1, 0x6b, 0xe4, 0xd9, 0x18, 0xe5, 0x8b, 0xe6, 0x27, 0x00, 0x82, 0x3d, 0x58, 0xcf, 0x5f, - 0x82, 0xac, 0xe0, 0x0f, 0x2a, 0xa9, 0x47, 0xe9, 0xfd, 0xa2, 0xc9, 0x01, 0x7a, 0xb6, 0x3f, 0xba, - 0x46, 0x41, 0x03, 0x80, 0x09, 0x0e, 0xeb, 0x9c, 0x51, 0xb5, 0x8d, 0xa1, 0x43, 0x4e, 0xd2, 0x38, - 0x45, 0x70, 0x8a, 0xc6, 0x1d, 0x28, 0xb9, 0xbe, 0xe3, 0x4d, 0x87, 0xc4, 0xf2, 0xe8, 0x25, 0x91, - 0x08, 0xe5, 0xa2, 0xe4, 0xe9, 0x64, 0x42, 0x58, 0x25, 0x2b, 0xc8, 0xe6, 0xa7, 0x50, 0xe8, 0x32, - 0x72, 0xee, 0x5e, 0xad, 0xdf, 0xb6, 0x0c, 0x1b, 0x13, 0x64, 0x51, 0xc8, 0x3c, 0x85, 0xd2, 0x73, - 0xd7, 0x1b, 0x3a, 0x36, 0x1b, 0x5e, 0x6b, 0xdc, 0x4b, 0xdb, 0x9b, 0x12, 0x25, 0xf3, 0xef, 0x1a, - 0xe4, 0x0f, 0x29, 0x95, 0x50, 0x1a, 0xfb, 0x50, 0x1c, 0x4f, 0x03, 0x6e, 0xfd, 0x30, 0x25, 0xcc, - 0x25, 0x41, 0x45, 0x7b, 0x94, 0xde, 0x2f, 0x3c, 0x35, 0x56, 0x7d, 0x68, 0x3c, 0x01, 0x1d, 0x39, - 0x7d, 0xba, 0xe0, 0x4e, 0xad, 0xe5, 0x3e, 0x80, 0xf2, 0xb9, 0xeb, 0x71, 0xc2, 0xe6, 0xbc, 0xe9, - 0xeb, 0x78, 0x55, 0x64, 0x85, 0xbc, 0x99, 0xb5, 0xbc, 0xeb, 0xa2, 0x51, 0x40, 0x98, 0x35, 0xbf, - 0x80, 0xad, 0x1a, 0xf5, 0x03, 0xde, 0x77, 0x28, 0x53, 0xde, 0x33, 0x61, 0x43, 0x2a, 0x82, 0x68, - 0x24, 0x2e, 0x6a, 0x7e, 0x08, 0x7a, 0x53, 0xa0, 0xf6, 0xad, 0x80, 0xa9, 0x69, 0x3b, 0x9c, 0xb2, - 0x24, 0x24, 0x4d, 0x06, 0x46, 0x73, 0xea, 0x3b, 0xdc, 0xa5, 0x7e, 0x64, 0x87, 0x77, 0x21, 0x2b, - 0xf4, 0x9e, 0xad, 0xdf, 0xc0, 0xf8, 0x15, 0x18, 0x72, 0x31, 0x74, 0x84, 0x75, 0x8e, 0x5b, 0xa0, - 0x3f, 0x0a, 0x4f, 0xdf, 0x8a, 0xf1, 0x2f, 0xeb, 0x61, 0xfe, 0x06, 0x0a, 0x6d, 0x12, 0x70, 0xa2, - 0x1c, 0x5c, 0x84, 0xcc, 0xc4, 0xe6, 0x17, 0xca, 0xb5, 0xf3, 0xad, 0x53, 0x6b, 0xb7, 0x3e, 0x00, - 0x08, 0x84, 0xae, 0xd6, 0x98, 0x0e, 0x09, 0xc6, 0x65, 0xf9, 0xe9, 0x5e, 0x8c, 0x0f, 0x4d, 0x39, - 0xa1, 0x43, 0x62, 0x7e, 0x03, 0x3b, 0x47, 0x84, 0x1e, 0xd2, 0xa9, 0x3f, 0x74, 0xfd, 0xd1, 0x21, - 0xbd, 0x26, 0x12, 0x75, 0xc8, 0x71, 0x3a, 0xb1, 0x3c, 0x72, 0x1e, 0xd6, 0x89, 0x5d, 0x28, 0x9e, - 0x51, 0xce, 0xe9, 0xd8, 0x62, 0xee, 0xe8, 0x82, 0xe3, 0x56, 0x79, 0xb3, 0x0d, 0xfa, 0x11, 0xa1, - 0x75, 0x37, 0xe0, 0xb6, 0xef, 0x5c, 0x93, 0x50, 0xbb, 0x50, 0x74, 0x88, 0x2f, 0xe2, 0x65, 0x42, - 0x5d, 0x3f, 0x5c, 0x53, 0x87, 0xdc, 0x50, 0x89, 0xe2, 0x7a, 0x9a, 0xf0, 0xf0, 0x11, 0xa1, 0x5d, - 0xea, 0xcd, 0x46, 0xd4, 0xbf, 0x3e, 0x51, 0xc4, 0x3a, 0x32, 0x44, 0xf3, 0xe6, 0xbb, 0x50, 0x68, - 0x5c, 0xb9, 0x01, 0x5f, 0x5f, 0x03, 0xcc, 0xdf, 0x87, 0xac, 0x7c, 0xf9, 0x3e, 0x64, 0xf8, 0x6c, - 0x22, 0xc9, 0xcb, 0x58, 0x21, 0xc7, 0x60, 0x36, 0x21, 0x22, 0xab, 0x16, 0xd0, 0x17, 0xcd, 0xb7, - 0x21, 0x57, 0xa3, 0x9e, 0x67, 0x4f, 0x02, 0x92, 0xb8, 0xfa, 0x1f, 0x42, 0x51, 0xba, 0xb1, 0x89, - 0xc1, 0xb8, 0xe4, 0xc7, 0x45, 0x90, 0xae, 0x75, 0xa4, 0xf9, 0x14, 0xf2, 0xe8, 0xa9, 0x3e, 0x65, - 0xdc, 0xf8, 0x00, 0xb2, 0x94, 0x0d, 0x55, 0x50, 0xaf, 0x38, 0x94, 0x32, 0xde, 0x11, 0x6f, 0xcd, - 0xbf, 0xd2, 0x20, 0x8f, 0x11, 0x85, 0x42, 0x49, 0x40, 0xcd, 0x17, 0x4a, 0x5d, 0xb7, 0x90, 0xf1, - 0x1e, 0x64, 0x22, 0xf1, 0x73, 0x67, 0x85, 0x4b, 0x84, 0x8f, 0xf1, 0x0b, 0x28, 0xf9, 0x68, 0xa3, - 0xa5, 0x8c, 0xc9, 0xa0, 0x31, 0xf7, 0x62, 0xdc, 0x51, 0x14, 0xcc, 0xff, 0xd0, 0xd0, 0x9d, 0x61, - 0x78, 0xac, 0xd5, 0x72, 0xc9, 0x9d, 0x0b, 0xad, 0xd3, 0x37, 0xd2, 0x3a, 0x73, 0x9d, 0xd6, 0x9f, - 0x41, 0x29, 0x8c, 0x31, 0x0b, 0xfd, 0x9e, 0x45, 0xee, 0x87, 0x31, 0xee, 0x88, 0x92, 0xe8, 0xfd, - 0x15, 0x53, 0x37, 0x5e, 0x67, 0xea, 0x2f, 0xa1, 0xdc, 0x65, 0xee, 0xd8, 0x66, 0xb3, 0xaf, 0xc9, - 0xec, 0x36, 0x3e, 0xfc, 0x17, 0x0d, 0x36, 0xc4, 0x13, 0x61, 0x22, 0x97, 0x25, 0x34, 0x01, 0x65, - 0x5c, 0x95, 0x9b, 0xbd, 0xd5, 0xf2, 0x81, 0xab, 0xff, 0x12, 0xb6, 0x47, 0x84, 0x5a, 0x73, 0xd3, - 0x50, 0x44, 0x46, 0xd7, 0x5a, 0xd3, 0x50, 0x70, 0x5e, 0x30, 0x50, 0x22, 0x9d, 0xb0, 0xc9, 0x22, - 0x0c, 0x9f, 0xc0, 0xe6, 0xe4, 0x7b, 0xc9, 0x28, 0x7d, 0xfd, 0x20, 0xc6, 0x18, 0x37, 0xd8, 0xfc, - 0x08, 0x32, 0x28, 0xf5, 0x1e, 0x6c, 0x04, 0x68, 0x90, 0xea, 0x36, 0x3b, 0x2b, 0x96, 0x13, 0x66, - 0xfe, 0x45, 0x0a, 0x0a, 0x7d, 0x9c, 0x6b, 0x64, 0x56, 0x96, 0x61, 0x83, 0x9e, 0x9f, 0x07, 0x44, - 0xda, 0x9d, 0x15, 0xf9, 0xe7, 0xb9, 0x63, 0x57, 0xda, 0x94, 0x5d, 0x54, 0xc2, 0xcc, 0xda, 0x4a, - 0xf8, 0x18, 0x72, 0x8e, 0x4a, 0x51, 0xf4, 0x71, 0x61, 0x29, 0x22, 0xe6, 0xf9, 0xfb, 0x0e, 0x64, - 0xd0, 0x24, 0xe9, 0xd3, 0xed, 0x15, 0xed, 0x44, 0x03, 0x1f, 0x11, 0x3e, 0xa0, 0xdc, 0xf6, 0x6a, - 0x74, 0xea, 0xf3, 0x4a, 0x0e, 0xfb, 0xba, 0x98, 0x22, 0xe8, 0xf7, 0xc4, 0xaf, 0xe4, 0xb1, 0xfb, - 0x3f, 0x86, 0x8c, 0x3d, 0x1a, 0x05, 0x15, 0x48, 0x08, 0x8d, 0xea, 0x68, 0xc4, 0xc8, 0xc8, 0x16, - 0x9d, 0x24, 0x30, 0xf6, 0x21, 0x3f, 0x62, 0x74, 0x3a, 0xb1, 0xce, 0x66, 0x41, 0xa5, 0x90, 0xa0, - 0xd9, 0x91, 0x78, 0x7b, 0x38, 0x0b, 0xcc, 0x17, 0x50, 0xac, 0x51, 0x6f, 0x3a, 0xf6, 0x83, 0x01, - 0x3d, 0x22, 0xdc, 0x78, 0x0a, 0x05, 0x46, 0xf8, 0x94, 0xf9, 0x56, 0xa4, 0x62, 0xbd, 0xb5, 0x6c, - 0xd5, 0x74, 0xec, 0xf7, 0x90, 0x0b, 0x43, 0x57, 0x54, 0x5a, 0xa4, 0x61, 0x82, 0x85, 0x05, 0xf2, - 0x47, 0x0d, 0x4a, 0x12, 0xee, 0x1e, 0xf9, 0x61, 0x4a, 0x02, 0xcc, 0x43, 0x39, 0x3c, 0xc6, 0xc7, - 0x1e, 0xd7, 0x1f, 0x92, 0x2b, 0x49, 0x93, 0x35, 0xfa, 0x53, 0x28, 0xcb, 0xf5, 0x02, 0x8b, 0x53, - 0x6b, 0x44, 0xc2, 0x98, 0xb9, 0x97, 0xa0, 0x86, 0x52, 0x7b, 0x37, 0x1c, 0x59, 0xad, 0x85, 0xcf, - 0x8a, 0xc6, 0x1e, 0x94, 0x19, 0x9d, 0x72, 0xd7, 0x1f, 0xc9, 0x36, 0x19, 0x54, 0xb2, 0x38, 0x8d, - 0xfd, 0xa7, 0x06, 0xe5, 0x50, 0xb5, 0x60, 0x42, 0x7d, 0x59, 0x61, 0xb9, 0x40, 0xdf, 0xba, 0x70, - 0x79, 0x80, 0xba, 0xa5, 0x45, 0x45, 0x65, 0xf4, 0x52, 0x8d, 0x70, 0x46, 0x05, 0x74, 0x37, 0xb0, - 0x6c, 0xcf, 0xb3, 0x82, 0xa9, 0xe3, 0x10, 0x32, 0x24, 0x43, 0xd4, 0x2b, 0x27, 0x64, 0x7d, 0x72, - 0xc5, 0x2d, 0xe9, 0xaa, 0x0d, 0xdc, 0xba, 0xa8, 0x5c, 0xb5, 0x89, 0x4f, 0xdb, 0x51, 0x7f, 0xe4, - 0x90, 0xf4, 0x89, 0x88, 0x1d, 0x3f, 0x98, 0x8e, 0xc9, 0x10, 0xbd, 0x5b, 0x58, 0x41, 0x59, 0xbe, - 0xac, 0xd9, 0x13, 0xdb, 0x71, 0xf9, 0xcc, 0xf8, 0x12, 0xb6, 0x19, 0x09, 0x08, 0x7b, 0x49, 0x86, - 0xd6, 0x5c, 0x12, 0x6e, 0x20, 0x69, 0x7e, 0x0d, 0x0f, 0xfa, 0xae, 0x3f, 0xf2, 0xc8, 0x73, 0xca, - 0x86, 0x55, 0xdf, 0xf6, 0x66, 0xaf, 0x08, 0xeb, 0xda, 0xcc, 0x1e, 0x13, 0x51, 0x03, 0xf6, 0xa0, - 0xec, 0xd8, 0x01, 0xb1, 0x02, 0xe2, 0x07, 0x2e, 0x77, 0x5f, 0x4a, 0xd7, 0xe4, 0x04, 0xa6, 0x43, - 0x82, 0x19, 0x61, 0x5d, 0x52, 0x36, 0x44, 0xe7, 0xe4, 0xcc, 0x8f, 0x60, 0xaf, 0x3f, 0xf1, 0x5c, - 0xbe, 0xba, 0xce, 0x36, 0xe4, 0x15, 0xbf, 0xaa, 0x40, 0x79, 0xf3, 0x0f, 0x60, 0xaf, 0x39, 0x7d, - 0xf5, 0x6a, 0x96, 0xc8, 0x3c, 0x76, 0x7d, 0xcb, 0xb9, 0xb0, 0x59, 0xa0, 0xf2, 0x4f, 0x90, 0xec, - 0x2b, 0x45, 0xc2, 0x1c, 0x34, 0xff, 0x2b, 0x05, 0x05, 0x59, 0x80, 0x9c, 0x0b, 0x32, 0xb6, 0x13, - 0x2b, 0xf9, 0xbc, 0x84, 0x61, 0xc0, 0x26, 0x35, 0x1d, 0x5c, 0x21, 0x2c, 0xb2, 0x32, 0xda, 0xe8, - 0x04, 0x13, 0x45, 0x55, 0xfb, 0x78, 0x60, 0xb5, 0x04, 0x47, 0x47, 0x32, 0x88, 0x79, 0xc1, 0x56, - 0xca, 0x63, 0x50, 0xe1, 0xf0, 0x8b, 0x6b, 0xc8, 0x19, 0x1b, 0x23, 0x8f, 0x32, 0x6e, 0xd9, 0xfe, - 0xd0, 0xb2, 0x47, 0x23, 0x74, 0x3f, 0x26, 0x2e, 0x9e, 0x90, 0xd0, 0xff, 0x39, 0xe3, 0x13, 0x28, - 0xa9, 0x32, 0x8b, 0x76, 0x88, 0x18, 0x10, 0x65, 0xaa, 0x92, 0x50, 0x69, 0xa5, 0xa1, 0x3a, 0xe4, - 0x44, 0xb0, 0x31, 0x66, 0xcf, 0x30, 0x3a, 0x72, 0xc6, 0x7d, 0x30, 0x42, 0x45, 0xac, 0x49, 0x08, - 0x23, 0xfa, 0x3f, 0x0c, 0xcd, 0x97, 0x2e, 0xe3, 0x53, 0xdb, 0xb3, 0x70, 0x27, 0xcc, 0x7a, 0x94, - 0x0a, 0xe8, 0x94, 0x39, 0xc4, 0x5a, 0xe0, 0x16, 0x54, 0x8a, 0xd8, 0xf2, 0x84, 0x7f, 0x6d, 0x4e, - 0xac, 0x73, 0xca, 0xc6, 0x36, 0x0f, 0x2a, 0x25, 0x4c, 0xdb, 0xbf, 0xd4, 0xa0, 0x80, 0x08, 0x28, - 0x4d, 0x56, 0x54, 0xd7, 0x5e, 0xa3, 0xfa, 0x1c, 0xe3, 0x80, 0x70, 0x91, 0x7a, 0xaa, 0x45, 0x24, - 0x60, 0xdc, 0x97, 0x0c, 0xc6, 0x07, 0x61, 0x0d, 0x88, 0xf4, 0x87, 0xd5, 0x1a, 0x69, 0xfe, 0x09, - 0x14, 0x63, 0x62, 0x15, 0xd0, 0xfd, 0xe9, 0xf8, 0x8c, 0x30, 0x8b, 0x9e, 0x5b, 0xc1, 0x85, 0xcd, - 0x86, 0x61, 0x24, 0x45, 0xf2, 0x1e, 0x75, 0x0f, 0x9b, 0xfc, 0xdb, 0xb0, 0x17, 0xd2, 0x27, 0x36, - 0xe3, 0xae, 0x70, 0xb1, 0x15, 0xb8, 0xaf, 0xe4, 0x14, 0x92, 0x15, 0xc3, 0x4d, 0xa5, 0xc6, 0x88, - 0xcd, 0x89, 0xac, 0x0e, 0xb8, 0xdd, 0xba, 0xea, 0x95, 0x4a, 0xa8, 0x5e, 0x82, 0xb6, 0x0f, 0x1b, - 0x12, 0x2a, 0x65, 0x49, 0x25, 0xc1, 0x70, 0x89, 0xd4, 0x3d, 0xd8, 0x56, 0xce, 0x89, 0x2c, 0x92, - 0x09, 0x87, 0x57, 0xee, 0x8e, 0xc5, 0xc1, 0xcf, 0xf2, 0x44, 0x46, 0xca, 0xc3, 0xc8, 0x03, 0xb8, - 0x97, 0xa0, 0x9e, 0xac, 0x60, 0x62, 0x8e, 0xc5, 0xae, 0xd4, 0xf4, 0xe8, 0xe5, 0x73, 0x22, 0x06, - 0xe6, 0x25, 0xf5, 0xe6, 0x83, 0xcf, 0x25, 0xbe, 0x55, 0x29, 0xf6, 0xf7, 0x1a, 0x54, 0x4e, 0x27, - 0xc3, 0x9b, 0xd9, 0xbc, 0xae, 0x62, 0x0b, 0x4b, 0x2e, 0x5d, 0xee, 0x5c, 0x44, 0x2d, 0xc1, 0x71, - 0x5d, 0x4c, 0x0d, 0x58, 0x92, 0xad, 0x73, 0x8f, 0x5e, 0x5a, 0x6a, 0x6b, 0x79, 0x1a, 0x7b, 0xb8, - 0xda, 0x52, 0x23, 0xca, 0xaf, 0x85, 0x20, 0x41, 0x5b, 0x05, 0xc1, 0x67, 0x90, 0x47, 0x42, 0xcb, - 0x3f, 0xa7, 0x37, 0xd5, 0xdd, 0x7c, 0x02, 0x7b, 0xc7, 0x6e, 0xc0, 0x6f, 0x66, 0xbd, 0x79, 0x08, - 0x77, 0x57, 0xb8, 0x55, 0x0b, 0x79, 0x0c, 0x9b, 0xae, 0x3f, 0x74, 0x9d, 0xf9, 0x99, 0x77, 0x6f, - 0xd5, 0xf3, 0x42, 0x33, 0xf3, 0x10, 0x2a, 0x75, 0xe2, 0x91, 0x37, 0x41, 0x5c, 0xe0, 0x90, 0xb0, - 0x86, 0xc2, 0xe1, 0x5b, 0xc8, 0xf5, 0x67, 0xbe, 0xd3, 0xe7, 0xb6, 0x1c, 0xbe, 0x66, 0xbe, 0x63, - 0x4d, 0x2e, 0xec, 0x20, 0xf9, 0x04, 0x22, 0x58, 0xbb, 0xe2, 0xad, 0xc8, 0x0f, 0x67, 0xca, 0x18, - 0xf1, 0xb9, 0x85, 0x32, 0x02, 0xff, 0x80, 0xdb, 0xe3, 0x09, 0x6e, 0x9a, 0x36, 0x87, 0x50, 0x3c, - 0x11, 0x65, 0xc7, 0xf5, 0x47, 0x08, 0xb1, 0xa8, 0x7d, 0x9c, 0x32, 0x7b, 0x44, 0x64, 0x16, 0xc9, - 0xb6, 0xb9, 0x0d, 0x79, 0x46, 0x2f, 0x2d, 0x07, 0xe7, 0x18, 0x14, 0x14, 0xa9, 0x3a, 0xef, 0x5d, - 0x8c, 0xd8, 0x43, 0xcb, 0x99, 0x62, 0x78, 0x20, 0xf3, 0x62, 0x97, 0x0c, 0xee, 0x52, 0x87, 0xfb, - 0x75, 0x12, 0x38, 0xcc, 0x3d, 0x7b, 0x13, 0x80, 0xfe, 0x26, 0x05, 0x0f, 0x12, 0x97, 0x51, 0xde, - 0x5a, 0xa4, 0xa9, 0xf6, 0x9a, 0x34, 0xdd, 0x87, 0x3c, 0xa2, 0x11, 0x70, 0x3b, 0x9c, 0x77, 0xef, - 0xac, 0x00, 0x88, 0x58, 0xff, 0x02, 0x4a, 0x63, 0x85, 0x8f, 0xe5, 0xfa, 0xe7, 0x34, 0x71, 0x6e, - 0x89, 0x21, 0x78, 0x1f, 0x8c, 0x33, 0x46, 0xf9, 0x05, 0x61, 0xab, 0x35, 0x20, 0x31, 0x73, 0xb2, - 0x37, 0xc8, 0x9c, 0x1d, 0x28, 0x38, 0x58, 0x26, 0xd0, 0x81, 0xd8, 0x91, 0xd2, 0x2b, 0xe9, 0xb4, - 0x89, 0xe9, 0x74, 0x0a, 0x85, 0xc8, 0xe0, 0x28, 0xa6, 0x96, 0x58, 0x67, 0xcd, 0x44, 0x7a, 0xea, - 0xc3, 0x75, 0xe3, 0x26, 0x76, 0xd6, 0x22, 0x64, 0xce, 0xe8, 0x70, 0x26, 0xaf, 0xa9, 0xcc, 0xdf, - 0x85, 0x62, 0x6c, 0x1e, 0xfd, 0x50, 0x4d, 0x43, 0x49, 0xbd, 0x23, 0xc2, 0x68, 0x9e, 0xc0, 0xa6, - 0x9a, 0x4c, 0x97, 0x54, 0xf9, 0x30, 0xa6, 0x4a, 0x25, 0x69, 0x96, 0x4d, 0x50, 0xe3, 0x33, 0xc8, - 0x85, 0x83, 0xae, 0xf1, 0x38, 0x3a, 0x82, 0x49, 0x3d, 0x76, 0x93, 0x96, 0x31, 0xbf, 0x80, 0x72, - 0xf5, 0xe5, 0x28, 0x8a, 0x4a, 0xd2, 0xd4, 0xb1, 0x05, 0x9b, 0x63, 0x37, 0x08, 0xc2, 0xfe, 0x56, - 0x14, 0x62, 0x27, 0xf6, 0xd5, 0x4f, 0x12, 0x73, 0xfd, 0x9f, 0x22, 0xd6, 0x9f, 0x8e, 0x6f, 0x2d, - 0xf6, 0x21, 0xe8, 0x78, 0xbc, 0x78, 0x8d, 0xa0, 0xf9, 0x15, 0x54, 0xc4, 0x09, 0xce, 0xf5, 0x1d, - 0x7e, 0x13, 0xfe, 0xd5, 0x8d, 0xea, 0x60, 0x0c, 0xe8, 0xa4, 0x47, 0x2f, 0x83, 0xa8, 0xe8, 0xfc, - 0x84, 0x25, 0xdb, 0x74, 0x78, 0x2a, 0x4a, 0xad, 0xeb, 0xf8, 0x3d, 0xd8, 0xeb, 0x12, 0xe6, 0x10, - 0x9f, 0xbb, 0x1e, 0x09, 0x5e, 0xa7, 0xc4, 0x0e, 0x14, 0x26, 0x0b, 0x6e, 0x6c, 0xf9, 0x5a, 0x54, - 0xb3, 0xb4, 0x82, 0x00, 0x70, 0x5a, 0xc1, 0xeb, 0x58, 0xa3, 0x00, 0xe9, 0xb1, 0xeb, 0xe3, 0x02, - 0x45, 0x7c, 0xb0, 0xaf, 0x94, 0x05, 0x7f, 0x9e, 0x02, 0x5d, 0x85, 0xc4, 0x33, 0x37, 0xe0, 0x74, - 0xc4, 0xec, 0xf1, 0xba, 0x7b, 0x2b, 0xd7, 0xe7, 0x84, 0xbd, 0xb4, 0x3d, 0x75, 0x6d, 0xbb, 0xbc, - 0xa7, 0x38, 0xdd, 0x89, 0x61, 0x77, 0x48, 0x1d, 0x55, 0x15, 0xb1, 0xd0, 0x89, 0xa0, 0x46, 0xfb, - 0xb3, 0x09, 0x05, 0x48, 0x6d, 0xad, 0xce, 0xc4, 0x05, 0xb9, 0x2b, 0x5e, 0x06, 0xab, 0x43, 0xe4, - 0xdd, 0xd5, 0x01, 0x4c, 0x9a, 0xf4, 0x11, 0xe4, 0x82, 0xe9, 0x99, 0x35, 0x3f, 0x7d, 0x5c, 0x7b, - 0x50, 0x7c, 0x02, 0x25, 0xc1, 0x1c, 0x3f, 0x9c, 0xac, 0x3d, 0x2c, 0x7e, 0x01, 0x45, 0xfc, 0x7d, - 0xcb, 0xfb, 0x86, 0x2f, 0xa0, 0xd8, 0xa3, 0x97, 0x18, 0x48, 0xb7, 0x11, 0x6b, 0x01, 0xf4, 0xa7, - 0x67, 0xd5, 0xd1, 0x08, 0x85, 0x44, 0xaf, 0x91, 0x66, 0xdd, 0xfe, 0xb2, 0xc9, 0xfc, 0x5b, 0x0d, - 0x4a, 0x11, 0x44, 0x09, 0x13, 0x67, 0x4c, 0x69, 0xf4, 0xf7, 0x64, 0x16, 0xbd, 0xfc, 0xb8, 0xb7, - 0x6a, 0x79, 0x68, 0xed, 0xa7, 0x62, 0xaa, 0x54, 0x7d, 0x2d, 0x7a, 0xf9, 0x11, 0x17, 0x89, 0x59, - 0xfa, 0xf3, 0x85, 0xd2, 0x91, 0xd9, 0x36, 0xee, 0xba, 0x85, 0x8d, 0xe6, 0xef, 0x41, 0x21, 0xea, - 0xf7, 0x8f, 0x60, 0x53, 0xde, 0x6a, 0x84, 0x05, 0xeb, 0xfe, 0xba, 0x10, 0x21, 0xcc, 0xfc, 0x47, - 0x4d, 0x39, 0xe7, 0x70, 0x86, 0xc1, 0xb0, 0xee, 0x2b, 0x06, 0x36, 0x6a, 0x79, 0xc3, 0x11, 0xc6, - 0x5f, 0xfa, 0x35, 0xf1, 0x17, 0x8d, 0xa8, 0xcc, 0xad, 0x23, 0x2a, 0x7b, 0x5d, 0x44, 0xbd, 0x0b, - 0x59, 0x19, 0xb5, 0x45, 0xc8, 0xe0, 0x87, 0x0f, 0xa1, 0xa7, 0x66, 0x00, 0xa4, 0x38, 0x45, 0x2d, - 0x35, 0xf3, 0xaf, 0x17, 0x86, 0x49, 0xd6, 0x24, 0xc3, 0x4c, 0xd8, 0xc0, 0xe4, 0x48, 0xfe, 0x80, - 0xb0, 0x9a, 0x18, 0xe9, 0x5b, 0x9b, 0x91, 0xb9, 0xce, 0x8c, 0x3f, 0x5b, 0xc4, 0x97, 0xba, 0x8d, - 0x7d, 0x0f, 0x36, 0xe5, 0x3d, 0xde, 0x75, 0x1f, 0x40, 0xa2, 0x1a, 0xa5, 0x6e, 0xad, 0x51, 0xfa, - 0x3a, 0x8d, 0xde, 0x87, 0x1c, 0xde, 0x6a, 0xbb, 0x3e, 0x17, 0x75, 0xcd, 0xb3, 0xb9, 0x82, 0x56, - 0x3c, 0x50, 0x5f, 0x61, 0xfb, 0xaf, 0x1a, 0x18, 0x4a, 0x24, 0x72, 0x69, 0xb7, 0xe6, 0x5a, 0x77, - 0x83, 0x32, 0x77, 0xe4, 0xfa, 0x89, 0x23, 0xd0, 0x7c, 0xaf, 0x85, 0x23, 0xd2, 0x37, 0x72, 0xc4, - 0xff, 0x70, 0x3c, 0x7d, 0x00, 0xbb, 0xf1, 0xe6, 0xdd, 0x23, 0xc1, 0xd4, 0xe3, 0x8b, 0x2f, 0x56, - 0x08, 0x82, 0xf9, 0x09, 0xbc, 0xbd, 0xae, 0xbf, 0x25, 0x09, 0xa4, 0xc5, 0xba, 0xf1, 0xee, 0x9e, - 0xbc, 0xae, 0x60, 0x8b, 0x75, 0xf3, 0xb5, 0x6c, 0xf1, 0xee, 0x9d, 0xcc, 0xf6, 0x18, 0xf6, 0x6e, - 0xa6, 0xdd, 0x3e, 0x54, 0x56, 0xbb, 0xad, 0x62, 0x0d, 0x2f, 0xb1, 0x34, 0xbc, 0xf9, 0xfa, 0x12, - 0xee, 0x27, 0x77, 0xd4, 0x16, 0x27, 0x63, 0x11, 0x1b, 0xdf, 0x93, 0x99, 0x0a, 0x94, 0xd8, 0x47, - 0xbe, 0xa2, 0xe9, 0xc3, 0xc3, 0x64, 0x49, 0xb5, 0x4f, 0x1b, 0xde, 0x8a, 0x74, 0x5f, 0xe1, 0xdc, - 0x90, 0xc1, 0x72, 0x39, 0x19, 0x87, 0x69, 0xf0, 0x38, 0x7e, 0x9d, 0xbb, 0x56, 0x17, 0xd3, 0x86, - 0xed, 0x44, 0x63, 0x7e, 0xe2, 0x7c, 0x6a, 0x00, 0x88, 0x2a, 0xcc, 0x70, 0x1d, 0x35, 0x0a, 0xb4, - 0xc0, 0x88, 0x86, 0x9a, 0xda, 0xe3, 0x33, 0x28, 0x2c, 0x38, 0x43, 0xb5, 0xdf, 0x5e, 0xb7, 0xb8, - 0x14, 0x32, 0xff, 0x41, 0x83, 0xbd, 0x68, 0xf5, 0x95, 0xe4, 0x65, 0x50, 0xf3, 0x49, 0x67, 0xa3, - 0x2f, 0x61, 0x2b, 0xcc, 0x86, 0xa8, 0x7a, 0x85, 0xa7, 0xef, 0xac, 0x4d, 0x0a, 0xa5, 0xe9, 0xaf, - 0x60, 0x37, 0x96, 0x1a, 0xa1, 0x78, 0xd2, 0xc5, 0x79, 0x98, 0x21, 0x4a, 0xdf, 0x5f, 0xcf, 0xf3, - 0x3e, 0xa2, 0xae, 0xf1, 0x0c, 0x1e, 0x84, 0x8b, 0xa9, 0xfb, 0x22, 0xb9, 0x62, 0xcc, 0x83, 0xef, - 0x25, 0xad, 0xbb, 0x64, 0xb4, 0xf9, 0x4f, 0x0b, 0x3c, 0x30, 0xe7, 0x23, 0x78, 0xac, 0xad, 0xf4, - 0x71, 0x70, 0xd2, 0xeb, 0xc0, 0xc9, 0xbc, 0x19, 0x38, 0xd9, 0xdb, 0x80, 0x13, 0xd1, 0x3d, 0x06, - 0x8e, 0xfc, 0x2a, 0x7f, 0x53, 0x70, 0x96, 0x10, 0x30, 0xff, 0x59, 0x83, 0x87, 0xab, 0x55, 0xf7, - 0xff, 0x15, 0x44, 0x3f, 0x40, 0x65, 0x9d, 0x05, 0xc6, 0x29, 0x98, 0x73, 0xa0, 0x62, 0x1f, 0x8c, - 0x12, 0xf0, 0xfa, 0x9d, 0xa4, 0x4d, 0x12, 0x41, 0x11, 0x73, 0xc0, 0xdd, 0x58, 0x8f, 0x8d, 0x00, - 0x16, 0x83, 0x45, 0x5b, 0x07, 0x4b, 0xea, 0xcd, 0x60, 0x49, 0xbf, 0x1e, 0x16, 0x1b, 0x76, 0x12, - 0x54, 0x34, 0xfe, 0x08, 0x1e, 0x46, 0xf2, 0x0a, 0xff, 0xc3, 0x90, 0x80, 0xc5, 0xfb, 0xc9, 0x89, - 0x15, 0x37, 0xd5, 0xfc, 0xf5, 0x7c, 0xd2, 0x48, 0xac, 0x89, 0x37, 0x3d, 0x28, 0xdf, 0x85, 0xad, - 0x45, 0x34, 0x47, 0x8b, 0x62, 0x13, 0xca, 0x71, 0xa3, 0x8c, 0xcf, 0x41, 0x5f, 0x62, 0xbd, 0x76, - 0x1e, 0x55, 0x50, 0xfc, 0x9d, 0x06, 0xbb, 0xcb, 0xe7, 0xa7, 0xe5, 0x7a, 0x58, 0x8c, 0x37, 0x99, - 0xff, 0xa3, 0x5a, 0xf8, 0xc7, 0xf3, 0x52, 0x35, 0x57, 0x54, 0x2d, 0x7a, 0x08, 0x77, 0xe7, 0x96, - 0x5f, 0xa8, 0x77, 0x31, 0x97, 0xbd, 0x9b, 0xb4, 0x6e, 0xcc, 0x5c, 0xf3, 0xb7, 0x1a, 0xe4, 0xfb, - 0x8e, 0xed, 0xdf, 0xf8, 0x9f, 0x1d, 0x4b, 0x9f, 0x21, 0x45, 0xe3, 0xf2, 0xdc, 0x97, 0xea, 0x2e, - 0x27, 0x1d, 0x7e, 0xa9, 0x94, 0xdf, 0x9a, 0xe4, 0x67, 0xae, 0x07, 0xb0, 0x13, 0x5e, 0xdb, 0x4d, - 0x6c, 0x66, 0x7b, 0x1e, 0xf1, 0x2c, 0x77, 0x28, 0x2f, 0x4c, 0xc5, 0xb9, 0x69, 0x6c, 0x5f, 0xcd, - 0x5f, 0xe0, 0xe9, 0x31, 0x6b, 0xfe, 0xa8, 0xc1, 0x4e, 0x57, 0x91, 0x84, 0x76, 0xff, 0x0b, 0x9f, - 0xe8, 0x0c, 0x80, 0x80, 0x04, 0x01, 0x0e, 0x04, 0x43, 0xa5, 0xb9, 0xa0, 0x39, 0xb6, 0xaf, 0x3e, - 0xda, 0x65, 0x31, 0x00, 0xbf, 0x84, 0xdd, 0xb8, 0x66, 0xea, 0xc2, 0x2e, 0x36, 0xc8, 0x2c, 0x7d, - 0x73, 0xc3, 0x11, 0xe5, 0xe0, 0xdf, 0x52, 0x90, 0x5f, 0xfc, 0x9d, 0x62, 0x0b, 0x0a, 0x27, 0xd5, - 0x41, 0xed, 0x99, 0xf5, 0xcd, 0x69, 0xa3, 0xf7, 0x9d, 0xae, 0x19, 0x7b, 0x60, 0x48, 0x42, 0xf7, - 0x59, 0xaf, 0xda, 0x6f, 0x28, 0x7a, 0xca, 0x28, 0x03, 0x0c, 0x1a, 0xbd, 0x13, 0xf5, 0x9c, 0x16, - 0x82, 0xbd, 0x6a, 0xfb, 0x28, 0x64, 0xc8, 0x18, 0x3a, 0x14, 0xbb, 0xbd, 0x46, 0xb3, 0xf5, 0x42, - 0x51, 0xb2, 0x42, 0xe4, 0xb0, 0xd3, 0x39, 0x56, 0xcf, 0x1b, 0xc6, 0x1d, 0xd8, 0xae, 0x75, 0xda, - 0xfd, 0x81, 0xd5, 0xaf, 0x75, 0x7a, 0xa1, 0xe0, 0xa6, 0x51, 0x81, 0xdd, 0xe6, 0x69, 0xbb, 0x36, - 0x68, 0x75, 0xda, 0xb1, 0x37, 0x39, 0xb1, 0x64, 0xbb, 0xd1, 0x1f, 0x34, 0xea, 0x8a, 0x22, 0x50, - 0x2e, 0x3f, 0x6f, 0x1d, 0xd7, 0x6b, 0xd5, 0x5e, 0x48, 0x03, 0x63, 0x07, 0xb6, 0xa4, 0xc6, 0xd5, - 0xe3, 0x70, 0xaf, 0x82, 0x71, 0x1f, 0xf6, 0x8e, 0x1a, 0x1d, 0xeb, 0xb0, 0x73, 0xda, 0xae, 0xb7, - 0xda, 0x47, 0xd6, 0x61, 0x27, 0xd4, 0xab, 0x28, 0x4c, 0x14, 0xef, 0xea, 0xad, 0xfe, 0xa0, 0xda, - 0xae, 0x85, 0xdb, 0x95, 0x84, 0x7e, 0x82, 0xde, 0xed, 0x1c, 0x7f, 0x77, 0xd4, 0x69, 0x2b, 0x72, - 0x59, 0x58, 0x2a, 0x2c, 0xef, 0x2b, 0xc2, 0x96, 0x50, 0xab, 0xf1, 0xa2, 0xd5, 0x1f, 0x84, 0x14, - 0xfd, 0xe0, 0x11, 0x94, 0x62, 0x7f, 0xb8, 0x33, 0x36, 0x20, 0xd5, 0xe9, 0xe9, 0x9a, 0xb1, 0x09, - 0xe9, 0x6a, 0xbb, 0xae, 0xa7, 0x0e, 0x98, 0xfa, 0x17, 0x09, 0xfe, 0xf5, 0x61, 0x07, 0xb6, 0xa4, - 0xa1, 0x27, 0x9d, 0x7a, 0xc3, 0x6a, 0x77, 0xda, 0x0d, 0x5d, 0x13, 0xa6, 0x45, 0x88, 0xd5, 0x6f, - 0x8f, 0xf4, 0xd4, 0x12, 0xed, 0xa4, 0xfa, 0x42, 0x4f, 0x1b, 0xbb, 0xa0, 0x47, 0x68, 0x83, 0xce, - 0xa0, 0x7a, 0xac, 0x67, 0x96, 0x39, 0x5b, 0x6d, 0x3d, 0x7b, 0xf0, 0x39, 0xe4, 0x17, 0xff, 0xc9, - 0x10, 0x0c, 0x9d, 0xde, 0xc0, 0xea, 0xf4, 0xea, 0x8d, 0x9e, 0x55, 0xed, 0xd7, 0xf4, 0x9f, 0xa1, - 0x1e, 0x0b, 0x5a, 0xbd, 0xd1, 0xaf, 0xe9, 0xda, 0x41, 0x0d, 0x72, 0xf3, 0xff, 0x68, 0x6c, 0x43, - 0x09, 0x19, 0xe6, 0x8b, 0xfe, 0x6c, 0x89, 0x54, 0x7d, 0xa1, 0x6b, 0x71, 0x12, 0x2a, 0x7e, 0xf0, - 0x55, 0xec, 0xff, 0x25, 0xea, 0xfb, 0xb7, 0x1e, 0x43, 0xbd, 0xda, 0x13, 0x2a, 0x2c, 0xfb, 0xa2, - 0x7b, 0x5c, 0x15, 0x68, 0x1c, 0x0c, 0x41, 0x5f, 0xf9, 0x82, 0x5e, 0x06, 0xe8, 0x35, 0x06, 0xa7, - 0xbd, 0xb6, 0xf0, 0xb4, 0xae, 0x89, 0x15, 0xd5, 0x73, 0xbf, 0xdb, 0xa8, 0xb5, 0x9a, 0xad, 0x46, - 0x5d, 0x4f, 0x61, 0x60, 0x4a, 0x2a, 0x02, 0x9b, 0x36, 0xee, 0xc1, 0x9d, 0x85, 0x98, 0xd5, 0xec, - 0x75, 0x4e, 0xac, 0x56, 0xbb, 0xde, 0x78, 0xa1, 0x67, 0x0e, 0xbe, 0x52, 0x1f, 0xcb, 0xc2, 0xef, - 0x98, 0x39, 0xc8, 0xd4, 0x3b, 0xb5, 0xbe, 0xae, 0x19, 0x79, 0xc8, 0x36, 0x7b, 0x8d, 0x6f, 0xfa, - 0x7a, 0xca, 0x28, 0x41, 0xbe, 0xdb, 0xe9, 0xb7, 0x44, 0x7c, 0xf6, 0xf5, 0xb4, 0x51, 0x80, 0xcd, - 0x4e, 0xb3, 0xd9, 0x6f, 0x0c, 0xfa, 0x7a, 0xe6, 0xe0, 0x37, 0xea, 0x7f, 0x3e, 0xa8, 0x5f, 0x0e, - 0x32, 0xc7, 0x9d, 0xf6, 0x91, 0x2e, 0x86, 0x91, 0x8d, 0x7a, 0xe7, 0xf4, 0xf0, 0xb8, 0xa1, 0xa7, - 0x04, 0xbf, 0xc8, 0x82, 0x46, 0xb5, 0x2d, 0x85, 0xbf, 0x6e, 0x7c, 0xf7, 0xbc, 0xd3, 0xab, 0xeb, - 0x19, 0xc1, 0x3f, 0x68, 0xbc, 0x18, 0xe8, 0x59, 0xc1, 0x2f, 0x03, 0x5d, 0xdf, 0x10, 0xdb, 0xc9, - 0x28, 0x6c, 0xb5, 0x07, 0xfa, 0x26, 0xaa, 0x54, 0x1d, 0x34, 0xf4, 0xdc, 0xc1, 0x3b, 0x90, 0x5f, - 0x7c, 0x84, 0xc8, 0x41, 0xa6, 0x79, 0x8a, 0x28, 0xe4, 0x20, 0xd3, 0x6a, 0xd7, 0x7a, 0x7a, 0xea, - 0xe0, 0xb7, 0x1a, 0x6c, 0x2d, 0x4f, 0xf4, 0x05, 0xd8, 0xac, 0x1e, 0x1d, 0xa1, 0x57, 0x30, 0xb7, - 0xc5, 0x83, 0x00, 0xbb, 0xd5, 0xae, 0x0d, 0xac, 0x5a, 0xe7, 0xb4, 0x3d, 0xd0, 0x37, 0x42, 0x26, - 0xe1, 0xcd, 0xd4, 0xfc, 0xa1, 0xa5, 0xf4, 0x15, 0x0f, 0xfd, 0xd3, 0x13, 0x3d, 0x23, 0x34, 0x13, - 0x0f, 0x52, 0x2a, 0x2b, 0xd2, 0x40, 0x3c, 0x0e, 0x3a, 0x5d, 0xab, 0xd7, 0x79, 0xde, 0xd7, 0x37, - 0x45, 0x3c, 0x09, 0x4a, 0xb7, 0xd1, 0xab, 0x35, 0xda, 0x83, 0xd6, 0x71, 0xa3, 0xaf, 0xe7, 0x0e, - 0xfe, 0x74, 0x7e, 0x5d, 0xa3, 0x8e, 0x18, 0xe5, 0xa3, 0x5e, 0xe7, 0xb4, 0x6b, 0x1d, 0x7e, 0x67, - 0x35, 0x5b, 0x8d, 0xe3, 0xba, 0x0c, 0xfd, 0x39, 0x0d, 0x8b, 0x8a, 0x9e, 0x12, 0x6b, 0x45, 0xf8, - 0x8e, 0x07, 0x8d, 0x9e, 0x74, 0xe5, 0x9c, 0x18, 0x0d, 0x1b, 0x3d, 0x83, 0x81, 0x14, 0xbe, 0x7a, - 0xd6, 0xea, 0x0f, 0x3a, 0x47, 0xbd, 0xea, 0x89, 0x9e, 0xfd, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, - 0x99, 0x81, 0x81, 0x4f, 0xa5, 0x2b, 0x00, 0x00, +func init() { proto.RegisterFile("search.proto", fileDescriptor_search_c58deff66fa19a4e) } + +var fileDescriptor_search_c58deff66fa19a4e = []byte{ + // 4304 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x3b, 0x4d, 0x6f, 0x1b, 0x49, + 0x76, 0xdb, 0xfc, 0x90, 0xc8, 0xc7, 0x0f, 0xb5, 0xca, 0x1a, 0x99, 0xfe, 0xda, 0xb5, 0x7b, 0x77, + 0x12, 0x8f, 0x56, 0x63, 0x78, 0x1c, 0xef, 0x24, 0x06, 0x66, 0x6c, 0x50, 0x24, 0x25, 0x33, 0x23, + 0x91, 0x72, 0x91, 0x1a, 0x7b, 0x82, 0x00, 0x8d, 0x16, 0x59, 0xa2, 0x3a, 0x26, 0xbb, 0x39, 0x5d, + 0x4d, 0x4b, 0x74, 0x90, 0x4b, 0xae, 0x7b, 0x49, 0x10, 0x24, 0xbf, 0x20, 0x87, 0xe4, 0x92, 0xfc, + 0x83, 0x5c, 0x92, 0x53, 0x90, 0x1c, 0x82, 0x20, 0x40, 0x4e, 0x8b, 0x1c, 0xf2, 0x03, 0xf6, 0x94, + 0x63, 0x12, 0xd4, 0xab, 0xea, 0x66, 0x37, 0xd9, 0x92, 0x28, 0xaf, 0x11, 0x2c, 0x90, 0x93, 0x58, + 0xaf, 0xde, 0x7b, 0xf5, 0xbe, 0xea, 0xbd, 0x57, 0xd5, 0x25, 0x28, 0x72, 0x66, 0x79, 0xbd, 0xd3, + 0x47, 0x63, 0xcf, 0xf5, 0x5d, 0x52, 0x70, 0x7d, 0x8e, 0xbf, 0x7a, 0xee, 0xf0, 0xf6, 0xba, 0x6f, + 0x1d, 0x0f, 0x99, 0xc9, 0x7d, 0xd7, 0x63, 0x72, 0xde, 0xf8, 0x6b, 0x0d, 0xe0, 0xc0, 0xf2, 0x7b, + 0xa7, 0xaf, 0x26, 0xcc, 0x9b, 0x92, 0x7b, 0x00, 0x27, 0x36, 0x1b, 0xf6, 0x4d, 0xc7, 0x1a, 0xb1, + 0x8a, 0x76, 0x5f, 0x7b, 0x98, 0xa7, 0x79, 0x84, 0xb4, 0xac, 0x11, 0x23, 0x04, 0x32, 0x3e, 0x3b, + 0xf7, 0x2b, 0x29, 0x9c, 0xc0, 0xdf, 0xe4, 0x31, 0x6c, 0x8c, 0x6c, 0xc7, 0x1e, 0x4d, 0x46, 0x26, + 0x3f, 0x75, 0x27, 0xc3, 0xbe, 0x39, 0x12, 0xfc, 0x2a, 0xe9, 0xfb, 0xda, 0xc3, 0x2c, 0x25, 0x6a, + 0xae, 0x83, 0x53, 0xb8, 0x12, 0xf9, 0x12, 0x72, 0xee, 0x98, 0x79, 0x96, 0xef, 0x7a, 0x95, 0xcc, + 0x7d, 0xed, 0x61, 0xf9, 0xc9, 0xed, 0x47, 0x11, 0x31, 0x1f, 0xa1, 0x28, 0x6d, 0x85, 0x41, 0x43, + 0x5c, 0xa3, 0x01, 0x3a, 0x32, 0x38, 0x3c, 0xf5, 0x2c, 0xce, 0x3e, 0x54, 0x60, 0x63, 0x0d, 0x4a, + 0xc8, 0xa6, 0x3a, 0x1c, 0x22, 0x0f, 0xe3, 0x39, 0xe4, 0xbb, 0xcc, 0x1b, 0x2d, 0xcf, 0xd0, 0x1b, + 0x21, 0xc3, 0x22, 0xc5, 0xdf, 0x46, 0x15, 0x40, 0xd0, 0xf3, 0xa5, 0x18, 0x6c, 0x40, 0x56, 0x10, + 0xf1, 0x4a, 0xea, 0x7e, 0xfa, 0x61, 0x91, 0xca, 0x81, 0xf1, 0xb7, 0x1a, 0x00, 0xb5, 0x9c, 0xc1, + 0x72, 0x5a, 0xdd, 0x03, 0xf0, 0x04, 0xb2, 0x79, 0xe2, 0xb9, 0x81, 0x28, 0x79, 0x84, 0xec, 0x7a, + 0xee, 0x88, 0xdc, 0x82, 0x9c, 0x9c, 0xf6, 0x5d, 0xf4, 0x42, 0x91, 0xae, 0xe2, 0xb8, 0xeb, 0x92, + 0x1f, 0x43, 0xc9, 0x76, 0x7a, 0xc3, 0x49, 0x9f, 0x99, 0x43, 0xf7, 0x8c, 0x49, 0xfb, 0xe7, 0x68, + 0x51, 0x01, 0xf7, 0x05, 0x2c, 0x8a, 0x34, 0x19, 0x8f, 0x99, 0x57, 0xc9, 0xc6, 0x90, 0x8e, 0x04, + 0xcc, 0xa8, 0x43, 0xe1, 0xd0, 0x63, 0x27, 0xf6, 0xf9, 0x52, 0x12, 0x6f, 0xc2, 0xca, 0x18, 0xb1, + 0x95, 0x27, 0xd4, 0xc8, 0xa8, 0x43, 0xe9, 0xb5, 0x3d, 0xec, 0xf7, 0x2c, 0xaf, 0xbf, 0xac, 0xf5, + 0xde, 0x59, 0xc3, 0x09, 0x53, 0x6c, 0xe4, 0xc0, 0xf8, 0xab, 0x14, 0xe4, 0x77, 0x5c, 0x57, 0xba, + 0x93, 0xfc, 0x0c, 0x8a, 0xa3, 0x09, 0xf7, 0xcd, 0xef, 0x27, 0xcc, 0xb3, 0x19, 0xaf, 0x68, 0xf7, + 0xd3, 0x0f, 0x0b, 0x4f, 0xc8, 0x62, 0x88, 0xd1, 0x82, 0xc0, 0x7b, 0x25, 0xd1, 0xc8, 0x57, 0xa0, + 0x23, 0x99, 0xe3, 0xce, 0x48, 0x53, 0x17, 0x92, 0x96, 0x05, 0x6e, 0xcb, 0x0d, 0xa9, 0x9f, 0x41, + 0xf9, 0xc4, 0x1e, 0xfa, 0xcc, 0x0b, 0x69, 0xd3, 0x17, 0xd2, 0x96, 0x24, 0x66, 0x84, 0x54, 0x6d, + 0x9c, 0x80, 0x34, 0x73, 0x31, 0xa9, 0xc4, 0x0c, 0x48, 0x2f, 0xda, 0x7b, 0xd9, 0x8b, 0xf6, 0x9e, + 0xf1, 0x35, 0xac, 0xd5, 0x5c, 0x87, 0xfb, 0x9d, 0x9e, 0xeb, 0xa9, 0x60, 0xdb, 0x82, 0x15, 0x29, + 0x10, 0x9a, 0x3b, 0x79, 0x5d, 0x85, 0x61, 0x7c, 0x01, 0xfa, 0xae, 0x70, 0xc6, 0xb7, 0xc2, 0xee, + 0xbb, 0x56, 0xcf, 0x77, 0xbd, 0x2b, 0x5c, 0x66, 0xfc, 0x5c, 0x03, 0xb2, 0x3b, 0x71, 0x7a, 0xbe, + 0xed, 0x3a, 0x91, 0x55, 0x1f, 0x42, 0x56, 0xa8, 0x3b, 0xbd, 0x64, 0x51, 0x89, 0x40, 0xbe, 0x01, + 0x22, 0xf9, 0xa3, 0xb3, 0xcd, 0x13, 0x5c, 0x15, 0x03, 0xa0, 0xf0, 0xe4, 0x5e, 0x8c, 0x6c, 0x5e, + 0x34, 0xaa, 0x9f, 0xcc, 0x41, 0x8c, 0x3f, 0xd6, 0xa0, 0xd0, 0x62, 0xdc, 0x67, 0x2a, 0xde, 0x08, + 0x64, 0xc6, 0x96, 0x7f, 0xaa, 0xc4, 0xc6, 0xdf, 0x33, 0xd1, 0x52, 0x57, 0x89, 0xf6, 0x33, 0x00, + 0x2e, 0x54, 0x32, 0x47, 0x6e, 0x9f, 0xe1, 0x5e, 0x2b, 0x3f, 0xd9, 0x8c, 0xa1, 0xa3, 0xc6, 0x07, + 0x6e, 0x9f, 0xd1, 0x3c, 0x0f, 0x7e, 0x1a, 0x1e, 0xdc, 0xd8, 0x63, 0xee, 0x8e, 0x3b, 0x71, 0xfa, + 0xb6, 0x33, 0xd8, 0x71, 0x97, 0xdb, 0x43, 0xb7, 0x20, 0xe7, 0xbb, 0x63, 0x73, 0xc8, 0x4e, 0x82, + 0x7c, 0xb6, 0xea, 0xbb, 0xe3, 0x7d, 0x76, 0xe2, 0x93, 0x07, 0x50, 0x3c, 0x76, 0x7d, 0xdf, 0x1d, + 0x99, 0x9e, 0x3d, 0x38, 0xf5, 0x51, 0x92, 0x3c, 0x2d, 0x48, 0x18, 0x15, 0x20, 0x63, 0x0c, 0xfa, + 0x1e, 0x73, 0xeb, 0x36, 0xf7, 0x2d, 0xa7, 0xb7, 0x5c, 0x9a, 0x79, 0x00, 0xc5, 0x1e, 0x73, 0x44, + 0x4c, 0x8f, 0x5d, 0xdb, 0x09, 0x16, 0x2d, 0x48, 0xd8, 0xa1, 0x00, 0x91, 0xdb, 0x90, 0xeb, 0x2b, + 0x96, 0xb8, 0xa8, 0x46, 0xc3, 0xb1, 0xf1, 0x12, 0xd6, 0xf6, 0x98, 0x7b, 0xe8, 0x0e, 0xa7, 0x03, + 0xd7, 0x59, 0x3a, 0x4b, 0x08, 0xb6, 0x72, 0xe3, 0x89, 0x2c, 0x81, 0x23, 0x63, 0x1b, 0x0a, 0x8d, + 0x73, 0x9b, 0xfb, 0x4b, 0x65, 0x58, 0xa3, 0x09, 0xd9, 0x20, 0xb0, 0x33, 0xfe, 0x74, 0x2c, 0x31, + 0xe6, 0xfd, 0x82, 0x18, 0xdd, 0xe9, 0x98, 0x51, 0xc4, 0x11, 0x89, 0x65, 0xe6, 0xf3, 0xa2, 0xf2, + 0xaf, 0xf1, 0x19, 0xe4, 0x6a, 0xee, 0x70, 0x68, 0x8d, 0x39, 0xbb, 0x6a, 0xd5, 0x16, 0x14, 0x65, + 0x5c, 0xed, 0xe2, 0x4e, 0x49, 0x0c, 0xac, 0xd9, 0x4e, 0x4b, 0x5d, 0xb9, 0xd3, 0x9e, 0x41, 0x1e, + 0x63, 0xa7, 0xe3, 0x7a, 0x3e, 0xd9, 0x86, 0xac, 0xeb, 0xf5, 0xd5, 0x0e, 0x5d, 0x08, 0x31, 0xd7, + 0xf3, 0xdb, 0x62, 0x96, 0x4a, 0x24, 0xe3, 0xef, 0x35, 0xc8, 0xe3, 0x56, 0x40, 0xda, 0x2b, 0x6c, + 0x1e, 0xb2, 0x4e, 0x2d, 0xc1, 0x9a, 0x7c, 0x06, 0x99, 0x48, 0xa8, 0x7f, 0xb2, 0x80, 0x8c, 0x91, + 0x8e, 0x28, 0xe4, 0x39, 0x94, 0x1c, 0x34, 0x88, 0xa9, 0x74, 0xce, 0xa0, 0xce, 0xb7, 0x62, 0x34, + 0x51, 0x93, 0xd1, 0xa2, 0x13, 0x19, 0x19, 0x7f, 0x99, 0xc2, 0xf8, 0x09, 0x22, 0x76, 0x19, 0x5d, + 0x2e, 0x88, 0x9f, 0x99, 0x8e, 0xe9, 0xeb, 0xe8, 0x98, 0xb9, 0x5a, 0xc7, 0x2a, 0x94, 0x82, 0x70, + 0x37, 0x31, 0xd4, 0xb2, 0x48, 0x73, 0x37, 0x46, 0x13, 0x51, 0x02, 0x03, 0xae, 0xd8, 0x8f, 0x8c, + 0x16, 0xcd, 0xb4, 0x72, 0x3d, 0x33, 0x3d, 0x87, 0xf2, 0xa1, 0x67, 0x8f, 0x2c, 0x6f, 0xfa, 0x0d, + 0x9b, 0x7e, 0x40, 0xb0, 0xfc, 0x97, 0x06, 0x2b, 0x02, 0xc8, 0x3c, 0x91, 0xcd, 0xa4, 0x75, 0xb9, + 0xeb, 0xf9, 0x2a, 0x2f, 0x6f, 0x2e, 0x26, 0x58, 0x81, 0xad, 0xac, 0x8e, 0xeb, 0xbd, 0x84, 0xf5, + 0x01, 0x73, 0xcd, 0xd0, 0x10, 0x48, 0x2d, 0x03, 0xfc, 0x42, 0x43, 0x20, 0x8f, 0xb5, 0xc1, 0x9c, + 0x7b, 0xc3, 0x74, 0x8a, 0x2c, 0xd2, 0x09, 0x02, 0x84, 0x5b, 0x42, 0xa5, 0x53, 0x24, 0x7b, 0x0a, + 0xab, 0xe3, 0xb7, 0x92, 0x46, 0xc6, 0xd8, 0x9d, 0x18, 0x4d, 0xdc, 0x3c, 0x74, 0x65, 0xfc, 0x56, + 0xfc, 0x35, 0x7e, 0x0b, 0x32, 0x48, 0xfd, 0x53, 0x58, 0xe1, 0xa8, 0xbf, 0x6a, 0x14, 0x6e, 0x2c, + 0xd8, 0x8b, 0x79, 0x54, 0xa1, 0x18, 0xbf, 0x48, 0x41, 0xa1, 0x83, 0xfd, 0xb5, 0x4c, 0x31, 0x9b, + 0xb0, 0xe2, 0x9e, 0x9c, 0x70, 0x26, 0xcd, 0x95, 0xa5, 0x6a, 0x24, 0xd2, 0xc9, 0xd0, 0x1e, 0xd9, + 0xd2, 0x0e, 0x59, 0x2a, 0x07, 0xb3, 0xc2, 0x92, 0xb9, 0xaa, 0xb0, 0x7c, 0x01, 0xb9, 0x9e, 0x4a, + 0x3c, 0x18, 0x53, 0x85, 0xb9, 0x38, 0x0c, 0xb2, 0x12, 0x0d, 0xd1, 0xc8, 0xa7, 0x90, 0x41, 0x13, + 0xc8, 0xf8, 0x59, 0x5f, 0xd0, 0x82, 0xe2, 0x34, 0xf9, 0x09, 0x94, 0x06, 0xcc, 0xef, 0xba, 0xbe, + 0x35, 0xac, 0xb9, 0x13, 0xc7, 0xaf, 0xe4, 0xb0, 0xb9, 0x8b, 0x03, 0xb1, 0x4b, 0x75, 0xdf, 0x32, + 0xa7, 0x92, 0x97, 0xe9, 0x10, 0x07, 0xe4, 0x73, 0xc8, 0x58, 0x83, 0x01, 0xaf, 0x40, 0x42, 0x88, + 0x56, 0x07, 0x03, 0x8f, 0x0d, 0x2c, 0x51, 0xe5, 0x39, 0x45, 0x34, 0xf2, 0x04, 0xf2, 0x03, 0xcf, + 0x9d, 0x8c, 0xcd, 0xe3, 0x29, 0xaf, 0x14, 0x12, 0xb4, 0xd8, 0x13, 0xb3, 0x3b, 0x53, 0x4e, 0x73, + 0x03, 0xf5, 0xcb, 0xf8, 0x1e, 0x8a, 0x35, 0x77, 0x38, 0x19, 0x39, 0xbc, 0xeb, 0xee, 0x31, 0x9f, + 0x3c, 0x87, 0x82, 0xc7, 0xfc, 0x89, 0xe7, 0x98, 0x91, 0x54, 0x7e, 0x6f, 0xde, 0x16, 0x93, 0x91, + 0x43, 0x11, 0x0b, 0x37, 0x18, 0x78, 0xe1, 0x6f, 0xac, 0x61, 0x38, 0x8f, 0x29, 0x23, 0x48, 0x0c, + 0x05, 0x09, 0x13, 0x49, 0x83, 0x8b, 0x1d, 0x50, 0x92, 0x3e, 0xa5, 0xec, 0xfb, 0x09, 0xe3, 0x98, + 0x66, 0xe4, 0x49, 0x29, 0x9a, 0x66, 0x10, 0x12, 0xb4, 0xdf, 0xb6, 0xd3, 0x67, 0xe7, 0x72, 0x5a, + 0x56, 0xc5, 0x3c, 0x42, 0x70, 0xfa, 0x05, 0x94, 0x25, 0x7b, 0x6e, 0xfa, 0xae, 0x39, 0x60, 0x41, + 0x24, 0xdf, 0x4a, 0x90, 0x5a, 0x6a, 0x49, 0x95, 0x8c, 0x4a, 0xe7, 0x07, 0xc1, 0x19, 0xce, 0x9c, + 0x45, 0x4b, 0x91, 0x16, 0x78, 0x24, 0xee, 0x3e, 0x85, 0xb2, 0xe7, 0x4e, 0x7c, 0xdb, 0x19, 0xc8, + 0xae, 0x88, 0x57, 0xb2, 0x78, 0x9c, 0x28, 0x29, 0x28, 0xb6, 0x3c, 0x9c, 0xdc, 0x85, 0xbc, 0x6f, + 0x8f, 0x98, 0x3b, 0xf1, 0x0f, 0x38, 0x06, 0x46, 0x96, 0xce, 0x00, 0xc6, 0x3f, 0xa4, 0xa0, 0x1c, + 0x28, 0xce, 0xc7, 0xae, 0x23, 0x8b, 0x9c, 0x2f, 0xa2, 0xc0, 0x3c, 0xb5, 0x7d, 0x8e, 0x9a, 0xa7, + 0x69, 0x1e, 0x21, 0x2f, 0x6d, 0x9f, 0x8b, 0xa2, 0xe6, 0xb9, 0x67, 0xc1, 0xd9, 0x05, 0x7f, 0x93, + 0x87, 0xa0, 0xdb, 0xdc, 0xb4, 0x86, 0x43, 0x93, 0x4f, 0x7a, 0x3d, 0xc6, 0xfa, 0xac, 0x8f, 0x0a, + 0xe7, 0x68, 0xd9, 0xe6, 0xd5, 0xe1, 0xb0, 0x13, 0x40, 0x05, 0x73, 0x87, 0x9d, 0xfb, 0xa6, 0x8c, + 0xac, 0x15, 0x79, 0x6c, 0x11, 0x90, 0x2e, 0x46, 0x17, 0x51, 0xd1, 0xb5, 0x2a, 0x8f, 0x56, 0x18, + 0x42, 0x77, 0xa2, 0x21, 0x94, 0xc3, 0x89, 0x30, 0x56, 0xc8, 0x33, 0xb1, 0x49, 0x1c, 0x3e, 0x19, + 0xb1, 0x3e, 0xc6, 0x69, 0x61, 0x21, 0x30, 0xe4, 0x64, 0xcd, 0x1a, 0x5b, 0x3d, 0xdb, 0x9f, 0xd2, + 0x10, 0x9d, 0xfc, 0x2e, 0xac, 0x7b, 0x8c, 0x33, 0xef, 0x1d, 0xeb, 0x9b, 0x21, 0x0f, 0x58, 0x86, + 0x87, 0x1e, 0xd0, 0x05, 0x33, 0xc6, 0x00, 0xee, 0x74, 0x6c, 0x67, 0x30, 0x64, 0xaf, 0x5d, 0xaf, + 0x5f, 0x75, 0xac, 0xe1, 0xf4, 0x3d, 0xf3, 0x0e, 0x2d, 0xcf, 0x1a, 0x31, 0x91, 0x55, 0x3f, 0x85, + 0x72, 0xcf, 0xe2, 0xcc, 0xe4, 0xcc, 0xe1, 0xb6, 0x6f, 0xbf, 0x93, 0x01, 0x95, 0xa3, 0x25, 0x01, + 0xed, 0x04, 0x40, 0xe1, 0xf4, 0x3e, 0xc3, 0x34, 0x61, 0x9e, 0xb9, 0x5e, 0x1f, 0xc3, 0x2a, 0x47, + 0x0b, 0x0a, 0x26, 0x58, 0x1b, 0x5f, 0xc2, 0x66, 0x67, 0x3c, 0xb4, 0xfd, 0xc5, 0x35, 0xee, 0x42, + 0x5e, 0x21, 0xaa, 0xb4, 0x9f, 0xa7, 0x33, 0x80, 0x41, 0x61, 0x73, 0x77, 0xf2, 0xfe, 0xfd, 0x74, + 0x91, 0xee, 0x0e, 0xe4, 0x47, 0xb6, 0x63, 0xf6, 0x4e, 0x2d, 0x8f, 0xab, 0x0c, 0x96, 0x1b, 0xd9, + 0x4e, 0x4d, 0x8c, 0x71, 0xd2, 0x3a, 0x57, 0x93, 0x29, 0x35, 0x69, 0x9d, 0xe3, 0xa4, 0xf1, 0xa7, + 0x19, 0x28, 0xc8, 0x6a, 0xd0, 0x3b, 0x65, 0x23, 0xeb, 0xaa, 0xca, 0x1c, 0x96, 0x16, 0xdc, 0xc5, + 0x49, 0xad, 0x06, 0x32, 0xc3, 0xed, 0x2b, 0xc9, 0x82, 0xe2, 0x28, 0x77, 0x9a, 0x3b, 0xc6, 0xc4, + 0xa2, 0x0a, 0x78, 0x7c, 0x27, 0x35, 0x05, 0x46, 0x5b, 0x22, 0x88, 0x43, 0xea, 0x6c, 0x24, 0xda, + 0x53, 0x4b, 0x29, 0x8d, 0xbb, 0x28, 0x4f, 0xc3, 0xb1, 0x48, 0x71, 0x88, 0xab, 0x4e, 0xb7, 0x72, + 0x40, 0xee, 0x43, 0x51, 0xa4, 0x49, 0xd3, 0x72, 0xfa, 0xa6, 0x35, 0x18, 0x60, 0x94, 0xe6, 0x28, + 0x08, 0x58, 0xd5, 0xe9, 0x57, 0x07, 0x03, 0x41, 0x87, 0x17, 0x28, 0x18, 0xa7, 0x39, 0x2a, 0x07, + 0xe4, 0x6b, 0x28, 0xa9, 0xda, 0x89, 0xf6, 0x10, 0xc1, 0x2a, 0x8a, 0x49, 0x25, 0xa1, 0x7c, 0x22, + 0x02, 0x2d, 0x9e, 0xcc, 0x06, 0x5c, 0xf4, 0xf6, 0x62, 0x13, 0x79, 0x9e, 0x35, 0xc5, 0x50, 0xce, + 0xd1, 0x55, 0x9b, 0x57, 0xc5, 0x90, 0x7c, 0x0e, 0x24, 0x90, 0xd9, 0x1c, 0x07, 0x9e, 0xc3, 0x58, + 0x2d, 0xd2, 0x75, 0x6b, 0xc1, 0xa5, 0x72, 0x3b, 0xbe, 0xb3, 0x3d, 0x7f, 0x62, 0x0d, 0x4d, 0x5c, + 0x04, 0x73, 0x2f, 0x6e, 0xc7, 0x6f, 0x25, 0x18, 0xe5, 0x20, 0xdb, 0x40, 0xb8, 0x3b, 0xf1, 0x7a, + 0xcc, 0x9c, 0x79, 0x8e, 0x57, 0x8a, 0x98, 0x20, 0x75, 0x39, 0xb3, 0x1b, 0x38, 0x90, 0x63, 0x7c, + 0x5a, 0x3e, 0x33, 0x4f, 0x5c, 0x6f, 0x64, 0xf9, 0xbc, 0x52, 0x92, 0x89, 0x54, 0xc0, 0x76, 0x25, + 0xc8, 0xf8, 0x3b, 0x0d, 0x0a, 0xe8, 0x0c, 0x15, 0x13, 0x0b, 0x36, 0xd1, 0xae, 0x65, 0x93, 0xd0, + 0xf9, 0x9c, 0xf9, 0x22, 0xa7, 0xa9, 0x9e, 0x22, 0xc1, 0xf9, 0x1d, 0x89, 0xa0, 0x9c, 0xaf, 0x46, + 0xe4, 0x71, 0x90, 0xa6, 0x23, 0xdd, 0x44, 0x42, 0x59, 0x94, 0x99, 0x1b, 0x5b, 0x82, 0x3f, 0xd7, + 0xa0, 0x18, 0x65, 0x28, 0x8c, 0xe9, 0x4c, 0x46, 0xc7, 0xcc, 0x33, 0xdd, 0x13, 0x93, 0x9f, 0x5a, + 0x5e, 0x3f, 0xd8, 0x26, 0x65, 0x09, 0x6f, 0x9f, 0x74, 0x10, 0x1a, 0x4d, 0xc8, 0xa8, 0x44, 0x50, + 0x69, 0x82, 0x84, 0x8c, 0x6a, 0x72, 0xf2, 0x14, 0x36, 0x03, 0xb4, 0xb1, 0xe5, 0xf9, 0xb6, 0x08, + 0x53, 0x93, 0xdb, 0xef, 0x99, 0xba, 0x2e, 0xdb, 0x50, 0xb3, 0x87, 0xc1, 0x64, 0xc7, 0x7e, 0xcf, + 0x8c, 0x7f, 0xd7, 0xa0, 0x52, 0xf3, 0x98, 0xe5, 0x33, 0x99, 0xae, 0x51, 0xc6, 0x8b, 0x8a, 0x55, + 0xea, 0xf2, 0x62, 0x95, 0x8a, 0x17, 0xab, 0xc7, 0xb0, 0x22, 0xbd, 0xa3, 0x0c, 0x54, 0x49, 0xb0, + 0xae, 0x74, 0x8e, 0xc2, 0x23, 0x5b, 0xb0, 0xae, 0xc2, 0x26, 0xc2, 0x57, 0x6e, 0xae, 0x35, 0x39, + 0xd1, 0x0c, 0xb9, 0xdf, 0x87, 0xa2, 0x28, 0x37, 0xa2, 0x0e, 0x0e, 0x45, 0xe6, 0x93, 0xf7, 0x12, + 0x20, 0x60, 0x5d, 0x77, 0xdf, 0x7e, 0xc7, 0x8c, 0x3b, 0x70, 0x2b, 0x41, 0x33, 0x59, 0x8d, 0xc4, + 0x09, 0x12, 0xcb, 0xdd, 0xee, 0xd0, 0x3d, 0x7b, 0xcd, 0xc4, 0x31, 0x76, 0x4e, 0x1d, 0x6d, 0xbe, + 0xf6, 0x6e, 0xc2, 0xca, 0x19, 0x22, 0xaa, 0x84, 0xa5, 0x46, 0xc6, 0x2f, 0x35, 0xa8, 0x1c, 0x8d, + 0xfb, 0xcb, 0x59, 0xf0, 0x7a, 0xe5, 0x5e, 0xd8, 0xe3, 0xcc, 0xf6, 0x7b, 0xa7, 0x51, 0x7b, 0xa4, + 0x95, 0x3d, 0x70, 0x62, 0x66, 0x8f, 0x97, 0xb0, 0x8e, 0x25, 0xdd, 0x3c, 0x19, 0xba, 0x67, 0xa6, + 0x92, 0x54, 0xde, 0xf6, 0xdc, 0x5d, 0x6c, 0x06, 0x67, 0x6a, 0xd3, 0xb5, 0xef, 0xe7, 0xec, 0xb0, + 0x94, 0x65, 0x13, 0x34, 0x56, 0x96, 0x6d, 0x42, 0x1e, 0x01, 0x4d, 0xe7, 0xc4, 0xfd, 0xd5, 0xf4, + 0x37, 0x7e, 0x1b, 0x36, 0xf7, 0x6d, 0xee, 0x5f, 0xdb, 0xae, 0xc6, 0x37, 0x70, 0x73, 0x81, 0x50, + 0xb5, 0x21, 0x8f, 0x61, 0xd5, 0x76, 0xfa, 0x76, 0x2f, 0xbc, 0xbd, 0xdb, 0x5c, 0x0c, 0x4b, 0x21, + 0x3a, 0x0d, 0xd0, 0x8c, 0x37, 0x50, 0xa9, 0xb3, 0x21, 0xfb, 0xf8, 0xfe, 0x15, 0x76, 0x4c, 0xe0, + 0xac, 0xec, 0x78, 0x06, 0xb9, 0xce, 0xd4, 0xe9, 0x75, 0x7c, 0x4b, 0x9e, 0x5e, 0xa6, 0x4e, 0xcf, + 0x1c, 0x9f, 0x5a, 0x3c, 0xf9, 0xd2, 0x41, 0xa0, 0x1e, 0x8a, 0x59, 0x9a, 0xe7, 0xc1, 0x4f, 0x91, + 0x12, 0x7a, 0x13, 0xcf, 0x63, 0x8e, 0x6f, 0x22, 0xb9, 0x70, 0x21, 0xf7, 0xad, 0xd1, 0x18, 0x45, + 0x49, 0xd3, 0x0d, 0x35, 0x2b, 0x88, 0xbb, 0xc1, 0x9c, 0xf1, 0x17, 0x1a, 0x14, 0x0f, 0x44, 0xc2, + 0xb7, 0x9d, 0x01, 0x3a, 0x51, 0x34, 0x8d, 0xbe, 0xeb, 0x59, 0x03, 0x26, 0xf3, 0x89, 0xec, 0xdd, + 0x0a, 0x0a, 0x26, 0xd2, 0x88, 0x28, 0xe8, 0x9e, 0x7b, 0x66, 0xf6, 0xb0, 0xed, 0x97, 0xcc, 0x73, + 0x9e, 0x7b, 0x26, 0x3b, 0xfe, 0x87, 0x10, 0x76, 0x36, 0xa6, 0xc7, 0xac, 0xbe, 0xd9, 0x9b, 0x60, + 0x14, 0xa7, 0x69, 0x39, 0x80, 0x53, 0x66, 0xf5, 0x6b, 0x93, 0xa0, 0xa9, 0x94, 0x32, 0x66, 0x54, + 0x8b, 0x18, 0x0a, 0xf6, 0x7b, 0x70, 0xbb, 0xce, 0x78, 0xcf, 0xb3, 0x8f, 0x3f, 0xbe, 0x2b, 0xfe, + 0x3b, 0x05, 0x77, 0x12, 0x99, 0x87, 0x61, 0x13, 0x24, 0x33, 0x6d, 0xc9, 0x64, 0xf6, 0x04, 0xd0, + 0x13, 0x26, 0xf7, 0xad, 0xe0, 0xcc, 0xfa, 0xc9, 0x82, 0xcb, 0x84, 0x77, 0x69, 0x8e, 0x07, 0x7e, + 0x7e, 0x0e, 0xa5, 0x91, 0xb2, 0xbc, 0x69, 0x3b, 0x27, 0x6e, 0x62, 0x7b, 0x1f, 0xf5, 0x0d, 0x2d, + 0x8e, 0xa2, 0x9e, 0xda, 0x06, 0x72, 0xec, 0xb9, 0xfe, 0x29, 0xf3, 0x16, 0x33, 0xa8, 0xae, 0x66, + 0xae, 0x48, 0x19, 0xd9, 0x0f, 0x49, 0x19, 0x3f, 0x82, 0x42, 0x0f, 0x53, 0x2d, 0x86, 0x18, 0x76, + 0x36, 0x69, 0x0a, 0x12, 0x24, 0x02, 0x6b, 0x21, 0xa7, 0xac, 0x2e, 0xe4, 0x94, 0x01, 0x14, 0x22, + 0xe7, 0x3c, 0xd1, 0xb1, 0x47, 0xfc, 0x88, 0xbf, 0xc9, 0x63, 0x75, 0xe9, 0x96, 0x4a, 0xb8, 0x09, + 0x89, 0xd0, 0x46, 0xae, 0xde, 0x08, 0x64, 0x8e, 0xdd, 0xfe, 0x54, 0x7d, 0xaa, 0xc0, 0xdf, 0xc6, + 0x57, 0x50, 0x8c, 0x1e, 0x28, 0xc9, 0xb6, 0x3a, 0x1b, 0x24, 0x75, 0x10, 0x11, 0x44, 0x79, 0x6a, + 0x30, 0x4c, 0x58, 0x55, 0x47, 0xcb, 0x44, 0x11, 0xb7, 0x63, 0x22, 0x56, 0x92, 0x8e, 0xa4, 0x57, + 0x88, 0xf7, 0x35, 0xe4, 0x82, 0xb3, 0x2b, 0xf9, 0x22, 0x7a, 0x44, 0x91, 0xf2, 0x6d, 0x24, 0xb1, + 0x8c, 0x1c, 0x72, 0x9b, 0x50, 0xae, 0xbe, 0x1b, 0x44, 0x2d, 0x79, 0x45, 0xfb, 0x5c, 0x81, 0xd5, + 0x91, 0xcd, 0x79, 0xd0, 0x04, 0x15, 0x69, 0x30, 0x14, 0xac, 0x0e, 0xac, 0xf3, 0x8f, 0xc6, 0xca, + 0x76, 0x3e, 0x16, 0xab, 0xce, 0x64, 0xf4, 0x51, 0x58, 0x7d, 0x01, 0x3a, 0x26, 0xa8, 0xe5, 0x99, + 0x19, 0x1d, 0xa8, 0xd4, 0x6d, 0xee, 0xdb, 0x4e, 0xcf, 0xbf, 0x26, 0xe9, 0x25, 0x72, 0xbc, 0x02, + 0xd2, 0x75, 0xc7, 0xd4, 0x3d, 0xe3, 0x51, 0x76, 0xe1, 0x3d, 0x8f, 0x16, 0xbd, 0xe7, 0x09, 0xae, + 0x62, 0x52, 0x97, 0x5e, 0xc5, 0x18, 0x1c, 0x36, 0x0f, 0x99, 0xd7, 0x63, 0x8e, 0x6f, 0x0f, 0x19, + 0xbf, 0x86, 0x94, 0xf7, 0xa1, 0x30, 0x9e, 0x11, 0x62, 0xa7, 0xa9, 0xd1, 0x28, 0x28, 0xaa, 0x47, + 0x3a, 0xae, 0xc7, 0x63, 0x00, 0xec, 0x45, 0xf1, 0x6b, 0x23, 0xd1, 0x21, 0x3d, 0xb2, 0x1d, 0x5c, + 0xa1, 0x48, 0xc5, 0x4f, 0x84, 0x58, 0xe7, 0x4a, 0x7b, 0xf1, 0xd3, 0xf8, 0xcf, 0x14, 0xe8, 0x2a, + 0x86, 0x5f, 0xda, 0xdc, 0x77, 0x07, 0x9e, 0x35, 0xba, 0x4a, 0xc2, 0xdb, 0x90, 0xb3, 0x1d, 0x9f, + 0x79, 0xef, 0xac, 0xa1, 0x62, 0x15, 0x8e, 0x2f, 0x96, 0x8d, 0x18, 0x50, 0x12, 0xc7, 0xd1, 0xbe, + 0xdb, 0x53, 0x45, 0x4a, 0x56, 0x97, 0xc2, 0xc8, 0x76, 0xea, 0x6e, 0x4f, 0xd6, 0xa9, 0x6d, 0x65, + 0xdb, 0x6c, 0x42, 0x86, 0x57, 0x52, 0x46, 0x6e, 0xbb, 0x7e, 0x07, 0x0a, 0x52, 0x4c, 0xfc, 0x00, + 0xaa, 0xee, 0xc6, 0x6e, 0x2e, 0x1e, 0x40, 0xd0, 0x1a, 0x54, 0xaa, 0x24, 0x2d, 0xf3, 0x14, 0x72, + 0x7c, 0x72, 0x6c, 0x86, 0x37, 0x12, 0x97, 0xde, 0x77, 0xad, 0xf2, 0xc9, 0x71, 0x75, 0x30, 0xe0, + 0xe4, 0x19, 0x94, 0x04, 0x55, 0xfc, 0xce, 0xe2, 0xc2, 0x6b, 0xaf, 0x02, 0x9f, 0x1c, 0x07, 0x03, + 0x91, 0xf2, 0xf0, 0xf7, 0x87, 0x5d, 0xe3, 0x7e, 0x05, 0x45, 0xaa, 0x4a, 0xf9, 0x07, 0x50, 0xff, + 0x3e, 0x40, 0x07, 0x35, 0x40, 0x5a, 0x71, 0x06, 0x96, 0xaa, 0x47, 0xbd, 0x0b, 0x52, 0xc7, 0xeb, + 0x7f, 0x34, 0x30, 0xfe, 0x49, 0x83, 0x52, 0xc4, 0x35, 0xcc, 0x23, 0x2f, 0xa0, 0x2c, 0x4d, 0xf4, + 0x96, 0x4d, 0xa3, 0xb7, 0xcd, 0xb7, 0x16, 0xed, 0x14, 0x5c, 0xdb, 0x16, 0x07, 0x51, 0xe3, 0xbc, + 0x10, 0xc7, 0x2d, 0xd5, 0xca, 0x44, 0x2f, 0x9c, 0xe3, 0x0c, 0xa2, 0x16, 0xa1, 0x45, 0x2f, 0x6a, + 0x9f, 0x67, 0x33, 0x1d, 0x23, 0xc7, 0xc3, 0x78, 0x64, 0xcc, 0x4c, 0x12, 0x28, 0x8f, 0xa7, 0xc4, + 0x1a, 0x14, 0x22, 0xda, 0x90, 0xa7, 0xb0, 0x2a, 0x2f, 0x87, 0x83, 0xec, 0x7f, 0xfb, 0xa2, 0x98, + 0x64, 0x1e, 0x0d, 0x50, 0x8d, 0xff, 0xd0, 0x94, 0xbb, 0x77, 0xa6, 0xf2, 0x34, 0x7e, 0xf5, 0xbb, + 0x03, 0x6c, 0xeb, 0xe4, 0xb1, 0x06, 0x7f, 0x87, 0x5b, 0x21, 0xbd, 0xd4, 0x56, 0x88, 0x06, 0x74, + 0xe6, 0xc3, 0x03, 0x3a, 0xbb, 0x74, 0x40, 0xff, 0x14, 0xb2, 0x72, 0x2b, 0x11, 0xc8, 0xe0, 0x43, + 0x05, 0x0d, 0x3f, 0x10, 0xe2, 0x6f, 0x52, 0x86, 0x94, 0xef, 0xa2, 0x36, 0x1a, 0x4d, 0xf9, 0xae, + 0xf1, 0x8f, 0x33, 0x7b, 0x48, 0xa2, 0x2b, 0xec, 0xb1, 0x05, 0x2b, 0xb8, 0xa5, 0x93, 0xbf, 0xd1, + 0xcb, 0xed, 0xac, 0x30, 0x62, 0x9a, 0xa7, 0x3f, 0x5c, 0xf3, 0xcc, 0xd2, 0x9a, 0xff, 0xcd, 0x2c, + 0xe0, 0xd5, 0xd7, 0xc0, 0x6d, 0x58, 0x95, 0x9f, 0x77, 0x2e, 0x7b, 0x8e, 0x10, 0xa0, 0xc4, 0x04, + 0x4e, 0x7d, 0xb8, 0xc0, 0xe9, 0xa5, 0x05, 0x7e, 0x04, 0x39, 0xfc, 0x54, 0x6b, 0x3b, 0xbe, 0x28, + 0x00, 0x43, 0xcb, 0x57, 0xce, 0x12, 0x3f, 0x11, 0xe2, 0x3a, 0xca, 0x59, 0xe2, 0xa7, 0xf1, 0x3f, + 0x1a, 0x10, 0x45, 0x1c, 0xf9, 0xa8, 0x73, 0x95, 0xcf, 0x3e, 0x87, 0x15, 0xd7, 0xb3, 0x07, 0xb6, + 0x93, 0xd8, 0x69, 0x07, 0x02, 0x50, 0x85, 0x14, 0x71, 0x71, 0xfa, 0x5a, 0x2e, 0xfe, 0x3f, 0x09, + 0xee, 0x6d, 0xd8, 0x88, 0xb7, 0x70, 0x94, 0xf1, 0xc9, 0xd0, 0x9f, 0x3d, 0x50, 0x91, 0xf6, 0x53, + 0x0f, 0x54, 0xbe, 0x84, 0x1f, 0x5e, 0xd4, 0x91, 0x24, 0xd1, 0xa5, 0x03, 0xba, 0x6d, 0xd8, 0x88, + 0x77, 0x77, 0x97, 0xae, 0x22, 0xb0, 0x63, 0x0d, 0xdc, 0x55, 0xd8, 0xf1, 0x1e, 0xed, 0x52, 0xec, + 0x47, 0xb0, 0x79, 0x2d, 0xc9, 0x1f, 0x41, 0x65, 0xb1, 0x5d, 0x52, 0x14, 0xc1, 0x57, 0x04, 0x6d, + 0xf6, 0x15, 0xc1, 0xa8, 0xc3, 0xed, 0xe4, 0x5e, 0xa8, 0xe9, 0xb3, 0x91, 0x88, 0xc0, 0xb7, 0x6c, + 0x1a, 0xc4, 0xe4, 0x5b, 0x36, 0x8d, 0x3f, 0x04, 0x2a, 0x06, 0xab, 0xfe, 0x5c, 0x83, 0xbb, 0xc9, + 0x6c, 0xd4, 0xd2, 0x6f, 0xe1, 0x5e, 0xa4, 0x4d, 0x12, 0xf1, 0x12, 0x20, 0x98, 0xb6, 0xcf, 0x46, + 0xc1, 0xee, 0xfc, 0xcd, 0xf8, 0x07, 0xc4, 0x0b, 0x05, 0xa3, 0x77, 0xc6, 0x17, 0xce, 0x71, 0xe3, + 0x1c, 0xd6, 0x13, 0x95, 0xff, 0x08, 0x67, 0xa6, 0x7b, 0x00, 0xa2, 0x74, 0x79, 0xc8, 0x53, 0xb5, + 0x51, 0x79, 0x6b, 0x30, 0x90, 0x8b, 0x18, 0x47, 0x40, 0x62, 0x11, 0x2f, 0x97, 0x7e, 0x01, 0x85, + 0x19, 0x51, 0xa0, 0xea, 0x0f, 0x2f, 0x3c, 0x4b, 0x21, 0x1a, 0x85, 0x90, 0x2b, 0x37, 0x7e, 0xa1, + 0xc1, 0x66, 0xb4, 0x68, 0x49, 0xf8, 0xbc, 0x87, 0xf2, 0xd2, 0x43, 0x97, 0xde, 0x36, 0xec, 0xc1, + 0x5a, 0xb0, 0x5f, 0xa3, 0x4a, 0x14, 0x9e, 0xfc, 0xe8, 0xe2, 0x6d, 0x2b, 0xe5, 0x29, 0xa9, 0xcd, + 0xab, 0x74, 0xda, 0x87, 0x8d, 0xd8, 0x16, 0x0e, 0xb8, 0x25, 0x7d, 0x08, 0x0e, 0x77, 0xb2, 0xe4, + 0xb4, 0x1e, 0xd9, 0xcf, 0xca, 0x6e, 0x67, 0x61, 0x5a, 0x8b, 0xe8, 0x47, 0x2c, 0xb8, 0x13, 0xf0, + 0x57, 0x57, 0xe5, 0x72, 0x91, 0x58, 0xc8, 0xfc, 0x38, 0x69, 0xa9, 0x39, 0x2b, 0xd1, 0x9b, 0x83, + 0x44, 0x38, 0x37, 0x7e, 0x39, 0xb3, 0xac, 0x4c, 0x6c, 0x33, 0xcb, 0x2e, 0x51, 0x3d, 0xe3, 0xb6, + 0x4e, 0x5f, 0x6d, 0xeb, 0xcc, 0x47, 0xb5, 0x75, 0xf6, 0x57, 0xb4, 0x75, 0x44, 0xe3, 0x98, 0xad, + 0xe5, 0x23, 0xc6, 0x65, 0x6d, 0x3d, 0x67, 0xb7, 0xd0, 0xd6, 0x73, 0x70, 0xfc, 0xde, 0x7b, 0x77, + 0xb1, 0x78, 0xfd, 0x3f, 0xb0, 0xf8, 0x9f, 0x68, 0x50, 0xb9, 0x48, 0x71, 0xe2, 0x83, 0x11, 0x1a, + 0x3e, 0xf6, 0x9c, 0x23, 0xc1, 0xfe, 0x9f, 0x25, 0x2d, 0x9c, 0x68, 0x4b, 0x7a, 0x6f, 0x70, 0xc9, + 0x2c, 0x37, 0xfe, 0x59, 0x83, 0x9b, 0xb1, 0x4e, 0x29, 0xe2, 0x86, 0x98, 0x89, 0xb5, 0xab, 0x4d, + 0x9c, 0xfa, 0xa8, 0x26, 0x4e, 0x7f, 0x90, 0x89, 0xff, 0x10, 0x6e, 0x24, 0xa8, 0x43, 0xfa, 0x70, + 0x37, 0x92, 0x41, 0xf0, 0x99, 0x68, 0x82, 0x59, 0x7f, 0x92, 0x9c, 0x42, 0xe2, 0x66, 0xa1, 0x95, + 0x41, 0xf2, 0x04, 0x37, 0xa6, 0x61, 0xd7, 0x79, 0x49, 0xad, 0xb9, 0xde, 0xe5, 0xd7, 0x6f, 0xc0, + 0xda, 0x6c, 0x3b, 0x46, 0x8b, 0x4d, 0x69, 0x10, 0x5d, 0xc9, 0xf8, 0x16, 0xca, 0x71, 0x4b, 0x90, + 0x3a, 0xe8, 0x73, 0x94, 0x97, 0x9e, 0x8f, 0x94, 0x49, 0xcb, 0x31, 0xb6, 0xdc, 0xf8, 0x37, 0x0d, + 0x36, 0xe6, 0xef, 0x1e, 0xe6, 0xeb, 0x4d, 0x31, 0xa1, 0x23, 0x08, 0xfa, 0x90, 0x5f, 0xd7, 0x42, + 0xe3, 0x85, 0xe9, 0x3e, 0x54, 0x4b, 0xad, 0xf3, 0x06, 0x6e, 0x86, 0x76, 0x3b, 0x55, 0x73, 0xb1, + 0x28, 0x79, 0x90, 0xb4, 0x54, 0xcc, 0x38, 0x74, 0x63, 0x10, 0x87, 0xca, 0xf0, 0xf8, 0x57, 0x0d, + 0xf2, 0x9d, 0x9e, 0xe5, 0x5c, 0xf7, 0xfd, 0x6d, 0xf2, 0x5b, 0x26, 0xd1, 0x81, 0x0c, 0xed, 0x77, + 0xea, 0x32, 0x59, 0x7e, 0xbd, 0xcc, 0x23, 0x04, 0xef, 0x92, 0xc3, 0x07, 0x44, 0x99, 0xe8, 0x03, + 0xa2, 0x47, 0x70, 0x23, 0xf8, 0xd6, 0x31, 0xb6, 0x3c, 0x6b, 0x38, 0x64, 0x43, 0xd3, 0xee, 0xab, + 0x8f, 0x57, 0xeb, 0x6a, 0xea, 0x50, 0xcd, 0x34, 0xfb, 0xe4, 0x01, 0x14, 0x47, 0xd6, 0x79, 0x88, + 0xab, 0x9e, 0xb0, 0x14, 0x46, 0xd6, 0x79, 0x80, 0x24, 0x2a, 0xe7, 0x8d, 0x60, 0x20, 0xb4, 0xfb, + 0x35, 0x79, 0xc3, 0x73, 0x0f, 0x80, 0x33, 0xce, 0xb1, 0xb1, 0xec, 0x2b, 0x23, 0xe4, 0x15, 0xa4, + 0x89, 0xa7, 0x7d, 0xde, 0xb3, 0x1c, 0xf5, 0xc0, 0x27, 0xab, 0xa6, 0x43, 0xe7, 0x5c, 0xfe, 0x6e, + 0xa7, 0x09, 0x1b, 0x71, 0x8d, 0xd5, 0xe7, 0x8f, 0x84, 0xbe, 0x7a, 0xee, 0xcd, 0x4d, 0x6a, 0xee, + 0xcd, 0xcd, 0xd6, 0xbf, 0xa4, 0x20, 0x1f, 0x3e, 0x85, 0x25, 0x6b, 0x50, 0x38, 0xa8, 0x76, 0x6b, + 0x2f, 0xcd, 0x57, 0x47, 0x0d, 0xfa, 0x9d, 0xae, 0x91, 0x4d, 0x20, 0x12, 0x70, 0xf8, 0x92, 0x56, + 0x3b, 0x0d, 0x05, 0x4f, 0x91, 0x32, 0x40, 0xb7, 0x41, 0x0f, 0xd4, 0x38, 0x2d, 0x08, 0x69, 0xb5, + 0xb5, 0x17, 0x20, 0x64, 0x88, 0x0e, 0xc5, 0x43, 0xda, 0xd8, 0x6d, 0xbe, 0x51, 0x90, 0xac, 0x20, + 0xd9, 0x69, 0xb7, 0xf7, 0xd5, 0x78, 0x85, 0x7c, 0x02, 0xeb, 0xb5, 0x76, 0xab, 0xd3, 0x35, 0x3b, + 0xb5, 0x36, 0x0d, 0x08, 0x57, 0x49, 0x05, 0x36, 0x76, 0x8f, 0x5a, 0xb5, 0x6e, 0xb3, 0xdd, 0x8a, + 0xcd, 0xe4, 0x04, 0xcb, 0x56, 0xa3, 0xd3, 0x6d, 0xd4, 0x15, 0x24, 0x4f, 0x08, 0x94, 0x5f, 0x37, + 0xf7, 0xeb, 0xb5, 0x2a, 0x0d, 0x60, 0x40, 0x6e, 0xc0, 0x9a, 0x94, 0xb8, 0xba, 0x1f, 0xac, 0x55, + 0x20, 0xb7, 0x61, 0x73, 0xaf, 0xd1, 0x36, 0x77, 0xda, 0x47, 0xad, 0x7a, 0xb3, 0xb5, 0x67, 0xee, + 0xb4, 0x03, 0xb9, 0x8a, 0x42, 0x45, 0x31, 0x57, 0x6f, 0x76, 0xba, 0xd5, 0x56, 0x2d, 0x58, 0xae, + 0x24, 0xe4, 0x13, 0xf0, 0xc3, 0xf6, 0xfe, 0x77, 0x7b, 0xed, 0x96, 0x02, 0x97, 0x85, 0xa6, 0x42, + 0xf3, 0x8e, 0x02, 0xac, 0x09, 0xb1, 0x1a, 0x6f, 0x9a, 0x9d, 0x6e, 0x00, 0xd1, 0xb7, 0xee, 0x43, + 0x29, 0xf6, 0x1f, 0x2c, 0x64, 0x05, 0x52, 0x6d, 0xaa, 0x6b, 0x64, 0x15, 0xd2, 0xd5, 0x56, 0x5d, + 0x4f, 0x6d, 0x79, 0xea, 0x6d, 0xef, 0x81, 0xdb, 0x67, 0x42, 0x62, 0xa9, 0xe8, 0x41, 0xbb, 0xde, + 0x30, 0x5b, 0xed, 0x56, 0x43, 0xd7, 0x84, 0x6a, 0x11, 0x60, 0xf5, 0xdb, 0x3d, 0x3d, 0x35, 0x07, + 0x3b, 0xa8, 0xbe, 0xd1, 0xd3, 0x64, 0x03, 0xf4, 0x08, 0xac, 0xdb, 0xee, 0x56, 0xf7, 0xf5, 0xcc, + 0x3c, 0x66, 0xb3, 0xa5, 0x67, 0xb7, 0x9e, 0x42, 0x3e, 0xbc, 0x98, 0x43, 0x84, 0x36, 0xed, 0x9a, + 0x6d, 0x5a, 0x6f, 0x50, 0xb3, 0xda, 0xa9, 0xe9, 0x3f, 0x40, 0x39, 0x66, 0xb0, 0x7a, 0xa3, 0x53, + 0xd3, 0xb5, 0xad, 0x1a, 0xe4, 0x82, 0x27, 0xaf, 0x64, 0x1d, 0x4a, 0x88, 0x10, 0x32, 0xfd, 0xc1, + 0x1c, 0xa8, 0xfa, 0x46, 0xd7, 0xe2, 0x20, 0x14, 0x7c, 0xeb, 0x45, 0xec, 0x21, 0x6f, 0x57, 0x3e, + 0xb7, 0xd6, 0x63, 0x56, 0xaf, 0x52, 0x21, 0xc2, 0xbc, 0x2f, 0x0e, 0xf7, 0xab, 0xc2, 0x1a, 0x5b, + 0x7d, 0xd0, 0xe7, 0x1f, 0xf9, 0x89, 0x78, 0xa2, 0x8d, 0xee, 0x11, 0x6d, 0x09, 0x4f, 0xeb, 0x9a, + 0xe0, 0xa8, 0xc6, 0x9d, 0xc3, 0x46, 0xad, 0xb9, 0xdb, 0x6c, 0xd4, 0xf5, 0x14, 0x06, 0xa6, 0x84, + 0xa2, 0x61, 0xd3, 0xe4, 0x16, 0x7c, 0x32, 0x23, 0x33, 0x77, 0x69, 0xfb, 0xc0, 0x6c, 0xb6, 0xea, + 0x8d, 0x37, 0x7a, 0x66, 0xeb, 0x85, 0x7a, 0xfc, 0x11, 0x3c, 0x1e, 0xca, 0x41, 0xa6, 0xde, 0xae, + 0x75, 0x74, 0x8d, 0xe4, 0x21, 0xbb, 0x4b, 0x1b, 0xaf, 0x3a, 0x7a, 0x8a, 0x94, 0x20, 0x7f, 0xd8, + 0xee, 0x34, 0x45, 0x7c, 0x76, 0xf4, 0x34, 0x29, 0xc0, 0x6a, 0x7b, 0x77, 0xb7, 0xd3, 0xe8, 0x76, + 0xf4, 0xcc, 0xd6, 0x1f, 0xa8, 0x67, 0xd7, 0x28, 0x5f, 0x0e, 0x32, 0xfb, 0xed, 0xd6, 0x9e, 0xae, + 0x11, 0x80, 0x95, 0x7a, 0xfb, 0x68, 0x67, 0xbf, 0xa1, 0xa7, 0x04, 0xbe, 0xd8, 0x05, 0x8d, 0x6a, + 0x4b, 0x12, 0x7f, 0xd3, 0xf8, 0xee, 0x75, 0x9b, 0xd6, 0xf5, 0x8c, 0xc0, 0xef, 0x36, 0xde, 0x74, + 0xf5, 0xac, 0xc0, 0x97, 0x81, 0xae, 0xaf, 0x88, 0xe5, 0x64, 0x14, 0x36, 0x5b, 0x5d, 0x7d, 0x15, + 0x45, 0xaa, 0x76, 0x1b, 0x7a, 0x6e, 0xeb, 0x47, 0x90, 0x0f, 0xbf, 0x26, 0x0b, 0xf0, 0xee, 0x11, + 0x5a, 0x21, 0x07, 0x99, 0x66, 0xab, 0x46, 0xf5, 0xd4, 0xd6, 0x9f, 0x69, 0xb0, 0x36, 0x77, 0x76, + 0x14, 0x0b, 0x56, 0xf7, 0xf6, 0xd0, 0x2b, 0xb8, 0xb7, 0xc5, 0x40, 0x18, 0xbb, 0xd9, 0xaa, 0x75, + 0xcd, 0x5a, 0xfb, 0xa8, 0xd5, 0xd5, 0x57, 0x02, 0x24, 0xe1, 0xcd, 0x54, 0x38, 0x68, 0x2a, 0x79, + 0xc5, 0xa0, 0x73, 0x74, 0xa0, 0x67, 0x84, 0x64, 0x62, 0x20, 0xa9, 0xb2, 0x62, 0x1b, 0x88, 0x61, + 0xb7, 0x7d, 0x68, 0xd2, 0xf6, 0xeb, 0x8e, 0xbe, 0x2a, 0xe2, 0x49, 0x40, 0x0e, 0x1b, 0xb4, 0xd6, + 0x68, 0x75, 0x9b, 0xfb, 0x8d, 0x8e, 0x9e, 0xdb, 0xfa, 0xa3, 0xf0, 0xee, 0xb4, 0x2b, 0xbf, 0xad, + 0x95, 0xf7, 0x68, 0xfb, 0xe8, 0xd0, 0xdc, 0xf9, 0xce, 0xdc, 0x6d, 0x36, 0xf6, 0xeb, 0x32, 0xf4, + 0x43, 0x18, 0x26, 0x15, 0x3d, 0x25, 0x78, 0x45, 0xf0, 0xf6, 0xbb, 0x0d, 0x2a, 0x5d, 0x19, 0x02, + 0xa3, 0x61, 0xa3, 0x67, 0x30, 0x90, 0x82, 0xa9, 0x97, 0xcd, 0x4e, 0xb7, 0xbd, 0x47, 0xab, 0x07, + 0x7a, 0xf6, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x9a, 0x5b, 0xd1, 0x4e, 0x1c, 0x37, 0x00, 0x00, } diff --git a/tablestore/otsprotocol/search.proto b/tablestore/otsprotocol/search.proto index 302d229..966c138 100644 --- a/tablestore/otsprotocol/search.proto +++ b/tablestore/otsprotocol/search.proto @@ -222,6 +222,7 @@ message SearchRequest { optional ColumnsToGet columns_to_get = 3; optional bytes search_query = 4; repeated bytes routing_values = 5; + optional int32 timeoutMs = 6; } /** @@ -673,6 +674,7 @@ message ParallelScanRequest { optional ColumnsToGet columns_to_get = 3; optional bytes session_id = 4; optional bytes scan_query = 5; + optional int32 timeoutMs = 6; } message ParallelScanResponse { diff --git a/tablestore/otsprotocol/table_store.pb.go b/tablestore/otsprotocol/table_store.pb.go index 50fcaa1..d360a7d 100644 --- a/tablestore/otsprotocol/table_store.pb.go +++ b/tablestore/otsprotocol/table_store.pb.go @@ -1186,6 +1186,7 @@ func (m *ConsumedCapacity) GetCapacityUnit() *CapacityUnit { type StreamSpecification struct { EnableStream *bool `protobuf:"varint,1,req,name=enable_stream" json:"enable_stream,omitempty"` ExpirationTime *int32 `protobuf:"varint,2,opt,name=expiration_time" json:"expiration_time,omitempty"` + ColumnsToGet []string `protobuf:"bytes,3,rep,name=columns_to_get" json:"columns_to_get,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1230,11 +1231,19 @@ func (m *StreamSpecification) GetExpirationTime() int32 { return 0 } +func (m *StreamSpecification) GetColumnsToGet() []string { + if m != nil { + return m.ColumnsToGet + } + return nil +} + type StreamDetails struct { EnableStream *bool `protobuf:"varint,1,req,name=enable_stream" json:"enable_stream,omitempty"` StreamId *string `protobuf:"bytes,2,opt,name=stream_id" json:"stream_id,omitempty"` ExpirationTime *int32 `protobuf:"varint,3,opt,name=expiration_time" json:"expiration_time,omitempty"` LastEnableTime *int64 `protobuf:"varint,4,opt,name=last_enable_time" json:"last_enable_time,omitempty"` + ColumnsToGet []string `protobuf:"bytes,5,rep,name=columns_to_get" json:"columns_to_get,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1293,6 +1302,13 @@ func (m *StreamDetails) GetLastEnableTime() int64 { return 0 } +func (m *StreamDetails) GetColumnsToGet() []string { + if m != nil { + return m.ColumnsToGet + } + return nil +} + type CreateTableRequest struct { TableMeta *TableMeta `protobuf:"bytes,1,req,name=table_meta" json:"table_meta,omitempty"` ReservedThroughput *ReservedThroughput `protobuf:"bytes,2,req,name=reserved_throughput" json:"reserved_throughput,omitempty"` @@ -3927,6 +3943,7 @@ func (m *GetStreamRecordResponse) GetNextShardIterator() string { type GetStreamRecordResponse_StreamRecord struct { ActionType *ActionType `protobuf:"varint,1,req,name=action_type,enum=otsprotocol.ActionType" json:"action_type,omitempty"` Record []byte `protobuf:"bytes,2,req,name=record" json:"record,omitempty"` + OriginRecord []byte `protobuf:"bytes,3,opt,name=origin_record" json:"origin_record,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -3971,6 +3988,13 @@ func (m *GetStreamRecordResponse_StreamRecord) GetRecord() []byte { return nil } +func (m *GetStreamRecordResponse_StreamRecord) GetOriginRecord() []byte { + if m != nil { + return m.OriginRecord + } + return nil +} + type ComputeSplitPointsBySizeRequest struct { TableName *string `protobuf:"bytes,1,req,name=table_name" json:"table_name,omitempty"` SplitSize *int64 `protobuf:"varint,2,req,name=split_size" json:"split_size,omitempty"` @@ -5293,210 +5317,209 @@ func init() { proto.RegisterType((*SQLQueryResponse)(nil), "otsprotocol.SQLQueryResponse") } -func init() { - proto.RegisterFile("table_store.proto", fileDescriptor_f723cea3e4fa0cb7) -} +func init() { proto.RegisterFile("table_store.proto", fileDescriptor_f723cea3e4fa0cb7) } var fileDescriptor_f723cea3e4fa0cb7 = []byte{ - // 3194 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0xcb, 0x73, 0xe3, 0xc6, - 0xd1, 0x37, 0x08, 0x3e, 0xc4, 0xe6, 0x43, 0x20, 0xb8, 0x92, 0x28, 0x69, 0xd7, 0x96, 0x61, 0x7b, - 0xcd, 0xa5, 0xd7, 0xb2, 0x57, 0x9f, 0xed, 0xf5, 0xab, 0xca, 0x1f, 0x45, 0x52, 0x6b, 0x7e, 0x4b, - 0x91, 0x12, 0x09, 0x79, 0xed, 0xef, 0x02, 0x43, 0xc0, 0x78, 0x85, 0x5a, 0x12, 0xa0, 0x81, 0xe1, - 0x4a, 0x72, 0x8e, 0x29, 0xdf, 0x92, 0xca, 0x1f, 0x90, 0xaa, 0x5c, 0x73, 0xc8, 0x21, 0x95, 0x1c, - 0x52, 0xc9, 0x3d, 0xa9, 0xca, 0xcd, 0xff, 0x43, 0x6e, 0xb9, 0xe6, 0x0f, 0x48, 0xa5, 0xe6, 0x01, - 0x12, 0x00, 0x41, 0x51, 0xbb, 0xb6, 0xe3, 0x1b, 0x31, 0xd3, 0xd3, 0xd3, 0xfd, 0xeb, 0xc7, 0xf4, - 0xf4, 0x10, 0x4a, 0x58, 0x3f, 0x1d, 0x22, 0xcd, 0xc3, 0x8e, 0x8b, 0x76, 0xc7, 0xae, 0x83, 0x1d, - 0x39, 0xe7, 0x60, 0x8f, 0xfe, 0x32, 0x9c, 0xa1, 0x72, 0x1b, 0x52, 0x2d, 0xd7, 0x75, 0x5c, 0x39, - 0x0f, 0x49, 0xc3, 0x31, 0x51, 0x45, 0xd8, 0x49, 0x54, 0xb3, 0xf2, 0x2a, 0x64, 0x46, 0xc8, 0xf3, - 0xf4, 0xc7, 0xa8, 0x92, 0xd8, 0x11, 0xaa, 0x59, 0xe5, 0x1b, 0x90, 0x8e, 0x5c, 0x6b, 0xa4, 0xbb, - 0x97, 0x0f, 0xd1, 0xe5, 0xc0, 0x38, 0x43, 0x23, 0x9d, 0x2c, 0xb1, 0xf5, 0x91, 0xbf, 0xe4, 0x0e, - 0x24, 0xf1, 0xe5, 0x98, 0xd0, 0x27, 0xaa, 0xc5, 0xbd, 0xed, 0xdd, 0xc0, 0x2e, 0xbb, 0xb3, 0xa5, - 0xea, 0xe5, 0x18, 0xc9, 0x6f, 0x42, 0xda, 0x19, 0x63, 0xcb, 0xb1, 0x2b, 0xe2, 0x8e, 0x50, 0x2d, - 0xee, 0xdd, 0x5a, 0x40, 0xdc, 0xa3, 0x44, 0xca, 0x5d, 0x28, 0x1e, 0xe9, 0x2e, 0xb6, 0xc8, 0x47, - 0x5f, 0xb7, 0x1f, 0x23, 0xb9, 0x00, 0xa9, 0x53, 0xf4, 0xd8, 0xb2, 0xe9, 0xd6, 0x79, 0x39, 0x07, - 0x22, 0xb2, 0x4d, 0xba, 0x73, 0x5e, 0xf9, 0xab, 0x00, 0x79, 0x95, 0x28, 0xcd, 0x56, 0x7b, 0xf2, - 0x0d, 0xc8, 0x63, 0x6b, 0x84, 0x34, 0xec, 0x68, 0x43, 0xeb, 0x29, 0x11, 0x57, 0xa8, 0xa6, 0xc8, - 0xe8, 0x48, 0xbf, 0xd0, 0x9e, 0x22, 0xd7, 0x23, 0x54, 0x54, 0xcd, 0x94, 0x7c, 0x1f, 0x4a, 0xa7, - 0x43, 0xc7, 0x19, 0x69, 0x5f, 0x59, 0x43, 0x8c, 0x5c, 0x8d, 0x6a, 0xc4, 0x84, 0xbc, 0x19, 0x12, - 0x72, 0x9f, 0x50, 0x1d, 0x50, 0x22, 0xaa, 0x92, 0x0c, 0x70, 0x3a, 0x74, 0x8c, 0x27, 0x9a, 0x67, - 0x7d, 0x83, 0x2a, 0x49, 0xca, 0xec, 0x35, 0xb8, 0x65, 0xa2, 0xa7, 0x96, 0x4e, 0xc4, 0xd0, 0x0c, - 0x34, 0x1c, 0xfa, 0xbb, 0x69, 0x96, 0xad, 0x79, 0xc8, 0xa8, 0xa4, 0x76, 0x84, 0xaa, 0x48, 0x24, - 0xd1, 0x87, 0x43, 0xe7, 0x5c, 0x9b, 0x8c, 0x4d, 0x1d, 0xa3, 0x4a, 0x7a, 0x47, 0xa8, 0xae, 0x28, - 0x7f, 0x11, 0x20, 0x4b, 0xd5, 0x38, 0x44, 0x58, 0x27, 0xec, 0x99, 0x21, 0x03, 0x80, 0xef, 0x41, - 0x6e, 0xcc, 0xa0, 0xd2, 0x9e, 0xa0, 0xcb, 0x4a, 0x62, 0x47, 0xac, 0xe6, 0x16, 0x42, 0xc9, 0x4d, - 0xf6, 0x3e, 0x14, 0x4d, 0xf4, 0x95, 0x65, 0x23, 0x53, 0x33, 0x9c, 0xe1, 0x64, 0x44, 0x2c, 0x40, - 0x96, 0xed, 0x84, 0x96, 0x35, 0x19, 0x49, 0x83, 0x52, 0xf0, 0x95, 0x35, 0x00, 0xcb, 0x36, 0xd1, - 0x85, 0x36, 0x42, 0x58, 0xaf, 0x24, 0xe9, 0xaa, 0xf5, 0xd0, 0xaa, 0x36, 0x99, 0x26, 0xd2, 0x2a, - 0xa7, 0x90, 0x6d, 0x38, 0xb6, 0x49, 0x0d, 0x26, 0x7f, 0x04, 0x05, 0xd7, 0x39, 0xd7, 0xd0, 0x85, - 0xe5, 0x61, 0x64, 0x1b, 0x4c, 0xfa, 0xe2, 0xde, 0xab, 0xa1, 0xb5, 0x7d, 0xe7, 0xbc, 0xe5, 0x13, - 0xb4, 0x2e, 0xc6, 0xc8, 0xc0, 0x14, 0x35, 0xb9, 0x02, 0x12, 0x93, 0x53, 0x33, 0x7c, 0x86, 0xd4, - 0x52, 0x79, 0xe5, 0x0d, 0xc8, 0x37, 0xf4, 0xb1, 0x6e, 0x58, 0xf8, 0xf2, 0xc4, 0xb6, 0x30, 0x71, - 0x46, 0x17, 0xe9, 0x26, 0xb7, 0x6e, 0x01, 0x52, 0xe7, 0xae, 0x85, 0x99, 0xf7, 0xa6, 0x94, 0x6f, - 0x05, 0xd8, 0xec, 0x23, 0x0f, 0xb9, 0x4f, 0x91, 0xa9, 0x9e, 0xb9, 0xce, 0xe4, 0xf1, 0xd9, 0x78, - 0x82, 0x9b, 0x08, 0xeb, 0xd6, 0xd0, 0x93, 0xdf, 0x86, 0x82, 0xc1, 0x59, 0x69, 0x13, 0xdb, 0xc2, - 0x54, 0xc2, 0xdc, 0xde, 0x66, 0x48, 0xc2, 0xd0, 0x66, 0x5b, 0x20, 0x0f, 0x75, 0x0f, 0x6b, 0x96, - 0x6d, 0xb8, 0x48, 0xf7, 0x90, 0x46, 0x1c, 0x8c, 0xfa, 0x9f, 0x38, 0x9d, 0x33, 0x51, 0x70, 0x8e, - 0xf8, 0x90, 0xa8, 0x1c, 0x80, 0x3c, 0x2f, 0xc6, 0xb3, 0xef, 0xaf, 0x34, 0x41, 0x6a, 0x38, 0xb6, - 0x37, 0x19, 0x21, 0xd3, 0x1f, 0x7f, 0x0e, 0x2e, 0x2d, 0x28, 0x0f, 0xb0, 0x8b, 0xf4, 0xd1, 0x60, - 0x8c, 0x0c, 0xeb, 0x2b, 0xcb, 0x60, 0x98, 0xaf, 0x41, 0x01, 0xd9, 0x3c, 0x6b, 0x90, 0x59, 0xca, - 0x68, 0x45, 0xde, 0x80, 0x55, 0x74, 0x31, 0xb6, 0x5c, 0xe6, 0xce, 0x5c, 0x61, 0x02, 0xee, 0x10, - 0x0a, 0x8c, 0x8d, 0x8f, 0xe7, 0x02, 0x06, 0x25, 0xc8, 0xb2, 0x6f, 0xcd, 0x32, 0x59, 0x56, 0x89, - 0xe3, 0x29, 0x52, 0xfb, 0x55, 0x40, 0xa2, 0x20, 0x72, 0x3e, 0x74, 0x26, 0x49, 0x21, 0xfc, 0x5b, - 0x02, 0xe4, 0x86, 0x8b, 0x74, 0x8c, 0x68, 0x74, 0xf4, 0xd1, 0xd7, 0x13, 0xe4, 0x61, 0xe2, 0x9e, - 0x2c, 0x40, 0xa8, 0x7b, 0x32, 0xd5, 0xc3, 0xee, 0x39, 0x0b, 0xa6, 0x8f, 0xa1, 0xec, 0x72, 0x2b, - 0x68, 0x78, 0x6a, 0x06, 0x6a, 0xbe, 0xdc, 0xde, 0x4b, 0x61, 0xbf, 0x8c, 0xb5, 0x16, 0xdb, 0x89, - 0xa5, 0x30, 0x8f, 0x4a, 0x1c, 0xc5, 0x39, 0x94, 0x80, 0xde, 0x02, 0x18, 0xfb, 0xf9, 0xcb, 0xe3, - 0xa1, 0x13, 0xc9, 0x8f, 0xe1, 0xf4, 0xf6, 0x2e, 0xe4, 0x38, 0x52, 0xde, 0x98, 0xa7, 0x89, 0x68, - 0x88, 0xc6, 0x19, 0xee, 0x0d, 0xc8, 0xcd, 0x42, 0xd4, 0xab, 0x64, 0xae, 0x8c, 0xd1, 0x35, 0x28, - 0x87, 0x60, 0xf4, 0xc6, 0x8e, 0xed, 0x21, 0xe5, 0x3b, 0x01, 0xe4, 0x13, 0x9a, 0x87, 0x42, 0xf0, - 0xc6, 0xe5, 0x9f, 0x85, 0x30, 0x0a, 0x3f, 0x0e, 0x8c, 0x11, 0x54, 0x92, 0xd7, 0x43, 0x45, 0xf9, - 0xbb, 0x00, 0xe5, 0x90, 0x46, 0x4c, 0x53, 0xf9, 0x21, 0x6c, 0xc7, 0x88, 0xaf, 0x99, 0xcc, 0x89, - 0xb9, 0x0b, 0xdd, 0x5e, 0xa2, 0x46, 0x20, 0x85, 0x84, 0xb5, 0x49, 0xc4, 0x04, 0x5f, 0x48, 0x9b, - 0x3d, 0x28, 0x72, 0x6d, 0xfc, 0x1d, 0x19, 0x00, 0x5b, 0x31, 0x0a, 0xf1, 0x5d, 0x94, 0x1a, 0xdc, - 0x68, 0x22, 0xcf, 0x70, 0xad, 0xd3, 0xa5, 0xd6, 0x51, 0xfe, 0x99, 0x80, 0xb5, 0x08, 0x31, 0x57, - 0xfc, 0x59, 0x42, 0x65, 0x09, 0x48, 0x89, 0xef, 0x07, 0x92, 0xb8, 0x0c, 0xa4, 0x5d, 0xc8, 0xfb, - 0xf5, 0x8b, 0x8e, 0x27, 0x24, 0x76, 0xc8, 0xd1, 0x51, 0x99, 0x5f, 0x30, 0xa0, 0xf3, 0x31, 0xa0, - 0xa6, 0x96, 0x81, 0x4a, 0x8e, 0x5f, 0xef, 0x4c, 0x77, 0x4d, 0xcd, 0x1b, 0x0f, 0x2d, 0xec, 0x55, - 0xd2, 0x3b, 0x62, 0x35, 0x1f, 0x8d, 0xa5, 0x95, 0x2b, 0x63, 0x49, 0x06, 0xa9, 0x63, 0x79, 0x38, - 0x68, 0x13, 0xa5, 0x0a, 0xa5, 0xc0, 0x18, 0x87, 0xbe, 0x0c, 0xb9, 0x99, 0xa1, 0x88, 0x8f, 0x89, - 0xd5, 0xac, 0x52, 0x05, 0xb9, 0x89, 0x86, 0x68, 0x79, 0xc4, 0x91, 0x98, 0x0d, 0x51, 0xf2, 0x98, - 0xbd, 0x0d, 0x52, 0xc7, 0xd1, 0xcd, 0xa5, 0xcb, 0xcb, 0x50, 0x0a, 0xd0, 0xf1, 0xc5, 0x55, 0x90, - 0x4f, 0xec, 0xe1, 0x75, 0x96, 0xaf, 0x41, 0x39, 0x44, 0xc9, 0x19, 0x7c, 0x0a, 0x59, 0xd5, 0x1a, - 0x21, 0x96, 0xb9, 0x64, 0x00, 0x0f, 0xeb, 0x2e, 0x66, 0x19, 0x5b, 0xa0, 0xf5, 0x8d, 0x04, 0x2b, - 0xc8, 0x36, 0x67, 0x27, 0x86, 0x48, 0x0e, 0x08, 0x8f, 0xc7, 0x68, 0xf0, 0x74, 0xfc, 0x7f, 0x28, - 0xf4, 0x11, 0x9e, 0xb8, 0x76, 0xc3, 0xb1, 0x31, 0xb2, 0xb1, 0x7c, 0x17, 0x72, 0x2e, 0x1d, 0x60, - 0x75, 0x98, 0x40, 0xeb, 0xb0, 0x8d, 0x88, 0xb7, 0x91, 0x79, 0x5a, 0x82, 0x6d, 0x93, 0x7c, 0x44, - 0xa9, 0x79, 0xc9, 0xc0, 0x40, 0x4e, 0x50, 0x90, 0x7f, 0x95, 0x80, 0xc2, 0x03, 0x84, 0xfb, 0xce, - 0xf9, 0x55, 0x29, 0xad, 0x1c, 0x2d, 0xa9, 0x48, 0x75, 0xb9, 0x0e, 0x45, 0xc6, 0xd0, 0x23, 0x25, - 0xe4, 0x63, 0x84, 0x69, 0xcd, 0x94, 0xa5, 0x71, 0x44, 0xea, 0x4a, 0x97, 0x68, 0xce, 0xd3, 0x51, - 0x24, 0x8e, 0xa6, 0xb8, 0x44, 0xab, 0xcd, 0x14, 0x3d, 0xe5, 0xb6, 0x20, 0x6f, 0xe8, 0xc6, 0x19, - 0xd2, 0x68, 0xe9, 0xe8, 0xb1, 0xca, 0xef, 0xc3, 0x24, 0x76, 0x27, 0x48, 0x2e, 0x42, 0x9a, 0xd5, - 0xa0, 0x95, 0x0c, 0xa9, 0x77, 0xa8, 0x9b, 0x52, 0x64, 0x79, 0xdd, 0xb6, 0x42, 0x0f, 0x50, 0x19, - 0x80, 0x60, 0xcb, 0xc7, 0xb2, 0x74, 0xac, 0x00, 0x29, 0xec, 0x3c, 0x41, 0x76, 0x05, 0xe8, 0xc2, - 0x75, 0x28, 0x62, 0x57, 0xb7, 0x3d, 0xdd, 0xa0, 0x87, 0xac, 0x65, 0x56, 0x72, 0xb4, 0xa2, 0x3f, - 0x85, 0xa2, 0x0f, 0x08, 0xf7, 0xce, 0xb7, 0x60, 0xc5, 0xe0, 0x55, 0x05, 0x4f, 0x0b, 0xe1, 0x6a, - 0x72, 0xae, 0xe4, 0xc8, 0x81, 0xe8, 0x3a, 0xe7, 0x1c, 0x26, 0x19, 0xc0, 0x46, 0x17, 0x58, 0x63, - 0x7b, 0x8b, 0xb4, 0x48, 0xfb, 0x83, 0x00, 0x12, 0xcb, 0xbd, 0x4b, 0x80, 0x97, 0x01, 0x48, 0x91, - 0x68, 0x9c, 0x51, 0x2c, 0x19, 0xc3, 0x3b, 0x90, 0x9d, 0x15, 0x7d, 0x62, 0x4c, 0x9a, 0x9a, 0xd5, - 0x98, 0x7b, 0x50, 0x9c, 0x9a, 0x9e, 0xba, 0x0e, 0x37, 0xc7, 0x56, 0x8c, 0xaf, 0xf8, 0xce, 0x35, - 0x8f, 0x4b, 0x8a, 0xe2, 0x72, 0x0c, 0xa5, 0x80, 0xc8, 0xdf, 0x1b, 0x1a, 0x02, 0xc3, 0x6f, 0x05, - 0x28, 0x1c, 0x4d, 0x96, 0x39, 0x5f, 0x08, 0xcd, 0x9f, 0x48, 0xf9, 0x2e, 0x14, 0x7d, 0x41, 0x7f, - 0x10, 0xcd, 0xff, 0x28, 0x80, 0xc4, 0x52, 0xd6, 0xf3, 0x44, 0xde, 0x4f, 0xe7, 0x01, 0x01, 0x99, - 0x7f, 0x10, 0x1c, 0x7e, 0x9e, 0x80, 0x4d, 0x9a, 0x36, 0xdb, 0xf6, 0xbe, 0x8e, 0x8d, 0xb3, 0xe7, - 0x48, 0x45, 0xe4, 0x54, 0x9a, 0x86, 0xb6, 0x48, 0x3f, 0xe7, 0x33, 0x53, 0x32, 0x26, 0x33, 0xa5, - 0x9e, 0x29, 0x33, 0xa5, 0x63, 0x33, 0x53, 0x26, 0x36, 0x33, 0xad, 0xc4, 0x66, 0xa6, 0x6c, 0x4c, - 0x66, 0x02, 0x0a, 0x6c, 0x07, 0xe4, 0x18, 0xed, 0xdf, 0x83, 0x34, 0xd5, 0x9e, 0x9d, 0x87, 0xd1, - 0x72, 0x62, 0x21, 0x6a, 0xca, 0x6f, 0x04, 0xa8, 0xf4, 0x9d, 0xf3, 0xc8, 0x1c, 0x37, 0x57, 0x01, - 0x52, 0x96, 0xa7, 0x39, 0x4f, 0xf8, 0xdd, 0xe3, 0x65, 0x48, 0x21, 0xd7, 0x75, 0x5c, 0x5e, 0x9d, - 0xca, 0xa1, 0x2d, 0x58, 0x03, 0x24, 0x68, 0x60, 0x56, 0x8a, 0x5d, 0xcf, 0xc0, 0x49, 0x0a, 0x42, - 0x38, 0xfb, 0xa5, 0xa8, 0xd1, 0x11, 0x6c, 0xc5, 0x49, 0xcf, 0x25, 0x8c, 0x33, 0xfa, 0xff, 0x40, - 0xd2, 0x75, 0xce, 0x3d, 0x7e, 0x97, 0x7f, 0x2d, 0x7a, 0x45, 0x8e, 0x65, 0xa4, 0x74, 0xa1, 0x1c, - 0xc7, 0xff, 0x7e, 0x04, 0xd6, 0xd7, 0x97, 0xc2, 0xca, 0xf9, 0xfd, 0x99, 0x5c, 0x96, 0xa7, 0x9b, - 0x3d, 0x22, 0xd7, 0xe8, 0x80, 0xb5, 0xaa, 0xbc, 0xcd, 0xc3, 0x6e, 0xf1, 0xe1, 0xf0, 0xea, 0x8d, - 0x11, 0xbb, 0xca, 0xf9, 0x2d, 0x91, 0xff, 0x72, 0x4e, 0x57, 0x1e, 0xc3, 0x76, 0x50, 0xb1, 0xa8, - 0xec, 0x71, 0x90, 0xbf, 0x13, 0x82, 0xfc, 0xf6, 0x02, 0xc8, 0x23, 0x9c, 0x94, 0x9f, 0xc1, 0x8d, - 0xd8, 0x1d, 0xde, 0x8f, 0x80, 0x5e, 0x5d, 0x08, 0x7a, 0x74, 0xe5, 0x7c, 0x32, 0x62, 0x57, 0xe4, - 0x12, 0x64, 0x2d, 0x4f, 0xd3, 0xb1, 0x33, 0xb2, 0x0c, 0xea, 0x97, 0x2b, 0xca, 0x2f, 0x04, 0xd8, - 0x8a, 0x13, 0xed, 0xa7, 0x71, 0x7d, 0xc5, 0x82, 0x9b, 0xf1, 0x8a, 0x5d, 0xe1, 0xe8, 0xef, 0x86, - 0x50, 0x7f, 0x7d, 0x29, 0xea, 0xdc, 0x35, 0xfb, 0xb0, 0x16, 0xbf, 0xc7, 0x07, 0x11, 0xdc, 0xef, - 0x5c, 0x03, 0x77, 0xce, 0xf3, 0xdf, 0x09, 0x58, 0x25, 0x11, 0x40, 0xbc, 0xf4, 0x2a, 0x47, 0xb9, - 0x03, 0x59, 0xd3, 0x72, 0x91, 0xc1, 0x7b, 0x50, 0xc4, 0xfb, 0xc3, 0xae, 0xdb, 0xf4, 0x67, 0x7f, - 0xc4, 0x8a, 0xb1, 0x00, 0xa9, 0xa1, 0x35, 0xb2, 0x30, 0x4f, 0xd3, 0xaf, 0xc0, 0xb6, 0x65, 0x1b, - 0xc3, 0x89, 0x67, 0x3d, 0xa5, 0x77, 0x24, 0x17, 0x6b, 0xc1, 0x43, 0x23, 0x43, 0x63, 0xee, 0x65, - 0xd8, 0x44, 0x17, 0x3e, 0x11, 0xc9, 0xc9, 0x41, 0x92, 0x15, 0x4a, 0x12, 0x4d, 0xf7, 0xd9, 0xd8, - 0x74, 0x0f, 0xb1, 0xe9, 0x3e, 0x17, 0x93, 0xee, 0xf3, 0xe1, 0x42, 0xb4, 0xb0, 0xa0, 0x10, 0x2d, - 0xd2, 0x53, 0xe1, 0x5b, 0x01, 0xa4, 0x99, 0x01, 0x9e, 0xf7, 0xb8, 0xcd, 0x4f, 0x3d, 0x8a, 0x28, - 0xf4, 0x22, 0xac, 0xd3, 0x74, 0x3c, 0x8f, 0x89, 0x18, 0x93, 0xae, 0x99, 0x1f, 0xbf, 0xce, 0x6e, - 0x6c, 0xec, 0x76, 0xb8, 0xc8, 0x13, 0x88, 0xc0, 0x07, 0x90, 0x66, 0x44, 0xe1, 0x96, 0xd6, 0xb4, - 0x92, 0x0d, 0x2c, 0x48, 0xd0, 0xb1, 0x35, 0x28, 0x18, 0x2e, 0x0a, 0x35, 0xb9, 0x12, 0x55, 0x51, - 0xf9, 0x10, 0xe4, 0xe0, 0x86, 0x5c, 0xf3, 0x57, 0x21, 0xc3, 0x78, 0xfa, 0xbe, 0x5c, 0x8e, 0xb9, - 0xbc, 0x2a, 0x87, 0x90, 0xe3, 0xcd, 0x0e, 0x72, 0x77, 0x25, 0x77, 0x2c, 0x76, 0x89, 0x9d, 0xca, - 0x51, 0x82, 0xec, 0x58, 0x77, 0x91, 0x8d, 0x67, 0xa9, 0x64, 0x13, 0x4a, 0x7c, 0xc8, 0xb3, 0x4e, - 0x87, 0x96, 0xfd, 0x98, 0x4c, 0x89, 0x54, 0x25, 0x7d, 0xd6, 0x2c, 0x08, 0xeb, 0x1f, 0xa3, 0xe1, - 0x0e, 0x54, 0xa2, 0x4e, 0x37, 0xdd, 0x9b, 0x6d, 0x54, 0x86, 0x1c, 0x1b, 0x61, 0xbe, 0x4a, 0x5b, - 0x7a, 0xca, 0x3f, 0x04, 0x58, 0x8f, 0xee, 0xc1, 0x55, 0x8e, 0xd9, 0x24, 0xb6, 0xdb, 0x98, 0xa8, - 0xa6, 0x22, 0xf8, 0x8a, 0xf1, 0xf8, 0x26, 0x69, 0x27, 0xf6, 0x6d, 0x28, 0xf8, 0x0d, 0x23, 0xd6, - 0x3e, 0x48, 0xd1, 0xa8, 0xdd, 0x8c, 0x6b, 0x19, 0xb1, 0xfe, 0x41, 0x15, 0xd2, 0x54, 0x70, 0xd6, - 0x05, 0xc8, 0x45, 0x3a, 0x0d, 0x41, 0xc0, 0xd7, 0xa0, 0xc0, 0x1c, 0xcc, 0xd7, 0x3c, 0x43, 0x71, - 0xfc, 0x12, 0x36, 0x1e, 0x20, 0x4c, 0x49, 0xda, 0x98, 0x1c, 0x86, 0x8e, 0x7b, 0x05, 0x92, 0x41, - 0xab, 0x25, 0x7c, 0xab, 0x11, 0x05, 0x3c, 0xac, 0x8f, 0xc6, 0xec, 0x56, 0x3c, 0x8b, 0xa2, 0x24, - 0x77, 0xbe, 0xca, 0xfc, 0x0e, 0x1c, 0xc7, 0x75, 0x28, 0x72, 0x7e, 0x7c, 0x66, 0xe6, 0x93, 0x01, - 0x6f, 0x67, 0x0f, 0x3a, 0x9f, 0xc0, 0x3a, 0xe1, 0xc3, 0x0d, 0x61, 0x38, 0xae, 0x19, 0x38, 0x89, - 0x62, 0xb9, 0x4c, 0x73, 0x0f, 0x6b, 0xfb, 0x7e, 0x27, 0x30, 0x5d, 0x43, 0x1c, 0xb8, 0x20, 0xed, - 0x69, 0x1f, 0xc6, 0xa5, 0x13, 0xbe, 0x2b, 0xdf, 0x0b, 0xe1, 0xb9, 0x60, 0xf5, 0x6e, 0x70, 0x90, - 0xdc, 0xea, 0x83, 0x40, 0xfb, 0x22, 0x51, 0x25, 0xb6, 0x3a, 0x90, 0x0f, 0x11, 0xdf, 0x85, 0x1c, - 0xcf, 0x2e, 0x81, 0x1a, 0x25, 0xdc, 0x30, 0xa8, 0x1b, 0xd3, 0x02, 0xa5, 0x08, 0x69, 0x26, 0x1e, - 0x7f, 0x39, 0xfa, 0x56, 0x80, 0x97, 0x1a, 0xce, 0x68, 0x3c, 0xc1, 0x68, 0x30, 0x1e, 0x5a, 0xf8, - 0xc8, 0xb1, 0x6c, 0xec, 0xed, 0x5f, 0x0e, 0xac, 0x6f, 0xd0, 0x92, 0xcb, 0x2b, 0xed, 0x1d, 0xb1, - 0xb7, 0x1f, 0xf6, 0x0a, 0xf0, 0x12, 0x6c, 0xcc, 0xc6, 0x68, 0x3f, 0x5e, 0xb3, 0x6c, 0xed, 0xf4, - 0x12, 0xf3, 0x66, 0x07, 0x09, 0x46, 0x46, 0x30, 0x26, 0xbb, 0xf0, 0x48, 0xa1, 0xef, 0x46, 0xca, - 0xaf, 0x13, 0xb0, 0xb3, 0x58, 0x8e, 0xe7, 0x4d, 0x90, 0x6f, 0x42, 0xda, 0xa3, 0x4f, 0x39, 0xd7, - 0x7b, 0x29, 0x22, 0x69, 0x7e, 0x26, 0x9f, 0xc7, 0x6f, 0x1c, 0x5d, 0xc8, 0x0e, 0x1d, 0xd6, 0x58, - 0xf5, 0x3b, 0xd9, 0x1f, 0x45, 0xb6, 0xbd, 0x5a, 0xee, 0x5d, 0x3a, 0xd3, 0xe1, 0x3c, 0xb6, 0xee, - 0x41, 0x21, 0x34, 0x40, 0x42, 0xc2, 0xdf, 0x80, 0xa3, 0x4b, 0xad, 0x34, 0x46, 0x3a, 0x6b, 0xd0, - 0xcb, 0xca, 0x31, 0x94, 0xe3, 0xde, 0xa7, 0xc2, 0x8f, 0x91, 0x77, 0x43, 0x8f, 0x91, 0x2f, 0x2e, - 0x7e, 0xdd, 0x22, 0x8e, 0xa0, 0xfc, 0x4e, 0x80, 0xec, 0xb4, 0x9b, 0x17, 0xe1, 0x14, 0x73, 0x0f, - 0xcb, 0x92, 0x10, 0x89, 0x79, 0x46, 0xcb, 0xca, 0xf7, 0xa1, 0xc4, 0xba, 0x86, 0xec, 0x29, 0x4f, - 0x1b, 0x39, 0x26, 0xe2, 0x4d, 0xcb, 0x9b, 0xf3, 0xbd, 0x43, 0xd6, 0x66, 0x38, 0x74, 0x4c, 0x34, - 0x7b, 0x5d, 0xa3, 0x52, 0xa7, 0x62, 0xaa, 0x0b, 0xba, 0x82, 0x4a, 0x8b, 0xfd, 0x07, 0x10, 0x3a, - 0xe4, 0x3b, 0xe6, 0x06, 0xac, 0x8e, 0x74, 0xcb, 0xd6, 0xe6, 0xbc, 0x33, 0xfc, 0x70, 0x97, 0x88, - 0xa9, 0xb9, 0x67, 0xaa, 0x6f, 0x12, 0xf9, 0x8d, 0xe1, 0xc4, 0x44, 0xda, 0xa9, 0xee, 0x21, 0xcd, - 0xd4, 0xb1, 0xce, 0x8b, 0xce, 0xe9, 0x7b, 0x01, 0xdf, 0x95, 0x57, 0x4f, 0x9f, 0x80, 0xd4, 0x74, - 0x9d, 0xf1, 0xf5, 0x44, 0x91, 0x7d, 0x51, 0x66, 0x67, 0xa3, 0x52, 0x86, 0x52, 0x80, 0x01, 0xe7, - 0xfa, 0x25, 0x6c, 0xd4, 0x4d, 0x33, 0x64, 0xa8, 0xab, 0x02, 0xf0, 0x1e, 0x64, 0x78, 0xbd, 0xc5, - 0x7d, 0x7b, 0xe9, 0x73, 0xa6, 0xb2, 0x05, 0x95, 0xf9, 0x1d, 0xf8, 0xee, 0x75, 0xd8, 0x62, 0xf7, - 0xff, 0x6b, 0x0b, 0xb0, 0x1a, 0x16, 0x20, 0xab, 0xdc, 0x82, 0xed, 0x58, 0x16, 0x53, 0xd4, 0x6e, - 0x0e, 0xc8, 0xc1, 0x49, 0xdc, 0x7e, 0xa8, 0xce, 0x8a, 0xa2, 0x25, 0xed, 0xa1, 0x69, 0x67, 0x44, - 0xb9, 0x0f, 0xb7, 0x16, 0x30, 0x98, 0x1d, 0x05, 0x91, 0x62, 0x8b, 0x35, 0x71, 0xf7, 0xa0, 0xd2, - 0x70, 0x46, 0x23, 0x0b, 0xc7, 0xec, 0xba, 0x68, 0xcd, 0x36, 0x6c, 0xc6, 0xac, 0xe1, 0xaa, 0xdc, - 0x83, 0x8d, 0xfa, 0xa9, 0xe3, 0x3e, 0x0b, 0x3f, 0x82, 0xfd, 0xdc, 0x12, 0xce, 0xee, 0x29, 0xdc, - 0x08, 0xa6, 0x10, 0xef, 0x8a, 0x3a, 0x4c, 0xfe, 0x3f, 0xd8, 0xf6, 0x90, 0xee, 0x1a, 0x67, 0x1a, - 0xf3, 0x2a, 0xd6, 0xc0, 0x0f, 0x3c, 0xc1, 0x08, 0x73, 0x97, 0xe8, 0x01, 0xa5, 0xa7, 0xce, 0xc6, - 0xf8, 0xf3, 0x97, 0x06, 0x65, 0x17, 0x2a, 0x8b, 0xe6, 0x22, 0x6e, 0xcb, 0x6a, 0xc0, 0xff, 0x85, - 0xb5, 0x88, 0x9c, 0xb3, 0xdb, 0x8e, 0x87, 0x3c, 0x6f, 0xaa, 0x30, 0xa9, 0x36, 0x49, 0x3d, 0xc4, - 0x64, 0xe3, 0x27, 0x04, 0xc9, 0xf2, 0xc7, 0xb0, 0x3a, 0x38, 0xee, 0x1c, 0x4f, 0x90, 0x7b, 0xe9, - 0x2b, 0x59, 0x80, 0xd4, 0xd7, 0xe4, 0x9b, 0x5b, 0xfc, 0x2d, 0xc8, 0xf0, 0xf2, 0x9f, 0x2e, 0x89, - 0xe6, 0xb1, 0xc1, 0x71, 0xe7, 0x48, 0xbf, 0x1c, 0x3a, 0xba, 0xf9, 0x19, 0xa3, 0x52, 0xfe, 0x24, - 0xc0, 0x1a, 0xbd, 0xeb, 0xcc, 0x25, 0xff, 0x38, 0xf8, 0x82, 0x27, 0x48, 0xe2, 0x3a, 0xb7, 0xbe, - 0x05, 0x0f, 0x7e, 0xe2, 0xf5, 0x1e, 0xfc, 0xb6, 0x40, 0xb6, 0x3c, 0x5a, 0x9e, 0x79, 0xc8, 0xb5, - 0x90, 0xe7, 0xff, 0x91, 0x80, 0x24, 0x97, 0xdf, 0x0b, 0xb0, 0xce, 0xe0, 0xbf, 0x96, 0xe4, 0xd1, - 0x3c, 0x12, 0xd5, 0x46, 0xfc, 0x1e, 0xda, 0x24, 0xaf, 0xa5, 0x8d, 0xf2, 0x2f, 0x01, 0xa4, 0x99, - 0xf9, 0xb8, 0xed, 0xdf, 0x99, 0xca, 0xe0, 0x17, 0x3c, 0xca, 0xfc, 0x3d, 0xf4, 0x8a, 0x9b, 0x0b, - 0xf1, 0x95, 0x80, 0xd1, 0xc5, 0xeb, 0x18, 0x5d, 0x7e, 0x83, 0x1f, 0x75, 0xc9, 0x98, 0xbf, 0xd2, - 0x0c, 0x8e, 0x3b, 0xa4, 0xb2, 0x45, 0x23, 0x64, 0x63, 0x5a, 0xf2, 0x7c, 0x0c, 0xab, 0x3c, 0x64, - 0xa6, 0x82, 0xa6, 0xa8, 0xa0, 0xaf, 0xc4, 0x84, 0x49, 0x54, 0xd2, 0xda, 0xbb, 0x50, 0x8c, 0xfc, - 0x93, 0x27, 0x07, 0x99, 0x76, 0x57, 0x6d, 0x3d, 0x68, 0xf5, 0x25, 0x41, 0x06, 0x48, 0x0f, 0xd4, - 0x7e, 0xbb, 0xfb, 0x40, 0x4a, 0x90, 0xdf, 0xfb, 0xed, 0x6e, 0xbd, 0xff, 0x85, 0x24, 0xd6, 0x6e, - 0x07, 0xff, 0x3b, 0xc4, 0x82, 0x4a, 0x96, 0xa1, 0x58, 0x3f, 0x51, 0x7b, 0x5a, 0xbb, 0xdb, 0xe8, - 0xb7, 0x0e, 0x5b, 0x5d, 0x55, 0x12, 0x6a, 0xbb, 0xb0, 0x1a, 0xfd, 0x5b, 0xcd, 0x0a, 0x24, 0xbb, - 0xbd, 0x6e, 0x4b, 0x12, 0xc8, 0xaf, 0x46, 0xab, 0xd3, 0x91, 0x12, 0x72, 0x06, 0xc4, 0x7e, 0xef, - 0x91, 0x24, 0xd6, 0x8e, 0x21, 0x17, 0x7c, 0xfc, 0x03, 0x48, 0xd7, 0x1b, 0x6a, 0xfb, 0x33, 0x42, - 0x9d, 0x87, 0x95, 0x76, 0x97, 0x7f, 0x25, 0x88, 0x94, 0x9d, 0x5e, 0xbd, 0x49, 0x24, 0x23, 0xf5, - 0x74, 0xf6, 0xa4, 0xeb, 0x7f, 0x26, 0x09, 0xe5, 0xc9, 0x51, 0xb3, 0xae, 0x92, 0xaf, 0x54, 0xed, - 0x10, 0x36, 0x16, 0xfd, 0x15, 0x05, 0x20, 0xdd, 0x7e, 0xd0, 0xed, 0xf5, 0x5b, 0xd2, 0x0b, 0xb2, - 0x04, 0xf9, 0xd6, 0xe7, 0x47, 0xad, 0x86, 0xaa, 0xb5, 0x3e, 0x6f, 0x0f, 0x54, 0x49, 0x90, 0x6f, - 0x80, 0xc4, 0x47, 0xba, 0x3d, 0x7f, 0x34, 0x51, 0xfb, 0x00, 0x20, 0xf0, 0x40, 0x95, 0x83, 0x4c, - 0x9f, 0xcc, 0x77, 0x09, 0x8b, 0x2c, 0xa4, 0xfa, 0xaa, 0x76, 0xf4, 0x50, 0x12, 0xe4, 0x32, 0xac, - 0xf6, 0x55, 0xad, 0x7e, 0xa0, 0xb6, 0xfa, 0xda, 0x61, 0xaf, 0xd9, 0x3e, 0xf8, 0x42, 0x4a, 0xd4, - 0xde, 0x86, 0x42, 0xb8, 0x9d, 0x96, 0x01, 0xf1, 0xe8, 0x44, 0x65, 0x30, 0x53, 0x89, 0x5b, 0x0c, - 0xe6, 0x66, 0xab, 0xd3, 0x52, 0x5b, 0x14, 0xe6, 0xec, 0xac, 0x05, 0x91, 0x83, 0xcc, 0x41, 0xaf, - 0xff, 0xa8, 0xde, 0x6f, 0x4a, 0x2f, 0x10, 0x1d, 0xf7, 0xeb, 0x8d, 0x87, 0xf4, 0x4b, 0xa8, 0xbd, - 0xe7, 0x17, 0xcd, 0x1c, 0xb7, 0x32, 0xac, 0x0e, 0xd4, 0x7e, 0xab, 0x7e, 0xa8, 0xb5, 0xba, 0xf5, - 0xfd, 0x0e, 0x01, 0x42, 0x90, 0x4b, 0x50, 0xe0, 0x83, 0x3e, 0x8a, 0x44, 0x99, 0x40, 0xf1, 0x9c, - 0x83, 0xcc, 0xd1, 0x89, 0xaa, 0x11, 0x4b, 0x08, 0x72, 0x11, 0x80, 0x89, 0x44, 0xbf, 0x13, 0xe4, - 0x9b, 0x89, 0xa5, 0x31, 0x4b, 0x19, 0x50, 0x9a, 0xab, 0xba, 0xe4, 0x55, 0xc8, 0x35, 0x1b, 0xaa, - 0x36, 0xf3, 0x1f, 0xb2, 0xaa, 0xa1, 0x6a, 0xcd, 0xde, 0xc9, 0x7e, 0x87, 0x28, 0xc7, 0x09, 0xf6, - 0x7b, 0xbd, 0x4e, 0xab, 0xde, 0x95, 0x44, 0x9f, 0x80, 0x3b, 0x19, 0xb5, 0x1d, 0x25, 0xe8, 0xf4, - 0xf6, 0xa5, 0x4c, 0xed, 0x43, 0x58, 0x8d, 0x96, 0x55, 0x65, 0x58, 0x6d, 0x9f, 0x1c, 0x6a, 0xf5, - 0xc1, 0x17, 0xdd, 0x86, 0xd6, 0xee, 0x36, 0x5b, 0x9f, 0x4b, 0x2f, 0x10, 0xd7, 0x23, 0x83, 0x81, - 0x31, 0xa1, 0xf6, 0x0e, 0x2f, 0x00, 0xa9, 0x60, 0x64, 0x95, 0xaa, 0x3d, 0xe8, 0xf4, 0xf6, 0xeb, - 0x9d, 0xd0, 0x2a, 0x55, 0xeb, 0xf4, 0x1a, 0xd3, 0x31, 0xa1, 0xf6, 0x09, 0x94, 0xe6, 0xe3, 0xf1, - 0x06, 0x4d, 0x0c, 0xda, 0x51, 0xa7, 0xde, 0xee, 0x6a, 0xfb, 0x27, 0x07, 0x07, 0x54, 0x37, 0x3e, - 0x7a, 0xd0, 0xa9, 0xab, 0x7c, 0x70, 0x20, 0x25, 0x6a, 0xbf, 0x64, 0x59, 0x24, 0x1c, 0xa3, 0x45, - 0x00, 0x42, 0x3a, 0x68, 0x75, 0x5a, 0x0d, 0x75, 0xb6, 0xb4, 0xd1, 0x6f, 0x11, 0x80, 0xd5, 0x3a, - 0x03, 0x47, 0x86, 0x22, 0xa5, 0xfa, 0xb4, 0xf7, 0x88, 0x8f, 0x89, 0xf2, 0x3a, 0xc8, 0x64, 0xac, - 0xd9, 0x1a, 0x34, 0xfa, 0xed, 0x7d, 0x9f, 0x36, 0xe9, 0xd3, 0x36, 0xfb, 0xbd, 0x23, 0x3e, 0x96, - 0xa2, 0x56, 0x3f, 0xee, 0x68, 0xf5, 0x0e, 0xf1, 0x3a, 0x36, 0x98, 0xfe, 0x4f, 0x00, 0x00, 0x00, - 0xff, 0xff, 0x1f, 0x2e, 0xbb, 0x47, 0x2e, 0x28, 0x00, 0x00, + // 3215 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0xcd, 0x6f, 0xe3, 0xc6, + 0x15, 0x0f, 0x45, 0xc9, 0xb2, 0x9e, 0x3e, 0x4c, 0x51, 0x6b, 0x5b, 0xb6, 0x77, 0x13, 0x87, 0x49, + 0x36, 0x5a, 0x65, 0xe3, 0x64, 0xdd, 0x24, 0x9b, 0x2f, 0x20, 0x95, 0x25, 0x79, 0xa3, 0xae, 0x2c, + 0xd9, 0x12, 0x9d, 0x4d, 0x0a, 0x14, 0x0c, 0x4d, 0x4e, 0x6c, 0x62, 0x25, 0x52, 0x21, 0x47, 0x6b, + 0x3b, 0x3d, 0xb6, 0xb9, 0xb5, 0xe8, 0x1f, 0x50, 0xa0, 0xd7, 0x1e, 0x7a, 0x28, 0xda, 0x43, 0xd1, + 0xde, 0x5b, 0xa0, 0xb7, 0xfe, 0x0f, 0x3d, 0x14, 0xe8, 0xb5, 0x7f, 0x40, 0x51, 0xcc, 0x07, 0x25, + 0x92, 0xa2, 0x2c, 0xef, 0x26, 0x69, 0x6e, 0xe2, 0xcc, 0x9b, 0x37, 0xef, 0xfd, 0xde, 0xc7, 0xbc, + 0x79, 0x23, 0x28, 0x62, 0xfd, 0x64, 0x80, 0x34, 0x0f, 0x3b, 0x2e, 0xda, 0x19, 0xb9, 0x0e, 0x76, + 0xe4, 0xac, 0x83, 0x3d, 0xfa, 0xcb, 0x70, 0x06, 0xca, 0x6d, 0x48, 0x35, 0x5d, 0xd7, 0x71, 0xe5, + 0x1c, 0x24, 0x0d, 0xc7, 0x44, 0x65, 0x61, 0x3b, 0x51, 0xc9, 0xc8, 0x2b, 0x90, 0x1e, 0x22, 0xcf, + 0xd3, 0x4f, 0x51, 0x39, 0xb1, 0x2d, 0x54, 0x32, 0xca, 0x57, 0x20, 0x1d, 0xba, 0xd6, 0x50, 0x77, + 0x2f, 0x1f, 0xa2, 0xcb, 0xbe, 0x71, 0x86, 0x86, 0x3a, 0x59, 0x62, 0xeb, 0x43, 0x7f, 0xc9, 0x1d, + 0x48, 0xe2, 0xcb, 0x11, 0xa1, 0x4f, 0x54, 0x0a, 0xbb, 0x5b, 0x3b, 0x81, 0x5d, 0x76, 0xa6, 0x4b, + 0xd5, 0xcb, 0x11, 0x92, 0x5f, 0x87, 0x25, 0x67, 0x84, 0x2d, 0xc7, 0x2e, 0x8b, 0xdb, 0x42, 0xa5, + 0xb0, 0x7b, 0x6b, 0x0e, 0x71, 0x97, 0x12, 0x29, 0x77, 0xa1, 0x70, 0xa8, 0xbb, 0xd8, 0x22, 0x1f, + 0x3d, 0xdd, 0x3e, 0x45, 0x72, 0x1e, 0x52, 0x27, 0xe8, 0xd4, 0xb2, 0xe9, 0xd6, 0x39, 0x39, 0x0b, + 0x22, 0xb2, 0x4d, 0xba, 0x73, 0x4e, 0xf9, 0xab, 0x00, 0x39, 0x95, 0x28, 0xcd, 0x56, 0x7b, 0xf2, + 0x0d, 0xc8, 0x61, 0x6b, 0x88, 0x34, 0xec, 0x68, 0x03, 0xeb, 0x09, 0x11, 0x57, 0xa8, 0xa4, 0xc8, + 0xe8, 0x50, 0xbf, 0xd0, 0x9e, 0x20, 0xd7, 0x23, 0x54, 0x54, 0xcd, 0x94, 0x7c, 0x1f, 0x8a, 0x27, + 0x03, 0xc7, 0x19, 0x6a, 0x5f, 0x58, 0x03, 0x8c, 0x5c, 0x8d, 0x6a, 0xc4, 0x84, 0xbc, 0x19, 0x12, + 0x72, 0x8f, 0x50, 0xed, 0x53, 0x22, 0xaa, 0x92, 0x0c, 0x70, 0x32, 0x70, 0x8c, 0xc7, 0x9a, 0x67, + 0x7d, 0x85, 0xca, 0x49, 0xca, 0xec, 0x15, 0xb8, 0x65, 0xa2, 0x27, 0x96, 0x4e, 0xc4, 0xd0, 0x0c, + 0x34, 0x18, 0xf8, 0xbb, 0x69, 0x96, 0xad, 0x79, 0xc8, 0x28, 0xa7, 0xb6, 0x85, 0x8a, 0x48, 0x24, + 0xd1, 0x07, 0x03, 0xe7, 0x5c, 0x1b, 0x8f, 0x4c, 0x1d, 0xa3, 0xf2, 0xd2, 0xb6, 0x50, 0x59, 0x56, + 0xfe, 0x22, 0x40, 0x86, 0xaa, 0x71, 0x80, 0xb0, 0x4e, 0xd8, 0x33, 0x43, 0x06, 0x00, 0xdf, 0x85, + 0xec, 0x88, 0x41, 0xa5, 0x3d, 0x46, 0x97, 0xe5, 0xc4, 0xb6, 0x58, 0xc9, 0xce, 0x85, 0x92, 0x9b, + 0xec, 0x5d, 0x28, 0x98, 0xe8, 0x0b, 0xcb, 0x46, 0xa6, 0x66, 0x38, 0x83, 0xf1, 0x90, 0x58, 0x80, + 0x2c, 0xdb, 0x0e, 0x2d, 0x6b, 0x30, 0x92, 0x3a, 0xa5, 0xe0, 0x2b, 0xab, 0x00, 0x96, 0x6d, 0xa2, + 0x0b, 0x6d, 0x88, 0xb0, 0x5e, 0x4e, 0xd2, 0x55, 0x6b, 0xa1, 0x55, 0x2d, 0x32, 0x4d, 0xa4, 0x55, + 0x4e, 0x20, 0x53, 0x77, 0x6c, 0x93, 0x1a, 0x4c, 0xfe, 0x00, 0xf2, 0xae, 0x73, 0xae, 0xa1, 0x0b, + 0xcb, 0xc3, 0xc8, 0x36, 0x98, 0xf4, 0x85, 0xdd, 0x97, 0x43, 0x6b, 0x7b, 0xce, 0x79, 0xd3, 0x27, + 0x68, 0x5e, 0x8c, 0x90, 0x81, 0x29, 0x6a, 0x72, 0x19, 0x24, 0x26, 0xa7, 0x66, 0xf8, 0x0c, 0xa9, + 0xa5, 0x72, 0xca, 0x6b, 0x90, 0xab, 0xeb, 0x23, 0xdd, 0xb0, 0xf0, 0xe5, 0xb1, 0x6d, 0x61, 0xe2, + 0x8c, 0x2e, 0xd2, 0x4d, 0x6e, 0xdd, 0x3c, 0xa4, 0xce, 0x5d, 0x0b, 0x33, 0xef, 0x4d, 0x29, 0x5f, + 0x0b, 0xb0, 0xd1, 0x43, 0x1e, 0x72, 0x9f, 0x20, 0x53, 0x3d, 0x73, 0x9d, 0xf1, 0xe9, 0xd9, 0x68, + 0x8c, 0x1b, 0x08, 0xeb, 0xd6, 0xc0, 0x93, 0xdf, 0x84, 0xbc, 0xc1, 0x59, 0x69, 0x63, 0xdb, 0xc2, + 0x54, 0xc2, 0xec, 0xee, 0x46, 0x48, 0xc2, 0xd0, 0x66, 0x9b, 0x20, 0x0f, 0x74, 0x0f, 0x6b, 0x96, + 0x6d, 0xb8, 0x48, 0xf7, 0x90, 0x46, 0x1c, 0x8c, 0xfa, 0x9f, 0x38, 0x99, 0x33, 0x51, 0x70, 0x8e, + 0xf8, 0x90, 0xa8, 0xec, 0x83, 0x3c, 0x2b, 0xc6, 0xd3, 0xef, 0xaf, 0x34, 0x40, 0xaa, 0x3b, 0xb6, + 0x37, 0x1e, 0x22, 0xd3, 0x1f, 0x7f, 0x06, 0x2e, 0x3f, 0x81, 0x52, 0x1f, 0xbb, 0x48, 0x1f, 0xf6, + 0x47, 0xc8, 0xb0, 0xbe, 0xb0, 0x0c, 0x86, 0xf9, 0x2a, 0xe4, 0x91, 0xcd, 0xb3, 0x06, 0x99, 0xa5, + 0x8c, 0x96, 0xe5, 0x75, 0x58, 0x41, 0x17, 0x23, 0xcb, 0x65, 0xee, 0xcc, 0x15, 0x26, 0x58, 0xaf, + 0x41, 0x81, 0xd9, 0xc8, 0x23, 0x21, 0x76, 0x8a, 0x30, 0xf5, 0xa9, 0x8c, 0xf2, 0x73, 0x01, 0xf2, + 0x8c, 0xbf, 0x0f, 0xf4, 0x1c, 0xce, 0x45, 0xc8, 0xb0, 0x6f, 0xcd, 0x32, 0x59, 0xba, 0x89, 0xdb, + 0x4c, 0xa4, 0x9b, 0x95, 0x41, 0xa2, 0xe8, 0x72, 0x3e, 0x74, 0x26, 0x49, 0xc3, 0x68, 0x56, 0x8c, + 0x14, 0x15, 0xe3, 0x6f, 0x09, 0x90, 0xeb, 0x2e, 0xd2, 0x31, 0xa2, 0xe1, 0xd4, 0x43, 0x5f, 0x8e, + 0x91, 0x87, 0x89, 0x3f, 0xb3, 0x88, 0xa2, 0xfe, 0xcc, 0xb0, 0x0a, 0xfb, 0xf3, 0x34, 0xfa, 0x3e, + 0x84, 0x92, 0xcb, 0xcd, 0xa6, 0xe1, 0x89, 0xdd, 0xa8, 0xbd, 0xb3, 0xbb, 0x2f, 0x84, 0x1d, 0x39, + 0xd6, 0xbc, 0x6c, 0x27, 0x96, 0xf3, 0x3c, 0xaa, 0x49, 0xd4, 0x30, 0xa1, 0x8c, 0xf5, 0x06, 0xc0, + 0xc8, 0x4f, 0x78, 0x1e, 0x8f, 0xb5, 0x48, 0x42, 0x0d, 0xe7, 0xc3, 0xb7, 0x21, 0xcb, 0x11, 0xf4, + 0x46, 0x3c, 0xaf, 0x44, 0x63, 0x3a, 0xce, 0xd2, 0xaf, 0x41, 0x76, 0x1a, 0xd3, 0x5e, 0x39, 0x7d, + 0x65, 0x50, 0xaf, 0x42, 0x29, 0x04, 0xa3, 0x37, 0x72, 0x6c, 0x0f, 0x29, 0xff, 0x10, 0x40, 0x3e, + 0xa6, 0x89, 0x2b, 0x04, 0x6f, 0x5c, 0xc2, 0x9a, 0x0b, 0xa3, 0xf0, 0xdd, 0xc0, 0x18, 0x41, 0x25, + 0x79, 0x3d, 0x54, 0x94, 0xbf, 0x0b, 0x50, 0x0a, 0x69, 0xc4, 0x34, 0x95, 0x1f, 0xc2, 0x56, 0x8c, + 0xf8, 0x9a, 0xc9, 0x9c, 0x9b, 0xbb, 0xd0, 0xed, 0x05, 0x6a, 0x04, 0x72, 0x4e, 0x58, 0x9b, 0x44, + 0x4c, 0xb4, 0x86, 0xb4, 0xd9, 0x85, 0x02, 0xd7, 0xc6, 0xdf, 0x91, 0x01, 0xb0, 0x19, 0xa3, 0x10, + 0xdf, 0x45, 0xa9, 0xc2, 0x8d, 0x06, 0xf2, 0x0c, 0xd7, 0x3a, 0x59, 0x68, 0x1d, 0xe5, 0xdf, 0x09, + 0x58, 0x8d, 0x10, 0x73, 0xc5, 0x9f, 0x26, 0x54, 0x16, 0x80, 0x94, 0xf8, 0x66, 0x20, 0x89, 0x8b, + 0x40, 0xda, 0x81, 0x9c, 0x5f, 0xf0, 0xe8, 0x78, 0x4c, 0x62, 0x87, 0x9c, 0x35, 0xe5, 0xd9, 0x05, + 0x7d, 0x3a, 0x1f, 0x03, 0x6a, 0x6a, 0x11, 0xa8, 0xe4, 0xbc, 0xf6, 0xce, 0x74, 0xd7, 0xd4, 0xbc, + 0xd1, 0xc0, 0xc2, 0x5e, 0x79, 0x69, 0x5b, 0xac, 0xe4, 0xa2, 0xb1, 0xb4, 0x7c, 0x65, 0x2c, 0xc9, + 0x20, 0xb5, 0x2d, 0x0f, 0x07, 0x6d, 0xa2, 0x54, 0xa0, 0x18, 0x18, 0xe3, 0xd0, 0x97, 0x20, 0x3b, + 0x35, 0x14, 0xf1, 0x31, 0x92, 0xd1, 0x2a, 0x20, 0x37, 0xd0, 0x00, 0x2d, 0x8e, 0x38, 0x12, 0xb3, + 0x21, 0x4a, 0x1e, 0xb3, 0xb7, 0x41, 0x6a, 0x3b, 0xba, 0xb9, 0x70, 0x79, 0x09, 0x8a, 0x01, 0x3a, + 0xbe, 0xb8, 0x02, 0xf2, 0xb1, 0x3d, 0xb8, 0xce, 0xf2, 0x55, 0x28, 0x85, 0x28, 0x39, 0x83, 0x8f, + 0x21, 0xa3, 0x5a, 0x43, 0xc4, 0x32, 0x97, 0x0c, 0xe0, 0x61, 0xdd, 0xc5, 0x2c, 0x93, 0x0b, 0x34, + 0x93, 0x4b, 0xb0, 0x8c, 0x6c, 0x73, 0x7a, 0xc4, 0x88, 0xe4, 0xe0, 0xf0, 0x78, 0x8c, 0x06, 0x8f, + 0xd3, 0x1f, 0x43, 0xbe, 0x87, 0xf0, 0xd8, 0xb5, 0xeb, 0x8e, 0x8d, 0x91, 0x8d, 0xe5, 0xbb, 0x90, + 0x75, 0xe9, 0x00, 0x2b, 0xdc, 0x04, 0x5a, 0xb8, 0xad, 0x47, 0xbc, 0x8d, 0xcc, 0xd3, 0x9a, 0x6d, + 0x8b, 0xe4, 0x23, 0x4a, 0xcd, 0x6b, 0x0c, 0x06, 0x72, 0x82, 0x82, 0xfc, 0xab, 0x04, 0xe4, 0x1f, + 0x20, 0xdc, 0x73, 0xce, 0xaf, 0x4a, 0x69, 0xa5, 0x68, 0x0d, 0x46, 0xca, 0xd1, 0x39, 0x07, 0x22, + 0x8d, 0x23, 0x52, 0x88, 0xba, 0x44, 0x73, 0x9e, 0x8e, 0x22, 0x71, 0x34, 0xc1, 0x25, 0x5a, 0x9e, + 0xa6, 0xe8, 0xe9, 0xb7, 0x09, 0x39, 0x43, 0x37, 0xce, 0x90, 0x46, 0x6b, 0x4d, 0x8f, 0x95, 0x8a, + 0xef, 0x27, 0xb1, 0x3b, 0x46, 0x72, 0x01, 0x96, 0x58, 0xd1, 0x5a, 0x4e, 0x93, 0x02, 0x89, 0xba, + 0x29, 0x45, 0x96, 0x17, 0x7a, 0xcb, 0xf4, 0x60, 0x95, 0x01, 0x08, 0xb6, 0x7c, 0x2c, 0x43, 0xc7, + 0xf2, 0x90, 0xc2, 0xce, 0x63, 0x64, 0x97, 0x81, 0x2e, 0x5c, 0x83, 0x02, 0x76, 0x75, 0xdb, 0xd3, + 0x0d, 0x7a, 0xf8, 0x5a, 0x66, 0x39, 0x4b, 0xaf, 0x00, 0x27, 0x50, 0xf0, 0x01, 0xe1, 0xde, 0xf9, + 0x06, 0x2c, 0x1b, 0xbc, 0x0c, 0xe1, 0x69, 0x21, 0x5c, 0x7e, 0xce, 0xd4, 0x28, 0x59, 0x10, 0x5d, + 0xe7, 0x9c, 0xc3, 0x24, 0x03, 0xd8, 0xe8, 0x02, 0x6b, 0x6c, 0x6f, 0x91, 0x56, 0x75, 0x7f, 0x10, + 0x40, 0x62, 0xb9, 0x77, 0x01, 0xf0, 0x32, 0x00, 0xa9, 0x2a, 0x8d, 0x33, 0x8a, 0x25, 0x63, 0x78, + 0x07, 0x32, 0xd3, 0x2a, 0x51, 0x8c, 0x49, 0x53, 0xd3, 0xa2, 0x74, 0x17, 0x0a, 0x13, 0xd3, 0x53, + 0xd7, 0xe1, 0xe6, 0xd8, 0x8c, 0xf1, 0x15, 0xdf, 0xb9, 0x66, 0x71, 0x49, 0x51, 0x5c, 0x8e, 0xa0, + 0x18, 0x10, 0xf9, 0x1b, 0x43, 0x43, 0x60, 0xf8, 0xad, 0x00, 0xf9, 0xc3, 0xf1, 0x22, 0xe7, 0x0b, + 0xa1, 0xf9, 0x3d, 0x29, 0xdf, 0x81, 0x82, 0x2f, 0xe8, 0xb7, 0xa2, 0xf9, 0x1f, 0x05, 0x90, 0x58, + 0xca, 0x7a, 0x96, 0xc8, 0xfb, 0xfe, 0x3c, 0x20, 0x20, 0xf3, 0xb7, 0x82, 0xc3, 0xcf, 0x12, 0xb0, + 0x41, 0xd3, 0x66, 0xcb, 0xde, 0xd3, 0xb1, 0x71, 0xf6, 0x0c, 0xa9, 0x88, 0x9c, 0x4a, 0x93, 0xd0, + 0x16, 0xe9, 0xe7, 0x6c, 0x66, 0x4a, 0xc6, 0x64, 0xa6, 0xd4, 0x53, 0x65, 0xa6, 0xa5, 0xd8, 0xcc, + 0x94, 0x8e, 0xcd, 0x4c, 0xcb, 0xb1, 0x99, 0x29, 0x13, 0x93, 0x99, 0x80, 0x02, 0xdb, 0x06, 0x39, + 0x46, 0xfb, 0x77, 0x60, 0x89, 0x6a, 0xcf, 0xce, 0xc3, 0x68, 0x39, 0x31, 0x17, 0x35, 0xe5, 0x37, + 0x02, 0x94, 0x7b, 0xce, 0x79, 0x64, 0x8e, 0x9b, 0x2b, 0x0f, 0x29, 0xcb, 0xd3, 0x9c, 0xc7, 0xfc, + 0x4e, 0xf2, 0x22, 0xa4, 0x90, 0xeb, 0x3a, 0x2e, 0xaf, 0x4e, 0xe5, 0xd0, 0x16, 0xac, 0x63, 0x12, + 0x34, 0x30, 0x2b, 0xc5, 0xae, 0x67, 0xe0, 0x24, 0x05, 0x21, 0x9c, 0xfd, 0x52, 0xd4, 0xe8, 0x08, + 0x36, 0xe3, 0xa4, 0xe7, 0x12, 0xc6, 0x19, 0xfd, 0x07, 0x90, 0x74, 0x9d, 0x73, 0x8f, 0x5f, 0xfe, + 0x5f, 0x89, 0xde, 0xa9, 0x63, 0x19, 0x29, 0x1d, 0x28, 0xc5, 0xf1, 0xbf, 0x1f, 0x81, 0xf5, 0xd5, + 0x85, 0xb0, 0x72, 0x7e, 0x7f, 0x26, 0xb7, 0xeb, 0xc9, 0x66, 0x8f, 0xc8, 0xbd, 0x3b, 0x60, 0xad, + 0x0a, 0xef, 0x0b, 0xb1, 0x6b, 0x7f, 0x38, 0xbc, 0xba, 0x23, 0xc4, 0xae, 0x78, 0x7e, 0x0f, 0xe5, + 0xff, 0x9c, 0xd3, 0x95, 0x53, 0xd8, 0x0a, 0x2a, 0x16, 0x95, 0x3d, 0x0e, 0xf2, 0xb7, 0x42, 0x90, + 0xdf, 0x9e, 0x03, 0x79, 0x84, 0x93, 0xf2, 0x53, 0xb8, 0x11, 0xbb, 0xc3, 0xbb, 0x11, 0xd0, 0x2b, + 0x73, 0x41, 0x8f, 0xae, 0x9c, 0x4d, 0x46, 0xec, 0xea, 0x5c, 0x84, 0x8c, 0xe5, 0x69, 0x3a, 0x76, + 0x86, 0x96, 0x41, 0xfd, 0x72, 0x59, 0xf9, 0x85, 0x00, 0x9b, 0x71, 0xa2, 0x7d, 0x3f, 0xae, 0xaf, + 0x58, 0x70, 0x33, 0x5e, 0xb1, 0x2b, 0x1c, 0xfd, 0xed, 0x10, 0xea, 0xaf, 0x2e, 0x44, 0x9d, 0xbb, + 0x66, 0x0f, 0x56, 0xe3, 0xf7, 0x78, 0x2f, 0x82, 0xfb, 0x9d, 0x6b, 0xe0, 0xce, 0x79, 0xfe, 0x37, + 0x01, 0x2b, 0x24, 0x02, 0x88, 0x97, 0x5e, 0xe5, 0x28, 0x77, 0x20, 0x63, 0x5a, 0x2e, 0x32, 0x78, + 0xd3, 0x8a, 0x78, 0x7f, 0xd8, 0x75, 0x1b, 0xfe, 0xec, 0x77, 0x58, 0x31, 0xe6, 0x21, 0x35, 0xb0, + 0x86, 0x16, 0xe6, 0x69, 0xfa, 0x25, 0xd8, 0xb2, 0x6c, 0x63, 0x30, 0xf6, 0xac, 0x27, 0xf4, 0x8e, + 0xe4, 0x62, 0x2d, 0x78, 0x68, 0xa4, 0x69, 0xcc, 0xbd, 0x08, 0x1b, 0xe8, 0xc2, 0x27, 0x22, 0x39, + 0x39, 0x48, 0xb2, 0x4c, 0x49, 0xa2, 0xe9, 0x3e, 0x13, 0x9b, 0xee, 0x21, 0x36, 0xdd, 0x67, 0x63, + 0xd2, 0x7d, 0x2e, 0x5c, 0x88, 0xe6, 0xe7, 0x14, 0xa2, 0x05, 0x7a, 0x2a, 0x7c, 0x2d, 0x80, 0x34, + 0x35, 0xc0, 0xb3, 0x1e, 0xb7, 0xb9, 0x89, 0x47, 0x11, 0x85, 0x9e, 0x87, 0x35, 0x9a, 0x8e, 0x67, + 0x31, 0x11, 0x63, 0xd2, 0x35, 0xf3, 0xe3, 0x57, 0xd9, 0x8d, 0x8d, 0xdd, 0x0e, 0xe7, 0x79, 0x02, + 0x11, 0x78, 0x1f, 0x96, 0x18, 0x51, 0xb8, 0xd5, 0x35, 0xa9, 0x64, 0x03, 0x0b, 0x12, 0x74, 0x6c, + 0x15, 0xf2, 0x86, 0x8b, 0x42, 0xcd, 0xaf, 0x44, 0x45, 0x54, 0xde, 0x07, 0x39, 0xb8, 0x21, 0xd7, + 0xfc, 0x65, 0x48, 0x33, 0x9e, 0xbe, 0x2f, 0x97, 0x62, 0x2e, 0xaf, 0xca, 0x01, 0x64, 0x79, 0xb3, + 0x83, 0xdc, 0x5d, 0xc9, 0x1d, 0x8b, 0x5d, 0x62, 0x27, 0x72, 0x14, 0x21, 0x33, 0xd2, 0x5d, 0x64, + 0xe3, 0x69, 0x2a, 0xd9, 0x80, 0x22, 0x1f, 0xf2, 0xac, 0x93, 0x81, 0x65, 0x9f, 0x92, 0x29, 0x91, + 0xaa, 0xa4, 0x4f, 0x9b, 0x05, 0x61, 0xfd, 0x63, 0x34, 0xdc, 0x86, 0x72, 0xd4, 0xe9, 0x26, 0x7b, + 0xb3, 0x8d, 0x4a, 0x90, 0x65, 0x23, 0xcc, 0x57, 0x69, 0xab, 0x4f, 0xf9, 0xa7, 0x00, 0x6b, 0xd1, + 0x3d, 0xb8, 0xca, 0x31, 0x9b, 0xc4, 0xb6, 0x27, 0x13, 0x95, 0x54, 0x04, 0x5f, 0x31, 0x1e, 0xdf, + 0x24, 0x6d, 0xdd, 0xbe, 0x09, 0x79, 0xbf, 0x61, 0xc4, 0xda, 0x07, 0x29, 0x1a, 0xb5, 0x1b, 0x71, + 0x2d, 0x23, 0xd6, 0x3f, 0xa8, 0xc0, 0x12, 0x15, 0x9c, 0x75, 0x01, 0xb2, 0x91, 0x4e, 0x43, 0x10, + 0xf0, 0x55, 0xc8, 0x33, 0x07, 0xf3, 0x35, 0x4f, 0x53, 0x1c, 0x3f, 0x87, 0xf5, 0x07, 0x08, 0x53, + 0x92, 0x16, 0x26, 0x87, 0xa1, 0xe3, 0x5e, 0x81, 0x64, 0xd0, 0x6a, 0x09, 0xdf, 0x6a, 0x44, 0x01, + 0x0f, 0xeb, 0xc3, 0x11, 0xbb, 0x15, 0x4f, 0xa3, 0x28, 0xc9, 0x9d, 0xaf, 0x3c, 0xbb, 0x03, 0xc7, + 0x71, 0x0d, 0x0a, 0x9c, 0x1f, 0x9f, 0x99, 0xfa, 0x64, 0xc0, 0xdb, 0xd9, 0x0b, 0xd0, 0x47, 0xb0, + 0x46, 0xf8, 0x70, 0x43, 0x18, 0x8e, 0x6b, 0x06, 0x4e, 0xa2, 0x58, 0x2e, 0x93, 0xdc, 0xc3, 0x9a, + 0xf0, 0xff, 0x12, 0x98, 0xae, 0x21, 0x0e, 0x5c, 0x90, 0xd6, 0xa4, 0x0f, 0xe3, 0xd2, 0x09, 0xdf, + 0x95, 0xef, 0x85, 0xf0, 0x9c, 0xb3, 0x7a, 0x27, 0x38, 0x48, 0x6e, 0xf5, 0x41, 0xa0, 0x7d, 0x91, + 0xa8, 0x12, 0x9b, 0x06, 0xe4, 0x42, 0xc4, 0x77, 0x21, 0xcb, 0xb3, 0x4b, 0xa0, 0x46, 0x09, 0x37, + 0x0c, 0x6a, 0xc6, 0xa4, 0x40, 0x29, 0xc0, 0x12, 0x13, 0x8f, 0x27, 0x8d, 0x55, 0xc8, 0x3b, 0xae, + 0x75, 0x6a, 0xd9, 0x5c, 0x6a, 0x7e, 0x89, 0xfd, 0x5a, 0x80, 0x17, 0xea, 0xce, 0x70, 0x34, 0xc6, + 0xa8, 0x3f, 0x1a, 0x58, 0xf8, 0xd0, 0xb1, 0x6c, 0xec, 0xed, 0x5d, 0xf6, 0xad, 0xaf, 0xd0, 0x82, + 0x3b, 0x2d, 0x6d, 0x29, 0xb1, 0x37, 0x24, 0xf6, 0x9a, 0xf0, 0x02, 0xac, 0x4f, 0xc7, 0x68, 0x5f, + 0x5f, 0xb3, 0x6c, 0xed, 0xe4, 0x12, 0xf3, 0x1e, 0x08, 0x89, 0x51, 0x46, 0x30, 0x22, 0xbb, 0xf0, + 0x00, 0xa2, 0xef, 0x4f, 0xca, 0xaf, 0x13, 0xb0, 0x3d, 0x5f, 0x8e, 0x67, 0xcd, 0x9b, 0xaf, 0xc3, + 0x92, 0x47, 0x9f, 0x84, 0xae, 0xf7, 0xe2, 0x44, 0xb2, 0xff, 0x54, 0x3e, 0x8f, 0x5f, 0x44, 0x3a, + 0x90, 0x19, 0x38, 0xac, 0xdf, 0xea, 0x37, 0xb8, 0x3f, 0x88, 0x6c, 0x7b, 0xb5, 0xdc, 0x3b, 0x74, + 0xa6, 0xcd, 0x79, 0x6c, 0xde, 0x83, 0x7c, 0x68, 0x80, 0x44, 0x8a, 0xbf, 0x01, 0x47, 0x97, 0x1a, + 0x6f, 0x84, 0x74, 0xd6, 0xb7, 0x97, 0x95, 0x23, 0x28, 0xc5, 0xbd, 0x73, 0x85, 0x1f, 0x35, 0xef, + 0x86, 0x1e, 0x35, 0x9f, 0x9f, 0xff, 0x4a, 0x46, 0xfc, 0x43, 0xf9, 0x9d, 0x00, 0x99, 0x49, 0x93, + 0x2f, 0xc2, 0x29, 0xe6, 0x7a, 0x96, 0x21, 0x91, 0x13, 0xf3, 0x1c, 0x97, 0x91, 0xef, 0x43, 0x91, + 0x35, 0x13, 0xd9, 0x93, 0xa0, 0x36, 0x74, 0x4c, 0xc4, 0x7b, 0x99, 0x37, 0x67, 0x5b, 0x8a, 0xac, + 0xfb, 0x70, 0xe0, 0x98, 0x68, 0xfa, 0x4a, 0x47, 0xa5, 0x4e, 0xc5, 0x14, 0x1d, 0x74, 0x05, 0x95, + 0x16, 0xfb, 0xef, 0x22, 0x74, 0xc8, 0x77, 0xcc, 0x75, 0x58, 0x19, 0xea, 0x96, 0xad, 0xcd, 0x78, + 0x67, 0xf8, 0x01, 0x30, 0x11, 0x53, 0x8a, 0x4f, 0x55, 0xdf, 0x20, 0xf2, 0x1b, 0x83, 0xb1, 0x89, + 0xb4, 0x13, 0xdd, 0x43, 0x9a, 0xa9, 0x63, 0x9d, 0xd7, 0xa2, 0x93, 0x67, 0x04, 0xbe, 0x2b, 0x2f, + 0xaa, 0x3e, 0x02, 0xa9, 0xe1, 0x3a, 0xa3, 0xeb, 0x89, 0x22, 0xfb, 0xa2, 0x4c, 0x8f, 0x4c, 0xa5, + 0x04, 0xc5, 0x00, 0x03, 0xce, 0xf5, 0x73, 0x58, 0xaf, 0x99, 0x66, 0xc8, 0x50, 0x57, 0x05, 0xe0, + 0x3d, 0x48, 0xf3, 0x32, 0x8c, 0xfb, 0xf6, 0xc2, 0x67, 0x51, 0x65, 0x13, 0xca, 0xb3, 0x3b, 0xf0, + 0xdd, 0x6b, 0xb0, 0xc9, 0xda, 0x02, 0xd7, 0x16, 0x60, 0x25, 0x2c, 0x40, 0x46, 0xb9, 0x05, 0x5b, + 0xb1, 0x2c, 0x26, 0xa8, 0xdd, 0xec, 0x93, 0xf3, 0x94, 0xb8, 0xfd, 0x40, 0x9d, 0xd6, 0x4a, 0x0b, + 0xba, 0x46, 0x93, 0x86, 0x89, 0x72, 0x1f, 0x6e, 0xcd, 0x61, 0x30, 0x3d, 0x21, 0x22, 0x35, 0x18, + 0xeb, 0xed, 0xee, 0x42, 0xb9, 0xee, 0x0c, 0x87, 0x16, 0x8e, 0xd9, 0x75, 0xde, 0x9a, 0x2d, 0xd8, + 0x88, 0x59, 0xc3, 0x55, 0xb9, 0x07, 0xeb, 0xb5, 0x13, 0xc7, 0x7d, 0x1a, 0x7e, 0x04, 0xfb, 0x99, + 0x25, 0x9c, 0xdd, 0x13, 0xb8, 0x11, 0x4c, 0x21, 0xde, 0x15, 0xe5, 0x99, 0xfc, 0x23, 0xd8, 0xf2, + 0x90, 0xee, 0x1a, 0x67, 0x1a, 0xf3, 0x2a, 0xd6, 0xd7, 0x0f, 0xbc, 0xcc, 0x08, 0x33, 0x77, 0xeb, + 0x3e, 0xa5, 0xa7, 0xce, 0xc6, 0xf8, 0xf3, 0x07, 0x08, 0x65, 0x07, 0xca, 0xf3, 0xe6, 0x22, 0x6e, + 0xcb, 0x4a, 0xc3, 0x1f, 0xc2, 0x6a, 0x44, 0xce, 0xe9, 0x25, 0xc8, 0x43, 0x9e, 0x37, 0x51, 0x98, + 0x14, 0xa1, 0xa4, 0x4c, 0x62, 0xb2, 0xf1, 0x13, 0x82, 0x64, 0xf9, 0x23, 0x58, 0xe9, 0x1f, 0xb5, + 0x8f, 0xc6, 0xc8, 0xbd, 0xf4, 0x95, 0xcc, 0x43, 0xea, 0x4b, 0xf2, 0xcd, 0x2d, 0xfe, 0x06, 0xa4, + 0xf9, 0xad, 0x80, 0x2e, 0x89, 0xe6, 0xb1, 0xfe, 0x51, 0xfb, 0x50, 0xbf, 0x1c, 0x38, 0xba, 0xf9, + 0x09, 0xa3, 0x52, 0xfe, 0x24, 0xc0, 0x2a, 0xbd, 0x02, 0xcd, 0x24, 0xff, 0x38, 0xf8, 0x82, 0x27, + 0x48, 0xe2, 0x3a, 0x97, 0xc1, 0x39, 0xef, 0x80, 0xe2, 0xf5, 0xde, 0x01, 0x37, 0x41, 0xb6, 0x3c, + 0x5a, 0xb5, 0x79, 0xc8, 0xb5, 0x90, 0xe7, 0xff, 0x21, 0x81, 0x24, 0x97, 0xdf, 0x0b, 0xb0, 0xc6, + 0xe0, 0xbf, 0x96, 0xe4, 0xd1, 0x3c, 0x12, 0xd5, 0x46, 0xfc, 0x06, 0xda, 0x24, 0xaf, 0xa5, 0x8d, + 0xf2, 0x1f, 0x01, 0xa4, 0xa9, 0xf9, 0xb8, 0xed, 0xdf, 0x9a, 0xc8, 0xe0, 0xd7, 0x41, 0xca, 0xec, + 0xf5, 0xf4, 0x8a, 0x0b, 0x0d, 0xf1, 0x95, 0x80, 0xd1, 0xc5, 0xeb, 0x18, 0x5d, 0x7e, 0x8d, 0x1f, + 0x75, 0xc9, 0x98, 0xbf, 0xe4, 0xf4, 0x8f, 0xda, 0xa4, 0xe0, 0x45, 0x43, 0x64, 0x63, 0x5a, 0x09, + 0x7d, 0x08, 0x2b, 0x3c, 0x64, 0x26, 0x82, 0xa6, 0xa8, 0xa0, 0x2f, 0xc5, 0x84, 0x49, 0x54, 0xd2, + 0xea, 0xdb, 0x50, 0x88, 0xfc, 0x23, 0x28, 0x0b, 0xe9, 0x56, 0x47, 0x6d, 0x3e, 0x68, 0xf6, 0x24, + 0x41, 0x06, 0x58, 0xea, 0xab, 0xbd, 0x56, 0xe7, 0x81, 0x94, 0x20, 0xbf, 0xf7, 0x5a, 0x9d, 0x5a, + 0xef, 0x33, 0x49, 0xac, 0xde, 0x0e, 0xfe, 0x07, 0x89, 0x05, 0x95, 0x2c, 0x43, 0xa1, 0x76, 0xac, + 0x76, 0xb5, 0x56, 0xa7, 0xde, 0x6b, 0x1e, 0x34, 0x3b, 0xaa, 0x24, 0x54, 0x77, 0x60, 0x25, 0xfa, + 0xf7, 0x9c, 0x65, 0x48, 0x76, 0xba, 0x9d, 0xa6, 0x24, 0x90, 0x5f, 0xf5, 0x66, 0xbb, 0x2d, 0x25, + 0xe4, 0x34, 0x88, 0xbd, 0xee, 0x23, 0x49, 0xac, 0x1e, 0x41, 0x36, 0xf8, 0x26, 0x08, 0xb0, 0x54, + 0xab, 0xab, 0xad, 0x4f, 0x08, 0x75, 0x0e, 0x96, 0x5b, 0x1d, 0xfe, 0x95, 0x20, 0x52, 0xb6, 0xbb, + 0xb5, 0x06, 0x91, 0x8c, 0x94, 0xd9, 0x99, 0xe3, 0x8e, 0xff, 0x99, 0x24, 0x94, 0xc7, 0x87, 0x8d, + 0x9a, 0x4a, 0xbe, 0x52, 0xd5, 0x03, 0x58, 0x9f, 0xf7, 0x97, 0x16, 0x80, 0xa5, 0xd6, 0x83, 0x4e, + 0xb7, 0xd7, 0x94, 0x9e, 0x93, 0x25, 0xc8, 0x35, 0x3f, 0x3d, 0x6c, 0xd6, 0x55, 0xad, 0xf9, 0x69, + 0xab, 0xaf, 0x4a, 0x82, 0x7c, 0x03, 0x24, 0x3e, 0xd2, 0xe9, 0xfa, 0xa3, 0x89, 0xea, 0x7b, 0x00, + 0x81, 0x77, 0xab, 0x2c, 0xa4, 0x7b, 0x64, 0xbe, 0x43, 0x58, 0x64, 0x20, 0xd5, 0x53, 0xb5, 0xc3, + 0x87, 0x92, 0x20, 0x97, 0x60, 0xa5, 0xa7, 0x6a, 0xb5, 0x7d, 0xb5, 0xd9, 0xd3, 0x0e, 0xba, 0x8d, + 0xd6, 0xfe, 0x67, 0x52, 0xa2, 0xfa, 0x26, 0xe4, 0xc3, 0x5d, 0xb6, 0x34, 0x88, 0x87, 0xc7, 0x2a, + 0x83, 0x99, 0x4a, 0xdc, 0x64, 0x30, 0x37, 0x9a, 0xed, 0xa6, 0xda, 0xa4, 0x30, 0x67, 0xa6, 0x9d, + 0x89, 0x2c, 0xa4, 0xf7, 0xbb, 0xbd, 0x47, 0xb5, 0x5e, 0x43, 0x7a, 0x8e, 0xe8, 0xb8, 0x57, 0xab, + 0x3f, 0xa4, 0x5f, 0x42, 0xf5, 0x1d, 0xbf, 0x96, 0xe6, 0xb8, 0x95, 0x60, 0xa5, 0xaf, 0xf6, 0x9a, + 0xb5, 0x03, 0xad, 0xd9, 0xa9, 0xed, 0xb5, 0x09, 0x10, 0x82, 0x5c, 0x84, 0x3c, 0x1f, 0xf4, 0x51, + 0x24, 0xca, 0x04, 0x6a, 0xea, 0x2c, 0xa4, 0x0f, 0x8f, 0x55, 0x8d, 0x58, 0x42, 0x90, 0x0b, 0x00, + 0x4c, 0x24, 0xfa, 0x9d, 0x20, 0xdf, 0x4c, 0x2c, 0x8d, 0x59, 0xca, 0x80, 0xe2, 0x4c, 0xd5, 0x25, + 0xaf, 0x40, 0xb6, 0x51, 0x57, 0xb5, 0xa9, 0xff, 0x90, 0x55, 0x75, 0x55, 0x6b, 0x74, 0x8f, 0xf7, + 0xda, 0x44, 0x39, 0x4e, 0xb0, 0xd7, 0xed, 0xb6, 0x9b, 0xb5, 0x8e, 0x24, 0xfa, 0x04, 0xdc, 0xc9, + 0xa8, 0xed, 0x28, 0x41, 0xbb, 0xbb, 0x27, 0xa5, 0xab, 0xef, 0xc3, 0x4a, 0xb4, 0xac, 0x2a, 0xc1, + 0x4a, 0xeb, 0xf8, 0x40, 0xab, 0xf5, 0x3f, 0xeb, 0xd4, 0xb5, 0x56, 0xa7, 0xd1, 0xfc, 0x54, 0x7a, + 0x8e, 0xb8, 0x1e, 0x19, 0x0c, 0x8c, 0x09, 0xd5, 0xb7, 0x78, 0x01, 0x48, 0x05, 0x23, 0xab, 0x54, + 0xed, 0x41, 0xbb, 0xbb, 0x57, 0x6b, 0x87, 0x56, 0xa9, 0x5a, 0xbb, 0x5b, 0x9f, 0x8c, 0x09, 0xd5, + 0x8f, 0xa0, 0x38, 0x1b, 0x8f, 0x37, 0x68, 0x62, 0xd0, 0x0e, 0xdb, 0xb5, 0x56, 0x47, 0xdb, 0x3b, + 0xde, 0xdf, 0xa7, 0xba, 0xf1, 0xd1, 0xfd, 0x76, 0x4d, 0xe5, 0x83, 0x7d, 0x29, 0x51, 0xfd, 0x25, + 0xcb, 0x22, 0xe1, 0x18, 0x2d, 0x00, 0x10, 0xd2, 0x7e, 0xb3, 0xdd, 0xac, 0xab, 0xd3, 0xa5, 0xf5, + 0x5e, 0x93, 0x00, 0xac, 0xd6, 0x18, 0x38, 0x32, 0x14, 0x28, 0xd5, 0xc7, 0xdd, 0x47, 0x7c, 0x4c, + 0x94, 0xd7, 0x40, 0x26, 0x63, 0x8d, 0x66, 0xbf, 0xde, 0x6b, 0xed, 0xf9, 0xb4, 0x49, 0x9f, 0xb6, + 0xd1, 0xeb, 0x1e, 0xf2, 0xb1, 0x14, 0xb5, 0xfa, 0x51, 0x5b, 0xab, 0xb5, 0x89, 0xd7, 0xb1, 0xc1, + 0xa5, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0xc8, 0xd2, 0xab, 0xf6, 0x76, 0x28, 0x00, 0x00, } diff --git a/tablestore/otsprotocol/table_store.proto b/tablestore/otsprotocol/table_store.proto index 4a6c36d..c46bdf8 100644 --- a/tablestore/otsprotocol/table_store.proto +++ b/tablestore/otsprotocol/table_store.proto @@ -98,6 +98,7 @@ message ConsumedCapacity { message StreamSpecification { required bool enable_stream = 1; optional int32 expiration_time = 2; + repeated string columns_to_get = 3; } message StreamDetails { @@ -105,6 +106,7 @@ message StreamDetails { optional string stream_id = 2; optional int32 expiration_time = 3; optional int64 last_enable_time = 4; + repeated string columns_to_get = 5; } /* ############################################# CreateTable ############################################# */ @@ -499,6 +501,7 @@ message GetStreamRecordResponse { message StreamRecord { required ActionType action_type = 1; required bytes record = 2; + optional bytes origin_record = 3; } repeated StreamRecord stream_records = 1; optional string next_shard_iterator = 2; diff --git a/tablestore/plain_buffer.go b/tablestore/plain_buffer.go index 681d3b0..5fe7f07 100644 --- a/tablestore/plain_buffer.go +++ b/tablestore/plain_buffer.go @@ -31,7 +31,7 @@ const ( // cell op type DELETE_ALL_VERSION = 0x1 DELETE_ONE_VERSION = 0x3 - INCREMENT = 0x4; + INCREMENT = 0x4 // variant type VT_INTEGER = 0x0 diff --git a/tablestore/search_api.go b/tablestore/search_api.go index 9dfdec9..750e33e 100644 --- a/tablestore/search_api.go +++ b/tablestore/search_api.go @@ -21,7 +21,7 @@ func (tableStoreClient *TableStoreClient) CreateSearchIndex(request *CreateSearc req.TimeToLive = proto.Int32(*request.TimeToLive) } var err error - req.Schema, err = convertToPbSchema(request.IndexSchema) + req.Schema, err = ConvertToPbSchema(request.IndexSchema) if err != nil { return nil, err } diff --git a/tablestore/search_model.go b/tablestore/search_model.go index 5bf30f1..5c8ed9a 100644 --- a/tablestore/search_model.go +++ b/tablestore/search_model.go @@ -21,6 +21,7 @@ type SearchRequest struct { SearchQuery search.SearchQuery ColumnsToGet *ColumnsToGet RoutingValues []*PrimaryKey + TimeoutMs *int32 } func (r *SearchRequest) SetTableName(tableName string) *SearchRequest { @@ -53,6 +54,11 @@ func (r *SearchRequest) AddRoutingValue(routingValue *PrimaryKey) *SearchRequest return r } +func (r *SearchRequest) SetTimeoutMs(timeoutMs int32) *SearchRequest { + r.TimeoutMs = proto.Int32(timeoutMs) + return r +} + func (r *SearchRequest) ProtoBuffer() (*otsprotocol.SearchRequest, error) { req := &otsprotocol.SearchRequest{} req.TableName = &r.TableName @@ -80,6 +86,9 @@ func (r *SearchRequest) ProtoBuffer() (*otsprotocol.SearchRequest, error) { req.RoutingValues = append(req.RoutingValues, routingValue.Build(false)) } } + if r.TimeoutMs != nil { + req.TimeoutMs = r.TimeoutMs + } return req, err } @@ -193,7 +202,7 @@ func convertFieldSchemaToPBFieldSchema(fieldSchemas []*FieldSchema) []*otsprotoc return schemas } -func convertToPbSchema(schema *IndexSchema) (*otsprotocol.IndexSchema, error) { +func ConvertToPbSchema(schema *IndexSchema) (*otsprotocol.IndexSchema, error) { indexSchema := new(otsprotocol.IndexSchema) indexSchema.FieldSchemas = convertFieldSchemaToPBFieldSchema(schema.FieldSchemas) indexSchema.IndexSetting = new(otsprotocol.IndexSetting) @@ -536,11 +545,11 @@ type IndexSetting struct { } type CreateSearchIndexRequest struct { - TableName string - IndexName string - IndexSchema *IndexSchema + TableName string + IndexName string + IndexSchema *IndexSchema SourceIndexName *string - TimeToLive *int32 + TimeToLive *int32 } type CreateSearchIndexResponse struct { @@ -572,13 +581,13 @@ type MeteringInfo struct { } type DescribeSearchIndexResponse struct { - Schema *IndexSchema - SyncStat *SyncStat - MeteringInfo *MeteringInfo + Schema *IndexSchema + SyncStat *SyncStat + MeteringInfo *MeteringInfo QueryFlowWeights []*QueryFlowWeight - CreateTime int64 - TimeToLive int32 - ResponseInfo ResponseInfo + CreateTime int64 + TimeToLive int32 + ResponseInfo ResponseInfo } type ListSearchIndexRequest struct { @@ -610,11 +619,11 @@ type QueryFlowWeight struct { } type UpdateSearchIndexRequest struct { - TableName string - IndexName string - SwitchIndexName *string + TableName string + IndexName string + SwitchIndexName *string QueryFlowWeights []*QueryFlowWeight - TimeToLive *int32 + TimeToLive *int32 } type UpdateSearchIndexResponse struct { @@ -629,6 +638,7 @@ type ParallelScanRequest struct { ScanQuery search.ScanQuery ColumnsToGet *ColumnsToGet SessionId []byte + TimeoutMs *int32 } type ParallelScanResponse struct { @@ -663,11 +673,19 @@ func (r *ParallelScanRequest) SetSessionId(sessionId []byte) *ParallelScanReques return r } +func (r *ParallelScanRequest) SetTimeoutMs(timeoutMs int32) *ParallelScanRequest { + r.TimeoutMs = proto.Int32(timeoutMs) + return r +} + func (r *ParallelScanRequest) ProtoBuffer() (*otsprotocol.ParallelScanRequest, error) { req := &otsprotocol.ParallelScanRequest{} req.TableName = proto.String(r.TableName) req.IndexName = proto.String(r.IndexName) req.SessionId = r.SessionId + if r.TimeoutMs != nil { + req.TimeoutMs = r.TimeoutMs + } query, err := r.ScanQuery.Serialize() if err != nil { diff --git a/tablestore/search_model_test.go b/tablestore/search_model_test.go index 7bb1700..de6df58 100644 --- a/tablestore/search_model_test.go +++ b/tablestore/search_model_test.go @@ -1226,6 +1226,29 @@ func TestParseFieldSchemaFromPb_Date(t *testing.T) { assert.Equal(t, 0, len(fieldSchemas[1].DateFormats)) } +func TestSearchRequest_ProtoBuffer_TimeoutMs(t *testing.T) { + //nil by default + query := search.NewSearchQuery().SetQuery(&search.MatchAllQuery{}) + request := SearchRequest{ + SearchQuery: query, + } + pbSearchRequest, err := request.ProtoBuffer() + assert.Nil(t, err) + + assert.Nil(t, pbSearchRequest.TimeoutMs) + + //set timeout_ms explicitly + query = search.NewSearchQuery().SetQuery(&search.MatchAllQuery{}) + request = SearchRequest{ + SearchQuery: query, + TimeoutMs: proto.Int32(33), + } + pbSearchRequest, err = request.ProtoBuffer() + assert.Nil(t, err) + + assert.Equal(t, int32(33), *pbSearchRequest.TimeoutMs) +} + func TestParallelScanRequest_ProtoBuffer(t *testing.T) { query := search.NewScanQuery().SetQuery(&search.MatchAllQuery{}) request := ParallelScanRequest{ @@ -1245,6 +1268,7 @@ func TestParallelScanRequest_ProtoBuffer(t *testing.T) { assert.Equal(t, "table1", *pbParallelScanRequest.TableName) assert.Equal(t, "index1", *pbParallelScanRequest.IndexName) + assert.Nil(t, pbParallelScanRequest.TimeoutMs) //assert ScanQuery scanQueryExpected := &otsprotocol.ScanQuery{} @@ -1263,4 +1287,27 @@ func TestParallelScanRequest_ProtoBuffer(t *testing.T) { assert.Equal(t, columnsToGetExpected, *pbParallelScanRequest.ColumnsToGet) assert.Equal(t, []byte("bcd"), pbParallelScanRequest.SessionId) +} + +func TestParallelScanRequest_ProtoBuffer_TimeoutMs(t *testing.T) { + //nil by default + query := search.NewScanQuery().SetQuery(&search.MatchAllQuery{}) + request := ParallelScanRequest{ + ScanQuery: query, + } + pbParallelScanRequest, err := request.ProtoBuffer() + assert.Nil(t, err) + + assert.Nil(t, pbParallelScanRequest.TimeoutMs) + + //set timeout_ms explicitly + query = search.NewScanQuery().SetQuery(&search.MatchAllQuery{}) + request = ParallelScanRequest{ + ScanQuery: query, + TimeoutMs: proto.Int32(33), + } + pbParallelScanRequest, err = request.ProtoBuffer() + assert.Nil(t, err) + + assert.Equal(t, int32(33), *pbParallelScanRequest.TimeoutMs) } \ No newline at end of file diff --git a/tunnel/api.go b/tunnel/api.go index ba67840..43e8856 100644 --- a/tunnel/api.go +++ b/tunnel/api.go @@ -539,7 +539,7 @@ func (api *TunnelApi) ReadRecords(req *ReadRecordRequest) (*ReadRecordResponse, if err != nil { return nil, err } - tunnelRecord, err := DeserializeRecordFromRawBytes(record.Record, typ) + tunnelRecord, err := DeserializeRecordFromRawBytes(record.GetRecord(), record.GetOriginRecord(), typ) if err != nil { return nil, err } diff --git a/tunnel/model.go b/tunnel/model.go index 1e3d84a..c587941 100644 --- a/tunnel/model.go +++ b/tunnel/model.go @@ -23,10 +23,10 @@ type ResponseInfo struct { } type CreateTunnelRequest struct { - TableName string - TunnelName string - Type TunnelType - StreamTunnelConfig *StreamTunnelConfig + TableName string + TunnelName string + Type TunnelType + StreamTunnelConfig *StreamTunnelConfig // NeedAllTimeSeriesColumns function is temporarily disabled. NeedAllTimeSeriesColumns bool } @@ -190,6 +190,13 @@ type PrimaryKeyColumn struct { Value interface{} } +func (p *PrimaryKeyColumn) String() string { + pkc := make([]string, 0) + pkc = append(pkc, fmt.Sprintf("\"Name\":%s", strconv.Quote(p.ColumnName))) + pkc = append(pkc, fmt.Sprintf("\"Value\":%s", p.Value)) + return fmt.Sprintf("{%s}", strings.Join(pkc, ", ")) +} + type SequenceInfo struct { // Epoch of stream log partition Epoch int32 @@ -243,17 +250,23 @@ type Record struct { Timestamp int64 // SequenceInfo is nil when it is a base data record, // while SequenceInfo is not nil when it is a stream record. - SequenceInfo *SequenceInfo - PrimaryKey *PrimaryKey // required - Columns []*RecordColumn + SequenceInfo *SequenceInfo + PrimaryKey *PrimaryKey // required + Columns []*RecordColumn + OriginColumns []*RecordColumn } func (r *Record) String() string { + //Prevent panic due to PrimaryKey is nil. + if r.PrimaryKey == nil { + r.PrimaryKey = &PrimaryKey{} + } return fmt.Sprintf( - "{\"Type\":%s, \"PrimaryKey\":%v, \"Columns\":%s}", + "{\"Type\":%s, \"PrimaryKey\":%s, \"Columns\":%s, \"OriginColumns\":%s}", r.Type, - *r.PrimaryKey, - r.Columns) + r.PrimaryKey.PrimaryKeys, + r.Columns, + r.OriginColumns) } type ActionType int diff --git a/tunnel/protocol/tunnelservice.pb.go b/tunnel/protocol/tunnelservice.pb.go index 3a31d91..c640694 100644 --- a/tunnel/protocol/tunnelservice.pb.go +++ b/tunnel/protocol/tunnelservice.pb.go @@ -3,9 +3,11 @@ package protocol -import proto "github.com/golang/protobuf/proto" -import fmt "fmt" -import math "math" +import ( + fmt "fmt" + proto "github.com/golang/protobuf/proto" + math "math" +) // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal @@ -16,7 +18,7 @@ var _ = math.Inf // 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 +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package type TunnelType int32 @@ -31,6 +33,7 @@ var TunnelType_name = map[int32]string{ 2: "Stream", 3: "BaseAndStream", } + var TunnelType_value = map[string]int32{ "BaseData": 1, "Stream": 2, @@ -42,9 +45,11 @@ func (x TunnelType) Enum() *TunnelType { *p = x return p } + func (x TunnelType) String() string { return proto.EnumName(TunnelType_name, int32(x)) } + func (x *TunnelType) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(TunnelType_value, data, "TunnelType") if err != nil { @@ -53,8 +58,9 @@ func (x *TunnelType) UnmarshalJSON(data []byte) error { *x = TunnelType(value) return nil } + func (TunnelType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{0} + return fileDescriptor_add33052b81b4cd7, []int{0} } type ChannelStatus int32 @@ -72,6 +78,7 @@ var ChannelStatus_name = map[int32]string{ 3: "CLOSE", 4: "TERMINATED", } + var ChannelStatus_value = map[string]int32{ "OPEN": 1, "CLOSING": 2, @@ -84,9 +91,11 @@ func (x ChannelStatus) Enum() *ChannelStatus { *p = x return p } + func (x ChannelStatus) String() string { return proto.EnumName(ChannelStatus_name, int32(x)) } + func (x *ChannelStatus) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(ChannelStatus_value, data, "ChannelStatus") if err != nil { @@ -95,8 +104,9 @@ func (x *ChannelStatus) UnmarshalJSON(data []byte) error { *x = ChannelStatus(value) return nil } + func (ChannelStatus) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{1} + return fileDescriptor_add33052b81b4cd7, []int{1} } type ActionType int32 @@ -112,6 +122,7 @@ var ActionType_name = map[int32]string{ 2: "UPDATE_ROW", 3: "DELETE_ROW", } + var ActionType_value = map[string]int32{ "PUT_ROW": 1, "UPDATE_ROW": 2, @@ -123,9 +134,11 @@ func (x ActionType) Enum() *ActionType { *p = x return p } + func (x ActionType) String() string { return proto.EnumName(ActionType_name, int32(x)) } + func (x *ActionType) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(ActionType_value, data, "ActionType") if err != nil { @@ -134,8 +147,9 @@ func (x *ActionType) UnmarshalJSON(data []byte) error { *x = ActionType(value) return nil } + func (ActionType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{2} + return fileDescriptor_add33052b81b4cd7, []int{2} } type StartOffsetFlag int32 @@ -149,6 +163,7 @@ var StartOffsetFlag_name = map[int32]string{ 0: "LATEST", 1: "EARLIEST", } + var StartOffsetFlag_value = map[string]int32{ "LATEST": 0, "EARLIEST": 1, @@ -159,9 +174,11 @@ func (x StartOffsetFlag) Enum() *StartOffsetFlag { *p = x return p } + func (x StartOffsetFlag) String() string { return proto.EnumName(StartOffsetFlag_name, int32(x)) } + func (x *StartOffsetFlag) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(StartOffsetFlag_value, data, "StartOffsetFlag") if err != nil { @@ -170,8 +187,9 @@ func (x *StartOffsetFlag) UnmarshalJSON(data []byte) error { *x = StartOffsetFlag(value) return nil } + func (StartOffsetFlag) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{3} + return fileDescriptor_add33052b81b4cd7, []int{3} } type Error struct { @@ -187,16 +205,17 @@ func (m *Error) Reset() { *m = Error{} } func (m *Error) String() string { return proto.CompactTextString(m) } func (*Error) ProtoMessage() {} func (*Error) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{0} + return fileDescriptor_add33052b81b4cd7, []int{0} } + func (m *Error) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Error.Unmarshal(m, b) } func (m *Error) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Error.Marshal(b, m, deterministic) } -func (dst *Error) XXX_Merge(src proto.Message) { - xxx_messageInfo_Error.Merge(dst, src) +func (m *Error) XXX_Merge(src proto.Message) { + xxx_messageInfo_Error.Merge(m, src) } func (m *Error) XXX_Size() int { return xxx_messageInfo_Error.Size(m) @@ -243,16 +262,17 @@ func (m *Tunnel) Reset() { *m = Tunnel{} } func (m *Tunnel) String() string { return proto.CompactTextString(m) } func (*Tunnel) ProtoMessage() {} func (*Tunnel) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{1} + return fileDescriptor_add33052b81b4cd7, []int{1} } + func (m *Tunnel) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Tunnel.Unmarshal(m, b) } func (m *Tunnel) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Tunnel.Marshal(b, m, deterministic) } -func (dst *Tunnel) XXX_Merge(src proto.Message) { - xxx_messageInfo_Tunnel.Merge(dst, src) +func (m *Tunnel) XXX_Merge(src proto.Message) { + xxx_messageInfo_Tunnel.Merge(m, src) } func (m *Tunnel) XXX_Size() int { return xxx_messageInfo_Tunnel.Size(m) @@ -309,16 +329,17 @@ func (m *CreateTunnelRequest) Reset() { *m = CreateTunnelRequest{} } func (m *CreateTunnelRequest) String() string { return proto.CompactTextString(m) } func (*CreateTunnelRequest) ProtoMessage() {} func (*CreateTunnelRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{2} + return fileDescriptor_add33052b81b4cd7, []int{2} } + func (m *CreateTunnelRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateTunnelRequest.Unmarshal(m, b) } func (m *CreateTunnelRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_CreateTunnelRequest.Marshal(b, m, deterministic) } -func (dst *CreateTunnelRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_CreateTunnelRequest.Merge(dst, src) +func (m *CreateTunnelRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateTunnelRequest.Merge(m, src) } func (m *CreateTunnelRequest) XXX_Size() int { return xxx_messageInfo_CreateTunnelRequest.Size(m) @@ -347,16 +368,17 @@ func (m *CreateTunnelResponse) Reset() { *m = CreateTunnelResponse{} } func (m *CreateTunnelResponse) String() string { return proto.CompactTextString(m) } func (*CreateTunnelResponse) ProtoMessage() {} func (*CreateTunnelResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{3} + return fileDescriptor_add33052b81b4cd7, []int{3} } + func (m *CreateTunnelResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateTunnelResponse.Unmarshal(m, b) } func (m *CreateTunnelResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_CreateTunnelResponse.Marshal(b, m, deterministic) } -func (dst *CreateTunnelResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_CreateTunnelResponse.Merge(dst, src) +func (m *CreateTunnelResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateTunnelResponse.Merge(m, src) } func (m *CreateTunnelResponse) XXX_Size() int { return xxx_messageInfo_CreateTunnelResponse.Size(m) @@ -387,16 +409,17 @@ func (m *DeleteTunnelRequest) Reset() { *m = DeleteTunnelRequest{} } func (m *DeleteTunnelRequest) String() string { return proto.CompactTextString(m) } func (*DeleteTunnelRequest) ProtoMessage() {} func (*DeleteTunnelRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{4} + return fileDescriptor_add33052b81b4cd7, []int{4} } + func (m *DeleteTunnelRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteTunnelRequest.Unmarshal(m, b) } func (m *DeleteTunnelRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_DeleteTunnelRequest.Marshal(b, m, deterministic) } -func (dst *DeleteTunnelRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeleteTunnelRequest.Merge(dst, src) +func (m *DeleteTunnelRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteTunnelRequest.Merge(m, src) } func (m *DeleteTunnelRequest) XXX_Size() int { return xxx_messageInfo_DeleteTunnelRequest.Size(m) @@ -438,16 +461,17 @@ func (m *DeleteTunnelResponse) Reset() { *m = DeleteTunnelResponse{} } func (m *DeleteTunnelResponse) String() string { return proto.CompactTextString(m) } func (*DeleteTunnelResponse) ProtoMessage() {} func (*DeleteTunnelResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{5} + return fileDescriptor_add33052b81b4cd7, []int{5} } + func (m *DeleteTunnelResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteTunnelResponse.Unmarshal(m, b) } func (m *DeleteTunnelResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_DeleteTunnelResponse.Marshal(b, m, deterministic) } -func (dst *DeleteTunnelResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeleteTunnelResponse.Merge(dst, src) +func (m *DeleteTunnelResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteTunnelResponse.Merge(m, src) } func (m *DeleteTunnelResponse) XXX_Size() int { return xxx_messageInfo_DeleteTunnelResponse.Size(m) @@ -469,16 +493,17 @@ func (m *ListTunnelRequest) Reset() { *m = ListTunnelRequest{} } func (m *ListTunnelRequest) String() string { return proto.CompactTextString(m) } func (*ListTunnelRequest) ProtoMessage() {} func (*ListTunnelRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{6} + return fileDescriptor_add33052b81b4cd7, []int{6} } + func (m *ListTunnelRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListTunnelRequest.Unmarshal(m, b) } func (m *ListTunnelRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ListTunnelRequest.Marshal(b, m, deterministic) } -func (dst *ListTunnelRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ListTunnelRequest.Merge(dst, src) +func (m *ListTunnelRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListTunnelRequest.Merge(m, src) } func (m *ListTunnelRequest) XXX_Size() int { return xxx_messageInfo_ListTunnelRequest.Size(m) @@ -517,16 +542,17 @@ func (m *TunnelInfo) Reset() { *m = TunnelInfo{} } func (m *TunnelInfo) String() string { return proto.CompactTextString(m) } func (*TunnelInfo) ProtoMessage() {} func (*TunnelInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{7} + return fileDescriptor_add33052b81b4cd7, []int{7} } + func (m *TunnelInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TunnelInfo.Unmarshal(m, b) } func (m *TunnelInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_TunnelInfo.Marshal(b, m, deterministic) } -func (dst *TunnelInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_TunnelInfo.Merge(dst, src) +func (m *TunnelInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_TunnelInfo.Merge(m, src) } func (m *TunnelInfo) XXX_Size() int { return xxx_messageInfo_TunnelInfo.Size(m) @@ -625,16 +651,17 @@ func (m *ListTunnelResponse) Reset() { *m = ListTunnelResponse{} } func (m *ListTunnelResponse) String() string { return proto.CompactTextString(m) } func (*ListTunnelResponse) ProtoMessage() {} func (*ListTunnelResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{8} + return fileDescriptor_add33052b81b4cd7, []int{8} } + func (m *ListTunnelResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListTunnelResponse.Unmarshal(m, b) } func (m *ListTunnelResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ListTunnelResponse.Marshal(b, m, deterministic) } -func (dst *ListTunnelResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_ListTunnelResponse.Merge(dst, src) +func (m *ListTunnelResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListTunnelResponse.Merge(m, src) } func (m *ListTunnelResponse) XXX_Size() int { return xxx_messageInfo_ListTunnelResponse.Size(m) @@ -665,16 +692,17 @@ func (m *DescribeTunnelRequest) Reset() { *m = DescribeTunnelRequest{} } func (m *DescribeTunnelRequest) String() string { return proto.CompactTextString(m) } func (*DescribeTunnelRequest) ProtoMessage() {} func (*DescribeTunnelRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{9} + return fileDescriptor_add33052b81b4cd7, []int{9} } + func (m *DescribeTunnelRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DescribeTunnelRequest.Unmarshal(m, b) } func (m *DescribeTunnelRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_DescribeTunnelRequest.Marshal(b, m, deterministic) } -func (dst *DescribeTunnelRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_DescribeTunnelRequest.Merge(dst, src) +func (m *DescribeTunnelRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_DescribeTunnelRequest.Merge(m, src) } func (m *DescribeTunnelRequest) XXX_Size() int { return xxx_messageInfo_DescribeTunnelRequest.Size(m) @@ -722,16 +750,17 @@ func (m *ChannelInfo) Reset() { *m = ChannelInfo{} } func (m *ChannelInfo) String() string { return proto.CompactTextString(m) } func (*ChannelInfo) ProtoMessage() {} func (*ChannelInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{10} + return fileDescriptor_add33052b81b4cd7, []int{10} } + func (m *ChannelInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ChannelInfo.Unmarshal(m, b) } func (m *ChannelInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ChannelInfo.Marshal(b, m, deterministic) } -func (dst *ChannelInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_ChannelInfo.Merge(dst, src) +func (m *ChannelInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_ChannelInfo.Merge(m, src) } func (m *ChannelInfo) XXX_Size() int { return xxx_messageInfo_ChannelInfo.Size(m) @@ -797,16 +826,17 @@ func (m *DescribeTunnelResponse) Reset() { *m = DescribeTunnelResponse{} func (m *DescribeTunnelResponse) String() string { return proto.CompactTextString(m) } func (*DescribeTunnelResponse) ProtoMessage() {} func (*DescribeTunnelResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{11} + return fileDescriptor_add33052b81b4cd7, []int{11} } + func (m *DescribeTunnelResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DescribeTunnelResponse.Unmarshal(m, b) } func (m *DescribeTunnelResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_DescribeTunnelResponse.Marshal(b, m, deterministic) } -func (dst *DescribeTunnelResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_DescribeTunnelResponse.Merge(dst, src) +func (m *DescribeTunnelResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_DescribeTunnelResponse.Merge(m, src) } func (m *DescribeTunnelResponse) XXX_Size() int { return xxx_messageInfo_DescribeTunnelResponse.Size(m) @@ -850,16 +880,17 @@ func (m *GetRpoRequest) Reset() { *m = GetRpoRequest{} } func (m *GetRpoRequest) String() string { return proto.CompactTextString(m) } func (*GetRpoRequest) ProtoMessage() {} func (*GetRpoRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{12} + return fileDescriptor_add33052b81b4cd7, []int{12} } + func (m *GetRpoRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetRpoRequest.Unmarshal(m, b) } func (m *GetRpoRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_GetRpoRequest.Marshal(b, m, deterministic) } -func (dst *GetRpoRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetRpoRequest.Merge(dst, src) +func (m *GetRpoRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetRpoRequest.Merge(m, src) } func (m *GetRpoRequest) XXX_Size() int { return xxx_messageInfo_GetRpoRequest.Size(m) @@ -897,16 +928,17 @@ func (m *GetRpoResponse) Reset() { *m = GetRpoResponse{} } func (m *GetRpoResponse) String() string { return proto.CompactTextString(m) } func (*GetRpoResponse) ProtoMessage() {} func (*GetRpoResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{13} + return fileDescriptor_add33052b81b4cd7, []int{13} } + func (m *GetRpoResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetRpoResponse.Unmarshal(m, b) } func (m *GetRpoResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_GetRpoResponse.Marshal(b, m, deterministic) } -func (dst *GetRpoResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetRpoResponse.Merge(dst, src) +func (m *GetRpoResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetRpoResponse.Merge(m, src) } func (m *GetRpoResponse) XXX_Size() int { return xxx_messageInfo_GetRpoResponse.Size(m) @@ -950,16 +982,17 @@ func (m *ClientConfig) Reset() { *m = ClientConfig{} } func (m *ClientConfig) String() string { return proto.CompactTextString(m) } func (*ClientConfig) ProtoMessage() {} func (*ClientConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{14} + return fileDescriptor_add33052b81b4cd7, []int{14} } + func (m *ClientConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClientConfig.Unmarshal(m, b) } func (m *ClientConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ClientConfig.Marshal(b, m, deterministic) } -func (dst *ClientConfig) XXX_Merge(src proto.Message) { - xxx_messageInfo_ClientConfig.Merge(dst, src) +func (m *ClientConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_ClientConfig.Merge(m, src) } func (m *ClientConfig) XXX_Size() int { return xxx_messageInfo_ClientConfig.Size(m) @@ -996,16 +1029,17 @@ func (m *ConnectRequest) Reset() { *m = ConnectRequest{} } func (m *ConnectRequest) String() string { return proto.CompactTextString(m) } func (*ConnectRequest) ProtoMessage() {} func (*ConnectRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{15} + return fileDescriptor_add33052b81b4cd7, []int{15} } + func (m *ConnectRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConnectRequest.Unmarshal(m, b) } func (m *ConnectRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ConnectRequest.Marshal(b, m, deterministic) } -func (dst *ConnectRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ConnectRequest.Merge(dst, src) +func (m *ConnectRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ConnectRequest.Merge(m, src) } func (m *ConnectRequest) XXX_Size() int { return xxx_messageInfo_ConnectRequest.Size(m) @@ -1041,16 +1075,17 @@ func (m *ConnectResponse) Reset() { *m = ConnectResponse{} } func (m *ConnectResponse) String() string { return proto.CompactTextString(m) } func (*ConnectResponse) ProtoMessage() {} func (*ConnectResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{16} + return fileDescriptor_add33052b81b4cd7, []int{16} } + func (m *ConnectResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConnectResponse.Unmarshal(m, b) } func (m *ConnectResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ConnectResponse.Marshal(b, m, deterministic) } -func (dst *ConnectResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_ConnectResponse.Merge(dst, src) +func (m *ConnectResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ConnectResponse.Merge(m, src) } func (m *ConnectResponse) XXX_Size() int { return xxx_messageInfo_ConnectResponse.Size(m) @@ -1082,16 +1117,17 @@ func (m *Channel) Reset() { *m = Channel{} } func (m *Channel) String() string { return proto.CompactTextString(m) } func (*Channel) ProtoMessage() {} func (*Channel) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{17} + return fileDescriptor_add33052b81b4cd7, []int{17} } + func (m *Channel) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Channel.Unmarshal(m, b) } func (m *Channel) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Channel.Marshal(b, m, deterministic) } -func (dst *Channel) XXX_Merge(src proto.Message) { - xxx_messageInfo_Channel.Merge(dst, src) +func (m *Channel) XXX_Merge(src proto.Message) { + xxx_messageInfo_Channel.Merge(m, src) } func (m *Channel) XXX_Size() int { return xxx_messageInfo_Channel.Size(m) @@ -1143,16 +1179,17 @@ func (m *HeartbeatRequest) Reset() { *m = HeartbeatRequest{} } func (m *HeartbeatRequest) String() string { return proto.CompactTextString(m) } func (*HeartbeatRequest) ProtoMessage() {} func (*HeartbeatRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{18} + return fileDescriptor_add33052b81b4cd7, []int{18} } + func (m *HeartbeatRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_HeartbeatRequest.Unmarshal(m, b) } func (m *HeartbeatRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_HeartbeatRequest.Marshal(b, m, deterministic) } -func (dst *HeartbeatRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_HeartbeatRequest.Merge(dst, src) +func (m *HeartbeatRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_HeartbeatRequest.Merge(m, src) } func (m *HeartbeatRequest) XXX_Size() int { return xxx_messageInfo_HeartbeatRequest.Size(m) @@ -1195,16 +1232,17 @@ func (m *HeartbeatResponse) Reset() { *m = HeartbeatResponse{} } func (m *HeartbeatResponse) String() string { return proto.CompactTextString(m) } func (*HeartbeatResponse) ProtoMessage() {} func (*HeartbeatResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{19} + return fileDescriptor_add33052b81b4cd7, []int{19} } + func (m *HeartbeatResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_HeartbeatResponse.Unmarshal(m, b) } func (m *HeartbeatResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_HeartbeatResponse.Marshal(b, m, deterministic) } -func (dst *HeartbeatResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_HeartbeatResponse.Merge(dst, src) +func (m *HeartbeatResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_HeartbeatResponse.Merge(m, src) } func (m *HeartbeatResponse) XXX_Size() int { return xxx_messageInfo_HeartbeatResponse.Size(m) @@ -1234,16 +1272,17 @@ func (m *ShutdownRequest) Reset() { *m = ShutdownRequest{} } func (m *ShutdownRequest) String() string { return proto.CompactTextString(m) } func (*ShutdownRequest) ProtoMessage() {} func (*ShutdownRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{20} + return fileDescriptor_add33052b81b4cd7, []int{20} } + func (m *ShutdownRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ShutdownRequest.Unmarshal(m, b) } func (m *ShutdownRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ShutdownRequest.Marshal(b, m, deterministic) } -func (dst *ShutdownRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ShutdownRequest.Merge(dst, src) +func (m *ShutdownRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ShutdownRequest.Merge(m, src) } func (m *ShutdownRequest) XXX_Size() int { return xxx_messageInfo_ShutdownRequest.Size(m) @@ -1278,16 +1317,17 @@ func (m *ShutdownResponse) Reset() { *m = ShutdownResponse{} } func (m *ShutdownResponse) String() string { return proto.CompactTextString(m) } func (*ShutdownResponse) ProtoMessage() {} func (*ShutdownResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{21} + return fileDescriptor_add33052b81b4cd7, []int{21} } + func (m *ShutdownResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ShutdownResponse.Unmarshal(m, b) } func (m *ShutdownResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ShutdownResponse.Marshal(b, m, deterministic) } -func (dst *ShutdownResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_ShutdownResponse.Merge(dst, src) +func (m *ShutdownResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ShutdownResponse.Merge(m, src) } func (m *ShutdownResponse) XXX_Size() int { return xxx_messageInfo_ShutdownResponse.Size(m) @@ -1313,16 +1353,17 @@ func (m *LockChannelRequest) Reset() { *m = LockChannelRequest{} } func (m *LockChannelRequest) String() string { return proto.CompactTextString(m) } func (*LockChannelRequest) ProtoMessage() {} func (*LockChannelRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{22} + return fileDescriptor_add33052b81b4cd7, []int{22} } + func (m *LockChannelRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_LockChannelRequest.Unmarshal(m, b) } func (m *LockChannelRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_LockChannelRequest.Marshal(b, m, deterministic) } -func (dst *LockChannelRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_LockChannelRequest.Merge(dst, src) +func (m *LockChannelRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_LockChannelRequest.Merge(m, src) } func (m *LockChannelRequest) XXX_Size() int { return xxx_messageInfo_LockChannelRequest.Size(m) @@ -1378,16 +1419,17 @@ func (m *LockChannelResponse) Reset() { *m = LockChannelResponse{} } func (m *LockChannelResponse) String() string { return proto.CompactTextString(m) } func (*LockChannelResponse) ProtoMessage() {} func (*LockChannelResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{23} + return fileDescriptor_add33052b81b4cd7, []int{23} } + func (m *LockChannelResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_LockChannelResponse.Unmarshal(m, b) } func (m *LockChannelResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_LockChannelResponse.Marshal(b, m, deterministic) } -func (dst *LockChannelResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_LockChannelResponse.Merge(dst, src) +func (m *LockChannelResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_LockChannelResponse.Merge(m, src) } func (m *LockChannelResponse) XXX_Size() int { return xxx_messageInfo_LockChannelResponse.Size(m) @@ -1412,16 +1454,17 @@ func (m *UnlockChannelRequest) Reset() { *m = UnlockChannelRequest{} } func (m *UnlockChannelRequest) String() string { return proto.CompactTextString(m) } func (*UnlockChannelRequest) ProtoMessage() {} func (*UnlockChannelRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{24} + return fileDescriptor_add33052b81b4cd7, []int{24} } + func (m *UnlockChannelRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UnlockChannelRequest.Unmarshal(m, b) } func (m *UnlockChannelRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_UnlockChannelRequest.Marshal(b, m, deterministic) } -func (dst *UnlockChannelRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_UnlockChannelRequest.Merge(dst, src) +func (m *UnlockChannelRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_UnlockChannelRequest.Merge(m, src) } func (m *UnlockChannelRequest) XXX_Size() int { return xxx_messageInfo_UnlockChannelRequest.Size(m) @@ -1470,16 +1513,17 @@ func (m *UnlockChannelResponse) Reset() { *m = UnlockChannelResponse{} } func (m *UnlockChannelResponse) String() string { return proto.CompactTextString(m) } func (*UnlockChannelResponse) ProtoMessage() {} func (*UnlockChannelResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{25} + return fileDescriptor_add33052b81b4cd7, []int{25} } + func (m *UnlockChannelResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UnlockChannelResponse.Unmarshal(m, b) } func (m *UnlockChannelResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_UnlockChannelResponse.Marshal(b, m, deterministic) } -func (dst *UnlockChannelResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_UnlockChannelResponse.Merge(dst, src) +func (m *UnlockChannelResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_UnlockChannelResponse.Merge(m, src) } func (m *UnlockChannelResponse) XXX_Size() int { return xxx_messageInfo_UnlockChannelResponse.Size(m) @@ -1503,16 +1547,17 @@ func (m *GetCheckpointRequest) Reset() { *m = GetCheckpointRequest{} } func (m *GetCheckpointRequest) String() string { return proto.CompactTextString(m) } func (*GetCheckpointRequest) ProtoMessage() {} func (*GetCheckpointRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{26} + return fileDescriptor_add33052b81b4cd7, []int{26} } + func (m *GetCheckpointRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetCheckpointRequest.Unmarshal(m, b) } func (m *GetCheckpointRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_GetCheckpointRequest.Marshal(b, m, deterministic) } -func (dst *GetCheckpointRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetCheckpointRequest.Merge(dst, src) +func (m *GetCheckpointRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetCheckpointRequest.Merge(m, src) } func (m *GetCheckpointRequest) XXX_Size() int { return xxx_messageInfo_GetCheckpointRequest.Size(m) @@ -1556,16 +1601,17 @@ func (m *GetCheckpointResponse) Reset() { *m = GetCheckpointResponse{} } func (m *GetCheckpointResponse) String() string { return proto.CompactTextString(m) } func (*GetCheckpointResponse) ProtoMessage() {} func (*GetCheckpointResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{27} + return fileDescriptor_add33052b81b4cd7, []int{27} } + func (m *GetCheckpointResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetCheckpointResponse.Unmarshal(m, b) } func (m *GetCheckpointResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_GetCheckpointResponse.Marshal(b, m, deterministic) } -func (dst *GetCheckpointResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetCheckpointResponse.Merge(dst, src) +func (m *GetCheckpointResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetCheckpointResponse.Merge(m, src) } func (m *GetCheckpointResponse) XXX_Size() int { return xxx_messageInfo_GetCheckpointResponse.Size(m) @@ -1605,16 +1651,17 @@ func (m *CheckpointRequest) Reset() { *m = CheckpointRequest{} } func (m *CheckpointRequest) String() string { return proto.CompactTextString(m) } func (*CheckpointRequest) ProtoMessage() {} func (*CheckpointRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{28} + return fileDescriptor_add33052b81b4cd7, []int{28} } + func (m *CheckpointRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CheckpointRequest.Unmarshal(m, b) } func (m *CheckpointRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_CheckpointRequest.Marshal(b, m, deterministic) } -func (dst *CheckpointRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_CheckpointRequest.Merge(dst, src) +func (m *CheckpointRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_CheckpointRequest.Merge(m, src) } func (m *CheckpointRequest) XXX_Size() int { return xxx_messageInfo_CheckpointRequest.Size(m) @@ -1670,16 +1717,17 @@ func (m *CheckpointResponse) Reset() { *m = CheckpointResponse{} } func (m *CheckpointResponse) String() string { return proto.CompactTextString(m) } func (*CheckpointResponse) ProtoMessage() {} func (*CheckpointResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{29} + return fileDescriptor_add33052b81b4cd7, []int{29} } + func (m *CheckpointResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CheckpointResponse.Unmarshal(m, b) } func (m *CheckpointResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_CheckpointResponse.Marshal(b, m, deterministic) } -func (dst *CheckpointResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_CheckpointResponse.Merge(dst, src) +func (m *CheckpointResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_CheckpointResponse.Merge(m, src) } func (m *CheckpointResponse) XXX_Size() int { return xxx_messageInfo_CheckpointResponse.Size(m) @@ -1704,16 +1752,17 @@ func (m *ReadRecordsRequest) Reset() { *m = ReadRecordsRequest{} } func (m *ReadRecordsRequest) String() string { return proto.CompactTextString(m) } func (*ReadRecordsRequest) ProtoMessage() {} func (*ReadRecordsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{30} + return fileDescriptor_add33052b81b4cd7, []int{30} } + func (m *ReadRecordsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ReadRecordsRequest.Unmarshal(m, b) } func (m *ReadRecordsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ReadRecordsRequest.Marshal(b, m, deterministic) } -func (dst *ReadRecordsRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ReadRecordsRequest.Merge(dst, src) +func (m *ReadRecordsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ReadRecordsRequest.Merge(m, src) } func (m *ReadRecordsRequest) XXX_Size() int { return xxx_messageInfo_ReadRecordsRequest.Size(m) @@ -1755,6 +1804,7 @@ func (m *ReadRecordsRequest) GetToken() string { type Record struct { ActionType *ActionType `protobuf:"varint,1,req,name=action_type,enum=protocol.ActionType" json:"action_type,omitempty"` Record []byte `protobuf:"bytes,2,req,name=record" json:"record,omitempty"` + OriginRecord []byte `protobuf:"bytes,3,opt,name=origin_record" json:"origin_record,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1764,16 +1814,17 @@ func (m *Record) Reset() { *m = Record{} } func (m *Record) String() string { return proto.CompactTextString(m) } func (*Record) ProtoMessage() {} func (*Record) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{31} + return fileDescriptor_add33052b81b4cd7, []int{31} } + func (m *Record) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Record.Unmarshal(m, b) } func (m *Record) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Record.Marshal(b, m, deterministic) } -func (dst *Record) XXX_Merge(src proto.Message) { - xxx_messageInfo_Record.Merge(dst, src) +func (m *Record) XXX_Merge(src proto.Message) { + xxx_messageInfo_Record.Merge(m, src) } func (m *Record) XXX_Size() int { return xxx_messageInfo_Record.Size(m) @@ -1798,6 +1849,13 @@ func (m *Record) GetRecord() []byte { return nil } +func (m *Record) GetOriginRecord() []byte { + if m != nil { + return m.OriginRecord + } + return nil +} + type ReadRecordsResponse struct { Records []*Record `protobuf:"bytes,1,rep,name=records" json:"records,omitempty"` NextToken *string `protobuf:"bytes,2,req,name=next_token" json:"next_token,omitempty"` @@ -1810,16 +1868,17 @@ func (m *ReadRecordsResponse) Reset() { *m = ReadRecordsResponse{} } func (m *ReadRecordsResponse) String() string { return proto.CompactTextString(m) } func (*ReadRecordsResponse) ProtoMessage() {} func (*ReadRecordsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{32} + return fileDescriptor_add33052b81b4cd7, []int{32} } + func (m *ReadRecordsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ReadRecordsResponse.Unmarshal(m, b) } func (m *ReadRecordsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ReadRecordsResponse.Marshal(b, m, deterministic) } -func (dst *ReadRecordsResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_ReadRecordsResponse.Merge(dst, src) +func (m *ReadRecordsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ReadRecordsResponse.Merge(m, src) } func (m *ReadRecordsResponse) XXX_Size() int { return xxx_messageInfo_ReadRecordsResponse.Size(m) @@ -1856,16 +1915,17 @@ func (m *Token) Reset() { *m = Token{} } func (m *Token) String() string { return proto.CompactTextString(m) } func (*Token) ProtoMessage() {} func (*Token) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{33} + return fileDescriptor_add33052b81b4cd7, []int{33} } + func (m *Token) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Token.Unmarshal(m, b) } func (m *Token) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Token.Marshal(b, m, deterministic) } -func (dst *Token) XXX_Merge(src proto.Message) { - xxx_messageInfo_Token.Merge(dst, src) +func (m *Token) XXX_Merge(src proto.Message) { + xxx_messageInfo_Token.Merge(m, src) } func (m *Token) XXX_Size() int { return xxx_messageInfo_Token.Size(m) @@ -1903,16 +1963,17 @@ func (m *TokenContent) Reset() { *m = TokenContent{} } func (m *TokenContent) String() string { return proto.CompactTextString(m) } func (*TokenContent) ProtoMessage() {} func (*TokenContent) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{34} + return fileDescriptor_add33052b81b4cd7, []int{34} } + func (m *TokenContent) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TokenContent.Unmarshal(m, b) } func (m *TokenContent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_TokenContent.Marshal(b, m, deterministic) } -func (dst *TokenContent) XXX_Merge(src proto.Message) { - xxx_messageInfo_TokenContent.Merge(dst, src) +func (m *TokenContent) XXX_Merge(src proto.Message) { + xxx_messageInfo_TokenContent.Merge(m, src) } func (m *TokenContent) XXX_Size() int { return xxx_messageInfo_TokenContent.Size(m) @@ -1958,16 +2019,17 @@ func (m *TokenContentV2) Reset() { *m = TokenContentV2{} } func (m *TokenContentV2) String() string { return proto.CompactTextString(m) } func (*TokenContentV2) ProtoMessage() {} func (*TokenContentV2) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{35} + return fileDescriptor_add33052b81b4cd7, []int{35} } + func (m *TokenContentV2) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TokenContentV2.Unmarshal(m, b) } func (m *TokenContentV2) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_TokenContentV2.Marshal(b, m, deterministic) } -func (dst *TokenContentV2) XXX_Merge(src proto.Message) { - xxx_messageInfo_TokenContentV2.Merge(dst, src) +func (m *TokenContentV2) XXX_Merge(src proto.Message) { + xxx_messageInfo_TokenContentV2.Merge(m, src) } func (m *TokenContentV2) XXX_Size() int { return xxx_messageInfo_TokenContentV2.Size(m) @@ -2019,16 +2081,17 @@ func (m *StreamTunnelConfig) Reset() { *m = StreamTunnelConfig{} } func (m *StreamTunnelConfig) String() string { return proto.CompactTextString(m) } func (*StreamTunnelConfig) ProtoMessage() {} func (*StreamTunnelConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{36} + return fileDescriptor_add33052b81b4cd7, []int{36} } + func (m *StreamTunnelConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StreamTunnelConfig.Unmarshal(m, b) } func (m *StreamTunnelConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_StreamTunnelConfig.Marshal(b, m, deterministic) } -func (dst *StreamTunnelConfig) XXX_Merge(src proto.Message) { - xxx_messageInfo_StreamTunnelConfig.Merge(dst, src) +func (m *StreamTunnelConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_StreamTunnelConfig.Merge(m, src) } func (m *StreamTunnelConfig) XXX_Size() int { return xxx_messageInfo_StreamTunnelConfig.Size(m) @@ -2072,16 +2135,17 @@ func (m *ScheduleRequest) Reset() { *m = ScheduleRequest{} } func (m *ScheduleRequest) String() string { return proto.CompactTextString(m) } func (*ScheduleRequest) ProtoMessage() {} func (*ScheduleRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{37} + return fileDescriptor_add33052b81b4cd7, []int{37} } + func (m *ScheduleRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ScheduleRequest.Unmarshal(m, b) } func (m *ScheduleRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ScheduleRequest.Marshal(b, m, deterministic) } -func (dst *ScheduleRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ScheduleRequest.Merge(dst, src) +func (m *ScheduleRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ScheduleRequest.Merge(m, src) } func (m *ScheduleRequest) XXX_Size() int { return xxx_messageInfo_ScheduleRequest.Size(m) @@ -2116,16 +2180,17 @@ func (m *ScheduleResponse) Reset() { *m = ScheduleResponse{} } func (m *ScheduleResponse) String() string { return proto.CompactTextString(m) } func (*ScheduleResponse) ProtoMessage() {} func (*ScheduleResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_tunnelservice_7fe235c1b2c1510d, []int{38} + return fileDescriptor_add33052b81b4cd7, []int{38} } + func (m *ScheduleResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ScheduleResponse.Unmarshal(m, b) } func (m *ScheduleResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ScheduleResponse.Marshal(b, m, deterministic) } -func (dst *ScheduleResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_ScheduleResponse.Merge(dst, src) +func (m *ScheduleResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ScheduleResponse.Merge(m, src) } func (m *ScheduleResponse) XXX_Size() int { return xxx_messageInfo_ScheduleResponse.Size(m) @@ -2137,6 +2202,10 @@ func (m *ScheduleResponse) XXX_DiscardUnknown() { var xxx_messageInfo_ScheduleResponse proto.InternalMessageInfo func init() { + proto.RegisterEnum("protocol.TunnelType", TunnelType_name, TunnelType_value) + proto.RegisterEnum("protocol.ChannelStatus", ChannelStatus_name, ChannelStatus_value) + proto.RegisterEnum("protocol.ActionType", ActionType_name, ActionType_value) + proto.RegisterEnum("protocol.StartOffsetFlag", StartOffsetFlag_name, StartOffsetFlag_value) proto.RegisterType((*Error)(nil), "protocol.Error") proto.RegisterType((*Tunnel)(nil), "protocol.Tunnel") proto.RegisterType((*CreateTunnelRequest)(nil), "protocol.CreateTunnelRequest") @@ -2176,91 +2245,87 @@ func init() { proto.RegisterType((*StreamTunnelConfig)(nil), "protocol.StreamTunnelConfig") proto.RegisterType((*ScheduleRequest)(nil), "protocol.ScheduleRequest") proto.RegisterType((*ScheduleResponse)(nil), "protocol.ScheduleResponse") - proto.RegisterEnum("protocol.TunnelType", TunnelType_name, TunnelType_value) - proto.RegisterEnum("protocol.ChannelStatus", ChannelStatus_name, ChannelStatus_value) - proto.RegisterEnum("protocol.ActionType", ActionType_name, ActionType_value) - proto.RegisterEnum("protocol.StartOffsetFlag", StartOffsetFlag_name, StartOffsetFlag_value) } -func init() { proto.RegisterFile("tunnelservice.proto", fileDescriptor_tunnelservice_7fe235c1b2c1510d) } - -var fileDescriptor_tunnelservice_7fe235c1b2c1510d = []byte{ - // 1217 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0x5b, 0x73, 0xdb, 0x44, - 0x14, 0x46, 0x96, 0x6f, 0x39, 0xbe, 0x29, 0x6b, 0x27, 0x15, 0x33, 0x7d, 0x30, 0xa2, 0x4c, 0xdc, - 0x32, 0x74, 0x86, 0xf0, 0x50, 0x0a, 0x4f, 0xc6, 0x36, 0x6d, 0x66, 0x4c, 0x13, 0x6c, 0x17, 0x9e, - 0x3a, 0x9e, 0x8d, 0x7c, 0x92, 0x68, 0x22, 0xef, 0x0a, 0xed, 0xba, 0x34, 0xf0, 0x07, 0x78, 0xe2, - 0x27, 0xf1, 0xdb, 0x98, 0xbd, 0x28, 0x96, 0x9d, 0xa4, 0xd3, 0xd2, 0xf2, 0xa4, 0xd9, 0xa3, 0x3d, - 0xe7, 0x3b, 0xfb, 0x7d, 0xdf, 0x5e, 0xa0, 0x2d, 0x57, 0x8c, 0x61, 0x2c, 0x30, 0x7d, 0x1d, 0x85, - 0xf8, 0x38, 0x49, 0xb9, 0xe4, 0xa4, 0xaa, 0x3f, 0x21, 0x8f, 0x83, 0xa7, 0x50, 0x1a, 0xa5, 0x29, - 0x4f, 0x49, 0x1d, 0x8a, 0x21, 0x5f, 0xa0, 0xef, 0x74, 0x0b, 0xbd, 0x1d, 0xd2, 0x82, 0xca, 0x12, - 0x85, 0xa0, 0xe7, 0xe8, 0x17, 0xba, 0x4e, 0x6f, 0x87, 0xec, 0xc2, 0x8e, 0x29, 0x34, 0x8f, 0x16, - 0xbe, 0xab, 0x42, 0xc1, 0x3f, 0x0e, 0x94, 0x67, 0x3a, 0x46, 0x08, 0x80, 0xa4, 0xa7, 0x31, 0xce, - 0x19, 0x5d, 0x66, 0x25, 0xda, 0x50, 0xb3, 0x19, 0x3a, 0xe8, 0xea, 0xe0, 0xc3, 0xeb, 0xa0, 0xbc, - 0x4a, 0xd0, 0x2f, 0x76, 0x0b, 0xbd, 0xe6, 0x61, 0xe7, 0x71, 0xd6, 0xce, 0x63, 0x53, 0x6f, 0x76, - 0x95, 0x20, 0xf9, 0x0e, 0x3a, 0x42, 0xa6, 0x48, 0x97, 0x73, 0x9b, 0x11, 0x72, 0x76, 0x16, 0x9d, - 0xfb, 0xa5, 0xae, 0xd3, 0xab, 0x1d, 0xde, 0x5f, 0xe7, 0x4c, 0xf5, 0x2c, 0x93, 0x39, 0xd0, 0x73, - 0xc8, 0x03, 0xb8, 0xcf, 0x10, 0x17, 0x73, 0x1a, 0xc7, 0x73, 0x19, 0x2d, 0x71, 0x2e, 0x30, 0x8d, - 0x50, 0xcc, 0x43, 0x1e, 0xaf, 0x96, 0x4c, 0xf8, 0xe5, 0xae, 0xd3, 0xab, 0x06, 0x4f, 0xa0, 0x3d, - 0x48, 0x91, 0x4a, 0x34, 0xb9, 0x13, 0xfc, 0x6d, 0x85, 0x42, 0x92, 0x2e, 0x94, 0x0d, 0xa2, 0x5e, - 0x48, 0xed, 0xd0, 0xdb, 0x6e, 0x2f, 0x78, 0x08, 0x9d, 0xcd, 0x44, 0x91, 0x70, 0x26, 0x70, 0x93, - 0x24, 0xcd, 0x42, 0xf0, 0x33, 0xb4, 0x87, 0x18, 0xe3, 0x36, 0xc6, 0x3b, 0x10, 0x56, 0xd0, 0xc1, - 0x5b, 0x78, 0xdf, 0x87, 0xce, 0x66, 0x49, 0x83, 0x1e, 0x1c, 0xc0, 0xee, 0x38, 0x12, 0xf2, 0xed, - 0x40, 0xaa, 0xc0, 0x5f, 0x05, 0x00, 0x33, 0xeb, 0x88, 0x9d, 0xf1, 0x5b, 0xba, 0xce, 0xb5, 0xa2, - 0x65, 0x32, 0xad, 0x6c, 0x96, 0x32, 0x7a, 0xee, 0x41, 0x23, 0x62, 0x42, 0x52, 0x16, 0xda, 0x70, - 0x31, 0xeb, 0xda, 0x6a, 0x17, 0x2d, 0xfc, 0x92, 0x0e, 0x35, 0xa0, 0x24, 0xa4, 0xf2, 0x53, 0x39, - 0x33, 0x18, 0xbe, 0x49, 0xa2, 0x14, 0x17, 0x7e, 0x45, 0x89, 0xb1, 0xbd, 0xfa, 0xaa, 0x76, 0x5d, - 0x13, 0xca, 0xc9, 0xea, 0x34, 0x8e, 0x42, 0x7f, 0x47, 0x4f, 0xba, 0xcb, 0x13, 0xf0, 0x0e, 0x9e, - 0x68, 0x43, 0x2d, 0xd4, 0xa2, 0x69, 0x47, 0xf8, 0xb5, 0xae, 0xd3, 0x73, 0x83, 0xef, 0x81, 0xe4, - 0x39, 0xb3, 0x3a, 0x7e, 0x01, 0x15, 0xbb, 0x6b, 0x7c, 0xa7, 0xeb, 0xf6, 0x6a, 0x37, 0x1d, 0xaa, - 0x88, 0x0b, 0xa6, 0xb0, 0x37, 0x44, 0x11, 0xa6, 0xd1, 0xe9, 0x47, 0x54, 0xf7, 0x6f, 0x07, 0x6a, - 0x83, 0x0b, 0x7a, 0xad, 0x0e, 0x01, 0x08, 0xcd, 0x70, 0x2d, 0x4f, 0x07, 0xea, 0x59, 0xcc, 0xea, - 0xa3, 0xc8, 0xda, 0x87, 0x66, 0x16, 0x15, 0x92, 0xca, 0x95, 0x30, 0x15, 0x15, 0x48, 0x18, 0x47, - 0xc8, 0xa4, 0x2a, 0x50, 0xd4, 0x21, 0xc5, 0x85, 0x9d, 0x9a, 0x26, 0x5c, 0x6f, 0x29, 0x57, 0x69, - 0x99, 0x05, 0x43, 0xbe, 0x62, 0x52, 0xef, 0x12, 0x37, 0xf8, 0x13, 0xf6, 0xb7, 0x57, 0x69, 0x69, - 0x7a, 0xb0, 0xb5, 0x51, 0x6e, 0x65, 0x89, 0x1c, 0x40, 0xd5, 0x96, 0x15, 0x7e, 0x41, 0xb3, 0xb9, - 0xb7, 0x9e, 0xb7, 0xb5, 0x52, 0x4b, 0x86, 0xea, 0xc9, 0xd5, 0xe0, 0x5f, 0x43, 0xe3, 0x19, 0xca, - 0x49, 0xc2, 0x33, 0x6a, 0xb7, 0xcc, 0xea, 0x18, 0x67, 0xc5, 0xd1, 0x32, 0x92, 0x9a, 0x86, 0x52, - 0x70, 0x02, 0xcd, 0x2c, 0x65, 0xbd, 0x2d, 0xd3, 0x84, 0xcf, 0x23, 0x76, 0xc6, 0x85, 0xce, 0xa9, - 0x13, 0x1f, 0xbc, 0x35, 0x96, 0xfd, 0x53, 0xd0, 0x7f, 0x6e, 0x91, 0xe4, 0x1b, 0xa8, 0x0f, 0x34, - 0x81, 0xd6, 0x49, 0x2d, 0xa8, 0x28, 0x0b, 0xf1, 0x95, 0xd4, 0xd5, 0x5c, 0xad, 0x91, 0x61, 0x58, - 0xd2, 0x73, 0xa3, 0x46, 0x30, 0x81, 0xe6, 0x80, 0x33, 0x86, 0xa1, 0xbc, 0xa3, 0x75, 0x25, 0xe4, - 0x57, 0xd0, 0xb0, 0x89, 0xd6, 0xc8, 0x05, 0x6d, 0xe4, 0xfd, 0x1c, 0x41, 0x39, 0xe0, 0xe0, 0x01, - 0xb4, 0xae, 0x6b, 0xae, 0xd7, 0xb6, 0x16, 0xd7, 0x1c, 0x39, 0xe7, 0x50, 0xb1, 0xb4, 0xde, 0x6a, - 0x9e, 0x16, 0x54, 0x5e, 0x63, 0x2a, 0x22, 0xce, 0xb4, 0x09, 0x5d, 0x72, 0x00, 0xe5, 0x6b, 0xbf, - 0xa8, 0xe3, 0xf8, 0xde, 0x0d, 0x79, 0xa6, 0xfa, 0xb7, 0xda, 0x8d, 0x0b, 0x94, 0x34, 0x8a, 0xb5, - 0x8b, 0xea, 0xc1, 0x2b, 0xf0, 0x9e, 0x23, 0x4d, 0xe5, 0x29, 0xd2, 0xb7, 0x2d, 0x72, 0xa3, 0x45, - 0xe3, 0xfb, 0xcf, 0x73, 0x9e, 0x70, 0xb5, 0x27, 0x76, 0x6f, 0x80, 0x06, 0xdf, 0xc2, 0x6e, 0xae, - 0xbc, 0x5d, 0x6f, 0x3e, 0xd3, 0xb9, 0x2b, 0xf3, 0x09, 0xb4, 0xa6, 0x17, 0x2b, 0xb9, 0xe0, 0xbf, - 0xb3, 0xf7, 0xea, 0x2b, 0x20, 0xe0, 0xad, 0x13, 0xed, 0xb1, 0x9a, 0x00, 0x19, 0xf3, 0xf0, 0xd2, - 0xd6, 0x7e, 0xbf, 0x75, 0x6e, 0xf2, 0xef, 0x66, 0xfc, 0xc7, 0x3c, 0xbc, 0x34, 0x9b, 0xd1, 0x06, - 0x32, 0x3b, 0xa9, 0xa3, 0xd2, 0x0d, 0xf6, 0xa0, 0xbd, 0x81, 0x68, 0x1b, 0xa1, 0xd0, 0x79, 0xc9, - 0xe2, 0xff, 0xb3, 0x95, 0xe0, 0x1e, 0xec, 0x6d, 0x41, 0x58, 0xec, 0x13, 0xe8, 0x3c, 0x43, 0x39, - 0xb8, 0xc0, 0xf0, 0x32, 0xe1, 0x11, 0x93, 0x1f, 0x8c, 0x1d, 0x0c, 0x61, 0x6f, 0xab, 0xa2, 0x55, - 0x58, 0x4f, 0xce, 0xa2, 0xb6, 0xe6, 0x3d, 0x68, 0x09, 0x85, 0xa8, 0xaf, 0x99, 0xd5, 0xf2, 0x14, - 0x53, 0xe3, 0xdd, 0xe0, 0x0f, 0xd8, 0xfd, 0x88, 0x4d, 0x6d, 0x61, 0x17, 0xef, 0xc2, 0x36, 0x32, - 0x75, 0x80, 0xdc, 0x6c, 0x3f, 0x78, 0x05, 0x64, 0x82, 0x74, 0x31, 0xc1, 0x90, 0xa7, 0x0b, 0xf1, - 0xe1, 0x2d, 0x35, 0xa0, 0x24, 0xf9, 0x25, 0x32, 0xab, 0xd0, 0x00, 0xca, 0xa6, 0xb4, 0x7a, 0x4a, - 0xd1, 0x50, 0x46, 0x9c, 0x99, 0x3b, 0xc0, 0xd9, 0x7e, 0x4a, 0xf5, 0xf5, 0x4f, 0xfd, 0x94, 0x6a, - 0x42, 0x39, 0xd5, 0x49, 0x1a, 0xa7, 0x1e, 0x8c, 0xa1, 0xbd, 0xd1, 0xa3, 0x65, 0xfe, 0x33, 0xa8, - 0x98, 0x69, 0xd9, 0xd6, 0xca, 0xbd, 0x7c, 0x2c, 0x28, 0x01, 0x60, 0xf8, 0x46, 0xce, 0x4d, 0x4b, - 0x66, 0xd3, 0x3c, 0x84, 0xd2, 0x4c, 0x0d, 0xf3, 0x27, 0x8b, 0xa3, 0x4f, 0x96, 0x16, 0x54, 0x42, - 0xce, 0x24, 0x32, 0x69, 0x81, 0x9f, 0x43, 0x5d, 0x4f, 0x1d, 0x98, 0xa8, 0xba, 0x87, 0x92, 0x34, - 0x5a, 0xd2, 0xf4, 0x6a, 0x7e, 0x89, 0x57, 0xf6, 0x6c, 0xf6, 0xa0, 0x1a, 0x49, 0x4c, 0xa9, 0xe4, - 0x69, 0xee, 0xf1, 0x19, 0x2d, 0x51, 0x48, 0xba, 0x4c, 0xec, 0xc5, 0x30, 0x87, 0x66, 0xbe, 0xd2, - 0x2f, 0x87, 0xff, 0xbd, 0x96, 0xbe, 0x9a, 0xb9, 0xa4, 0xd9, 0xb5, 0x57, 0xd4, 0x00, 0x08, 0xe4, - 0x96, 0x47, 0xc4, 0x01, 0x14, 0xcf, 0x62, 0x7a, 0xae, 0xab, 0x37, 0x0f, 0x3f, 0xcd, 0x3f, 0x38, - 0x68, 0x2a, 0x8f, 0xcf, 0xce, 0x04, 0xca, 0x1f, 0x63, 0xaa, 0x5f, 0x1b, 0x62, 0x1d, 0xd2, 0xd8, - 0x45, 0x85, 0x8d, 0x6c, 0x61, 0x43, 0x0a, 0xbb, 0x18, 0x1c, 0x41, 0x6b, 0x1a, 0x5e, 0xe0, 0x62, - 0x15, 0xe3, 0x5b, 0xbc, 0xf2, 0x4e, 0xe7, 0xa5, 0x3a, 0xbc, 0xae, 0x4b, 0x19, 0x49, 0x1f, 0x3d, - 0xcd, 0x5e, 0x7a, 0xda, 0x07, 0x75, 0xa8, 0xfe, 0x40, 0x05, 0x0e, 0xa9, 0xa4, 0x9e, 0x43, 0x00, - 0xca, 0x66, 0x85, 0x5e, 0x81, 0xec, 0x42, 0x43, 0xfd, 0xe9, 0xb3, 0x85, 0x0d, 0xb9, 0x8f, 0xfa, - 0xd0, 0xd8, 0x3c, 0xfe, 0xab, 0x50, 0x3c, 0x3e, 0x19, 0xbd, 0xf0, 0x1c, 0x52, 0x83, 0xca, 0x60, - 0x7c, 0x3c, 0x3d, 0x7a, 0xf1, 0xcc, 0x2b, 0x90, 0x1d, 0x28, 0xa9, 0xc1, 0xc8, 0x73, 0x49, 0x13, - 0x60, 0x36, 0x9a, 0xfc, 0x74, 0xf4, 0xa2, 0x3f, 0x1b, 0x0d, 0xbd, 0xa2, 0x42, 0xcf, 0xb9, 0xb0, - 0x06, 0x95, 0x93, 0x97, 0xb3, 0xf9, 0xe4, 0xf8, 0x57, 0xcf, 0x51, 0x53, 0x5f, 0x9e, 0x0c, 0xfb, - 0xb3, 0x91, 0x1e, 0x17, 0xd4, 0x78, 0x38, 0x1a, 0x8f, 0xec, 0xd8, 0x7d, 0xf4, 0x25, 0xb4, 0xb6, - 0x29, 0x05, 0x28, 0x8f, 0xfb, 0xb3, 0xd1, 0x74, 0xe6, 0x7d, 0xa2, 0x56, 0x32, 0xea, 0x4f, 0xc6, - 0x47, 0x6a, 0xe4, 0xfc, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x09, 0xe4, 0xf8, 0xc7, 0xe4, 0x0c, 0x00, - 0x00, +func init() { proto.RegisterFile("tunnelservice.proto", fileDescriptor_add33052b81b4cd7) } + +var fileDescriptor_add33052b81b4cd7 = []byte{ + // 1232 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0x5b, 0x6f, 0xdb, 0x46, + 0x13, 0xfd, 0x28, 0xea, 0xe6, 0xd1, 0xd5, 0x2b, 0xd9, 0xe1, 0x07, 0xe4, 0x41, 0x65, 0x53, 0x58, + 0x49, 0xd1, 0x00, 0x75, 0x1f, 0xd2, 0xb4, 0x4f, 0xaa, 0xa4, 0x26, 0x06, 0xd4, 0xd8, 0x95, 0x94, + 0x16, 0x28, 0x10, 0x10, 0x6b, 0x6a, 0x6c, 0x13, 0xa6, 0x76, 0x59, 0xee, 0x2a, 0x8d, 0xdb, 0x3f, + 0xd0, 0xa7, 0xfe, 0xa4, 0xfe, 0xb6, 0x62, 0x2f, 0xb4, 0x28, 0xd9, 0x0e, 0x92, 0x26, 0x7d, 0x22, + 0x76, 0xb8, 0x33, 0x67, 0xf6, 0x9c, 0xb3, 0x17, 0xe8, 0xc8, 0x15, 0x63, 0x18, 0x0b, 0x4c, 0x5f, + 0x47, 0x21, 0x3e, 0x4e, 0x52, 0x2e, 0x39, 0xa9, 0xea, 0x4f, 0xc8, 0x63, 0xff, 0x29, 0x94, 0xc6, + 0x69, 0xca, 0x53, 0x52, 0x87, 0x62, 0xc8, 0x17, 0xe8, 0x39, 0xbd, 0x42, 0x7f, 0x87, 0xb4, 0xa0, + 0xb2, 0x44, 0x21, 0xe8, 0x39, 0x7a, 0x85, 0x9e, 0xd3, 0xdf, 0x21, 0xbb, 0xb0, 0x63, 0x0a, 0x05, + 0xd1, 0xc2, 0x73, 0x55, 0xc8, 0xff, 0xdb, 0x81, 0xf2, 0x5c, 0xc7, 0x08, 0x01, 0x90, 0xf4, 0x34, + 0xc6, 0x80, 0xd1, 0x65, 0x56, 0xa2, 0x03, 0x35, 0x9b, 0xa1, 0x83, 0xae, 0x0e, 0x3e, 0xbc, 0x0e, + 0xca, 0xab, 0x04, 0xbd, 0x62, 0xaf, 0xd0, 0x6f, 0x1e, 0x76, 0x1f, 0x67, 0xed, 0x3c, 0x36, 0xf5, + 0xe6, 0x57, 0x09, 0x92, 0x6f, 0xa0, 0x2b, 0x64, 0x8a, 0x74, 0x19, 0xd8, 0x8c, 0x90, 0xb3, 0xb3, + 0xe8, 0xdc, 0x2b, 0xf5, 0x9c, 0x7e, 0xed, 0xf0, 0xfe, 0x3a, 0x67, 0xa6, 0x67, 0x99, 0xcc, 0xa1, + 0x9e, 0x43, 0x1e, 0xc0, 0x7d, 0x86, 0xb8, 0x08, 0x68, 0x1c, 0x07, 0x32, 0x5a, 0x62, 0x20, 0x30, + 0x8d, 0x50, 0x04, 0x21, 0x8f, 0x57, 0x4b, 0x26, 0xbc, 0x72, 0xcf, 0xe9, 0x57, 0xfd, 0x27, 0xd0, + 0x19, 0xa6, 0x48, 0x25, 0x9a, 0xdc, 0x29, 0xfe, 0xba, 0x42, 0x21, 0x49, 0x0f, 0xca, 0x06, 0x51, + 0x2f, 0xa4, 0x76, 0xd8, 0xde, 0x6e, 0xcf, 0x7f, 0x08, 0xdd, 0xcd, 0x44, 0x91, 0x70, 0x26, 0x70, + 0x93, 0x24, 0xcd, 0x82, 0xff, 0x23, 0x74, 0x46, 0x18, 0xe3, 0x36, 0xc6, 0x3b, 0x10, 0x56, 0xd0, + 0xc1, 0x5b, 0x78, 0xdf, 0x87, 0xee, 0x66, 0x49, 0x83, 0xee, 0x1f, 0xc0, 0xee, 0x24, 0x12, 0xf2, + 0xed, 0x40, 0xaa, 0xc0, 0x9f, 0x05, 0x00, 0x33, 0xeb, 0x88, 0x9d, 0xf1, 0x5b, 0xba, 0xce, 0xb5, + 0xa2, 0x65, 0x32, 0xad, 0x6c, 0x96, 0x32, 0x7a, 0xee, 0x41, 0x23, 0x62, 0x42, 0x52, 0x16, 0xda, + 0x70, 0x31, 0xeb, 0xda, 0x6a, 0x17, 0x2d, 0xbc, 0x92, 0x0e, 0x35, 0xa0, 0x24, 0xa4, 0xf2, 0x53, + 0x39, 0x33, 0x18, 0xbe, 0x49, 0xa2, 0x14, 0x17, 0x5e, 0x45, 0x89, 0xb1, 0xbd, 0xfa, 0xaa, 0x76, + 0x5d, 0x13, 0xca, 0xc9, 0xea, 0x34, 0x8e, 0x42, 0x6f, 0x47, 0x4f, 0xba, 0xcb, 0x13, 0xf0, 0x0e, + 0x9e, 0xe8, 0x40, 0x2d, 0xd4, 0xa2, 0x69, 0x47, 0x78, 0xb5, 0x9e, 0xd3, 0x77, 0xfd, 0x6f, 0x81, + 0xe4, 0x39, 0xb3, 0x3a, 0x7e, 0x06, 0x15, 0xbb, 0x6b, 0x3c, 0xa7, 0xe7, 0xf6, 0x6b, 0x37, 0x1d, + 0xaa, 0x88, 0xf3, 0x67, 0xb0, 0x37, 0x42, 0x11, 0xa6, 0xd1, 0xe9, 0x47, 0x54, 0xf7, 0x2f, 0x07, + 0x6a, 0xc3, 0x0b, 0x7a, 0xad, 0x0e, 0x01, 0x08, 0xcd, 0x70, 0x2d, 0x4f, 0x17, 0xea, 0x59, 0xcc, + 0xea, 0xa3, 0xc8, 0xda, 0x87, 0x66, 0x16, 0x15, 0x92, 0xca, 0x95, 0x30, 0x15, 0x15, 0x48, 0x18, + 0x47, 0xc8, 0xa4, 0x2a, 0x50, 0xd4, 0x21, 0xc5, 0x85, 0x9d, 0x9a, 0x26, 0x5c, 0x6f, 0x29, 0x57, + 0x69, 0x99, 0x05, 0x43, 0xbe, 0x62, 0x52, 0xef, 0x12, 0xd7, 0xff, 0x03, 0xf6, 0xb7, 0x57, 0x69, + 0x69, 0x7a, 0xb0, 0xb5, 0x51, 0x6e, 0x65, 0x89, 0x1c, 0x40, 0xd5, 0x96, 0x15, 0x5e, 0x41, 0xb3, + 0xb9, 0xb7, 0x9e, 0xb7, 0xb5, 0x52, 0x4b, 0x86, 0xea, 0xc9, 0xd5, 0xe0, 0x5f, 0x42, 0xe3, 0x19, + 0xca, 0x69, 0xc2, 0x33, 0x6a, 0xb7, 0xcc, 0xea, 0x18, 0x67, 0xc5, 0xd1, 0x32, 0x92, 0x9a, 0x86, + 0x92, 0x7f, 0x02, 0xcd, 0x2c, 0x65, 0xbd, 0x2d, 0xd3, 0x84, 0x07, 0x11, 0x3b, 0xe3, 0x42, 0xe7, + 0xd4, 0x89, 0x07, 0xed, 0x35, 0x96, 0xfd, 0x53, 0xd0, 0x7f, 0x6e, 0x91, 0xe4, 0x2b, 0xa8, 0x0f, + 0x35, 0x81, 0xd6, 0x49, 0x2d, 0xa8, 0x28, 0x0b, 0xf1, 0x95, 0xd4, 0xd5, 0x5c, 0xad, 0x91, 0x61, + 0x58, 0xd2, 0x73, 0xa3, 0x86, 0x3f, 0x85, 0xe6, 0x90, 0x33, 0x86, 0xa1, 0xbc, 0xa3, 0x75, 0x25, + 0xe4, 0x17, 0xd0, 0xb0, 0x89, 0xd6, 0xc8, 0x05, 0x6d, 0xe4, 0xfd, 0x1c, 0x41, 0x39, 0x60, 0xff, + 0x01, 0xb4, 0xae, 0x6b, 0xae, 0xd7, 0xb6, 0x16, 0xd7, 0x1c, 0x39, 0xe7, 0x50, 0xb1, 0xb4, 0xde, + 0x6a, 0x9e, 0x16, 0x54, 0x5e, 0x63, 0x2a, 0x22, 0xce, 0xb4, 0x09, 0x5d, 0x72, 0x00, 0xe5, 0x6b, + 0xbf, 0xa8, 0xe3, 0xf8, 0xde, 0x0d, 0x79, 0x66, 0xfa, 0xb7, 0xda, 0x8d, 0x0b, 0x94, 0x34, 0x8a, + 0xb5, 0x8b, 0xea, 0xfe, 0x2b, 0x68, 0x3f, 0x47, 0x9a, 0xca, 0x53, 0xa4, 0x6f, 0x5b, 0xe4, 0x46, + 0x8b, 0xc6, 0xf7, 0x9f, 0xe6, 0x3c, 0xe1, 0x6a, 0x4f, 0xec, 0xde, 0x00, 0xf5, 0xbf, 0x86, 0xdd, + 0x5c, 0x79, 0xbb, 0xde, 0x7c, 0xa6, 0x73, 0x57, 0xe6, 0x13, 0x68, 0xcd, 0x2e, 0x56, 0x72, 0xc1, + 0x7f, 0x63, 0xef, 0xd5, 0x97, 0x4f, 0xa0, 0xbd, 0x4e, 0xb4, 0xc7, 0x6a, 0x02, 0x64, 0xc2, 0xc3, + 0x4b, 0x5b, 0xfb, 0xfd, 0xd6, 0xb9, 0xc9, 0xbf, 0x9b, 0xf1, 0x1f, 0xf3, 0xf0, 0xd2, 0x6c, 0x46, + 0x1b, 0xc8, 0xec, 0xa4, 0x8e, 0x4a, 0xd7, 0xdf, 0x83, 0xce, 0x06, 0xa2, 0x6d, 0x84, 0x42, 0xf7, + 0x25, 0x8b, 0xff, 0xcb, 0x56, 0xfc, 0x7b, 0xb0, 0xb7, 0x05, 0x61, 0xb1, 0x4f, 0xa0, 0xfb, 0x0c, + 0xe5, 0xf0, 0x02, 0xc3, 0xcb, 0x84, 0x47, 0x4c, 0x7e, 0x30, 0xb6, 0x3f, 0x82, 0xbd, 0xad, 0x8a, + 0x56, 0x61, 0x3d, 0x39, 0x8b, 0xda, 0x9a, 0xf7, 0xa0, 0x25, 0x14, 0xa2, 0xbe, 0x66, 0x56, 0xcb, + 0x53, 0x4c, 0x8d, 0x77, 0xfd, 0xdf, 0x61, 0xf7, 0x23, 0x36, 0xb5, 0x85, 0x5d, 0xbc, 0x0b, 0xdb, + 0xc8, 0xd4, 0x05, 0x72, 0xb3, 0x7d, 0xff, 0x15, 0x90, 0x29, 0xd2, 0xc5, 0x14, 0x43, 0x9e, 0x2e, + 0xc4, 0x87, 0xb7, 0xd4, 0x80, 0x92, 0xe4, 0x97, 0xc8, 0xac, 0x42, 0xbf, 0x40, 0xd9, 0x94, 0x56, + 0x4f, 0x29, 0x1a, 0xca, 0x88, 0x33, 0x73, 0x07, 0x38, 0xdb, 0x4f, 0xa9, 0x81, 0xfe, 0xa9, 0x9f, + 0x52, 0x4d, 0x28, 0xa7, 0x3a, 0x49, 0xe3, 0xd4, 0xd5, 0x49, 0xcf, 0xd3, 0xe8, 0x3c, 0x62, 0x81, + 0x0d, 0xbb, 0x7a, 0x3f, 0x4f, 0xa0, 0xb3, 0xd1, 0xba, 0x15, 0xe4, 0x13, 0xa8, 0x98, 0x69, 0xd9, + 0x8e, 0xcb, 0x3d, 0x88, 0x6c, 0x2f, 0x04, 0x80, 0xe1, 0x1b, 0x19, 0x98, 0x4e, 0xcd, 0x5e, 0x7a, + 0x08, 0xa5, 0xb9, 0x1a, 0xe6, 0x0f, 0x1c, 0x47, 0x1f, 0x38, 0x2d, 0xa8, 0x84, 0x9c, 0x49, 0x64, + 0xd2, 0xf4, 0xe3, 0x3f, 0x87, 0xba, 0x9e, 0x3a, 0x34, 0x51, 0x75, 0x3d, 0x25, 0x69, 0xb4, 0xa4, + 0xe9, 0x55, 0x70, 0x89, 0x57, 0xf6, 0xc8, 0x6e, 0x43, 0x35, 0x92, 0x98, 0x52, 0xc9, 0xd3, 0xdc, + 0x9b, 0x34, 0x5a, 0xa2, 0x90, 0x74, 0x99, 0xd8, 0xfb, 0x22, 0x80, 0x66, 0xbe, 0xd2, 0x4f, 0x87, + 0xff, 0xbe, 0x96, 0xbe, 0xb1, 0xb9, 0xa4, 0xd9, 0x6d, 0x58, 0xd4, 0x00, 0x08, 0xe4, 0x96, 0xb7, + 0xc5, 0x01, 0x14, 0xcf, 0x62, 0x7a, 0xae, 0xab, 0x37, 0x0f, 0xff, 0x9f, 0x7f, 0x87, 0xd0, 0x54, + 0x1e, 0x9f, 0x9d, 0x09, 0x94, 0xdf, 0xc7, 0x54, 0x3f, 0x42, 0xc4, 0x3a, 0xa4, 0xb1, 0x8b, 0x0a, + 0x1b, 0xd9, 0xc2, 0x86, 0x14, 0x76, 0xd1, 0x3f, 0x82, 0xd6, 0x2c, 0xbc, 0xc0, 0xc5, 0x2a, 0xc6, + 0xb7, 0x58, 0xe8, 0x9d, 0x8e, 0x51, 0x75, 0xa6, 0x5d, 0x97, 0x32, 0x92, 0x3e, 0x7a, 0x9a, 0x3d, + 0x00, 0xb5, 0x3d, 0xea, 0x50, 0xfd, 0x8e, 0x0a, 0x1c, 0x51, 0x49, 0xdb, 0x0e, 0x01, 0x28, 0x9b, + 0x15, 0xb6, 0x0b, 0x64, 0x17, 0x1a, 0xea, 0xcf, 0x80, 0x2d, 0x6c, 0xc8, 0x7d, 0x34, 0x80, 0xc6, + 0xe6, 0xad, 0x50, 0x85, 0xe2, 0xf1, 0xc9, 0xf8, 0x45, 0xdb, 0x21, 0x35, 0xa8, 0x0c, 0x27, 0xc7, + 0xb3, 0xa3, 0x17, 0xcf, 0xda, 0x05, 0xb2, 0x03, 0x25, 0x35, 0x18, 0xb7, 0x5d, 0xd2, 0x04, 0x98, + 0x8f, 0xa7, 0x3f, 0x1c, 0xbd, 0x18, 0xcc, 0xc7, 0xa3, 0x76, 0x51, 0xa1, 0xe7, 0xcc, 0x59, 0x83, + 0xca, 0xc9, 0xcb, 0x79, 0x30, 0x3d, 0xfe, 0xb9, 0xed, 0xa8, 0xa9, 0x2f, 0x4f, 0x46, 0x83, 0xf9, + 0x58, 0x8f, 0x0b, 0x6a, 0x3c, 0x1a, 0x4f, 0xc6, 0x76, 0xec, 0x3e, 0xfa, 0x1c, 0x5a, 0xdb, 0x94, + 0x02, 0x94, 0x27, 0x83, 0xf9, 0x78, 0x36, 0x6f, 0xff, 0x4f, 0xad, 0x64, 0x3c, 0x98, 0x4e, 0x8e, + 0xd4, 0xc8, 0xf9, 0x27, 0x00, 0x00, 0xff, 0xff, 0x62, 0x5b, 0x97, 0x90, 0xfb, 0x0c, 0x00, 0x00, } diff --git a/tunnel/restore/record_restore.go b/tunnel/restore/record_restore.go index 57dde21..89482e3 100644 --- a/tunnel/restore/record_restore.go +++ b/tunnel/restore/record_restore.go @@ -1,6 +1,7 @@ package restore import ( + "errors" "github.com/aliyun/aliyun-tablestore-go-sdk/tablestore" "github.com/aliyun/aliyun-tablestore-go-sdk/tunnel" ) @@ -10,7 +11,22 @@ func BinaryRecordRestore(client *tablestore.TableStoreClient, request *BinaryRec if err != nil { return nil, err } - responseInfo, hasTimeoutRecord, recordCount, err := recordReplay(client, records, request.Timestamp, request.TableName, request.DiscardDataVersion) + + param := &recordReplayParam{ + client: client, + timestamp: request.Timestamp, + tableName: request.TableName, + discardDataVersion: request.DiscardDataVersion, + autoIncrementPKIndex: request.AutoIncrementPKIndex, + reGenerateAutoIncrementPK: request.ReGenerateAutoIncrementPK, + } + if param.autoIncrementPKIndex < 0 { + return nil, errors.New("autoIncrementPKIndex can't be less than 0") + } + if param.reGenerateAutoIncrementPK && param.autoIncrementPKIndex == 0 { + return nil, errors.New("autoIncrementPKIndex can't be 0 when autoIncrementPK needs to be regenerated") + } + responseInfo, hasTimeoutRecord, recordCount, err := recordReplay(records, param) if err != nil { return nil, err } @@ -23,7 +39,21 @@ func BinaryRecordRestore(client *tablestore.TableStoreClient, request *BinaryRec } func RecordRestore(client *tablestore.TableStoreClient, request *RecordReplayRequest) (*RecordReplayResponse, error) { - responseInfo, hasTimeoutRecord, recordCount, err := recordReplay(client, request.Record, request.Timestamp, request.TableName, request.DiscardDataVersion) + param := &recordReplayParam{ + client: client, + timestamp: request.Timestamp, + tableName: request.TableName, + discardDataVersion: request.DiscardDataVersion, + autoIncrementPKIndex: request.AutoIncrementPKIndex, + reGenerateAutoIncrementPK: request.ReGenerateAutoIncrementPK, + } + if param.autoIncrementPKIndex < 0 { + return nil, errors.New("autoIncrementPKIndex can't be less than 0") + } + if param.reGenerateAutoIncrementPK && param.autoIncrementPKIndex == 0 { + return nil, errors.New("autoIncrementPKIndex can't be 0 when autoIncrementPK needs to be regenerated") + } + responseInfo, hasTimeoutRecord, recordCount, err := recordReplay(request.Record, param) if err != nil { return nil, err } @@ -33,4 +63,4 @@ func RecordRestore(client *tablestore.TableStoreClient, request *RecordReplayReq ResponseInfo: responseInfo, } return response, nil -} \ No newline at end of file +} diff --git a/tunnel/restore/record_restore_test.go b/tunnel/restore/record_restore_test.go index 877ae4b..55a5aca 100644 --- a/tunnel/restore/record_restore_test.go +++ b/tunnel/restore/record_restore_test.go @@ -791,6 +791,479 @@ func (s *BackupRestoreSuite) Test_RecordRestore_WithTwiceBatchWrite(c *C) { compareDiffKeyRestoreRows(want, got, c) } +//The server regenerate the value of the autoIncrement pk column. update and delete operations will be ignored. +func (s *BackupRestoreSuite) Test_AutoIncrementPk_RecordRestore_WithRegenerate(c *C) { + tableName := tableNamePrefix + strconv.Itoa(time.Now().Nanosecond()) + delTableReq := &tablestore.DeleteTableRequest{TableName: tableName} + tableMeta, err := prepareAutoIncPkTable(tableName) + c.Assert(err, IsNil) + c.Assert(GetAutoIncrementPkIndex(tableMeta), Equals, 1) + time.Sleep(time.Second * 2) + defer client.DeleteTable(delTableReq) + + columnName := "col" + recordTimestamp := time.Now().Unix() * 1000 + tests := []struct { + name string + request *RecordReplayRequest + recordRestoreCount int + hasTimeoutRecord bool + wantErr bool + }{ + { + name: "", + request: &RecordReplayRequest{ + Record: []*tunnel.Record{ + { + Type: tunnel.AT_Put, + Timestamp: recordTimestamp, + SequenceInfo: &tunnel.SequenceInfo{}, + PrimaryKey: &tunnel.PrimaryKey{ + PrimaryKeys: []*tunnel.PrimaryKeyColumn{ + { + ColumnName: "PkString", + Value: "pk1", + }, + { + ColumnName: "PkInt", + Value: int64(0), + }, + { + ColumnName: "PkBinary", + Value: []byte("pkBinary"), + }, + }, + }, + Columns: []*tunnel.RecordColumn{ + { + Type: tunnel.RCT_Put, + Name: &columnName, + Value: "colVal", + Timestamp: &recordTimestamp, + }, + }, + }, + { + Type: tunnel.AT_Put, + Timestamp: recordTimestamp, + SequenceInfo: &tunnel.SequenceInfo{}, + PrimaryKey: &tunnel.PrimaryKey{ + PrimaryKeys: []*tunnel.PrimaryKeyColumn{ + { + ColumnName: "PkString", + Value: "pk1", + }, + { + ColumnName: "PkInt", + Value: int64(0), + }, + { + ColumnName: "PkBinary", + Value: []byte("pkBinary"), + }, + }, + }, + Columns: []*tunnel.RecordColumn{ + { + Type: tunnel.RCT_Put, + Name: &columnName, + Value: "colVal", + Timestamp: &recordTimestamp, + }, + }, + }, + { + Type: tunnel.AT_Delete, + Timestamp: recordTimestamp, + SequenceInfo: &tunnel.SequenceInfo{}, + PrimaryKey: &tunnel.PrimaryKey{ + PrimaryKeys: []*tunnel.PrimaryKeyColumn{ + { + ColumnName: "PkString", + Value: "pk1", + }, + { + ColumnName: "PkInt", + Value: int64(1), + }, + { + ColumnName: "PkBinary", + Value: []byte("pkBinary"), + }, + }, + }, + Columns: []*tunnel.RecordColumn{ + { + Type: tunnel.RCT_Put, + Name: &columnName, + Value: "colVal", + Timestamp: &recordTimestamp, + }, + }, + }, + { + Type: tunnel.AT_Update, + Timestamp: recordTimestamp, + SequenceInfo: &tunnel.SequenceInfo{}, + PrimaryKey: &tunnel.PrimaryKey{ + PrimaryKeys: []*tunnel.PrimaryKeyColumn{ + { + ColumnName: "PkString", + Value: "pk1", + }, + { + ColumnName: "PkInt", + Value: int64(0), + }, + { + ColumnName: "PkBinary", + Value: []byte("pkBinary"), + }, + }, + }, + Columns: []*tunnel.RecordColumn{ + { + Type: tunnel.RCT_Put, + Name: &columnName, + Value: "colVal", + Timestamp: &recordTimestamp, + }, + }, + }, + }, + Timestamp: 0, + TableName: tableName, + DiscardDataVersion: false, + AutoIncrementPKIndex: GetAutoIncrementPkIndex(tableMeta), + ReGenerateAutoIncrementPK: true, + }, + recordRestoreCount: 4, + hasTimeoutRecord: false, + wantErr: false, + }, + } + + for _, t := range tests { + resp, err := RecordRestore(client, t.request) + if t.wantErr { + c.Assert(err, NotNil) + continue + } + c.Assert(err, IsNil) + want := make([]*tablestore.Row, 0) + for _, r := range t.request.Record { + if r.Type == tunnel.AT_Put { + want = append(want, convertRecordsToRow(r)) + } + } + c.Assert(resp.RecordRestoreCount, Equals, t.recordRestoreCount) + c.Assert(resp.HasTimeoutRecord, Equals, t.hasTimeoutRecord) + got := getRangeRestoreTable(client, tableName, c) + c.Assert(len(got), Equals, 2) + compareRestoreRowsIncludeAutoInc(want, got, t.request.AutoIncrementPKIndex, c) + } +} + +//The server retains the value of the autoIncrement pk column +func (s *BackupRestoreSuite) Test_AutoIncrementPk_RecordRestore_WithoutRegenerate(c *C) { + tableName := tableNamePrefix + strconv.Itoa(time.Now().Nanosecond()) + delTableReq := &tablestore.DeleteTableRequest{TableName: tableName} + err := prepareRecordTable(tableName) + c.Assert(err, IsNil) + autoIncTableName := tableName + "autoIncrement" + _, err = prepareAutoIncPkTable(autoIncTableName) + c.Assert(err, IsNil) + delAutoIncTableReq := &tablestore.DeleteTableRequest{TableName: autoIncTableName} + time.Sleep(time.Second * 2) + defer client.DeleteTable(delTableReq) + defer client.DeleteTable(delAutoIncTableReq) + + columnName := "col" + recordTimestamp := time.Now().Unix() * 1000 + tests := []struct { + name string + request *RecordReplayRequest + recordRestoreCount int + hasTimeoutRecord bool + wantErr bool + expectRows []*tablestore.Row + errCode string + }{ + { + name: "restore to a table without autoIncrementPK, expect success", + expectRows: getExpectRowsForAutoIncWithoutRegen(columnName), + request: &RecordReplayRequest{ + Record: []*tunnel.Record{ + { + Type: tunnel.AT_Put, + Timestamp: recordTimestamp, + SequenceInfo: &tunnel.SequenceInfo{}, + PrimaryKey: &tunnel.PrimaryKey{ + PrimaryKeys: []*tunnel.PrimaryKeyColumn{ + { + ColumnName: "PkString", + Value: "pk1", + }, + { + ColumnName: "PkInt", + Value: int64(0), + }, + { + ColumnName: "PkBinary", + Value: []byte("pkBinary"), + }, + }, + }, + Columns: []*tunnel.RecordColumn{ + { + Type: tunnel.RCT_Put, + Name: &columnName, + Value: "colVal", + Timestamp: &recordTimestamp, + }, + }, + }, + { + Type: tunnel.AT_Put, + Timestamp: recordTimestamp, + SequenceInfo: &tunnel.SequenceInfo{}, + PrimaryKey: &tunnel.PrimaryKey{ + PrimaryKeys: []*tunnel.PrimaryKeyColumn{ + { + ColumnName: "PkString", + Value: "pk1", + }, + { + ColumnName: "PkInt", + Value: int64(1), + }, + { + ColumnName: "PkBinary", + Value: []byte("pkBinary"), + }, + }, + }, + Columns: []*tunnel.RecordColumn{ + { + Type: tunnel.RCT_Put, + Name: &columnName, + Value: "colVal", + Timestamp: &recordTimestamp, + }, + }, + }, + { + Type: tunnel.AT_Put, + Timestamp: recordTimestamp, + SequenceInfo: &tunnel.SequenceInfo{}, + PrimaryKey: &tunnel.PrimaryKey{ + PrimaryKeys: []*tunnel.PrimaryKeyColumn{ + { + ColumnName: "PkString", + Value: "pk1", + }, + { + ColumnName: "PkInt", + Value: int64(2), + }, + { + ColumnName: "PkBinary", + Value: []byte("pkBinary"), + }, + }, + }, + Columns: []*tunnel.RecordColumn{ + { + Type: tunnel.RCT_Put, + Name: &columnName, + Value: "colVal", + Timestamp: &recordTimestamp, + }, + }, + }, + { + Type: tunnel.AT_Delete, + Timestamp: recordTimestamp, + SequenceInfo: &tunnel.SequenceInfo{}, + PrimaryKey: &tunnel.PrimaryKey{ + PrimaryKeys: []*tunnel.PrimaryKeyColumn{ + { + ColumnName: "PkString", + Value: "pk1", + }, + { + ColumnName: "PkInt", + Value: int64(0), + }, + { + ColumnName: "PkBinary", + Value: []byte("pkBinary"), + }, + }, + }, + Columns: []*tunnel.RecordColumn{ + { + Type: tunnel.RCT_Put, + Name: &columnName, + Value: "colVal", + Timestamp: &recordTimestamp, + }, + }, + }, + { + Type: tunnel.AT_Update, + Timestamp: recordTimestamp, + SequenceInfo: &tunnel.SequenceInfo{}, + PrimaryKey: &tunnel.PrimaryKey{ + PrimaryKeys: []*tunnel.PrimaryKeyColumn{ + { + ColumnName: "PkString", + Value: "pk1", + }, + { + ColumnName: "PkInt", + Value: int64(1), + }, + { + ColumnName: "PkBinary", + Value: []byte("pkBinary"), + }, + }, + }, + Columns: []*tunnel.RecordColumn{ + { + Type: tunnel.RCT_Put, + Name: &columnName, + Value: "colVal1", + Timestamp: &recordTimestamp, + }, + }, + }, + { + Type: tunnel.AT_Put, + Timestamp: recordTimestamp, + SequenceInfo: &tunnel.SequenceInfo{}, + PrimaryKey: &tunnel.PrimaryKey{ + PrimaryKeys: []*tunnel.PrimaryKeyColumn{ + { + ColumnName: "PkString", + Value: "pk1", + }, + { + ColumnName: "PkInt", + Value: int64(2), + }, + { + ColumnName: "PkBinary", + Value: []byte("pkBinary"), + }, + }, + }, + Columns: []*tunnel.RecordColumn{ + { + Type: tunnel.RCT_Put, + Name: &columnName, + Value: "colVal1", + Timestamp: &recordTimestamp, + }, + }, + }, + }, + + Timestamp: 0, + TableName: tableName, + DiscardDataVersion: false, + AutoIncrementPKIndex: 0, + ReGenerateAutoIncrementPK: false, + }, + recordRestoreCount: 6, + hasTimeoutRecord: false, + wantErr: false, + }, + { + name: "restore to a table with autoIncrementPK, expect failed", + request: &RecordReplayRequest{ + Record: []*tunnel.Record{ + { + Type: tunnel.AT_Put, + Timestamp: recordTimestamp, + SequenceInfo: &tunnel.SequenceInfo{}, + PrimaryKey: &tunnel.PrimaryKey{ + PrimaryKeys: []*tunnel.PrimaryKeyColumn{ + { + ColumnName: "PkString", + Value: "pk1", + }, + { + ColumnName: "PkInt", + Value: int64(0), + }, + { + ColumnName: "PkBinary", + Value: []byte("pkBinary"), + }, + }, + }, + Columns: []*tunnel.RecordColumn{ + { + Type: tunnel.RCT_Put, + Name: &columnName, + Value: "colVal", + Timestamp: &recordTimestamp, + }, + }, + }, + }, + + Timestamp: 0, + TableName: autoIncTableName, + DiscardDataVersion: false, + AutoIncrementPKIndex: 0, + ReGenerateAutoIncrementPK: false, + }, + wantErr: true, + errCode: "OTSConditionCheckFail", + }, + } + + for _, t := range tests { + resp, err := RecordRestore(client, t.request) + if t.wantErr { + if otsErr, ok := err.(*tablestore.OtsError); ok { + c.Assert(otsErr.Code, Equals, t.errCode) + } + c.Assert(err, NotNil) + continue + } + c.Assert(err, IsNil) + c.Assert(resp.RecordRestoreCount, Equals, t.recordRestoreCount) + c.Assert(resp.HasTimeoutRecord, Equals, t.hasTimeoutRecord) + got := getRangeRestoreTable(client, tableName, c) + c.Assert(len(got), Equals, 2) + compareRestoreRowsIncludeAutoInc(t.expectRows, got, t.request.AutoIncrementPKIndex, c) + } +} + +func prepareAutoIncPkTable(tableName string) (*tablestore.TableMeta, error) { + createTableRequest := new(tablestore.CreateTableRequest) + tableMeta := new(tablestore.TableMeta) + tableMeta.TableName = tableName + tableMeta.AddPrimaryKeyColumn("PkString", tablestore.PrimaryKeyType_STRING) + tableMeta.AddPrimaryKeyColumnOption("PkInt", tablestore.PrimaryKeyType_INTEGER, tablestore.AUTO_INCREMENT) + tableMeta.AddPrimaryKeyColumn("PkBinary", tablestore.PrimaryKeyType_BINARY) + tableOption := new(tablestore.TableOption) + tableOption.TimeToAlive = -1 + tableOption.MaxVersion = 3 + reservedThroughput := new(tablestore.ReservedThroughput) + reservedThroughput.Readcap = 0 + reservedThroughput.Writecap = 0 + createTableRequest.TableMeta = tableMeta + createTableRequest.TableOption = tableOption + createTableRequest.ReservedThroughput = reservedThroughput + _, err := client.CreateTable(createTableRequest) + return tableMeta, err +} + func prepareRecordTable(tableName string) error { createTableRequest := new(tablestore.CreateTableRequest) tableMeta := new(tablestore.TableMeta) @@ -811,6 +1284,30 @@ func prepareRecordTable(tableName string) error { return err } +func convertRecordsToRow(record *tunnel.Record) *tablestore.Row { + row := new(tablestore.Row) + primaryKey := new(tablestore.PrimaryKey) + for _, pk := range record.PrimaryKey.PrimaryKeys { + otsPk := &tablestore.PrimaryKeyColumn{ + ColumnName: pk.ColumnName, + Value: pk.Value, + } + primaryKey.PrimaryKeys = append(primaryKey.PrimaryKeys, otsPk) + } + row.PrimaryKey = primaryKey + + attrCol := make([]*tablestore.AttributeColumn, 0) + for _, colVal := range record.Columns { + otsCol := &tablestore.AttributeColumn{ + ColumnName: *colVal.Name, + Value: colVal.Value, + } + attrCol = append(attrCol, otsCol) + } + row.Columns = attrCol + return row +} + func buildGetRangeReq(tableName string) *tablestore.GetRangeRequest { getRangeRequest := &tablestore.GetRangeRequest{} rangeRowQueryCriteria := &tablestore.RangeRowQueryCriteria{} @@ -874,3 +1371,74 @@ func compareFuzzyRestoreRows(want []*tablestore.Row, got []*tablestore.Row, c *C c.Assert(row.Columns[0].Value, Equals, int64(2*i)) } } + +func compareRestoreRowsIncludeAutoInc(want []*tablestore.Row, got []*tablestore.Row, autoIncIndex int, c *C) { + c.Assert(len(want), Equals, len(got)) + for i, row := range got { + wantPk := want[i].PrimaryKey.PrimaryKeys + wantCol := want[i].Columns + for j, pk := range row.PrimaryKey.PrimaryKeys { + if autoIncIndex == 0 || j != autoIncIndex { + equal := reflect.DeepEqual(pk, wantPk[j]) + c.Assert(equal, Equals, true) + } + } + for j, col := range row.Columns { + c.Assert(col.ColumnName, Equals, wantCol[j].ColumnName) + c.Assert(col.Value, Equals, wantCol[j].Value.(string)) + } + } +} + +func getExpectRowsForAutoIncWithoutRegen(col string) []*tablestore.Row { + return []*tablestore.Row{ + { + PrimaryKey: &tablestore.PrimaryKey{ + PrimaryKeys: []*tablestore.PrimaryKeyColumn{ + { + ColumnName: "PkString", + Value: "pk1", + }, + { + ColumnName: "PkInt", + Value: int64(1), + }, + { + ColumnName: "PkBinary", + Value: []byte("pkBinary"), + }, + }, + }, + Columns: []*tablestore.AttributeColumn{ + { + ColumnName: col, + Value: "colVal1", + }, + }, + }, + { + PrimaryKey: &tablestore.PrimaryKey{ + PrimaryKeys: []*tablestore.PrimaryKeyColumn{ + { + ColumnName: "PkString", + Value: "pk1", + }, + { + ColumnName: "PkInt", + Value: int64(2), + }, + { + ColumnName: "PkBinary", + Value: []byte("pkBinary"), + }, + }, + }, + Columns: []*tablestore.AttributeColumn{ + { + ColumnName: col, + Value: "colVal1", + }, + }, + }, + } +} diff --git a/tunnel/restore/type.go b/tunnel/restore/type.go index a31545c..d673094 100644 --- a/tunnel/restore/type.go +++ b/tunnel/restore/type.go @@ -1,6 +1,9 @@ package restore -import "github.com/aliyun/aliyun-tablestore-go-sdk/tunnel" +import ( + "github.com/aliyun/aliyun-tablestore-go-sdk/tablestore" + "github.com/aliyun/aliyun-tablestore-go-sdk/tunnel" +) const DefaultBatchWriteRowCount = 200 @@ -8,9 +11,12 @@ type RecordReplayRequest struct { Record []*tunnel.Record //stream record end timestamp, if the record exceeds this timestamp, it won't be replayed. //when timestamp is 0, all records will be replayed. - Timestamp int64 - TableName string - DiscardDataVersion bool //whether to discard data version + Timestamp int64 + TableName string + DiscardDataVersion bool //whether to discard data version + AutoIncrementPKIndex int //the index of the autoIncrement pk column + //whether the server needs to regenerate the autoIncrement column + ReGenerateAutoIncrementPK bool } type RecordReplayResponse struct { @@ -20,10 +26,15 @@ type RecordReplayResponse struct { } type BinaryRecordReplayRequest struct { - Record []byte - Timestamp int64 - TableName string - DiscardDataVersion bool + Record []byte + //stream record end timestamp, if the record exceeds this timestamp, it won't be replayed. + //when timestamp is 0, all records will be replayed. + Timestamp int64 + TableName string + DiscardDataVersion bool //whether to discard data version + AutoIncrementPKIndex int //The index of the autoIncrement pk column + //whether the server needs to regenerate the autoIncrement column + ReGenerateAutoIncrementPK bool } type BinaryRecordReplayResponse struct { @@ -35,3 +46,12 @@ type BinaryRecordReplayResponse struct { type ResponseInfo struct { RequestId string } + +type recordReplayParam struct { + client *tablestore.TableStoreClient + timestamp int64 + tableName string + discardDataVersion bool //whether to discard data version + autoIncrementPKIndex int + reGenerateAutoIncrementPK bool +} diff --git a/tunnel/restore/util.go b/tunnel/restore/util.go index eced414..5c5e790 100644 --- a/tunnel/restore/util.go +++ b/tunnel/restore/util.go @@ -13,7 +13,7 @@ import ( when a batch of records contains the same primary key record, that record will be moved to the next batch for processing, for example, abacc will be split into abc and ac. */ -func recordReplay(client *tablestore.TableStoreClient, records []*tunnel.Record, timestamp int64, tableName string, discardDataVersion bool) (ResponseInfo, bool, int, error) { +func recordReplay(records []*tunnel.Record, param *recordReplayParam) (ResponseInfo, bool, int, error) { var err error var cnt int var totalLength int @@ -25,7 +25,7 @@ func recordReplay(client *tablestore.TableStoreClient, records []*tunnel.Record, nextBatch := make([]*tunnel.Record, 0) for _, record := range records { - if timestamp != 0 && record.SequenceInfo != nil && record.Timestamp > timestamp { + if param.timestamp != 0 && record.SequenceInfo != nil && record.Timestamp > param.timestamp { hasTimeoutRecord = true break } @@ -39,7 +39,7 @@ func recordReplay(client *tablestore.TableStoreClient, records []*tunnel.Record, cnt++ recordMap[pkString] = true if cnt == DefaultBatchWriteRowCount { - responseInfo, err = executeRecordRestore(client, replayRecords, tableName, discardDataVersion) + responseInfo, err = executeRecordRestore(replayRecords, param) if err != nil { return responseInfo, hasTimeoutRecord, 0, err } @@ -55,7 +55,7 @@ func recordReplay(client *tablestore.TableStoreClient, records []*tunnel.Record, if cnt == 0 { nextBatch = currentBatch } - responseInfo, cnt, err = processLastBatch(client, replayRecords, nextBatch, tableName, discardDataVersion, responseInfo) + responseInfo, cnt, err = processLastBatch(replayRecords, nextBatch, param, responseInfo) if err != nil { return responseInfo, hasTimeoutRecord, 0, err } @@ -97,11 +97,11 @@ func processPreviousBatch(cnt int, currentBatch, nextBatch, replayRecords []*tun return cnt } -func processLastBatch(client *tablestore.TableStoreClient, replayRecords []*tunnel.Record, currentBatch []*tunnel.Record, tableName string, discardDataVersion bool, info ResponseInfo) (ResponseInfo, int, error) { +func processLastBatch(replayRecords []*tunnel.Record, currentBatch []*tunnel.Record, param *recordReplayParam, info ResponseInfo) (ResponseInfo, int, error) { var err error var totalLength int if len(replayRecords) != 0 { - info, err = executeRecordRestore(client, replayRecords, tableName, discardDataVersion) + info, err = executeRecordRestore(replayRecords, param) if err != nil { return info, 0, err } @@ -125,7 +125,7 @@ func processLastBatch(client *tablestore.TableStoreClient, replayRecords []*tunn } } if len(replayRecords) != 0 { - info, err = executeRecordRestore(client, replayRecords, tableName, discardDataVersion) + info, err = executeRecordRestore(replayRecords, param) if err != nil { return info, 0, err } @@ -136,15 +136,21 @@ func processLastBatch(client *tablestore.TableStoreClient, replayRecords []*tunn return info, totalLength, nil } -func executeRecordRestore(client *tablestore.TableStoreClient, records []*tunnel.Record, tableName string, discardDataVersion bool) (ResponseInfo, error) { - batchWriteReq := genBatchWriteReqForRecordReplay(records, tableName, discardDataVersion) - batchWriteResp, err := client.BatchWriteRow(batchWriteReq) +func executeRecordRestore(records []*tunnel.Record, param *recordReplayParam) (ResponseInfo, error) { + batchWriteReq := genBatchWriteReqForRecordReplay(records, param.tableName, param.autoIncrementPKIndex, param.reGenerateAutoIncrementPK, param.discardDataVersion) + + //NOTICE: When the table has autoIncrement pk columns and the server needs to regenerate the autoIncrement column, + //the update and delete operations will be ignored, So the rowChange of batchWriteReq may be empty + if batchWriteReq.RowChangesGroupByTable == nil && param.reGenerateAutoIncrementPK { + return ResponseInfo{}, nil + } + batchWriteResp, err := param.client.BatchWriteRow(batchWriteReq) if err != nil { return ResponseInfo{}, err } var retErr = &tablestore.OtsError{} var hasFailedRow bool - for _, result := range batchWriteResp.TableToRowsResult[tableName] { + for _, result := range batchWriteResp.TableToRowsResult[param.tableName] { if !result.IsSucceed { hasFailedRow = true retErr.Code = result.Error.Code @@ -160,27 +166,32 @@ func executeRecordRestore(client *tablestore.TableStoreClient, records []*tunnel return ResponseInfo{RequestId: batchWriteResp.RequestId}, nil } -func genBatchWriteReqForRecordReplay(records []*tunnel.Record, tableName string, discardDataVersion bool) *tablestore.BatchWriteRowRequest { +func genBatchWriteReqForRecordReplay(records []*tunnel.Record, tableName string, autoIncPkIndex int, regenerateAutoIncrement bool, discardDataVersion bool) *tablestore.BatchWriteRowRequest { batchWriteReq := new(tablestore.BatchWriteRowRequest) + //if regenerateAutoIncrement is true, update and delete operations be ignored. for _, rec := range records { - switch rec.Type { - case tunnel.AT_Put: - batchWriteReq.AddRowChange(getPutRowChange(rec, tableName, discardDataVersion)) - case tunnel.AT_Delete: - batchWriteReq.AddRowChange(getDeleteRowChange(rec, tableName)) - case tunnel.AT_Update: + if rec.Type == tunnel.AT_Put { + batchWriteReq.AddRowChange(getPutRowChange(rec, tableName, autoIncPkIndex, regenerateAutoIncrement, discardDataVersion)) + } else if !regenerateAutoIncrement && rec.Type == tunnel.AT_Update { batchWriteReq.AddRowChange(getUpdateRowChange(rec, tableName, discardDataVersion)) + } else if !regenerateAutoIncrement && rec.Type == tunnel.AT_Delete { + batchWriteReq.AddRowChange(getDeleteRowChange(rec, tableName)) } } return batchWriteReq } -func getPutRowChange(record *tunnel.Record, tableName string, discardDataVersion bool) *tablestore.PutRowChange { +func getPutRowChange(record *tunnel.Record, tableName string, autoIncPkIndex int, regenerateAutoInc bool, discardDataVersion bool) *tablestore.PutRowChange { putRowChange := new(tablestore.PutRowChange) putRowChange.TableName = tableName putPk := new(tablestore.PrimaryKey) - for _, pk := range record.PrimaryKey.PrimaryKeys { - putPk.AddPrimaryKeyColumn(pk.ColumnName, pk.Value) + for i, pk := range record.PrimaryKey.PrimaryKeys { + //autoIncrement columns exist and need to be automatically generated by the server + if i != 0 && i == autoIncPkIndex && regenerateAutoInc { + putPk.AddPrimaryKeyColumnWithAutoIncrement(pk.ColumnName) + } else { + putPk.AddPrimaryKeyColumn(pk.ColumnName, pk.Value) + } } putRowChange.PrimaryKey = putPk for _, col := range record.Columns { @@ -234,6 +245,7 @@ func getUpdateRowChange(record *tunnel.Record, tableName string, discardDataVers return updateRowChange } +// ShouldSleep Provided for HBR use func ShouldSleep(err error) bool { if err, ok := err.(*tablestore.OtsError); ok && err.Code == tablestore.STORAGE_TIMEOUT { return true @@ -243,3 +255,15 @@ func ShouldSleep(err error) bool { } return false } + +func GetAutoIncrementPkIndex(meta *tablestore.TableMeta) int { + if meta == nil { + return 0 + } + for i, pk := range meta.SchemaEntry { + if pk != nil && pk.Option != nil && *pk.Option == tablestore.AUTO_INCREMENT { + return i + } + } + return 0 +} diff --git a/tunnel/util.go b/tunnel/util.go index 9a9fb0f..a3a3a40 100644 --- a/tunnel/util.go +++ b/tunnel/util.go @@ -56,7 +56,7 @@ func ParseActionType(pbType *protocol.ActionType) (ActionType, error) { } } -func DeserializeRecordFromRawBytes(data []byte, actionType ActionType) (*Record, error) { +func DeserializeRecordFromRawBytes(data []byte, originData []byte, actionType ActionType) (*Record, error) { rows, err := protocol.ReadRowsWithHeader(bytes.NewReader(data)) if err != nil { return nil, err @@ -95,6 +95,28 @@ func DeserializeRecordFromRawBytes(data []byte, actionType ActionType) (*Record, record.Columns = append(record.Columns, dataColumn) } + if originData != nil { + originRows, err := protocol.ReadRowsWithHeader(bytes.NewReader(originData)) + if err != nil { + return nil, err + } + for _, originCell := range originRows[0].Cells { + cellName := (string)(originCell.CellName) + dataColumn := &RecordColumn{Name: &cellName, Timestamp: &originCell.CellTimestamp} + if originCell.CellValue != nil { + dataColumn.Value = originCell.CellValue.Value + } + switch originCell.CellType { + case protocol.DELETE_ONE_VERSION: + dataColumn.Type = RCT_DeleteOneVersion + case protocol.DELETE_ALL_VERSION: + dataColumn.Type = RCT_DeleteAllVersions + default: + dataColumn.Type = RCT_Put + } + record.OriginColumns = append(record.OriginColumns, dataColumn) + } + } return record, nil } @@ -244,7 +266,7 @@ func UnSerializeBinaryRecordFromBytes(r *bytes.Reader) (*Record, error) { if err != nil { return nil, err } - rec, err := DeserializeRecordFromRawBytes(b, actionTyp) + rec, err := DeserializeRecordFromRawBytes(b, nil, actionTyp) if err != nil { return nil, err }